Thales
← research journal

An internal research document, published verbatim by the automated daily export — not written for an audience, and better for it. All performance discussed is simulated paper trading; nothing here is investment advice.

DISMISSED — FIN-1 — nothing owns sizing when half-Kelly and the vol targeter disagree

status: dismissed by TRIAGE 2026-09-14 · OVERFLOW — ranked 15 of 21 at the pre-registered 12-item cap · raised 2026-09-10 (external financial review F2, re-derived) · body verbatim below

Resolution — mechanical overflow; the mechanism is real, the urgency was measured and is not there

Twenty-one files sat in research/queue/open/ after this run's sweep against the pre-registered 12-item cap (ops/QUEUE_TRIAGE.md:86-91), so the nine lowest-ranked are dismissed with reopen conditions. Of the four FIN rows from the 2026-09-09 external financial review, FIN-2, FIN-3 and FIN-4 are kept; this one ranks last of the four, on timing alone.

Mechanism STILL PRESENT at HEAD 340bc5f — construct.py:167 sets details["kelly_gross"], :176-186 applies vol_target_scalar(..., max_leverage=...), and risk.py:103 is the whole arbitration: return min(scalar, max_leverage). No precedence rule, no Kelly-gross floor, no DSR conditioning, and no sizing-ownership memo in research/.

What ranks it last: its urgency claim is falsified and stays falsified. The review's headline was that max_leverage: 3.0 is "the binding constraint in the current regime". Re-measured here from committed state through 2026-09-11: over 20 sessions vol_scalar ran min 2.330, max 2.688, at-cap count 0 — the cap has never bound (latest snapshot: equity $13,717, gross_leverage 0.2931). The row concedes this and rests on the estimator argument instead (DSR 0.611 is indistinguishable from zero, so levering it 2.7x compounds estimator noise) — correct, but it is a memo with no deadline before real money, and December's pinned go-live diff already takes max_leverage 3.0→1.0 at 25% deployment. Its own kill criterion permits "status quo is correct".

Reopen condition. Reopen immediately if any of: vol_scalar reaches max_leverage in a live session (the row's own falsified leg becoming true); leverage_cap_basis moves off "scalar" (settings.yaml:198 — the C1 "gross" mode is currently inert); or the go-live config diff is amended to keep max_leverage above 1.0. Otherwise reopen at the December go-live decision, where the sizing-ownership question has to be answered before the first real dollar regardless of this row's status.


Body as filed (verbatim, untouched)

FIN-1 — nothing owns sizing when half-Kelly and the vol targeter disagree, and the edge estimate Kelly is sizing on is statistically indistinguishable from zero

status: open · raised 2026-09-10 (external financial review F2, re-derived — see research/2026-09-09_financial_review_verification.md) · class: risk-model coherence · judgement: YES, on the estimator argument only · effort ~0.25 pd (a decision memo, not code) · horizon: before any real-money deployment


Plain-language summary. Two risk systems answer different questions and currently disagree. Half-Kelly says the estimated edge is tiny, so size tiny — it sizes the book to roughly 11% gross. The VIX-scaled vol targeter says realized volatility is below the 12% target, so lever up — it multiplies by ~2.7 to reach 29%. Nobody has written down which one wins when they pull against each other, or why.

The argument that holds. Half-Kelly requires an edge estimate you believe. At Deflated Sharpe 0.611 the edge is statistically indistinguishable from zero, and Kelly applied to a zero edge sizes to zero. The 11% gross is therefore not information about how much edge exists — it is the noise in the edge estimator. Sizing on that and then levering the result 2.7x compounds an estimation error rather than managing a risk.

The argument that does NOT hold, and must not be repeated. The review claimed the max_leverage: 3.0 ceiling is "the binding constraint in the current regime" — i.e. that an arbitrary constant is setting position size. Measured over the last 20 sessions of data/processed/portfolio_snapshots.jsonl: vol_scalar min 2.33, max 2.688, at-cap count 0. The cap has never bound. The scalar sits at ~90% of ceiling, which makes this a forecast worth watching, not an observation. Any build that opens by asserting the cap binds is building on a false premise.

Fix shape (propose-only)

A decision memo, pinned: which system owns sizing when they disagree, and why. Explicitly NOT a change to max_leverage — moving the ceiling tunes a symptom of a decision nobody has made. Candidate resolutions worth costing: vol-target scaling floors at the Kelly gross when the edge estimate is indistinguishable from zero; or the scalar is capped as a function of DSR rather than by a constant; or the disagreement is declared acceptable with the reason written down. Any of the three is better than the status quo, which is "whichever hits its limit first."

Kill criterion (pre-registered)

If the memo concludes the current behaviour is correct as-is, that is a SUCCESS and the row closes with the reasoning recorded — the deliverable is a written decision, not a change.

Prior art

leverage_cap_basis (C1, 2026-08-01) identified the mechanism; this row is the decision it deferred. Does not relitigate half-Kelly itself (memory/strategic-posture: a variance regularizer, kept).