{"slug":"agent-native-quant-database-h5i-db","qid":"filing_lag","label":"How long 13F holdings filings take to reach the public","post_title":"h5i-db: Point-in-Time Data for Backtests","post_url":"/blog/agent-native-quant-database-h5i-db#q-filing_lag","columns":["period_end_date","filings_count","avg_days_to_public"],"rows":[{"period_end_date":"2022-09-30","filings_count":177,"avg_days_to_public":216.2},{"period_end_date":"2022-12-31","filings_count":9130,"avg_days_to_public":42.8},{"period_end_date":"2023-03-31","filings_count":8918,"avg_days_to_public":41.3},{"period_end_date":"2023-06-30","filings_count":8956,"avg_days_to_public":40.9},{"period_end_date":"2023-09-30","filings_count":8971,"avg_days_to_public":41.5},{"period_end_date":"2023-12-31","filings_count":9502,"avg_days_to_public":43.2},{"period_end_date":"2024-03-31","filings_count":9384,"avg_days_to_public":41.9},{"period_end_date":"2024-06-30","filings_count":9436,"avg_days_to_public":41},{"period_end_date":"2024-09-30","filings_count":9425,"avg_days_to_public":39.3},{"period_end_date":"2024-12-31","filings_count":10296,"avg_days_to_public":41.4},{"period_end_date":"2025-03-31","filings_count":10282,"avg_days_to_public":40.4},{"period_end_date":"2025-06-30","filings_count":10328,"avg_days_to_public":39.4},{"period_end_date":"2025-09-30","filings_count":10278,"avg_days_to_public":39.2},{"period_end_date":"2025-12-31","filings_count":11123,"avg_days_to_public":40},{"period_end_date":"2026-03-31","filings_count":10974,"avg_days_to_public":36},{"period_end_date":"2026-06-30","filings_count":10884,"avg_days_to_public":34.3}],"shape":"series","sql":"WITH per_filing AS\n(\n    SELECT\n        accession_number,\n        any(toDate(parseDateTimeBestEffortOrNull(toString(period)))) AS period_end,\n        any(toDate(filing_date))                                     AS filed_on\n    FROM global_markets.stocks_13f_filings\n    WHERE filing_date >= '2023-01-01'\n    GROUP BY accession_number\n)\nSELECT\n    toString(period_end)                                 AS period_end_date,\n    countDistinct(accession_number)                      AS filings_count,\n    round(avg(dateDiff('day', period_end, filed_on)), 1) AS avg_days_to_public\nFROM per_filing\nWHERE period_end IS NOT NULL\n  AND filed_on >= period_end\n  AND filed_on <= period_end + 400\nGROUP BY period_end\nHAVING filings_count >= 100\nORDER BY period_end","computed_at":"2026-08-22T04:01:18.530228+00:00","elapsed":17.312015934}