The Undercurrent, tested point-in-time
It sorts days by risk, not return. Risk-off days moved nearly twice as much as risk-on days, for the same average gain.
- 21.8% vs 12.0%
- Volatilityrisk-off vs risk-on days
- 14.6% vs 14.7%
- Average returnsame split, a year
- −17.6% vs −33.7%
- Worst drawdownrule vs SPY
- 0.77 vs 0.76
- Sharperule vs 58/42 mix
Summary
The LOPJLB Undercurrent labels each session Bull, Recovery, Bear or Crisis. We refit it every month from Feb 1, 2013 to Nov 6, 2026 using only data available at the time (166 refits), then held SPY on Bull and Recovery days and T-bills otherwise.
The labels separate calm markets from rough ones. They do not separate up markets from down ones. As a switch, the rule cut the worst drawdown from −33.7% to −17.6% but gave up return: 8.75% a year against 14.12%. A plain mix holding SPY 58% of the time, the rule's average, did as well on Sharpe (0.76 vs 0.77).
So we publish it as a risk gauge, the way the VIX or a fear-and-greed index is read: how rough the market is right now.
What it measures
Annualised SPY volatility by point-in-time label, 2013–2026.
Volatility more than doubles from Bull to Bear. Return does not follow: the session after a risk-on label returned 14.7% a year on average (2,015 days), after a risk-off label 14.6% (1,447 days).
Crisis is left out: before 2020 the training data held few crashes, and which fitted state gets that name moves between refits.
As an allocation rule
Growth of $1, Feb 1, 2013 to Nov 6, 2026. Log scale.
Nov 2026Undercurrent rule $3.1658/42 mix $3.34SPY $6.14
| Rule | Return / yr | Volatility | Sharpe | Worst drawdown | In SPY | Switches / yr |
|---|---|---|---|---|---|---|
| Undercurrent (Bull or Recovery) | 8.75% | 9.1% | 0.77 | −17.6% | 58% | 18.3 |
| Buy and hold SPY | 14.12% | 16.8% | 0.76 | −33.7% | 100% | 0 |
| 58% SPY, 42% T-bills | 9.19% | 9.8% | 0.76 | −20.7% | 58% | 0 |
| SPY above its 200-day average | 9.73% | 11.6% | 0.70 | −21.0% | 84% | 5.5 |
| VIX below 30 | 10.59% | 13.8% | 0.67 | −29.7% | 95% | 4.4 |
Swipe the table for every column.
Trades at the next session's open, 5 bps per switch, dividends in, cash at the 13-week T-bill. Acting at the same day's close, which no one can trade, the rule's worst drawdown is −13.4%.
Against buy-and-hold the drawdown cut is real: 16.1 points shallower (95% interval 1.7 to 32.2). Against the 58/42 mix it is within noise: 3.1 points (−5.8 to 15.3), and the Sharpe difference is 0.00 (−0.41 to 0.39).
Copies of the labels shifted to random dates did as well 9% of the time on Sharpe and 5% on drawdown. Suggestive, not proof.
Five sell-offs
When the rule left SPY, when it came back, and the worst loss it took on the way.
| Sell-off | SPY drawdown | Out, sessions after peak | Back in, sessions after low | Rule drawdown |
|---|---|---|---|---|
| 2015–16 sell-offMay 21, 2015 to Feb 11, 2016 | −13.0% | 6 | 3 | −6.6% |
| 2018 Q4Sep 20, 2018 to Dec 24, 2018 | −19.3% | 4 | 9 | −5.6% |
| 2020 COVID crashFeb 19, 2020 to Mar 23, 2020 | −33.7% | 3 | 15 | −5.9% |
| 2022 bear marketJan 3, 2022 to Oct 12, 2022 | −24.5% | 4 | 9 before | −14.6% |
| 2025 spring sell-offFeb 19, 2025 to Apr 8, 2025 | −18.8% | 3 | 6 | −7.7% |
Swipe the table for every column.
Every exit came after the peak, three to six sessions in: the gauge reacts to turbulence, it does not see it coming. In the 2022 bear market, it went back in 9 sessions before the low and took a −14.6% drawdown.
Episodes chosen knowing how each one ended. They show behaviour, not performance; the table above measures that.
What it costs
Calm years, when staying out was the wrong call.
- +10.0% vs +24.6%
- 2013rule vs SPY
- +6.4% vs +28.7%
- 2021rule vs SPY
- 18.3
- Switches a yearabout 0.9% a year at 5 bps
- 58%
- Time in SPYthe rest in T-bills
Choppy but rising markets are where the rule loses most. It steps out on a volatility spike, and the market keeps climbing without it.
Hindsight vs point-in-time
Why the published history looks better than this test.
The history chart on /market-regime is the April 2026 model run over the past. It was fit on 2010–2022, its state names were matched to periods picked in 2026, and its settings were tuned on 2023–2026. Each of those leaks a little of the future.
| Same rule, two label sets | Return / yr | Sharpe | Worst drawdown | In SPY |
|---|---|---|---|---|
| Published history (hindsight) | 11.92% | 0.91 | −17.5% | 75% |
| Point-in-time (this study) | 8.75% | 0.77 | −17.6% | 58% |
Swipe the table for every column.
Hindsight is worth 0.15 of Sharpe and 3.2 points of return a year. The two label sets agree on risk-on or risk-off 82.3% of the time. When they differ, it is almost always the point-in-time model staying out (16.9% of days, against 0.8% the other way).
The published history beats buy-and-hold only in the years its settings were tuned on: Sharpe 1.56 vs 0.99 in 2023–2026, but 0.68 vs 0.69 in 2013–2022. Those recent years are not a clean test.
Live nightly calls began May 2, 2026. 128 sessions in, they match the point-in-time risk-on/off call 60.9% of the time. Too short to judge.
Limitations
- The design itself saw the past. Features, thresholds and smoothing were chosen in 2026 with data through April 2026. Refitting removes look-ahead in the parameters and the names, not in the design, so these results are an upper bound.
- Naming is the fragile step. Each refit decides which fitted state is Bull, Recovery, Bear or Crisis. In 27 of 166 monthly refits no state got the Recovery name. We fixed the naming step in November 2026; this study tests the original rule, which is the one that ran live.
- One market, one rule. SPY only, long or cash, U.S. hours. Other assets, leverage and shorting were not tested.
- Costs are assumed. 5 bps per switch, no taxes, no slippage beyond that. About 18 switches a year make the result sensitive to both.
- Small samples where it matters. Five large sell-offs and 128 live sessions. Intervals above are wide for a reason.
- Not advice. A research note on a public model. Past results do not guarantee future ones.
How we tested it
166 monthly refits, next-open trades, block bootstrap.
- Inputs. 42 features computed from the daily closes of 18 ETFs, trailing windows only, from Jan 29, 2010.
- Point-in-time labels. On the first session of each month the model is refit on every row before that day, then labels the month forward-only. No label uses a later price. The first three years are warm-up; the test starts Feb 1, 2013.
- Rule. SPY on Bull or Recovery, 13-week T-bills otherwise. A label known after the close is traded at the next open.
- Benchmarks. Buy-and-hold SPY; a fixed 58/42 mix at the rule's average exposure; SPY above its 200-day average; VIX below 30.
- Statistics. 95% intervals from a block bootstrap of daily returns. The timing test shifts the real labels by random offsets and asks how often the shifted copy does as well.
Questions
Returns, what it is for, the history chart, advice.
Does the Undercurrent predict returns?
No. Average returns were the same on risk-on and risk-off days (14.7% and 14.6% a year). What differs is volatility: 21.8% against 12.0%.
Then what is it for?
Sizing risk. Read it like the VIX or a fear gauge: how rough the market is now. It moves days after a sell-off starts, not before.
Why does the chart on /market-regime look better than this study?
Its history is the April 2026 model run over the past, a backfill fit with data through 2022 and settings chosen in 2026. Point-in-time, the same rule earned a Sharpe of 0.77 instead of 0.91.
Is this investment advice?
No. It is a research note on one public model, tested on SPY with stated costs. Past results do not guarantee future ones.