Disclosure: I built this and it is hosted on my own site, quant500.com. It is free, CC0, no account and no API key. I am posting it because the time-of-day column does not seem to exist anywhere else for free, and because the defects in it are worth more discussion than the coverage.
What it is. Every Form 8-K carrying item 2.02 filed by an S&P 500 company: 64,938 rows, one per filing, covering 63,969 distinct announcements (group by cik + announcement_date) from 808 companies, 2003-04-25 to 2026-09-01. Sixteen columns. Every row carries the accession number and a direct link to the filing on sec.gov, so any line can be checked at source.
Original source is SEC EDGAR (data.sec.gov/submissions). This is a derived file, rebuilt daily.
The column that seems to be missing elsewhere is the clock time, and with it the session the news could first be traded in: 46.4% before the open, 41.8% after the close, 11.7% during the session. 99.8% resolve to a New York time.
Four defects, because you would find them anyway:
The 8-K cover-page date is typed by the filer and is often wrong. Micron enters the fiscal quarter end there in 14 of its 94 announcements; a 2004 Walmart filing declares the event as happening in 2001. Where the cover date sits more than three days from the EDGAR entry, the EDGAR date is used and the row carries date_uncertain = yes. That is 3,569 rows.
EDGAR's acceptance timestamp ends in "Z" but is not always UTC. Measured on this file: 924 rows carry a raw hour between 00:00 and 05:59, impossible if the stamp were already Eastern because EDGAR is closed then, and 4,835 carry one between 06:00 and 09:59, impossible if it were UTC. Both conventions are genuinely present.
And the one I cannot fix. I resolve that convention per company, which is probably the wrong unit: the share of announcements from companies classified as "already New York" falls steadily from 24.1% in 2003 to 1.0% in 2026. A fixed company attribute should not drift like that, so the convention likely belongs to the filing agent or to the era. It is declared in the file header and unresolved. If anyone here has parsed EDGAR at scale and has seen this, I would like to know.
The filing does not always arrive on the day of the announcement. In 7,695 rows (11.8%) filing_date is later than announcement_date, by a single day in 6,265 of them. For those rows the session and the clock time describe the day the filing arrived, not the day the news broke. So if you group by announcement_date and read the session column without also reading filing_date, you place 11.8% of the sample in the wrong trading session. Use filing_date to know which day the session refers to.
Limits: nothing before 2003-03-28, when the 8-K had no dedicated earnings item; item 2.02 only exists from 2004-08-23, and earlier filings come in under the old item 12 and are marked rule = 12; and the session recorded is the one in which the 8-K reached EDGAR, not the one in which the press release went out, which is earlier.
CSV: https://quant500.com/api/descarga/anuncios.csv
Method and caveats: https://quant500.com/blog/2026-09-04-conjunto-de-datos-resultados
Browsable: https://quant500.com/earnings-date
CORRECTION, 2026-09-06. Two things in the text above are superseded. I am appending rather than rewriting, so anyone who read the original can see what changed.
Defect 3 was wrong about the unit, and it is now solved. I said the convention was assigned per company and that this was probably the wrong unit. It is not per company, and it is not the era either. u/TilmanAmbach compared six filings between the raw SGML header of the full submission and the submissions JSON: the raw ACCEPTANCE-DATETIME is always US/Eastern, and it is the JSON that applies two different treatments to it, converting some records to UTC (+4 summer, +5 winter) and appending a "Z" to others while leaving the Eastern clock untouched. His AA / ACT pair settles it: same year, same filer-agent prefix, opposite treatments. So it is per record, and decidable rather than inferable - the truth is readable in the SGML header. My file still takes its times from the JSON, so time_et and session are provisional until I re-ingest. That re-ingest is running now.
The 924 figure used the wrong window. u/Ian_Gow pointed out that EDGAR only accepts filings 06:00-22:00 ET (sec.gov/submit-filings), which decides which raw hours carry a signature at all. Redone properly on the 64,938 rows: 4,835 (7.4%) must be Eastern; 1,504 (2.3%), not 924, must be UTC over 23:00-03:59; 2 rows are impossible under either reading; and 58,597 (90.2%) carry no signature at all. That last number is the real headline and it is not a flattering one: nine rows in ten hold no evidence about their own convention.
I have since sampled 70 of the rows I label as already-Eastern against their raw SGML headers: 69 were right and 1 was wrong, and the wrong one had been published as 10:47 during-session when the filing was actually accepted at 06:47, before the open. Small rate, worst possible kind of error.
Both corrections are in the CSV header too, dated, with the old figures left standing and marked superseded.