Summary¶
Four findings, in increasing order of how much they matter.
- The straddle book was never gated by the regime mapping — it cannot have been.
- The mapping's eligible-families table never lists straddles, in any row.
- The rules that actually govern the book live in prompt prose, outside the mapping,
outside
mapping_version, and outside the amendment quorum. - Straddles are absent from the table not by oversight: the mapping gates on a premise (is vol rich or cheap) that is orthogonal to the edge this book claims (exit-path management). The gate answers a question the book is not asking.
No amendment is proposed. One of the two recommended actions is cheap and governance-only; the other is blocked on data we do not have.
A fifth finding emerged from the backtest and corrects an error in this document's own first draft: measured properly, the mapping's long-vol row is right, and the reason is the term-structure conjunction rather than the vol level. See §5.
1. The book was never gated¶
Every straddle open record in the position ledger carries event_date: null and the flag
entry-date-not-recorded:
spy-765-straddle-260918 event_date=None entry-date-not-recorded
nvda-2275-straddle-260918 event_date=None entry-date-not-recorded
tlt-82-straddle-260918 event_date=None entry-date-not-recorded
tsla-365-straddle-261016 event_date=None entry-date-not-recorded
eix-55-straddle-261016 event_date=None entry-date-not-recorded
pcg-14-straddle-261016 event_date=None entry-date-not-recorded
nvda-220-straddle-261002 event_date=None entry-date-not-recorded
So no entry can be tied to a regime. And it is worse than missing bookkeeping: the regime
layer's first non-null label is 2026-09-18 (calm-contango-vrp+). Every record before
that has raw_label: null — the VIX3M mixed-instant defect era, corrected 2026-09-17. The
Sep-18-expiry straddles necessarily predate the gate producing any label at all.
There is therefore no evidence any position in this book passed a regime gate, and for the earliest three there was no gate to pass.
2. The table has no row for them¶
88-framework/decision-function.md, derived from regime_config.json:
| Regime | Eligible families | Forbidden |
|---|---|---|
| Calm contango, positive VRP | condors, calendars, diagonals | naked tails, ratio backs |
| Elevated vol, backwardation | defined-risk debit spreads, calendars w/ long-vol legs | new premium selling, 0DTE shorts |
| Transition | no new risk; manage existing | everything new |
| Event-window | no new risk by default | undefined-risk shorts |
Long straddles appear in no row. Row 1 — the dominant regime, ~65% of the 17-year sample — admits three premium-selling families. A long straddle is not forbidden there either: the gate is simply silent, and silence has been read as permission.
3. The governing rules are prose in an operational artifact¶
What actually governs the book is line 14 of the live options-round-analyst prompt:
LONG-VOL STRADDLE BOOK (current book): the edge is the EXIT PATH (EV_RN≈0 entry signature; static holding burns EV_PHYS — measured −21.9% of risk on SPY 765). Calm tape: hold to exit targets, monitor EV_PHYS drain per round. Risk-off/backwardation: straddles are the hedge book — adds only via a full
sizing.pypass. Transition: exits/rolls only.
That is a coherent rule set, and for new entries it is consistent with the mapping: in calm-contango, neither the mapping nor line 14 authorises a new straddle. The live gating is not currently permissive.
The problem is where the rule lives. It is not in regime_config.json — the file that calls
itself "CANONICAL source of mapping v0 regime bands". It is not in the decision-function
table. It is not covered by mapping_version, and it is not subject to the amendment quorum.
A prompt edit could authorise straddle entry in calm regimes without a mapping amendment.
That is the same shape as everything else corrected this week: a governance-level rule
carried in prose that no deterministic layer enforces.
4. Why straddles do not fit the axis at all¶
This is the part that makes the gap structural rather than clerical.
The mapping's axis is vol richness: rich implied → sell premium; cheap or backwardated →
buy. The book's claimed edge is explicitly not vol richness. From 85-computations/ev-ladder.md:
the pilot's long-vol book has
EV_RN ≈ 0at entry by design and its edge lives in the exit path
and line 14 puts a number on the alternative: static holding burns −21.9% of risk on SPY 765.
So the framework already asserts that these positions are not entered because vol is cheap. They are entered flat and managed out. A gate that scores vol richness cannot discriminate them — which is exactly why no row fits.
5. What 17 years say about the one long-vol row¶
From the Tier 1 backtest (4,231 scored days, 2009–2026). For a long position the sign
flips: you want vrp_realised < 0, meaning realised vol exceeded implied.
A correction to my own first pass. I began with the mean and concluded that
normal-backwardation was the least adverse regime while stressed was four times worse.
That ordering is an artefact of using the mean on a convex payoff — the very error this
document warns about two paragraphs later. Recomputed on the statistic that actually fits
the position, the conclusion largely reverses.
Mean is positive in all sixteen regimes. In seventeen years there is no regime where realised exceeded implied on average, at index level. True, and nearly useless on its own.
Frequency and magnitude, which is what a convex position lives on:
| regime | n | long-win % | median win | best |
|---|---|---|---|---|
calm-flat-vrp+ |
201 | 25.4% | −0.0280 | −0.6279 |
stressed-backwardation-vrp+ |
41 | 22.0% | −0.3917 | −0.4669 |
calm-contango-vrp+ |
1503 | 19.6% | −0.0387 | −0.6517 |
normal-backwardation-vrp+ |
44 | 18.2% | −0.1794 | −0.5645 |
normal-contango-vrp+ |
489 | 8.8% | −0.0268 | −0.0991 |
stressed-contango-vrp+ |
36 | 2.8% | −0.0070 | −0.0070 |
stressed-flat-vrp+ |
132 | 0.0% | — | +0.0069 |
By VIX band:
| band | n | long-win % | median win |
|---|---|---|---|
| calm | 2970 | 16.9% | −0.0350 |
| normal | 1020 | 12.1% | −0.0500 |
| stressed | 241 | 4.6% | −0.3917 |
Stressed regimes win least often and win roughly eleven times bigger when they do. That is the convex profile, and the mean flattens it into the opposite answer.
What this says about the mapping¶
The mapping's long-vol row is vindicated, not undermined. stressed-backwardation-vrp+
has the best frequency-and-magnitude profile of any regime in the sample: a 22% hit rate with
a −0.39 median win. My mean-based pass called it four times worse than normal-backwardation;
it is the best row on the table.
But within stressed, the discriminating axis is TERM STRUCTURE, not the VIX band — and that is the sharper finding:
stressed-backwardation→ 22.0% win rate, median win −0.3917stressed-contango→ 2.8%stressed-flat→ 0 wins in 132 days
So "elevated vol" alone is not the signal. High VIX with a flat or contango term structure is the single worst place to be long vol in seventeen years — worse than anything in calm — while high VIX with backwardation is the best. The mapping already requires backwardation alongside elevated vol, so it has this right; the evidence says that conjunction is doing all the work and the VIX band alone would be actively misleading.
Frequency, unchanged: backwardation of any kind is 101 of 4,231 days — 2.4%, about one day in 41. The mapping's long-vol row is correct and almost never open.
The caveat that still bounds all of this¶
vrp_realised is a per-unit-vega proxy, not straddle P&L. It cannot see gamma, path, or
financing, and above all it cannot price an exit path — which is where this book claims
its entire edge. Nothing here tests that claim. What it does establish is that the regimes
the mapping selects for long vol are the right ones on the measure available, and that the
term-structure conjunction rather than the vol level is why.
Recommendation¶
(a) Governance fix — cheap, and now better supported. Do it. Move the straddle rules
from prompt prose into the mapping as a governed long-vol archetype, versioned under
mapping_version and bound by the amendment quorum. The evidence in §5 says the row's
existing condition — elevated vol and backwardation — is the right one, so this is
largely a relocation rather than a redesign.
One addition the evidence does support: make the term-structure conjunction explicit and
binding, because high VIX without backwardation is the worst long-vol environment in the
sample (stressed-flat: 0 wins in 132 days). A rule that reads "elevated vol → long-vol
tilts" without the backwardation condition would be actively harmful, and the prompt's
line 10 currently reads elevated/backwardation as a single token — worth stating as two
conditions that must both hold.
(b) Substantive question — blocked, do not pre-empt. Whether the exit-path edge exists is
not answerable by the regime mapping, and not by vrp_realised. It needs an EV/exit replay
over real option chains — backtest Tier 2, blocked on a historical options vendor.
Doing (a) without (b) formalises a rule whose entry condition is now evidenced but whose edge premise is not. That is a reasonable trade — the rule is already in force in prose, and moving it into governance makes it reviewable and quorum-bound — but it should be chosen knowingly.
A note on method¶
This document's first draft got §5 backwards. It ranked regimes by mean vrp_realised,
concluded stressed-backwardation was four times worse than normal-backwardation, and
recommended splitting the mapping's long-vol row on the VIX band — while separately warning,
in the same draft, that the mean is the wrong statistic for a convex payoff. Recomputing on
win frequency and win magnitude reversed the ranking and pointed at term structure instead.
Both numbers came from the same 4,231-day series. The error was not in the data.