SEC's bulk filing history has timestamps off by four to five hours for a third of companies
EDGAR records the second each filing is accepted, and for earnings releases that second decides whether the news hit before the open, during the session or after the close. SEC's bulk history file gets it wrong for about a third of companies: every timestamp in their file is shifted by the US Eastern offset from UTC, four hours in summer and five in winter.
How we found it
We were checking earnings release times against EDGAR's filing index pages, which show the acceptance time in Eastern time. Apple's July 2026 earnings 8-K is a clean example:
Apple's July 2026 earnings 8-K: one filing, three timestamps
EDGAR's index page and the live submissions API agree. The bulk file does not.
| Source | Says | In Eastern time |
|---|---|---|
| EDGAR filing index page | 16:30:28 ET | 16:30, after the close |
| Live submissions API (data.sec.gov) | 20:30:28Z | 16:30, after the close |
| Bulk submissions.zip | 00:30:28Z, next day | 20:30, four hours late |
Across 17 filings where the bulk file and the live API disagreed, the API matched EDGAR's own index page every time. The error is consistent within each company's file, and its direction varies: some files are four or five hours late, others four or five hours early. An early shift is the dangerous one. It moves a 16:30 release to 12:30, in the middle of the trading day, and an event study then measures the reaction on the wrong day.
What a 4–5 hour shift does to earnings timing
Share of earnings releases that move to a different session when shifted
Verified earnings releases since 2004; sessions are pre-market (before 09:30 ET), market hours, after close (16:00 on).
Most companies release earnings just before the open or just after the close, which is exactly where a few hours' error does the most damage.
The fix, and what we refuse to do
The live API is correct, but it means hundreds of thousands of requests at SEC's rate limit. So we also use a second independent source: SEC's XBRL financial-statement data sets record an acceptance time, correct to the minute, for every 10-K and 10-Q. Where a company's bulk-file times overlap with those, the offset and its sign can be measured for that company and the whole file corrected. On a held-out set checked against the live API, the corrected times are exact in 99.998% of cases.
Where neither the API nor an overlap can confirm the time, we don't guess. The row keeps its date, the time is left empty, and accepted_verified is false. Today that leaves 77% of earnings releases since 2015 with a verified time to the second (and 54% since 2004, when far fewer companies filed XBRL). New filings, read from EDGAR every night, are exact.
Earnings release times you can trust to the second
Varve Events records every EDGAR event with its verified acceptance time and market session.