Crash-window damage by name: low vs the 2:30 pm ET reference
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-07-26, from The 2010 Flash Crash, Minute by Minute.
| ticker | pre_crash_1430 | crash_low | low_vs_1430_pct | low_et | close_vs_1430_pct |
|---|---|---|---|---|---|
| ACN | 41.49 | 17.74 | -57.2 | 14:47 | -0.9 |
| PG | 62.17 | 39.37 | -36.7 | 14:47 | -2.3 |
| MMM | 84.45 | 67.98 | -19.5 | 14:46 | -0.3 |
| SPY | 113.35 | 105 | -7.4 | 14:45 | -0.4 |
| DIA | 106.05 | 99.16 | -6.5 | 14:47 | -0.7 |
| IWM | 66.84 | 63.36 | -5.2 | 14:45 | 0.7 |
- Rows × columns
- 6 × 6
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
ticker |
text | 6 distinct values (ACN, DIA, IWM…) | |
pre_crash_1430 |
number | 41.49 to 113.35 | |
crash_low |
number | 17.74 to 105 | US dollars |
low_vs_1430_pct |
number | -57.2 to -5.2 | percent |
low_et |
text | 3 distinct values (14:45, 14:46, 14:47) | |
close_vs_1430_pct |
number | -2.3 to 0.7 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
the exact SQL behind every number
SELECT
ticker,
round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870), 2) AS pre_crash_1430,
round(minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915), 2) AS crash_low,
round((minIf(toFloat64(low), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS low_vs_1430_pct,
formatDateTime(toTimeZone(argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 871 AND 915), 'America/New_York'), '%H:%i') AS low_et,
round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 870) - 1) * 100, 1) AS close_vs_1430_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('ACN', 'PG', 'MMM', 'IWM', 'DIA', 'SPY')
AND window_start >= toDateTime('2010-05-06 04:00:00') AND window_start < toDateTime('2010-05-06 23:59:00')
GROUP BY ticker
ORDER BY low_vs_1430_pct ASC
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisThe 2010 Flash Crash, Minute by Minute
SPY at one-minute resolution, 2:00–3:30 pm ET on May 6, 2010
table 90×4
→
The steepest single minutes: biggest open-to-low drops, 2:00–3:30 pm ET
table 5×5
→
The famous casualties on the raw trade tape, 2:30–3:30 pm ET
table 4×6
→
Five famous crash sessions: depth of the low and the bounce off it (SPY)
series 5×4
→
SPY on May 6, 2010: the flash crash day, receipted
scalar 1×10
→
The aftermath: when the May 5 close was reclaimed, and when the panic low broke for real
scalar 1×7
→
See all 2,170 queries →