as_of implementation.
Three axes, never conflated
Described period
period, period_start, period_end. The slice of real-world time the value is about: May 2026 CPI, Q1 2026 GDP, the trading day for a daily series.Knowledge time
start_date, end_date. Bounds on observed_at: when the value became known to Conduit. This is the axis that prevents lookahead.Vintage cutoff
as_of. Returns the latest vintage known on or before a timestamp. Revisions are retained, never overwritten, so you can replay history.1. The described period
The period is the real-world interval a value measures. It does not move when the value is revised.periodis a convenience filter and acceptsYYYY,YYYY-MM, orYYYY-Qn.period_startandperiod_endare the explicit bounds on the response object.
period=2026-Q1 selects observations whose described period falls in the first quarter. Use it for quarterly series such as GDP; use period=2026-05 for monthly series such as CPI.2. Knowledge time (the no-lookahead axis)
observed_at is the moment a value became known to Conduit. You bound it with start_date and end_date. This is the axis you filter on when you care about what was knowable, not what period it covers.
period = 2026-05 but observed_at in June. Filtering on period and filtering on knowledge time answer different questions. Pick the one that matches your intent.
3. Vintage cutoff with as_of
as_of asks: “give me the data as it stood at this moment.” It returns, for each matching series, the latest vintage known on or before the supplied timestamp. Because Conduit retains revisions instead of overwriting them, two as_of queries with different cutoffs can return different values for the same period.
as_of=2026-07-01T00:00:00Z may return a different number for the same described period, because a revision became known in between. Both answers are correct, each for its own cutoff.
Why this matters for backtests
Lookahead bias is the silent killer of historical research. If your backtest on 2026-03-15 quietly uses a CPI value that was only revised into existence in July, your results are fiction. Conduit removes that risk in two ways:Pin the cutoff
Run each historical query with
as_of set to the simulated decision time. You receive only the vintage that was known on or before that moment.Quick reference
| Axis | Parameters | Answers | Use when |
|---|---|---|---|
| Described period | period, period_start, period_end | Which real-world interval the value is about | You want a specific month, quarter, or year |
| Knowledge time | start_date, end_date | When the value became known | You need a clean as-of-then view or a release window |
| Vintage cutoff | as_of | The latest vintage known on or before a timestamp | You are reconstructing a point-in-time snapshot for a backtest |
All three axes compose. You can request a specific
period while pinning as_of to see how that exact reading looked at an earlier moment. Unknown query parameters fail closed with bad_request, so a typo in a time parameter is rejected rather than silently ignored.Related
Provenance
Trace any observation back to its named source and ingestion run.
Freshness and liveness
Understand the freshness label and how silently-frozen feeds are detected.