The Spread-Volatility Rotation
A weekly rotation between S&P 500 High Beta and S&P 500 Low Volatility, steered by the volatility of the US high-yield credit spread — with a 1.5σ kill switch that steps aside when spreads gap wider. Every rule is fixed; every figure below is script-generated from the live feed, gross of transaction costs, with a one-week implementation lag.
The 13-week volatility of weekly relative high-yield spread changes sits at the 15th expanding percentile — below the 40th-percentile exit line; the 1.5σ kill switch is not active.
Implied holding for this week: S&P 500 Low Volatility (LVOL).
Next week's print is still developing — the signal settles with Friday's close and is ledgered once the week completes.
Green: weeks held in High Beta. Blue: weeks parked in Low Volatility. Drag to zoom, double-click to reset.
Rebalance ledger
One record per completed signal week, shown by the Friday its data ends on — the holding the week's signal implies for the following week, and the return the book realised during that week (with the excess over the S&P 500). The raw chain keys each record by the week's ISO Monday. Append-only and hash-chained with the same discipline as the filing chain: each record embeds the previous record's hash, so editing history breaks every hash after it. Raw chain: data/strategy_ledger.json.
| Week ending | Holding | Week return | Excess vs SPX | Spread-vol percentile | Kill switch | Action |
|---|---|---|---|---|---|---|
| 2026-09-18 | S&P 500 Low Volatility | -1.64% | -1.55% | 34th | — | held |
| 2026-09-11 | S&P 500 Low Volatility | -1.27% | -0.47% | 34th | — | held |
| 2026-09-04 | S&P 500 Low Volatility | -0.45% | -0.54% | 33th | — | held |
| 2026-08-28 | S&P 500 Low Volatility | -0.30% | -0.79% | 32th | — | held |
| 2026-08-21 | S&P 500 Low Volatility | -1.38% | +0.06% | 27th | — | held |
| 2026-08-14 | S&P 500 Low Volatility | +0.16% | -0.20% | 27th | — | held |