underwater_curve
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-09-25, from msft-decline-from-peak.
| month | month_close | running_peak_close | below_peak_pct |
|---|---|---|---|
| 2015-01 | 40.4 | 47.59 | 15.1 |
| 2015-02 | 43.85 | 47.59 | 7.9 |
| 2015-03 | 40.66 | 47.59 | 14.6 |
| 2015-04 | 48.64 | 49.16 | 1 |
| 2015-05 | 46.86 | 49.16 | 4.7 |
| 2015-06 | 44.15 | 49.16 | 10.2 |
| 2015-07 | 46.7 | 49.16 | 5 |
| 2015-08 | 43.52 | 49.16 | 11.5 |
| 2015-09 | 44.26 | 49.16 | 10 |
| 2015-10 | 52.64 | 54.25 | 3 |
| 2015-11 | 54.35 | 54.92 | 1 |
| 2015-12 | 55.48 | 56.55 | 1.9 |
| 2016-01 | 55.09 | 56.55 | 2.6 |
| 2016-02 | 50.88 | 56.55 | 10 |
| 2016-03 | 55.23 | 56.55 | 2.3 |
| 2016-04 | 49.87 | 56.55 | 11.8 |
| 2016-05 | 53 | 56.55 | 6.3 |
| 2016-06 | 51.17 | 56.55 | 9.5 |
| 2016-07 | 56.68 | 56.76 | 0.1 |
| 2016-08 | 57.46 | 58.3 | 1.4 |
| 2016-09 | 57.6 | 58.3 | 1.2 |
| 2016-10 | 59.92 | 61 | 1.8 |
| 2016-11 | 60.26 | 61.12 | 1.4 |
| 2016-12 | 62.14 | 63.62 | 2.3 |
| 2017-01 | 64.65 | 65.78 | 1.7 |
| 2017-02 | 63.98 | 65.78 | 2.7 |
| 2017-03 | 65.86 | 65.86 | 0 |
| 2017-04 | 68.46 | 68.46 | 0 |
| 2017-05 | 69.84 | 70.41 | 0.8 |
| 2017-06 | 68.93 | 72.52 | 5 |
| 2017-07 | 72.7 | 74.22 | 2 |
| 2017-08 | 74.77 | 74.77 | 0 |
| 2017-09 | 74.49 | 75.44 | 1.3 |
| 2017-10 | 83.18 | 83.89 | 0.8 |
| 2017-11 | 84.17 | 84.88 | 0.8 |
| 2017-12 | 85.54 | 86.85 | 1.5 |
| 2018-01 | 95.01 | 95.01 | 0 |
| 2018-02 | 93.77 | 95.42 | 1.7 |
| 2018-03 | 91.27 | 96.77 | 5.7 |
| 2018-04 | 93.52 | 96.77 | 3.4 |
| 2018-05 | 98.84 | 98.95 | 0.1 |
| 2018-06 | 98.61 | 102.49 | 3.8 |
| 2018-07 | 106.08 | 110.83 | 4.3 |
| 2018-08 | 112.33 | 112.33 | 0 |
| 2018-09 | 114.37 | 114.67 | 0.3 |
| 2018-10 | 106.81 | 115.61 | 7.6 |
| 2018-11 | 110.89 | 115.61 | 4.1 |
| 2018-12 | 101.57 | 115.61 | 12.1 |
| 2019-01 | 104.43 | 115.61 | 9.7 |
| 2019-02 | 112.03 | 115.61 | 3.1 |
| 2019-03 | 117.94 | 120.22 | 1.9 |
| 2019-04 | 130.6 | 130.6 | 0 |
| 2019-05 | 123.68 | 130.6 | 5.3 |
| 2019-06 | 133.96 | 137.78 | 2.8 |
| 2019-07 | 136.27 | 141.34 | 3.6 |
| 2019-08 | 137.86 | 141.34 | 2.5 |
| 2019-09 | 139.03 | 141.34 | 1.6 |
| 2019-10 | 143.37 | 144.61 | 0.9 |
| 2019-11 | 151.38 | 152.32 | 0.6 |
| 2019-12 | 157.7 | 158.96 | 0.8 |
| 2020-01 | 170.23 | 172.78 | 1.5 |
| 2020-02 | 162.01 | 188.7 | 14.1 |
| 2020-03 | 157.71 | 188.7 | 16.4 |
| 2020-04 | 179.21 | 188.7 | 5 |
| 2020-05 | 183.25 | 188.7 | 2.9 |
| 2020-06 | 203.51 | 203.51 | 0 |
| 2020-07 | 205.01 | 214.32 | 4.3 |
| 2020-08 | 225.53 | 228.91 | 1.5 |
| 2020-09 | 210.33 | 231.65 | 9.2 |
| 2020-10 | 202.47 | 231.65 | 12.6 |
| 2020-11 | 214.07 | 231.65 | 7.6 |
| 2020-12 | 222.42 | 231.65 | 4 |
| 2021-01 | 231.96 | 238.93 | 2.9 |
| 2021-02 | 232.38 | 244.99 | 5.1 |
| 2021-03 | 235.77 | 244.99 | 3.8 |
| 2021-04 | 252.18 | 261.97 | 3.7 |
| 2021-05 | 249.68 | 261.97 | 4.7 |
| 2021-06 | 270.9 | 271.4 | 0.2 |
| 2021-07 | 284.91 | 289.67 | 1.6 |
| 2021-08 | 301.88 | 304.65 | 0.9 |
| 2021-09 | 281.92 | 305.22 | 7.6 |
| 2021-10 | 331.62 | 331.62 | 0 |
| 2021-11 | 330.59 | 343.11 | 3.6 |
| 2021-12 | 336.32 | 343.11 | 2 |
| 2022-01 | 310.98 | 343.11 | 9.4 |
| 2022-02 | 298.79 | 343.11 | 12.9 |
| 2022-03 | 308.31 | 343.11 | 10.1 |
| 2022-04 | 277.52 | 343.11 | 19.1 |
| 2022-05 | 271.87 | 343.11 | 20.8 |
| 2022-06 | 256.83 | 343.11 | 25.1 |
| 2022-07 | 280.74 | 343.11 | 18.2 |
| 2022-08 | 261.47 | 343.11 | 23.8 |
| 2022-09 | 232.9 | 343.11 | 32.1 |
| 2022-10 | 232.13 | 343.11 | 32.3 |
| 2022-11 | 255.14 | 343.11 | 25.6 |
| 2022-12 | 239.82 | 343.11 | 30.1 |
| 2023-01 | 247.81 | 343.11 | 27.8 |
| 2023-02 | 249.42 | 343.11 | 27.3 |
| 2023-03 | 288.3 | 343.11 | 16 |
| 2023-04 | 307.26 | 343.11 | 10.4 |
| 2023-05 | 328.39 | 343.11 | 4.3 |
| 2023-06 | 340.54 | 348.1 | 2.2 |
| 2023-07 | 335.92 | 359.49 | 6.6 |
| 2023-08 | 327.76 | 359.49 | 8.8 |
| 2023-09 | 315.75 | 359.49 | 12.2 |
| 2023-10 | 338.11 | 359.49 | 5.9 |
| 2023-11 | 378.91 | 382.7 | 1 |
| 2023-12 | 376.04 | 382.7 | 1.7 |
| 2024-01 | 397.58 | 409.72 | 3 |
| 2024-02 | 413.64 | 420.55 | 1.6 |
| 2024-03 | 420.72 | 429.37 | 2 |
| 2024-04 | 389.33 | 429.37 | 9.3 |
| 2024-05 | 415.13 | 430.52 | 3.6 |
| 2024-06 | 446.95 | 452.85 | 1.3 |
| 2024-07 | 418.35 | 467.56 | 10.5 |
| 2024-08 | 417.14 | 467.56 | 10.8 |
| 2024-09 | 430.3 | 467.56 | 8 |
| 2024-10 | 406.35 | 467.56 | 13.1 |
| 2024-11 | 423.46 | 467.56 | 9.4 |
| 2024-12 | 421.5 | 467.56 | 9.9 |
| 2025-01 | 415.06 | 467.56 | 11.2 |
| 2025-02 | 396.99 | 467.56 | 15.1 |
| 2025-03 | 375.39 | 467.56 | 19.7 |
| 2025-04 | 395.26 | 467.56 | 15.5 |
| 2025-05 | 460.36 | 467.56 | 1.5 |
| 2025-06 | 497.41 | 497.45 | 0 |
| 2025-07 | 533.5 | 533.5 | 0 |
| 2025-08 | 506.69 | 535.64 | 5.4 |
| 2025-09 | 517.95 | 535.64 | 3.3 |
| 2025-10 | 517.81 | 542.07 | 4.5 |
| 2025-11 | 492.01 | 542.07 | 9.2 |
| 2025-12 | 483.62 | 542.07 | 10.8 |
| 2026-01 | 430.29 | 542.07 | 20.6 |
| 2026-02 | 392.74 | 542.07 | 27.5 |
| 2026-03 | 370.17 | 542.07 | 31.7 |
| 2026-04 | 407.78 | 542.07 | 24.8 |
| 2026-05 | 450.24 | 542.07 | 16.9 |
| 2026-06 | 373.02 | 542.07 | 31.2 |
| 2026-07 | 464.72 | 542.07 | 14.3 |
| 2026-08 | 507.29 | 542.07 | 6.4 |
| 2026-09 | 497.22 | 542.07 | 8.3 |
- Rows × columns
- 141 × 4
- 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 |
|---|---|---|---|
month |
text | 141 distinct values (2015-01, 2015-02, 2015-03…) | |
month_close |
number | 40.4 to 533.5 | US dollars |
running_peak_close |
number | 47.59 to 542.07 | US dollars |
below_peak_pct |
number | 0 to 32.3 | 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.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH daily AS
(
SELECT
date,
toFloat64(max(close)) AS close
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2015-01-01'
GROUP BY date
),
marked AS
(
SELECT
date,
close,
max(close) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS peak_close
FROM daily
)
SELECT
formatDateTime(toStartOfMonth(date), '%Y-%m') AS month,
round(argMax(close, date), 2) AS month_close,
round(argMax(peak_close, date), 2) AS running_peak_close,
round((1 - argMax(close, date) / argMax(peak_close, date)) * 100, 1) AS below_peak_pct
FROM marked
GROUP BY month
ORDER BY month
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.