Backtest hazard report (preview)

We take a list of tickers and a backtest start date and report how much that list would mislead a backtest: six data hazards, each with a severity, the tickers affected, why it distorts a backtest and what to do about it.

This page shows three reports we ran in advance. It's a preview: the interactive version isn't available.

Facts shown are public events, each linked to its source. The counts and severity levels are our own analysis of public events. The full tool uses licensed market data and isn't available.

The overall level is the most severe hazard that counts toward it: Low, Moderate or High. There's no "none" level, because these checks can't show that a list is free of hazards.

Would you use this on your own list? Tell us at hello@nothingbutalpha.app. We're gauging interest and can't run lists yet.

Example 1: Today's 50 largest S&P 500 stocks, backtested from 2010

The 50 largest S&P 500 members by market value today (October 2026), with a backtest starting on January 4, 2010, checked against S&P 500 membership.

Tickers
NVDA AAPL GOOGL GOOG MSFT AMZN META AVGO TSLA LLY BRK-B MU WMT AMD JPM V XOM JNJ MA INTC ABBV PLTR CVX COST CSCO ORCL KO UNH PG BAC MRK LRCX AMAT CAT GE PM HD PANW NFLX DELL MS GS TMO TXN RTX CRWD WFC GEV AMGN ANET
Backtest start
Checked through
S&P 500 context
S&P 500

Backtest hazard: High

Overall level shown excludes data gaps.

This report describes data hazards for backtesting the listed tickers. It says nothing about the merit of any security, list or strategy, it is not a rating, and it is not investment advice. A low hazard level doesn't mean a backtest is correct; it means these checks found fewer of the common data traps.

The six hazards
HazardSeverityFound
H1 Survivorship and universe selectionhigh14 of 50 tickers (28%) listed after the start or not S&P 500 members then; none of them stops trading in the window, so the list holds only survivors
H2 Ticker reuse and symbol changesmoderate2 tickers meant a different company inside the window; 1 changed symbol
H3 Delistings, mergers and identity changeslow2 of 50 tickers (4%) stop trading, change company or leave their exchange inside the window
H4 Corporate actions that break naive price serieshigh22 of 50 tickers (44%) have splits, spin-offs or large distributions inside the window
H5 Restated fundamentals (SEC filers)moderate753 of 14245 reported periods (5.3%) were later restated or recast, across 50 of 50 stocks covered by SEC filings
H6 Data gapsnot shown in this preview (this check uses licensed price data)

S&P 500 context

  • The list holds 36 of the 500 S&P 500 members on 2010-01-04; 14 of its 50 names weren't members then.
  • 220 of those 500 members left the index by 2026-10-15, and none of them is in the list.

Source: S&P 500 changes are announced in S&P Dow Jones Indices press releases (S&P Global news release archive); the counts are ours, from the index's membership history.

The six hazards

H1 Survivorship and universe selection: high

Found: 14 of 50 tickers (28%) listed after the start or not S&P 500 members then; none of them stops trading in the window, so the list holds only survivors.

Why it distorts a backtest: A universe picked with today's knowledge contains companies a trader at the start couldn't have chosen (not yet listed, not yet in the index) and leaves out the ones that later failed, which inflates backtest returns.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H2 Ticker reuse and symbol changes: moderate

Found: 2 tickers meant a different company inside the window; 1 changed symbol.

Why it distorts a backtest: Price and fundamentals sources keyed by symbol map it to whoever holds it today, so a backtest can splice two companies into one series or attach one company's history to another.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H3 Delistings, mergers and identity changes: low

Found: 2 of 50 tickers (4%) stop trading, change company or leave their exchange inside the window.

Why it distorts a backtest: When a price series ends or changes identity, naive code forward-fills the last price, drops the name from the history, or keeps trading a different company under the old symbol. Each one changes the result.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H4 Corporate actions that break naive price series: high

Found: 22 of 50 tickers (44%) have splits, spin-offs or large distributions inside the window.

Why it distorts a backtest: Raw prices drop mechanically on a split, spin-off or special dividend. A backtest on unadjusted prices reads those drops as losses (or a reverse split as a gain), and price levels taken from back-adjusted series depend on events that hadn't happened yet.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H5 Restated fundamentals (SEC filers): moderate

Found: 753 of 14245 reported periods (5.3%) were later restated or recast, across 50 of 50 stocks covered by SEC filings.

Why it distorts a backtest: A fundamentals dataset that keeps only the latest (restated) numbers, or keys them by fiscal period end, shows values the market didn't have yet, which makes fundamental signals look better than they could have been.

Days from period end to the first public filing: quarterly reports median 31 (90th percentile 38), annual reports median 47 (90th percentile 58). Joining fundamentals on period end uses each value this much too early. Source: SEC EDGAR XBRL data (companyfacts and submissions).

What to do

H6 Data gaps: not shown in this preview (this check uses licensed price data)

What this report misses

Known gaps, from our own validation. The tool doesn't flag these, so a clean line in the report isn't proof.

  • GOOG Until April 3, 2014, GOOG was the symbol of Google's Class A shares, which now trade as GOOGL. The report doesn't flag this, so a series keyed by GOOG can join two share classes. Source: Alphabet, Annual report for 2016 (Form 10-K) ()

Example 2: Companies that later collapsed or were acquired, from 2015

Twelve companies that later failed, went through bankruptcy or were taken over, plus Apple and Microsoft, with a backtest starting on January 2, 2015, checked against S&P 500 membership.

Tickers
FRC SIVB BBBY SBNY SHLD JCP HTZ CHK TWTR CELG ATVI XLNX AAPL MSFT
Backtest start
Checked through
S&P 500 context
S&P 500

Backtest hazard: High

Overall level shown excludes data gaps.

This report describes data hazards for backtesting the listed tickers. It says nothing about the merit of any security, list or strategy, it is not a rating, and it is not investment advice. A low hazard level doesn't mean a backtest is correct; it means these checks found fewer of the common data traps.

The six hazards
HazardSeverityFound
H1 Survivorship and universe selectionhigh9 of 14 tickers (64%) listed after the start or not S&P 500 members then
H2 Ticker reuse and symbol changeshigh4 tickers meant a different company inside the window; 1 changed symbol
H3 Delistings, mergers and identity changeshigh11 of 14 tickers (79%) stop trading, change company or leave their exchange inside the window
H4 Corporate actions that break naive price serieslow1 of 14 tickers (7%) have splits, spin-offs or large distributions inside the window
H5 Restated fundamentals (SEC filers)moderate35 of 685 reported periods (5.1%) were later restated or recast, across 3 of 13 stocks covered by SEC filings
H6 Data gapsnot shown in this preview (this check uses licensed price data)

S&P 500 context

  • The list holds 5 of the 500 S&P 500 members on 2015-01-02; 9 of its 14 names weren't members then.
  • 180 of those 500 members left the index by 2026-10-15, and 3 of them are in the list.

Source: S&P 500 changes are announced in S&P Dow Jones Indices press releases (S&P Global news release archive); the counts are ours, from the index's membership history.

The six hazards

H1 Survivorship and universe selection: high

Found: 9 of 14 tickers (64%) listed after the start or not S&P 500 members then.

Why it distorts a backtest: A universe picked with today's knowledge contains companies a trader at the start couldn't have chosen (not yet listed, not yet in the index) and leaves out the ones that later failed, which inflates backtest returns.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H2 Ticker reuse and symbol changes: high

Found: 4 tickers meant a different company inside the window; 1 changed symbol.

Why it distorts a backtest: Price and fundamentals sources keyed by symbol map it to whoever holds it today, so a backtest can splice two companies into one series or attach one company's history to another.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H3 Delistings, mergers and identity changes: high

Found: 11 of 14 tickers (79%) stop trading, change company or leave their exchange inside the window.

Why it distorts a backtest: When a price series ends or changes identity, naive code forward-fills the last price, drops the name from the history, or keeps trading a different company under the old symbol. Each one changes the result.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H4 Corporate actions that break naive price series: low

Found: 1 of 14 tickers (7%) have splits, spin-offs or large distributions inside the window.

Why it distorts a backtest: Raw prices drop mechanically on a split, spin-off or special dividend. A backtest on unadjusted prices reads those drops as losses (or a reverse split as a gain), and price levels taken from back-adjusted series depend on events that hadn't happened yet.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H5 Restated fundamentals (SEC filers): moderate

Found: 35 of 685 reported periods (5.1%) were later restated or recast, across 3 of 13 stocks covered by SEC filings.

Why it distorts a backtest: A fundamentals dataset that keeps only the latest (restated) numbers, or keys them by fiscal period end, shows values the market didn't have yet, which makes fundamental signals look better than they could have been.

Days from period end to the first public filing: quarterly reports median 32 (90th percentile 39), annual reports median 33 (90th percentile 57). Joining fundamentals on period end uses each value this much too early. Source: SEC EDGAR XBRL data (companyfacts and submissions).

What to do

H6 Data gaps: not shown in this preview (this check uses licensed price data)

What this report misses

Known gaps, from our own validation. The tool doesn't flag these, so a clean line in the report isn't proof.

Example 3: Symbols that changed hands, from 2010

Ten one- and two-letter symbols that changed company, changed name or stopped trading, with a backtest starting on January 4, 2010, checked by symbol only.

Tickers
S Q GM AGN WB SQ ABC MON K X
Backtest start
Checked through
S&P 500 context
none (symbols only)

Backtest hazard: High

Overall level shown excludes data gaps.

This report describes data hazards for backtesting the listed tickers. It says nothing about the merit of any security, list or strategy, it is not a rating, and it is not investment advice. A low hazard level doesn't mean a backtest is correct; it means these checks found fewer of the common data traps.

The six hazards
HazardSeverityFound
H1 Survivorship and universe selectionhigh6 of 10 tickers (60%) listed after the start
H2 Ticker reuse and symbol changeshigh3 tickers meant a different company inside the window; 3 changed symbol
H3 Delistings, mergers and identity changeshigh8 of 10 tickers (80%) stop trading, change company or leave their exchange inside the window
H4 Corporate actions that break naive price seriesmoderate2 of 10 tickers (20%) have splits, spin-offs or large distributions inside the window
H5 Restated fundamentals (SEC filers)low19 of 541 reported periods (3.5%) were later restated or recast, across 4 of 10 stocks covered by SEC filings
H6 Data gapsnot shown in this preview (this check uses licensed price data)

The six hazards

H1 Survivorship and universe selection: high

Found: 6 of 10 tickers (60%) listed after the start.

Why it distorts a backtest: A universe picked with today's knowledge contains companies a trader at the start couldn't have chosen (not yet listed, not yet in the index) and leaves out the ones that later failed, which inflates backtest returns.

Public events behind it

5 of the 6 affected tickers are shown, each with a public source; the rest aren't shown in this preview.

What to do

H2 Ticker reuse and symbol changes: high

Found: 3 tickers meant a different company inside the window; 3 changed symbol.

Why it distorts a backtest: Price and fundamentals sources keyed by symbol map it to whoever holds it today, so a backtest can splice two companies into one series or attach one company's history to another.

Public events behind it

5 of the 6 affected tickers are shown, each with a public source; the rest aren't shown in this preview.

What to do

H3 Delistings, mergers and identity changes: high

Found: 8 of 10 tickers (80%) stop trading, change company or leave their exchange inside the window.

Why it distorts a backtest: When a price series ends or changes identity, naive code forward-fills the last price, drops the name from the history, or keeps trading a different company under the old symbol. Each one changes the result.

Public events behind it

7 of the 8 affected tickers are shown, each with a public source; the rest aren't shown in this preview.

What to do

H4 Corporate actions that break naive price series: moderate

Found: 2 of 10 tickers (20%) have splits, spin-offs or large distributions inside the window.

Why it distorts a backtest: Raw prices drop mechanically on a split, spin-off or special dividend. A backtest on unadjusted prices reads those drops as losses (or a reverse split as a gain), and price levels taken from back-adjusted series depend on events that hadn't happened yet.

Public events behind it

Each affected ticker is shown with a public source.

What to do

H5 Restated fundamentals (SEC filers): low

Found: 19 of 541 reported periods (3.5%) were later restated or recast, across 4 of 10 stocks covered by SEC filings.

Why it distorts a backtest: A fundamentals dataset that keeps only the latest (restated) numbers, or keys them by fiscal period end, shows values the market didn't have yet, which makes fundamental signals look better than they could have been.

Days from period end to the first public filing: quarterly reports median 28 (90th percentile 36), annual reports median 37 (90th percentile 57). Joining fundamentals on period end uses each value this much too early. Source: SEC EDGAR XBRL data (companyfacts and submissions).

What to do

H6 Data gaps: not shown in this preview (this check uses licensed price data)

What this report misses

Known gaps, from our own validation. The tool doesn't flag these, so a clean line in the report isn't proof.

How these were made

  • Each example was run once with the hazard tool and is shown as it came out; we only left out details we couldn't link to a public source.
  • The severity cut-offs were written down before any example list was run and haven't been changed since.
  • The counts and severity levels are our own analysis of public events, and the affected tickers come from the same report. The events listed under each hazard are public announcements we found and linked by hand. The full tool uses licensed market data and isn't available.

Reports generated October 17, 2026; severity rules v1.3 (2026-10-17).

Limits

  • All three examples come out High. So did most lists in our own testing, so the overall level doesn't yet separate lists well. Read the hazards, not just the level.
  • The tool resolves each symbol as it's used today and can miss older companies that used the same symbol; the misses we know about are listed with each example.
  • Restatement figures cover US SEC filers that still hold their symbol; companies that delisted drop out.

Would you use this?

This page shows three reports we ran in advance. It's a preview: the interactive version isn't available.

Would you use this on your own list? Tell us at hello@nothingbutalpha.app. We're gauging interest and can't run lists yet.

Not a rating, not advice

This report describes data hazards for backtesting the listed tickers. It says nothing about the merit of any security, list or strategy, it is not a rating, and it is not investment advice. A low hazard level doesn't mean a backtest is correct; it means these checks found fewer of the common data traps.