Phoenix · backtest · 2016 → 2026-08-28

The bottom is usually not the bottom.

Before we named five fallen giants in public, we tested the rule that picked them. Every U.S. stock with usable daily history since 2016 — 3,585 companies — was replayed through the same detector: a 30%+ decline over three months or more, then a monthly low that confirmed. 15,357 events across 3,383 tickers, each measured against the S&P 500 over its own dates. This page is what it found, including the parts that don't flatter the setup.

It finds washed-out businesses that tend to recover. It doesn't beat the index, a confirmed low is undercut more often than not, deeper declines don't recover any better, and waiting for the low to confirm barely helps. Read it as a base rate, not a strategy.

69.2% of large-cap events were higher a year later, median +16.6%
48.6% beat the S&P 500 over the same dates — a coin flip, median 1.5 points behind
44.5% of those confirmed lows were undercut anyway within twelve months
-14.4% median worst drawdown inside the year, from the entry price

Headline figures are the population the published five were picked from: names worth $10B+ today that had a false bottom before the real low — 1,970 events, 1,806 with a full year elapsed. "Today's cap" is a descriptive split, not a filter the scanner could have applied at the time; it flatters the top band.


What was tested

The rule was frozen before the run and hasn't been tuned since. No fundamentals, no household filter — the chart rule alone:

  1. A 30%+ decline over 3+ months. The peak is the highest monthly high in the 36 months up to and including the trough.
  2. A confirmed monthly swing low. A later monthly bar trades above the trough month's high while the low holds. A confirmation that takes several months counts the same as a fast one.
  3. Two entries. The close of the confirming month, and — what the live scanner actually flags — the close of the first weekly pullback low that confirms after it (median wait 3.0 weeks). They came out the same, so the tables below use the first.

Detection runs on the same engine as the live scanner, and it confirms a low from later bars only, so the replay is causal. One event per ticker per twelve months, so no two windows overlap (20,289 clustered events dropped). Split-adjusted Alpaca daily bars, aggregated to weekly and monthly; the still-forming period is excluded.

Read the per-year counts before any headline number. Ten years of daily history covers four real declines — late 2018, 2020, 2022 and 2025 — and 2020 and 2022 dominate. One blended rate hides that.

16
17
18
19
20
21
22
23
24
25
26

Events per entry year, 2016–2026. 2026 is a partial year.


The bottom is usually not the bottom

A confirmed monthly low is a signal, not a floor. Of 14,343 events old enough to judge, 8,116 (56.6%) were undercut within twelve months of the entry, and 68.4% at some point in the remaining tape. 1,014 more are too recent for a twelve-month window to have elapsed and are left out of the denominator rather than counted as clean.

That's the honest denominator for the whole false-bottom story, and it's the number to hold onto: the trap is the norm, not the exception. It's why a name that has already faked one bottom is worth more attention than a first-time low (below).

Undercut within 12 months, by entry year xlsx
Entry yearEvaluableUndercut%Not yet evaluable
201641518043.40
201757828950.00
201868650773.90
20191,5501,00164.60
20201,88837720.00
20211,08086279.80
20222,3971,60767.00
20232,3011,11148.30
20241,37493568.00
20251,8471,02055.2272
2026227227100.0742

Only events whose twelve-month window has fully elapsed, plus any already undercut, are evaluable. 2020 entries — bought into the fastest recovery on the tape — are the outlier in both directions.


The scanner's own universe

Everything else on this page blends a universe far wider than the one the tool runs on. The live scanner only looks at names above $10B, and it treats a prior false bottom as a booster. This is that cell, and it's the one to quote.

Scanner universe ($10B+) xlsx
PopulationHorizonEventsTickersUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
$10B+ today, prior false bottom3m1,97076444.51,8913.75.460.650.20.1-6.314.8-76.6298.7-9.1
$10B+ today, prior false bottom6m1,97076444.51,8597.611.763.850.0-0.0-6.824.6-88.2469.9-11.9
$10B+ today, prior false bottom12m1,97076444.51,80616.627.169.248.6-1.5-5.246.7-95.8934.8-14.4
$10B+ today, no false bottom3m1,22559353.41,1742.45.055.248.3-0.7-9.315.4-64.1406.8-10.0
$10B+ today, no false bottom6m1,22559353.41,1554.09.957.148.1-1.4-11.522.1-81.0526.7-14.6
$10B+ today, no false bottom12m1,22559353.41,09111.025.261.746.4-2.6-12.442.4-85.8858.2-19.1
$10B+ today, all3m3,19580947.93,0653.45.358.549.5-0.2-7.615.0-76.6406.8-9.4
$10B+ today, all6m3,19580947.93,0146.411.061.249.2-0.4-8.623.7-88.2526.7-12.8
$10B+ today, all12m3,19580947.92,89714.226.466.347.7-2.0-8.145.4-95.8934.8-16.1

"Higher %" = share of events above the entry price at that horizon. "Beat S&P %" compares each event to SPY over its own dates, so the tape it ran in is netted out. Drawdown = the deepest close-to-low excursion inside the window, from the entry price.

By entry year. The best cell in the study, and 362 of its 1,970 events (18.4%) are 2020 entries. One blended number would hide how much of it is one recovery.

$10B+ with false bottom, by entry year (12m) xlsx
Entry yearEventsUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
20162030.02026.537.990.070.07.513.864.9-14.9137.0-9.0
20176055.0607.96.858.340.0-4.7-16.031.8-88.799.2-14.7
20189567.4955.97.352.647.4-2.6-17.622.9-71.6119.9-19.8
201923354.5233-0.36.149.837.3-12.1-25.421.6-95.8934.8-25.7
202036214.136248.954.993.665.212.624.276.7-47.6390.6-8.3
20215547.355-0.9-3.549.152.73.4-21.816.7-74.848.4-17.8
202240958.24098.113.461.646.2-1.8-8.629.2-88.8227.2-19.1
202325232.525215.222.172.233.7-11.5-1.939.0-59.7408.1-11.5
202410165.310111.223.861.446.5-2.0-16.348.5-48.3298.0-22.6
202525843.821927.257.376.755.34.51.567.2-53.9930.5-8.8
2026125100.00

What moved the number, and what didn't

  • A prior false bottom is the strongest signal in the study. Twelve-month median +8.3% with one vs +0.0% without; undercut 52.1% vs 61.6%. A low that comes after the first buyers were already stopped out holds better. The core thesis survives.
  • Late confirmation is safer, not worse. Identical returns, undercut 50.3% for a late confirmation vs 58.7% for a next-bar one. A low that consolidates for a few months before it clears the trigger is a better low.
  • Deeper isn't cheaper. Declines of 50%+ recovered no better than declines of 30–50% (twelve-month median +4.5% vs +4.6%), and with far wider dispersion. "It's down 60%, it must be a bargain" isn't supported.
  • The balance sheet didn't predict the rebound. A 0–100 health score computed from SEC filings as of the entry date (nothing filed later is used) sorted large caps into Strong / Solid / Mixed / Weak. The bands returned within a few points of each other, in no useful order. It's a sanity check on the business, not a return predictor.
Boosters (whole universe) xlsx
SplitHorizonEventsUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
Prior false bottom3m8,04952.17,7661.43.453.544.5-2.4-11.014.1-96.1524.6-11.8
Prior false bottom6m8,04952.17,6343.39.255.043.5-3.9-14.023.7-99.1753.6-15.9
Prior false bottom12m8,04952.17,2908.322.058.440.5-9.3-17.941.1-99.93438.6-20.3
No prior false bottom3m7,30861.67,058-0.43.848.843.0-3.4-14.814.5-98.71931.2-14.2
No prior false bottom6m7,30861.66,935-1.66.947.740.2-7.6-21.321.5-99.62059.3-20.5
No prior false bottom12m7,30861.66,5210.018.049.937.4-13.5-28.334.8-100.03396.2-27.8
Confirmed on the next bar3m11,44758.711,0600.73.851.544.2-2.5-12.814.8-90.41654.7-13.0
Confirmed on the next bar6m11,44758.710,8361.17.551.441.7-5.6-18.122.3-99.62059.3-18.1
Confirmed on the next bar12m11,44758.710,2724.619.954.539.0-11.2-22.638.5-100.03357.0-23.8
Confirmed late3m3,91050.33,7640.23.350.642.6-3.5-12.613.0-98.71931.2-12.6
Confirmed late6m3,91050.33,7331.29.851.942.5-5.1-16.423.8-99.31741.7-17.2
Confirmed late12m3,91050.33,5394.420.854.239.0-11.1-22.737.6-100.03438.6-23.0
Decline 50%+3m8,0637,7660.05.049.943.3-4.1-17.818.0-98.71931.2-16.3
Decline 50%+6m8,0637,6150.311.750.142.6-7.0-24.431.3-99.62059.3-23.0
Decline 50%+12m8,0637,1824.528.753.040.9-12.5-31.252.5-100.03438.6-29.9
Decline 30-50%3m7,2947,0581.02.252.844.3-2.0-9.011.6-79.7388.2-10.1
Decline 30-50%6m7,2946,9541.64.253.141.2-4.5-12.017.2-94.3410.2-13.9
Decline 30-50%12m7,2946,6294.610.855.937.0-10.3-16.628.4-95.4780.3-18.5
SEC health score at entry ($10B+ only, point-in-time) xlsx
Health bandHorizonEventsUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
Mixed3m59248.95744.06.661.051.60.6-6.815.8-76.6298.7-9.1
Mixed6m59248.95668.116.663.450.90.9-7.729.4-87.5425.7-12.9
Mixed12m59248.953018.335.569.452.11.5-5.552.1-78.7934.8-17.0
Solid3m77742.37334.55.962.551.00.2-4.815.8-51.1115.8-8.6
Solid6m77742.37218.411.263.850.60.3-5.823.8-70.7184.0-10.7
Solid12m77742.369315.723.170.347.5-2.2-3.747.2-66.5366.1-13.6
Strong3m69449.26573.54.159.252.51.2-7.714.3-51.780.7-9.4
Strong6m69449.26415.27.361.048.5-0.9-8.920.2-87.5141.0-13.3
Strong12m69449.261413.919.366.445.8-3.3-8.539.3-88.8282.3-15.8
Weak3m27949.42682.26.655.642.2-1.8-11.514.1-43.2406.8-11.8
Weak6m27949.42645.513.061.449.2-0.1-9.926.5-88.2216.8-15.5
Weak12m27949.425813.542.067.452.73.3-6.753.8-95.8930.5-18.5
no filings by entry date3m85350.58331.74.353.846.7-1.3-9.214.0-64.0215.6-9.9
no filings by entry date6m85350.58224.79.257.747.4-1.6-11.523.2-81.0526.7-13.7
no filings by entry date12m85350.580210.423.760.545.0-3.6-14.444.3-88.7657.3-17.6
out of scope3m12,16258.911,759-0.33.249.442.3-3.7-14.514.1-98.71931.2-13.9
out of scope6m12,16258.911,555-0.67.349.040.0-7.1-20.522.2-99.62059.3-19.6
out of scope12m12,16258.910,9141.318.451.236.7-13.9-26.736.3-100.03438.6-26.2

Scored only on the $10B+ population, point-in-time. "No filings by entry date" and "out of scope" are distinct states and neither is a zero.


Does waiting for confirmation help? Barely.

The S&P is the wrong control for the rule itself. The alternative facing a Phoenix candidate isn't the index — it's buying the fallen name without waiting for the low to confirm. So we ran that too: buy the close of the first month a stock is 30%+ below its 36-month high, three months on, knowing nothing more. Its own population — 19,445 entries, including every decline that never confirmed a low because it kept falling or the tape stopped.

  • Undercut within twelve months: 60.2% buying naively vs 56.6% waiting for confirmation (53.8% vs 47.9% in large caps).
  • Twelve-month median: +4.6% naive vs +4.5% confirmed. In large caps the naive entry did slightly better (+16.1% vs +14.2%), because it bought lower.
  • The price of waiting: the confirmed entry sits a median +10.6% above the trough month's close (mean +23.4%). Confirmation trades roughly that much entry price for a few points less chance of a lower low, and the same return a year out.
  • Even hindsight only gets you to even. Buying the trough month's own close — which nobody can do on purpose — reaches 48.1% beat-the-S&P. The ceiling on this whole idea is the index.
Confirmation vs no confirmation xlsx
EntryHorizonScopeEntriesTickersUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
Naive - first month down 30%+3mWhole universe19,4453,41260.218,9001.66.553.143.4-3.0-12.316.0-99.212452.5-13.2
Naive - first month down 30%+6mWhole universe19,4453,41260.218,4371.613.052.140.3-6.5-17.922.4-99.633624.8-18.9
Naive - first month down 30%+12mWhole universe19,4453,41260.217,3474.624.754.139.1-10.9-23.838.5-100.026175.2-25.3
Confirmed - the setup3mWhole universe15,3573,38356.614,8240.63.651.343.8-2.8-12.714.3-98.71931.2-12.8
Confirmed - the setup6mWhole universe15,3573,38356.614,5691.18.151.541.9-5.5-17.722.7-99.62059.3-17.8
Confirmed - the setup12mWhole universe15,3573,38356.613,8114.520.154.439.0-11.1-22.738.3-100.03438.6-23.6
Trough close - hindsight3mWhole universe15,3573,38354.315,04210.817.471.960.24.5-1.626.0-88.67071.5-6.4
Trough close - hindsight6mWhole universe15,3573,38354.314,70011.722.166.352.61.6-7.234.1-99.94192.9-10.2
Trough close - hindsight12mWhole universe15,3573,38354.313,92716.842.464.948.1-1.9-12.954.7-99.834542.1-15.6
Naive - first month down 30%+3m$10B+ today3,84881653.83,7414.96.561.649.1-0.3-6.416.4-89.5346.6-9.7
Naive - first month down 30%+6m$10B+ today3,84881653.83,6477.611.962.748.6-0.8-8.024.2-94.1467.1-13.0
Naive - first month down 30%+12m$10B+ today3,84881653.83,45516.129.066.949.4-0.5-8.346.6-98.04913.7-16.7
Confirmed - the setup3m$10B+ today3,19580947.93,0653.45.358.549.5-0.2-7.615.0-76.6406.8-9.4
Confirmed - the setup6m$10B+ today3,19580947.93,0146.411.061.249.2-0.4-8.623.7-88.2526.7-12.8
Confirmed - the setup12m$10B+ today3,19580947.92,89714.226.466.347.7-2.0-8.145.4-95.8934.8-16.1
Trough close - hindsight3m$10B+ today3,19580946.03,10511.414.977.263.75.41.024.0-72.3692.8-4.8
Trough close - hindsight6m$10B+ today3,19580946.03,04215.421.875.760.55.20.533.0-87.41110.9-6.9
Trough close - hindsight12m$10B+ today3,19580946.02,91125.440.375.356.65.50.358.3-95.93565.3-10.0

"Undercut" means the same thing for all three entries: the lowest low seen in the decline at the moment of purchase was taken out by a later month, within twelve months. The trough-close row is hindsight and exists only as an upper bound.

Confirmation vs naive, by entry year (12m) xlsx
Entry yearEntryEntriesUndercut 12m %nMedian %Higher %Beat S&P %Median vs S&P (pts)
2016naive61260.661214.663.948.5-1.6
2016confirmed41543.441512.961.748.2-3.6
2017naive73168.07317.657.046.9-3.8
2017confirmed57850.05785.654.843.3-8.0
2018naive1,61971.21,6195.756.538.5-8.2
2018confirmed68673.9686-7.340.835.3-13.5
2019naive1,32682.61,326-11.039.431.9-20.0
2019confirmed1,55064.61,550-7.341.429.7-18.2
2020naive2,18426.32,18448.285.056.28.4
2020confirmed1,88820.01,88846.687.261.612.5
2021naive1,64261.11,642-24.827.631.0-19.3
2021confirmed1,08079.81,079-29.025.731.1-20.2
2022naive2,73673.72,736-5.142.937.7-10.7
2022confirmed2,39767.02,397-1.847.236.3-11.0
2023naive2,60650.62,6069.159.831.7-18.4
2023confirmed2,30148.32,3017.057.930.7-19.0
2024naive2,19253.42,192-2.547.434.6-16.8
2024confirmed1,37468.01,374-4.945.732.9-19.7
2025naive2,41760.91,68016.462.744.1-7.2
2025confirmed2,11955.21,53818.465.045.6-4.9
2026naive1,380100.019-3.642.136.8-3.5
2026confirmed969100.0520.9100.080.011.7

Traded, not held

Everything above is a buy-and-sit-for-a-year measurement, which nobody trades. So the same events were traded the way a swing trader would: a stop under the low, a reversal exit, a hard 24-month time stop, each trade benchmarked to the S&P over its own holding window. The stop distance is treated as a gate — a candidate whose invalidation sits too far away is rejected, not taken at bad odds.

Every management rule made it worse. Mean R runs 1.12 with a stop under the pullback low and no gate, 0.84 at an 8% gate, 0.76 at 5%: the tighter the risk control, the less the setup returns per unit of risk. A stop within 5% of entry on a stock that just fell 40% is hit 87.5% of the time — it sits inside the noise band. The reversal exit is the single most expensive rule. Every gated variant is still positive-expectancy, and none of them beats the index.

The entry at the confirming month's close isn't a tradable entry at all: the stop sits a median 18.3% away, so almost any sane risk filter rejects it. Only the weekly-pullback entry offers a stop close enough to gate on.

Traded, not held ($10B+ with false bottom) xlsx
VariantnTaken %Win %Median %Mean %Profit factorMean RRisk at entry %Stopped out %Median hold (days)Beat SPY %Mean excess %Median MAE %
No stop, fixed 12m hold (baseline)1,806100.069.216.627.11.61*18.30.036548.68.2-14.4
v1 entry, stop at trough low, 12m1,857100.049.9-0.319.53.60.818.144.636537.96.9-11.4
v1 entry, stop 5% below trough low, 12m1,845100.055.78.021.13.70.722.335.836540.17.0-13.1
v1 entry, trailing stop under confirmed lows1,861100.045.5-3.017.63.50.718.162.723636.56.6-10.0
v1 entry, stop at trough low + monthly 2-Down exit1,903100.041.0-2.45.52.10.218.117.86236.52.2-7.5
v2 entry, stop at pullback low, NO gate1,826100.026.1-5.110.42.81.17.173.25426.13.7-7.1
v2 entry, stop at pullback low, GATE risk<=8%1,06357.417.0-4.44.32.00.85.183.02720.6-0.3-5.6
v2 entry, stop at pullback low, GATE risk<=5%51127.412.5-3.32.71.90.83.487.51319.0-0.7-4.1
v2 entry + monthly 2-Down exit, GATE risk<=8%1,07457.427.5-3.50.71.20.15.166.32126.1-1.3-4.6

Population is the same in every row: $10B+ today with a prior false bottom. The baseline has no stop, so its R is notional — nothing enforces that distance as a loss limit and its real worst case is far below it. Read that row as an upper bound on how good holding looks. No sizing, slippage or commission.


By market cap

The recovery story is a large-cap story. Below $2B the median event was down a year later (-7.2%), 31.5% beat the index, and 63.9% of confirmed lows were undercut. A broken small cap mostly stays broken — which is the Broken List's whole premise, measured from the other side.

By market-cap band (today's cap) xlsx
Cap band todayHorizonEventsTickersUndercut 12m %nMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
under $2B today3m6,2641,22563.96,054-2.71.545.539.0-6.3-18.813.3-98.71654.7-16.4
under $2B today6m6,2641,22563.95,929-4.74.343.735.5-10.9-26.819.7-99.62059.3-23.9
under $2B today12m6,2641,22563.95,545-7.210.643.331.5-21.5-37.128.8-100.02701.8-33.0
$2-10B today3m4,54097454.34,3611.45.352.745.8-1.8-11.215.9-95.51931.2-12.3
$2-10B today6m4,54097454.34,3003.211.854.745.6-3.3-15.025.8-95.51741.7-17.0
$2-10B today12m4,54097454.34,0729.129.159.243.1-6.7-17.844.0-95.43438.6-22.3
$10B+ today3m3,19580947.93,0653.45.358.549.5-0.2-7.615.0-76.6406.8-9.4
$10B+ today6m3,19580947.93,0146.411.061.249.2-0.4-8.623.7-88.2526.7-12.8
$10B+ today12m3,19580947.92,89714.226.466.347.7-2.0-8.145.4-95.8934.8-16.1
not in screener today3m1,35837551.21,3442.13.856.245.8-1.3-8.312.6-80.7283.3-9.8
not in screener today6m1,35837551.21,3261.86.454.242.4-4.0-10.419.7-99.1406.6-12.8
not in screener today12m1,35837551.21,2977.318.460.138.3-9.4-13.537.3-99.21287.4-16.4

The band is today's market cap, not the cap at the event — a name worth $10B now may have been worth $2B then. That makes the top band survivor-flavored and, if anything, flattering. It is a descriptive split, not a filter the scanner could have applied at the time.


Survivorship, censoring and limits

The universe is today's Nasdaq screener above $2B union every ticker we've ever recorded. 7,622 of 15,357 events (49.6%) come from names not on today's screener — the ones a today's-list-only backtest silently drops, and dropping them flatters every rebound number. A company that delisted before we began recording is still missing; this mitigates the bias, it doesn't remove it.

  • A window that runs past the end of the data is censored — excluded, never counted as flat. A stopped tape is a realized outcome at the last traded close. Re-pricing every delisting at −100% moves the twelve-month median by a tenth of a point.
  • 859 events have their peak on the first monthly bar we hold, so their real decline may have begun before the tape; their depth is a floor, not a measure.
  • Forward horizons are calendar months from the entry date to the last trading day on or before the target. Dividends are ignored on both sides.
  • This is a descriptive measurement of a past sample over four regimes in ten years. It isn't a forward claim, and the sample is far too small per cohort to be one.
Survivorship split xlsx
PopulationHorizonnMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
Off today's screener3m7,398-1.42.047.440.2-5.1-16.813.1-98.71654.7-15.1
Off today's screener6m7,255-2.94.745.636.7-9.4-23.919.7-99.62059.3-21.4
Off today's screener12m6,842-3.512.146.532.8-18.2-33.430.9-100.02701.8-29.5
On today's screener3m7,4262.35.355.147.3-1.1-9.715.3-95.51931.2-11.1
On today's screener6m7,3144.711.557.447.1-1.9-12.024.7-95.51741.7-14.9
On today's screener12m6,96911.428.062.245.1-4.4-13.844.8-95.83438.6-19.3
Delisting sensitivity (entry v1) xlsx
BracketHorizonnMedian %Mean %Higher %Beat S&P %Median vs S&P (pts)p25 %p75 %Worst %Best %Median drawdown %
Every delisting re-priced at -100%3m14,8240.63.651.343.8-2.8-12.814.3-100.01931.2
Every delisting re-priced at -100%6m14,5691.18.051.541.9-5.5-17.722.7-100.02059.3
Every delisting re-priced at -100%12m13,8114.419.854.238.9-11.2-23.038.2-100.03438.6

Computed 2026-08-30. Every table on this page is downloadable individually (the icon beside each), or all tables as one workbook · every event, every outcome (15,357 rows). Not investment advice; personal research, published so it can be checked.

The five we named anyway

Knowing all this, we still named five large caps that completed the setup, baselined them at a fixed close, and will score them against the S&P a year later. The backtest says to expect the index's return with more dispersion. That's the bet, in public.

See the five Our track record → Scan my portfolio