Your fundamentals backtest may be seeing the future.
Tradevo Data preserves when each value became public—and the historical versions that existed before restatements—so Python backtests can query only what investors knew at the time.
47 of 413 ticker-months (11%) used a value that was not public yet under a naive period-end join.
Your backtest gets a 66-day head start it never earned.
A company's fiscal year endson one date, but the numbers don't go publicuntil the 10-K is filed weeks later. Join your data on the period-end date and you're trading on information that didn't exist yet. It quietly inflates every fundamental backtest — right up until you trade it live and the edge evaporates.
We measured the gap on the 283,075 rows with a verifiable filing date: fundamentals went public an average of 66 days after the period closed — median 60, 90th percentile 90. Even the fastest-filing large caps average 43. That gap is the lie. We remove it.
The data appears exactly when it was filed.
Honest data — and it shows its work.
Every value carries its full history: when it became public, whether it was ever revised, and exactly where it came from.
Point-in-time stamping
Every number is dated to the moment it was actually filed — your backtest only ever sees what was public then. No lookahead, ever.
filed 2024-11-01 · lag 34dRestatement flags
Know the original value and whether it was later revised — 18,712 restatements caught and labeled.
QA-validated
Per-row quality status. We flag the rows we can't fully trust — never fake them.
Full provenance
The exact SEC XBRL tag behind every single value. Show your work.
Honestly priced
Research-grade point-in-time data without the research-grade contract — Compustat PIT and FactSet run $10–50k/yr and mostly will not sell to individuals.
Your format
Point-in-time JSON API, full-dataset CSV download, and a whole-universe snapshot — all included. Parquet format on the roadmap.
We show our work.
With data, transparency isthe product. If you can't see how it's built and validated, you can't trust it — so here's exactly how, start to finish.
Read the full methodology- 01
Straight from SEC EDGAR
Public-domain 10-K filings — free, redistributable, the source of truth.
- 02
Tag resolution
Each concept maps to a ranked list of XBRL elements, and the filer's own consolidated total wins over a component of it. Contested picks are flagged, not silently chosen.
- 03
Point-in-time stamping
Every value carries the earliest filing it appeared in — the first date it was actually knowable.
- 04
Restatement detection
When a later filing revised a number, we keep both the original and the revision, and flag it.
- 05
QA + reliability
Every row is range-, magnitude-, and date-checked. The few we can't fully trust are flagged — never hidden.
Start free. Scale when you're ready.
Inspect the data, run it against your own backtests, then plug in the full market.
Free sample
Everything you need to sanity-check the data.
- 40 large-cap companies · 7 concepts · up to 12 years
- 3,280 point-in-time rows (CSV)
- Full methodology + per-row QA
- Query helper to test it against any date
Not ready for the API? Get the free sample + be first to know when quarterly (10-Q) ships.
Full universe
The whole US market, point-in-time.
- 5,195 companies · 313,137+ rows
- Point-in-time query API — live now
- 5,000 API calls/day · full restatement history
- Bulk download + universe snapshot — included
- Annual coverage today: 10-K + 10-K/A
- Quarterly (10-Q) + Parquet format — on the roadmap
What this does not do: active US filers only — no delisted companies, so a universe built from this alone carries survivorship bias. We fix lookahead bias; that is a different problem. Annual only, 7 concepts, up to 12 fiscal years. If you need quarterly or delisted coverage today, Sharadar is genuinely good and you should buy that instead.
Cancel anytime from your account — the key works until the period ends. Verify everything on the free sample first; it needs no card.
