Point-in-time fundamentals · SEC filing history

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.

313,137point-in-time rows
≤ 12 yrsof history
$10–50k/yrCompustat PIT · FactSet
query_asof.py — AAPL live
as of Feb 2021
Revenue$274.5B
Net income$57.4B
Diluted EPS$3.28
fiscal yearFY2020
↳ became public 2020-10-30
AAPLFY25 revenue$416.2BAAPLFY25 net income$112.0BAAPLFY25 EPS$7.46NVDAFY26 revenue$215.9BNVDAFY26 net income$120.1BNVDAFY26 EPS$4.90MSFTFY25 revenue$281.7BMSFTFY25 net income$101.8BMSFTFY25 EPS$13.64AMZNFY25 revenue$716.9BAMZNFY25 net income$77.7BAMZNFY25 EPS$7.17GOOGLFY25 revenue$402.8BGOOGLFY25 net income$132.2BGOOGLFY25 EPS$10.81AAPLFY25 revenue$416.2BAAPLFY25 net income$112.0BAAPLFY25 EPS$7.46NVDAFY26 revenue$215.9BNVDAFY26 net income$120.1BNVDAFY26 EPS$4.90MSFTFY25 revenue$281.7BMSFTFY25 net income$101.8BMSFTFY25 EPS$13.64AMZNFY25 revenue$716.9BAMZNFY25 net income$77.7BAMZNFY25 EPS$7.17GOOGLFY25 revenue$402.8BGOOGLFY25 net income$132.2BGOOGLFY25 EPS$10.81
▸ the problem

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.

Apple · FY2024
fiscal year ended2024-09-28
naive backtest cheats here — 34 days early for Apple (43-day large-cap sample average)
10-K actually filed2024-11-01
Tradevo Data stamps every value with the filed date — your backtest only ever sees what was real.
▸ scroll through time

The data appears exactly when it was filed.

Apple · as of
Jun 2020
Revenue
Net income
Diluted EPS
no 10-K filed yet
FY2020
FY2021
FY2022
FY2023
FY2024
FY2025
scroll ↓ to move through time
0
US companies
0
point-in-time rows
0
restatements caught
7 × 12
fundamentals × years
▸ what you get

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 34d

Restatement 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.

▸ methodology

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
We even publish what we don't know — the oldest-year filing dates we flag rather than fake. A clean dataset tells you its own limits.
  1. 01

    Straight from SEC EDGAR

    Public-domain 10-K filings — free, redistributable, the source of truth.

  2. 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.

  3. 03

    Point-in-time stamping

    Every value carries the earliest filing it appeared in — the first date it was actually knowable.

  4. 04

    Restatement detection

    When a later filing revised a number, we keep both the original and the revision, and flag it.

  5. 05

    QA + reliability

    Every row is range-, magnitude-, and date-checked. The few we can't fully trust are flagged — never hidden.

▸ pricing

Start free. Scale when you're ready.

Inspect the data, run it against your own backtests, then plug in the full market.

Free sample

$0

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
Get the sample

Not ready for the API? Get the free sample + be first to know when quarterly (10-Q) ships.

full market

Full universe

$49/mo

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.