Skip to content
Quant500 - Quantitative Analysis
Search ticker or company...
ES | EN

Company Profile

S&P 500 open data

5 CSV files you can download with no account, no paywall and no trimming, built from the same data this site paints. Anything derived from SEC filings is public domain and free to reuse; each file states its licence, its coverage, its field dictionary and what it cannot be used to claim.

Every file is served as Content-Type: text/csv and can be fetched from a script. The downloads come from the SAME file that paints the screen: the table and the CSV cannot disagree.

A CSV is the whole picture. If what you want is to find out what is coming in — the day's insider trades, who reports tomorrow, the reports — that goes through the feeds, in RSS and JSON Feed, also with no account.

Do not want the whole file, just one figure inside your own page? There are embeddable widgets: a company's earnings date or its insider buying, in an <iframe> with no JavaScript and no cookies.

S&P 500 earnings announcements, with their time of day

One row per 8-K filing carrying item 2.02: the announcement date, the New York time it reached EDGAR, which session that falls in, the accession number and a link to the original filing. 65,097 announcements from 808 companies, 42,537 of them already paired with their 10-Q or 10-K.

  • Format: CSV (UTF-8) · sp500_earnings_announcements.csv · 16.1 MB
  • Rows: 65,097
  • Coverage: →
  • Licence: CC0 1.0 (public domain)
  • Rendered on: /earnings-date
Download the CSV

The DATE and the link are firm. The time and the session are PROVISIONAL: the EDGAR stamp is when the SEC finished processing the submission, and the press release is usually already on the company site. The file itself counts, in its comment lines, how many rows are exposed to that latency.

Field dictionary (16)
ColumnWhat it is
cikSEC Central Index Key. The stable identity: tickers get recycled, CIKs do not.
tickerTrading symbol at download time. A free-text field, not an identity.
companyCompany name as it appears on the filing.
announcement_dateDate of the earnings announcement (YYYY-MM-DD).
sessionSession the filing arrived in: before_open, during_session, after_close or unknown. PROVISIONAL, see the limits.
time_etNew York time the filing reached EDGAR (HH:MM). An UPPER BOUND on when the information existed.
filing_dateDay the filing reached EDGAR. Not always announcement_date: when they differ, session and time_et describe filing_date.
accepted_rawThe EDGAR acceptance stamp as given, unconverted, so anyone can redo the conversion.
time_conventionWhich clock that company's stamps came in: utc, ny or inconsistent. inconsistent means the two clues disagreed and no time is published.
date_sourceWhere announcement_date comes from: reportDate (the 8-K cover box) or edgarEntry (the day it arrived).
date_uncertainyes when the 8-K cover box was more than three days from the actual filing and the date was taken from the filing.
formFiling type: 8-K, 8-K/A…
itemsEvery item declared on that 8-K, comma separated.
ruleThe item that makes this filing an earnings release: 2.02, or 12 under the numbering used before 2004-08-23.
accessionEDGAR accession number.
sec_urlLink to the original filing at sec.gov.

When each company reports: one row per company

The summary of the file above: for each of the 509 companies with a page here, its usual session, its median time, its most frequent weekday and how many sessions it typically takes to file the 10-Q or 10-K after the announcement. This is the one you read at a glance; the dataset proper is the one above.

  • Format: CSV (UTF-8) · quant500_resultados_sp500_2026-09-24.csv
  • Rows: 509
  • Coverage: →
  • Licence: CC0 1.0 (public domain)
  • Rendered on: /earnings-date
Download the CSV
Field dictionary (20)
ColumnWhat it is
tickerTrading symbol at download time. A free-text field, not an identity.
cikSEC Central Index Key. The stable identity: tickers get recycled, CIKs do not.
company_sec_nameCompany name according to the SEC.
quarters_on_fileQuarters on file for that company.
first_announcementIts earliest announcement.
last_announcementIts most recent announcement.
last_paired_quarterThe last quarter already paired with its 10-Q or 10-K.
window_quartersRecent quarters the medians are computed over.
usual_sessionIts dominant session over that window.
usual_session_countHow many of those quarters fall in the dominant session.
window_with_timeHow many of those quarters carry a publishable time.
before_openQuarters announced before 09:30 New York.
during_sessionQuarters announced while the market was open.
after_closeQuarters announced at 16:00 or later.
no_timeQuarters with no publishable time.
median_time_nyMedian announcement time, New York time.
most_frequent_weekdayMost frequent weekday.
median_days_after_quarter_endMedian calendar days from quarter end to announcement.
median_lead_calendar_daysMedian calendar days from announcement to the 10-Q or 10-K.
median_lead_sessionsMedian trading sessions from announcement to the 10-Q or 10-K.

What insiders buy and sell (Form 4, Table I)

42,735 non-derivative transactions filed by officers and directors of S&P 500 companies, each with its official code, its amount, whether it ran under a 10b5-1 plan and a link to the original Form 4. Filterable by company, type and dates through URL parameters.

  • Format: CSV (UTF-8) · quant500_insiders_2026-09-24.csv
  • Rows: 42,735
  • Coverage: →
  • Licence: CC0 1.0 (public domain)
  • Rendered on: /insider-buying
Download the CSV

Coverage runs on the FILING date, not the trade date. Form 4 allows late reporting, so some rows carry a trade_date years earlier, and a few carry an impossible date typed by the filer: they are published as filed, uncorrected. An unfiltered download returns at most 50,000 rows, and the file says so in its header when it trims.

Field dictionary (24)
ColumnWhat it is
trade_dateDate of the reported transaction.
filed_dateDate the Form 4 was filed. The file's coverage window runs on this date.
tickerTrading symbol at download time. A free-text field, not an identity.
companyCompany name as it appears on the filing.
insiderFiler name as typed on the form. Free text: the same person shows up spelled several ways.
roleTheir role according to the form.
codeOfficial transaction code (P open-market buy, S sale, A grant, M exercise…).
typeHow Quant500 classifies the row: buy, sell or other.
sharesShares in the transaction.
price_usdPrice per share in dollars, if the form carries one.
amount_usdAmount in dollars.
pct_of_stakeWhat share of their holding the transaction represents.
shares_afterShares held after, according to the form.
scheduled_10b5_1yes when the form ticks the 10b5-1 box (a sale scheduled in advance).
exercise_and_sellyes when the sale sits next to an option exercise on the same form.
securityWhich security was traded.
sec_filing_urlLink to the original Form 4 at sec.gov.
filer_cikThe filer's CIK. This is what lets you group by PERSON, since the name is free text.
relationshipTheir relationship to the company, from the form's check boxes.
ownership_natureDirect or indirect ownership.
report_periodPeriod the form refers to.
remarksThe filer's remarks.
footnotesThe form's footnotes, together in one cell with their numbers. Without them a code J row means nothing.
internal_transferyes when the row is one leg of a transfer between accounts. That is why its type is other even when the code is P or S.

The multi-factor ranking for the latest session

The 466 companies in the 2026-09-24 session universe, ordered by the multi-factor score, with their four Z-Scores (momentum, value, quality and growth) and the closing price. Switch the factor parameter to momentum, value, quality or growth for each list on its own.

Download the CSV

A list ordered by a public number does not say anything is a better investment than anything else. Not advice, and not a personal recommendation.

Field dictionary (9)
ColumnWhat it is
rankRank in that session's list.
tickerTrading symbol at download time. A free-text field, not an identity.
sectorSector as given by the market-data provider. Similar to GICS, but not GICS.
z_multifactorThe factor score, in Z-Scores against that day's universe. Higher means the factor ranks that company better.
momentum_zMomentum Z-Score against that day's universe.
value_zValue Z-Score against that day's universe.
quality_zQuality Z-Score against that day's universe.
growth_zGrowth Z-Score against that day's universe.
price_usdPrice per share in dollars, if the form carries one.

The walk-forward curve of a simulated portfolio

332 monthly rebalances of the simulated "S&P 500 Multifactorial (Top 20)" portfolio since 1998-12-31: at each date, the portfolio and benchmark levels rebased to 100 and that month's return. Switch the id parameter for any of the other model portfolios.

Download the CSV

This curve is a SIMULATION over historical data, not a live track record: no fees, no taxes, and past performance does not guarantee future returns. At each date the portfolio is picked using only data prior to that date (walk-forward).

Field dictionary (5)
ColumnWhat it is
dateRebalance date.
portfolio_base100Simulated portfolio level, base 100.
benchmark_base100Benchmark level, base 100: the equal-weight S&P 500 the engine computes from each date's index members, not the RSP ETF.
month_return_portfolio_pctThe simulated portfolio's return for the month, per cent.
month_return_benchmark_pctThe benchmark's return for the month, per cent.

Licence

Anything derived from SEC filings — the earnings announcements and the insider trades — is CC0 1.0: the underlying filings are US government records. You may copy, redistribute and use them commercially without asking. Citation is not required; it is appreciated, and mostly it helps the next reader know where the number came from.

The multi-factor ranking and the model-portfolio curves are our own computation and are published under the Quant500 terms.

How to cite

There is no DOI yet. We are not inventing one: each dataset's stable identifier is the canonical URL of its page, which is what the identifier field of its JSON-LD declares. Suggested format:

Gràcia Serrahima, P. (2026). S&P 500 earnings announcements, with their time of day [data set]. Quant500. https://quant500.com/api/descarga/anuncios.csv (data through 2026-09-24; accessed 2026-09-25).

In BibTeX:

@misc{quant500_anuncios_2026, author = {Gr\`{a}cia Serrahima, Pol}, title = {{S&P 500 earnings announcements, with their time of day}}, year = {2026}, howpublished = {\url{https://quant500.com/api/descarga/anuncios.csv}}, note = {Quant500; data through 2026-09-24; accessed 2026-09-25} }

When you quote a figure, copy the date of the data with it: most of them change every trading day, and a figure without its date stops being true the next morning.

What we do not publish, and why

  • Historical price and fundamentals series from a commercial provider. Their licence allows publishing derived results and forbids redistributing the data. That is why the long-history simulator publishes curves and never the grid behind them.
  • Prices and market cap as a historical series. They come from a market-data provider and are not redistributed. The closing price in the ranking is there as context for the row, not as a series.
  • Nothing about users. No download on this page contains data about anyone registered here.

When a value is missing the file says so: an empty cell means the filing did not carry it, never that nobody looked, and it is never filled in with an estimate. The quality flags travel inside the CSV (date_uncertain, time_convention, internal_transfer) instead of being quietly cleaned away.

How each number is computed, with its formulas and its limits: Methodology. The concepts, explained with examples: guides. Model results are SIMULATED over historical data: they are not a live track record, past performance does not guarantee future returns, and none of this is financial advice or a personal recommendation.

The model portfolio, weekly in your inbox

Every Saturday, its week in one minute: how it went, the best and the worst, and which insiders bought with their own money. Plus, the day the model is rebuilt, which stocks come in and which go out. A simulation, not advice. At most one email a week, no ads, no account; one-click unsubscribe. Made by one person: Pol Gracia.

A model portfolio with simulated results, not a personalized recommendation. Your email is used for this only: privacy.

S&P 500 market gravity