6 series shown on this desk. S&P 500 is the most stretched here, at the 98th percentile of its own history.
level
7,659.44
idx · as of 2026-10-16
percentile
98
of 2,514 obs since 2016
percentile, 5y
97
of 1,255 obs
vs 13w mean
-17.05
level minus its own quarter
vs 52w mean
+482.61
level minus its own year
year on year
+14.9%
same week last year
MSTL with periods 5 and 52 on 522 weekly observations from 2016-10-21. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 99% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 25%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger trend and cycle: 40 complete quarters, under the 60 a trend-plus-cycle model needs.
The whole history as a distribution, with today marked. Median 3,982.70 over 2,514 observations.
The same record read cumulatively: today sits at the 98 percentile of the full history (n=2,514) and the 97 of the last five years (n=1,255). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 11 years, against the year-to-year standard deviation at that same month (ratio 1.17). The mean exceeds the year-to-year noise, so this month's seasonal effect repeats rather than being a single year's accident.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,255 such windows over five years. Today's window sits at the 4 percentile of its own five-year range history; the 10th-to-90th of that history is 8.31 to 23.31 (% of level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 2,426 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
7,184.02
-6.2%
median path
8,105.81
50th percentile
upside (90th)
8,682.99
+13.4%
Markov-filtered mean
+0.369
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (7 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2026-05-01
P(high vol) now
7
filtered, this week
persisted
25
weeks (175 days)
P(exit in 4w)
14.3%
1 of 7 spells this old
spells on record
46
23 completed in this state
Two-state Markov-switching model with switching variance, fitted on 521 weekly % log change. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean +0.418 per week at 1.404 standard deviation in the calm state against -0.240 at 3.979 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 520 periods since 2016-11-04): low volatility now, filtered p(high) 0.07; AR(1) -0.108; sd 3.907 high against 1.392 low. The two Markov filters put the same state on 95% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
level
81,310.49
usd · as of 2026-10-17
percentile
89
of 4,304 obs since 2014
percentile, 5y
74
of 1,826 obs
vs 13w mean
+4515.71
level minus its own quarter
vs 52w mean
+4042.12
level minus its own year
year on year
-27.2%
same week last year
MSTL with periods 5 and 52 on 619 weekly observations from 2014-12-05. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 96% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 16%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger trend and cycle: 48 complete quarters, under the 60 a trend-plus-cycle model needs.
The whole history as a distribution, with today marked. Median 16,664.28 over 4,304 observations.
The same record read cumulatively: today sits at the 89 percentile of the full history (n=4,304) and the 74 of the last five years (n=1,826). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 13 years, against the year-to-year standard deviation at that same month (ratio 0.50). The year-to-year noise at these calendar months is as large as the mean seasonal effect itself, so the shape should be read as unstable, not as a repeating pattern.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,826 such windows over five years. Today's window sits at the 45 percentile of its own five-year range history; the 10th-to-90th of that history is 23.8 to 72.76 (% of level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 4,216 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
59,654.68
-26.6%
median path
88,782.05
50th percentile
upside (90th)
147,315.36
+81.2%
Markov-filtered mean
+0.322
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (11 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2026-09-04
P(high vol) now
11
filtered, this week
persisted
8
weeks (56 days)
P(exit in 4w)
100.0%
3 of 3 spells this old
spells on record
131
65 completed in this state
Two-state Markov-switching model with switching variance, fitted on 618 weekly % log change. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean +0.196 per week at 2.917 standard deviation in the calm state against +1.303 at 11.393 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 617 periods since 2014-12-19): low volatility now, filtered p(high) 0.12; AR(1) +0.034; sd 11.356 high against 2.873 low. The two Markov filters put the same state on 99% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
level
5.10
pct · as of 2026-10-15
percentile
47
of 16,182 obs since 1962
percentile, 5y
99
of 1,248 obs
vs 13w mean
+0.19
level minus its own quarter
vs 52w mean
+0.67
level minus its own year
year on year
+1.08
same week last year
MSTL with periods 5 and 52 on 3381 weekly observations from 1962-01-05. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 99% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 14%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger local linear trend on the quarterly average level, 1986-12-31 to 2026-09-30 (160 quarters), smoothed: each quarter's estimate uses the quarters after it.
No cycle is drawn: the implied period is 1.5 years, pinned at the 1.5–12-year bound, so the data do not locate a cycle inside it; the cycle does not earn its parameters: BIC 168.1 with it against 164.8 for the trend alone; the two optimisers put the period at 1.5 and 4.9 years, so it is not identified (best period 1.5 y, damping 0.49). The trend above is the trend-only model, which the data prefer. The trend-only model assigns no variance to the irregular, so its trend coincides with the quarterly level: at this cadence the model finds nothing to separate from the path itself.
The whole history as a distribution, with today marked. Median 5.39 over 16,182 observations.
The same record read cumulatively: today sits at the 47 percentile of the full history (n=16,182) and the 99 of the last five years (n=1,248). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 65 years, against the year-to-year standard deviation at that same month (ratio 0.44). The year-to-year noise at these calendar months is as large as the mean seasonal effect itself, so the shape should be read as unstable, not as a repeating pattern.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,248 such windows over five years. Today's window sits at the 71 percentile of its own five-year range history; the 10th-to-90th of that history is 0.45 to 1.37 (level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 16,094 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
4.30
-0.80
median path
5.13
50th percentile
upside (90th)
5.84
+0.74
Markov-filtered mean
+0.001
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (15 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2025-07-04
P(high vol) now
15
filtered, this week
persisted
68
weeks (476 days)
P(exit in 4w)
0.0%
0 of 3 spells this old
spells on record
49
24 completed in this state
Two-state Markov-switching model with switching variance, fitted on 1300 weekly change in level. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean +0.002 per week at 0.086 standard deviation in the calm state against -0.001 at 0.147 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 779 periods since 2011-11-18): low volatility now, filtered p(high) 0.29; AR(1) -0.092; sd 0.145 high against 0.084 low. The two Markov filters put the same state on 96% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
level
16.46
pct · as of 2026-10-15
percentile
43
of 9,296 obs since 1990
percentile, 5y
38
of 1,287 obs
vs 13w mean
+1.08
level minus its own quarter
vs 52w mean
-1.43
level minus its own year
year on year
-4.32
same week last year
MSTL with periods 5 and 52 on 1920 weekly observations from 1990-01-05. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 67% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 16%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger local linear trend on the quarterly average level, 1990-03-31 to 2026-09-30 (147 quarters), smoothed: each quarter's estimate uses the quarters after it.
No cycle is drawn: the implied period is 1.5 years, pinned at the 1.5–12-year bound, so the data do not locate a cycle inside it (best period 1.5 y, damping 0.59). The trend above is the trend-only model, which the data prefer.
The whole history as a distribution, with today marked. Median 17.56 over 9,296 observations.
The same record read cumulatively: today sits at the 43 percentile of the full history (n=9,296) and the 38 of the last five years (n=1,287). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 37 years, against the year-to-year standard deviation at that same month (ratio 0.62). The year-to-year noise at these calendar months is as large as the mean seasonal effect itself, so the shape should be read as unstable, not as a repeating pattern.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,287 such windows over five years. Today's window sits at the 3 percentile of its own five-year range history; the 10th-to-90th of that history is 7.37 to 26.63 (level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 9,208 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
8.99
-7.47
median path
15.86
50th percentile
upside (90th)
24.10
+7.64
Markov-filtered mean
-0.131
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (4 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2026-06-19
P(high vol) now
4
filtered, this week
persisted
18
weeks (126 days)
P(exit in 4w)
11.1%
2 of 18 spells this old
spells on record
172
86 completed in this state
Two-state Markov-switching model with switching variance, fitted on 1300 weekly change in level. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean -0.155 per week at 1.676 standard deviation in the calm state against +0.402 at 5.715 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 779 periods since 2011-11-18): low volatility now, filtered p(high) 0.06; AR(1) -0.119; sd 5.678 high against 1.626 low. The two Markov filters put the same state on 95% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
level
101.91
usd · as of 2026-10-14
percentile
95
of 9,523 obs since 1986
percentile, 5y
92
of 1,247 obs
vs 13w mean
+10.17
level minus its own quarter
vs 52w mean
+21.20
level minus its own year
year on year
+74.8%
same week last year
MSTL with periods 5 and 52 on 2126 weekly observations from 1986-01-03. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 96% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 16%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger local linear trend on the quarterly average log level, 1986-12-31 to 2026-09-30 (160 quarters), smoothed: each quarter's estimate uses the quarters after it.
No cycle is drawn: the cycle does not earn its parameters: BIC -109.0 with it against -126.7 for the trend alone (best period 3.2 y, damping 0.81). The trend above is the trend-only model, which the data prefer. The trend-only model assigns no variance to the irregular, so its trend coincides with the quarterly level: at this cadence the model finds nothing to separate from the path itself.
The whole history as a distribution, with today marked. Median 47.11 over 9,523 observations.
The same record read cumulatively: today sits at the 95 percentile of the full history (n=9,523) and the 92 of the last five years (n=1,247). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 41 years, against the year-to-year standard deviation at that same month (ratio 0.71). The year-to-year noise at these calendar months is as large as the mean seasonal effect itself, so the shape should be read as unstable, not as a repeating pattern.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,247 such windows over five years. Today's window sits at the 83 percentile of its own five-year range history; the 10th-to-90th of that history is 19.95 to 64.63 (% of level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 9,435 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
80.66
-20.9%
median path
104.75
50th percentile
upside (90th)
133.05
+30.6%
Markov-filtered mean
-0.419
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (38 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2026-10-16
P(high vol) now
38
filtered, this week
persisted
1
weeks (7 days)
P(exit in 4w)
35.3%
6 of 17 spells this old
spells on record
34
17 completed in this state
Two-state Markov-switching model with switching variance, fitted on 1300 weekly % log change. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean +0.274 per week at 4.304 standard deviation in the calm state against -1.569 at 15.303 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 779 periods since 2011-11-18): low volatility now, filtered p(high) 0.43; AR(1) +0.004; sd 14.405 high against 4.119 low. The two Markov filters put the same state on 97% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
level
121.60
idx · as of 2026-10-09
percentile
91
of 5,208 obs since 2006
percentile, 5y
65
of 1,250 obs
vs 13w mean
+2.00
level minus its own quarter
vs 52w mean
+1.88
level minus its own year
year on year
+0.4%
same week last year
MSTL with periods 5 and 52 on 1084 weekly observations from 2006-01-06. The trend is drawn over the level and the remainder under it; nothing here is extrapolated. The trend explains 98% of the variance the remainder does not (Hyndman's trend strength); the seasonal component explains 11%.
What the trend and the seasonal do not account for, on the same dates. A remainder that trends is a decomposition that has missed something, which is why it is drawn rather than described.
Harvey–Jaeger local linear trend on the quarterly average log level, 2006-03-31 to 2026-09-30 (83 quarters), smoothed: each quarter's estimate uses the quarters after it.
No cycle is drawn: the cycle does not earn its parameters: BIC -328.5 with it against -348.1 for the trend alone (best period 2.6 y, damping 0.82). The trend above is the trend-only model, which the data prefer. The trend-only model assigns no variance to the irregular, so its trend coincides with the quarterly level: at this cadence the model finds nothing to separate from the path itself.
The whole history as a distribution, with today marked. Median 110.25 over 5,208 observations.
The same record read cumulatively: today sits at the 91 percentile of the full history (n=5,208) and the 65 of the last five years (n=1,250). A level extreme against forty years and ordinary against five is a different fact from one that is extreme against both.
The spread of monthly means is no larger than the noise — this series has no seasonal worth trading. Kruskal-Wallis across calendar months; the corner figure is the average number of years behind each bar.
The MSTL seasonal component itself, at periods 5 and 52. Drawn rather than summarised because a seasonal that changes shape year to year is not one a reader can plan against, and the chart shows that where a single average would hide it.
Seasonal diagnostic: The STL seasonal component's own mean at each calendar month, across 21 years, against the year-to-year standard deviation at that same month (ratio 0.91). The year-to-year noise at these calendar months is as large as the mean seasonal effect itself, so the shape should be read as unstable, not as a repeating pattern.
month
market holidays
Crude prints
Gas prints
option expiries
quad-witchings
Jan
19
45
43
10
0
Feb
10
40
41
10
0
Mar
3
45
45
10
10
Apr
7
42
42
10
0
May
10
43
43
10
0
Jun
4
45
45
10
10
Jul
10
44
43
10
0
Aug
0
45
45
10
0
Sep
10
42
43
10
10
Oct
0
44
44
10
0
Nov
10
44
43
10
0
Dec
10
43
44
10
10
Event days per calendar month, 2016–2025. Every column is derived from a published rule, so it was knowable years ahead: the whole table is stamped available_at 1900-01-01, never the build date. Dropped, because they are announced rather than derived and the schedule loaded here does not cover the window: FOMC decisions, CPI prints.
The high-minus-low width of the trailing 88-observation window (the same 63-day horizon as the band above), against the last 1,250 such windows over five years. Today's window sits at the 38 percentile of its own five-year range history; the 10th-to-90th of that history is 2.63 to 6.89 (% of level). A description of how wide the market has recently traded, not a target.
Where this has historically gone over 63 trading days: 10th to 90th percentile of 5,120 realised moves, applied to today. A base rate for sizing, not a forecast.
downside (10th)
116.72
-4.0%
median path
121.75
50th percentile
upside (90th)
127.68
+5.0%
Markov-filtered mean
-0.001
per week, state-weighted
The band above is unconditional: it does not know what state we are in. The filtered mean beside it does — it is the two-state Markov model's mean weighted by today's filtered probability (1 of the high-volatility state). The two disagree when the current state is unusual, which is the point of printing both.
state
low volatility
since 2020-11-20
P(high vol) now
1
filtered, this week
persisted
308
weeks (2156 days)
P(exit in 4w)
not countable
0 of 0 spells this old
spells on record
40
20 completed in this state
Two-state Markov-switching model with switching variance, fitted on 1083 weekly % log change. The line is the FILTERED probability of the high-volatility state — a statement about weeks that have happened, not a forecast. Exit counts are empirical spell counts, not the model's expected durations.
The same weeks on the level: shaded stretches are the ones the filter puts in the high-volatility state. Mean -0.004 per week at 0.642 standard deviation in the calm state against +0.266 at 1.559 in the volatile one.
Markov-switching AR(1) (MarkovAutoregression(k_regimes=2, order=1, switching_ar=False, switching_variance=True), 779 periods since 2011-11-11): low volatility now, filtered p(high) 0.08; AR(1) +0.045; sd 1.024 high against 0.577 low. The two Markov filters put the same state on 90% of 260 common periods; the MarkovRegression reads low volatility now. The filtered probability is about periods that have happened.
S&P 500 · last 7,659.44 as of 2026-10-16 · 2,514 observations from 2016-10-17
Five years of S&P 500 with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what S&P 500 did next
episode
z
level
S&P 500 +5d
S&P 500 +21d
2026-08-28
1.63
7,711.76
+0.09%
-0.36%
2026-08-07
1.86
7,757.64
+0.36%
-1.08%
2026-07-17
1.53
7,457.69
-0.61%
+3.85%
2026-06-26
1.51
7,354.02
+2.49%
+0.80%
2026-06-05
1.72
7,383.74
+0.65%
+2.08%
2026-04-29
1.65
7,135.95
+3.21%
+5.99%
2026-04-08
1.06
6,782.81
+3.54%
+8.17%
2026-02-23
1.33
6,837.75
+0.64%
-4.12%
z in [1.0, 2.0) · n=99 episodes · 21-session hit rate 73% · median +5d 0.50, +21d 1.83 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of S&P 500. 99 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
Bitcoin · last 81,310.49 as of 2026-10-17 · 4,304 observations from 2014-12-01
Five years of Bitcoin with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what Bitcoin did next
episode
z
level
Bitcoin +5d
Bitcoin +21d
2026-09-11
-0.25
77,276.50
+4.62%
+7.31%
2026-08-21
-0.29
78,126.63
-0.37%
+3.92%
2026-01-14
-0.39
96,852.91
-7.14%
-31.85%
2025-11-06
-0.07
101,447.93
-2.51%
-11.93%
2025-10-16
0.48
106,463.30
+4.30%
-10.93%
2025-03-29
0.42
82,379.98
-4.87%
+15.37%
2025-03-08
0.37
80,699.17
+2.31%
-1.93%
2024-10-01
0.49
60,631.37
-0.09%
+15.78%
z in [-0.5, 0.5) · n=49 episodes · 21-session hit rate 55% · median +5d 1.18, +21d 1.18 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of Bitcoin. 49 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
10y Treasury · last 5.10 as of 2026-10-15 · 16,182 observations from 1962-01-02
Five years of 10y Treasury with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what S&P 500 did next
episode
z
level
S&P 500 +5d
S&P 500 +21d
2026-09-14
3.13
4.97
+1.90%
+2.43%
2026-08-24
2.15
4.70
+0.43%
+1.46%
2026-08-03
2.43
4.70
+2.01%
+0.41%
2026-07-13
2.09
4.62
-0.96%
+2.83%
2026-05-19
2.23
4.67
+2.25%
+0.90%
2023-10-12
2.30
4.70
-1.65%
+1.51%
2023-09-21
2.11
4.49
-0.70%
-2.44%
2022-11-08
2.16
4.14
+4.27%
+2.76%
z in [2.0, 99.0) · n=141 episodes · 21-session hit rate 10% · median +5d 0.00, +21d 0.00 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of S&P 500. 141 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
VIX · last 16.46 as of 2026-10-15 · 9,296 observations from 1990-01-02
Five years of VIX with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what S&P 500 did next
episode
z
level
S&P 500 +5d
S&P 500 +21d
2026-09-10
-0.13
17.84
+0.61%
+2.90%
2026-07-29
0.30
20.66
+5.57%
+5.67%
2026-07-08
-0.47
16.90
+1.20%
+3.04%
2026-06-11
0.06
19.44
+1.44%
+2.45%
2026-05-20
-0.35
17.44
+1.18%
+0.91%
2026-04-29
-0.04
18.81
+3.21%
+5.99%
2026-04-08
0.42
21.04
+3.54%
+8.17%
2026-02-25
-0.12
17.93
-1.10%
-6.75%
z in [-0.5, 0.5) · n=342 episodes · 21-session hit rate 21% · median +5d 0.00, +21d 0.00 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of S&P 500. 342 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
WTI crude · last 101.91 as of 2026-10-14 · 9,523 observations from 1986-01-02
Five years of WTI crude with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what WTI crude did next
episode
z
level
WTI crude +5d
WTI crude +21d
2026-09-09
1.60
97.26
+6.54%
+1.03%
2026-08-19
1.02
87.28
-4.38%
+18.25%
2026-07-21
1.01
86.04
-5.96%
+1.44%
2026-05-26
1.99
97.63
-0.16%
-26.85%
2026-04-17
1.72
85.91
+14.56%
+30.66%
2026-03-03
1.58
74.48
+12.39%
+36.82%
2024-07-01
1.13
84.70
-1.26%
-10.07%
2024-04-23
1.04
84.17
-0.81%
-5.96%
z in [1.0, 2.0) · n=224 episodes · 21-session hit rate 56% · median +5d -0.16, +21d 1.41 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of WTI crude. 224 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
Broad dollar · last 121.60 as of 2026-10-09 · 5,208 observations from 2006-01-02
Five years of Broad dollar with the high-volatility weeks shaded, from the same two-state filter the Regime tab draws. One state, one shading, every tab.
The last 8 times this looked like today — and what Broad dollar did next
episode
z
level
Broad dollar +5d
Broad dollar +21d
2025-03-31
1.16
126.71
+0.10%
-3.25%
2025-03-10
1.07
126.27
-0.71%
+0.47%
2025-02-14
1.53
127.15
-0.01%
-1.40%
2025-01-24
1.89
127.46
+0.80%
-0.21%
2024-10-31
1.95
124.80
-0.02%
+1.43%
2024-10-10
1.11
123.10
+0.83%
+2.02%
2024-09-03
1.01
122.78
+0.18%
-0.98%
2024-08-05
1.55
123.58
-0.29%
-0.65%
z in [1.0, 2.0) · n=100 episodes · 21-session hit rate 45% · median +5d -0.01, +21d -0.11 · grade C
Episodes when this series last sat in the same trailing-365-observation z bucket, with the forward 5- and 21-session move of Broad dollar. 100 episodes at least 21 days apart; the table shows the most recent 8. A conditional distribution with its count, not a signal.
What changed since last week
leaf
then
now
change
compared with
horizon days
63.00
63.00
unchanged
2026-10-11
n series
36.00
36.00
unchanged
2026-10-11
n panels
18.00
18.00
unchanged
2026-10-11
0 of 3 headline leaves moved. A repeated value can mean the upstream had not published, not that nothing happened.
Autocorrelation of the MSTL remainder over 24 lags, with the 95% band at ±0.122,
0.000 · 0.000 · 0.000
lags none, persistence +0.00; no AutoReg residual: BIC selected no lag
0.6
Harvey-Jaeger style structural check: the autocorrelation of the decomposition's remainder against a 95% band. Lags outside the band mean the trend and seasonal have not taken everything systematic out of the series. This is Method content. It is not a forecast and nothing is extrapolated from it.
cumulative abnormal return vs the sample's own mean drift, aligned by DATE to the nearest session; only the first day of each episode counts as an event; 95% CIs from 2,000 bootstrap resamples. Events are rebuilt from the underlying official series, so these are historical relationships rather than a record of calls we published. Window 10 sessions before, 20 after. As of 2026-10-18 11:56 UTC. Floor for a conditional claim: 20 episodes (grade_t_thresholds.json).
4 rows and 1 field withheld at this tier: absent from the page, not hidden in it.
MacroTerminal is a research publication and is not investment advice; nothing here is a recommendation to buy or sell anything. Every figure carries an evidence grade (D descriptive, C conditional with counts, N tested-null, T tested-positive — none exists). Nulls are public in the registry. Grades and as-of dates are on every chart.