Market Data

13F Data Backtesting: Point-in-Time Discipline for Quants

Backtesting on 13F data fails quietly when holdings are joined to quarter-end dates instead of filing dates. The point-in-time rules that keep the research honest.

Updated July 2, 20269 min read
13F Data Backtesting: Point-in-Time Discipline for Quants

The short version

Backtesting on 13F data fails in quiet, flattering ways unless you enforce three disciplines. Timestamp every position by its filing date, not the quarter it describes. Treat the 45-day disclosure lag as part of the signal, not an inconvenience to assume away. And handle amendments as point-in-time revisions instead of silent overwrites, with a fund universe that keeps dead and lapsed filers in history. Skip any one of these and your backtest is quietly reading the future.

Why quants keep coming back to 13F data

Every institutional manager running $100 million or more in covered US equities must disclose its long positions each quarter on Form 13F. The result is one of the few broad, free, legally mandated windows into professional positioning. Arkolith's Q1 2026 snapshot covers 1,824 institutional filers, 1.87 million long positions, and $53.7 trillion in reported value, which is enough cross-section to ask serious questions: do concentrated high-conviction managers outperform, does crowding into a name like Nvidia predict fragility, does cloning disclosed portfolios retain anything after the lag?

Academic work has generally found that some of these effects exist but are fragile. They survive or die on implementation details, and almost all of those details are data-handling details. A 13F is a regulatory document, not a research table. (For the anatomy of the filing itself, start with how to read a 13F filing; for the ways raw filings mislead, see how accurate is 13F data.)

Three structural traps account for most of the damage. Lookahead: using information before the market could have seen it. Survivorship: building the fund universe from managers that still exist today. Revision: letting amended filings rewrite the past in place. All three bias results upward, which is why naive 13F backtests so often look brilliant in research and ordinary in production.

Restrained editorial illustration of an analyst workstation with unreadable chart shapes: image for

Point-in-time discipline: the filing date is the date

A 13F describes holdings as of the last day of a quarter, but it becomes public up to 45 days later. The most common lookahead bug in 13F research is joining holdings to prices on the report date (March 31) when the filing only hit EDGAR on May 15. The simulated strategy is trading on information that did not exist yet.

The fix is bitemporal bookkeeping. Every record needs two timestamps: the as-of date (the period the data describes) and the knowledge date (the moment the filing was accepted on EDGAR and became public). A backtest may only condition on records whose knowledge date precedes the simulated decision time. This sounds obvious written down. It is violated constantly, usually because a holdings table carries only the quarter-end date and the knowledge date was discarded at ingest.

Two refinements matter once the basics are in place. First, do not snap every filing to the statutory deadline. Filers spread across the whole window: some file within days of quarter end, many cluster on the deadline, a few file late. Each filing's actual acceptance timestamp gives you an honest event stream. Second, preserve identifiers as filed. 13F positions are keyed by CUSIP, not ticker, and tickers drift across renames and corporate actions. Resolving CUSIPs to today's tickers without a point-in-time mapping quietly injects future knowledge of symbol changes into the past.

The 45-day lag is a feature of the dataset, not a bug

The deadline is 45 days after quarter end, pushed to the next business day when it lands on a weekend or holiday. For 2026:

Quarter end 13F deadline
Dec 31, 2025 Feb 17, 2026
Mar 31, 2026 May 15, 2026
Jun 30, 2026 Aug 14, 2026
Sep 30, 2026 Nov 16, 2026

Worst case, a position opened in the first week of a quarter is disclosed more than four months after the trade. A backtest that respects knowledge dates absorbs this automatically, but it changes what 13F data is good for. It is weak for fast signals and strong for slow ones: positioning regimes, crowding, multi-quarter accumulation, manager style drift. Work on disclosed-portfolio cloning has generally found that whatever value exists tends to survive the lag for low-turnover managers. If a manager holds for years, seeing the book 45 days late costs little.

The lag also defines how to mix filing types. Faster-clock disclosures exist for narrower events: Form 4 insider trades arrive within 2 business days, Schedule 13D activist stakes within 5 business days, Form 3 within 10 days of becoming an insider, and Form 5 within 45 days of fiscal year end. A common research pattern uses quarterly 13F levels as the slow state and the faster filings as updates between snapshots. The differences between these forms are covered in 13F vs 13D vs 13G vs Form 4, and the full calendar in 13F filing deadlines for 2026.

Survivorship bias: your universe is part of your backtest

The quietest source of inflated results is the fund list itself. If you assemble your manager universe from funds that file today, you have conditioned on survival. Funds that blew up, wound down, or fell below the $100 million threshold vanish from the sample, and they are disproportionately the ones whose disclosed bets went wrong. Following the visible winners of history is not a strategy anyone could have run live.

The discipline mirrors the timestamp rule: construct the universe point-in-time. At each simulated rebalance, the eligible set is every manager who had filed as of that knowledge date, including managers who later stopped filing. Dead funds stay in the history with their final filings intact. The same applies at the position level. An exit is information, so the data model must represent exits explicitly rather than letting positions silently disappear between quarters, and holdings in companies later delisted or acquired must keep their final rows.

There is a subtler variant worth flagging. Managers cross the reporting threshold in both directions, and a fund's first filing is not a buying spree; it is just the first visible book. Treating every position in a debut filing as a fresh buy overstates initiation activity for exactly the funds entering your sample. Symmetrically, a manager dropping below the threshold looks like a full liquidation if your pipeline does not distinguish "stopped filing" from "sold everything." Arkolith's investors directory carries the full filer set including lapsed filers, with first-tracked quarters flagged so debut books are not mistaken for trades.

Amendments: the past gets edited, your store should not be

13F amendments come in two declared flavors, and conflating them corrupts history in opposite ways. A restatement replaces the original filing in full. A new-holdings amendment adds positions to the original, most often because the SEC granted confidential treatment for a position at filing time and the holding is disclosed only later. Treat a new-holdings amendment as a restatement and you delete the rest of the book; treat a restatement as additive and you double-count the entire portfolio.

For backtesting there is a second-order rule on top: an amendment must never overwrite the original record in place. The original filing was what the market knew between the original date and the amendment date; the amendment is a new fact with its own knowledge date. A store that keeps only the latest version of each quarter shows your backtest the corrected book at the original date, which is lookahead in disguise. The well-known confidential-treatment pattern, where a large manager builds a stake that surfaces only in a later amendment, makes the point vividly: at the original deadline, the market genuinely did not know.

The robust shape is an append-only, bitemporal store. Every original and every amendment is kept as filed, with supersession resolved at query time by acceptance order. Ask "what is the best current view of Q1?" and you get amendments applied. Ask "what was known on May 20?" and you get exactly the filings accepted by then. This is the design Arkolith runs internally, and it is the difference between a holdings table and a research dataset. The official SEC 13F FAQ covers amendment types and confidential treatment in the regulator's own words.

A reproducible research loop over an API

Reproducibility is the last discipline. If your pipeline starts from hand-downloaded files, nobody can rerun the study. A versioned API makes the ingest step a script:

# Enumerate the filer universe
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://arkolith.com/api/v1/funds"
# Resolve a manager by name
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://arkolith.com/api/v1/search?q=berkshire"
# Pull holdings for a fund by CIK
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://arkolith.com/api/v1/funds/1067983/holdings"

Two properties matter more than convenience. First, provenance: every Arkolith datapoint resolves to the SEC EDGAR accession number of the filing it came from, so any row in a backtest can be audited against EDGAR itself. When a result looks too good, the first debugging move is tracing suspicious rows back to their filings, and that trace should be one lookup, not an afternoon. Second, the same surface is exposed over MCP, so an AI agent doing exploratory research works from filed records with citations instead of model memory. The dataset also carries 51,000+ Form 4 insider transactions for the fast-clock layer described above. Setup takes a few minutes via the quickstart.

Restrained editorial illustration of an analyst workstation with unreadable chart shapes, alternate view: image for

Frequently asked questions about 13F data backtesting

Can a backtest on 13F data be profitable despite the 45-day lag?

Academic work has generally found that disclosed-portfolio strategies retain some value for low-turnover managers, because a book that changes slowly is still informative 45 days later. The lag mostly kills fast signals. Either way, honest results require filing-date timestamps; quarter-end joins overstate everything.

What does point-in-time mean for 13F data?

Every record carries two dates: the as-of date (the quarter end it describes) and the knowledge date (the EDGAR acceptance timestamp). A point-in-time query for any historical day returns only filings accepted by that day, with amendments excluded until their own acceptance dates. This is the property that prevents lookahead bias.

How should 13F amendments be handled in a research dataset?

Keep them append-only. A restatement supersedes the original and a new-holdings amendment extends it, but both apply only from their own filing dates forward. Overwriting the original in place leaks corrected information into the period before the correction existed.

Where can I get survivorship-bias-free 13F data?

Source filings directly from SEC EDGAR, or use a provider that retains lapsed and defunct filers with their full history. The test is simple: query a manager known to have stopped filing and check that its history is still there, ending at the real final filing rather than silently extended or deleted.

This article explains public filings and data concepts. It is not investment advice.

#13F#backtesting#quant research#point-in-time data#survivorship bias#SEC EDGAR