# CGK FLEET SIZING & ODDS DOCTRINE v1.0
**Date-stamped: 2026-07-17 · Status: BINDING · Authority: Gene (CGK Prop Trading)**
**Supersedes: all sizing/odds claims scattered across thread transcripts prior to this date.**
**Canonical home: dash.cgkrouter.com /static/doctrine/ · linked from /playbook "Doctrine That Binds"**

---

## 0. Why this document exists

On 2026-07-17 the fleet lost all five AQUA G2 evals in a correlated breach, and the post-mortem
exposed three separate failure modes — none of them the strategy math:

1. **Decision records lived in thread transcripts** and did not survive handoffs. The G2 5+5
   sizing was properly flagged, modeled at the exact deployed config (71.9% pass / 28.1% breach),
   and deliberately chosen — but that record was invisible to the successor thread, which
   wrongly reconstructed it as "unmodeled config drift."
2. **Two independent models disagreed** and the disagreement went unreconciled for a day,
   producing whiplash sizing recommendations while real money waited.
3. **A data-handling bug** (multi-leg per-contract normalization) doubled IB_V3's apparent
   volatility in one engine, generating false fragility claims against a correctly-analyzed
   strategy.

This document is the fix: one binding reference for how odds are computed, how sizing is
decided, what the current numbers are, and where every decision record lives.

---

## 1. The Canonical Engine

**File:** `/opt/cgk-dash/gen/mc_engine_v1.py` (v1.1 semantics) · **Results:** SQLite table `mc_runs`

Pinned specification (per EvalPass Compendium recipe):
- START $50,000 · block-bootstrap, **block size 5** · **20,000 paths** · numpy `default_rng(71)`
- Daily grid = **full session calendar including flat days** (never traded-days-only)
- EOD-trailing drawdown evaluated on **EOD balances** (intraday excursions not modeled →
  all breach numbers are floors, real risk ≥ modeled)
- Firm **DLL modeled as an explicit same-day lock barrier** (Compendium II.A/C3, adopted 7/3)
- Consistency rules as **effective target = max(PT, biggest_win_day ÷ cons_pct)**
- Horizon 132 sessions; pass-by-22 and pass-by-40 curves reported

**Provenance rule (BINDING):** every number used for a money decision must exist as a row in
`mc_runs` carrying engine version, run date, data basis, seed, and stress convention. A number
quoted from memory, a chat, or a stale card is not a decision input.

---

## 2. Stress Conventions — and the PF-dependence finding

Two conventions exist. Both are reported until the strategy thread formally pins canon:

- **SA — per-trade asymmetric:** wins ×0.86, losses ×1.10, applied at trade level.
- **SB — net ×0.70 calibrated:** positive days scaled so series net = 70% of raw; losses untouched.

**Critical finding (2026-07-17):** these are the same doctrine ONLY for high-profit-factor
strategies. The 0.86/1.10 transform produces net ×0.69 on IB_V3 (PF 2.5) — matching the
doctrine's 30% haircut — but net ×0.22–0.43 on low-PF books (S11 ×0.28, ST_CONFIRM ×0.22),
i.e., triple the intended stress. **Therefore: SB is the doctrine-intent convention for
cross-strategy comparison; SA is valid for high-PF strategies (it is what Phase 4B used on
IB_V3, where the equivalence holds).** Do not compare an SA number for one strategy against
an SB number for another.

---

## 3. Data Pipeline Doctrine

- **Source:** TradingView **Deep Backtesting** exports, freshly regenerated at export time
  (never reuse a stale Deep report), List-of-Trades sheet, identical strategy Properties
  every export (commission 0.65/side + 1-tick slippage standard — ORB's current 0.63/0-slip
  deviation is a known open item).
- **Timezone:** export clock is **ET** (empirically proven 2026-07-16: S11 export entries match
  live UTC fires 1:1 at a 4-hour offset). All wire-vs-TV diffs normalize to one timezone first.
- **Trade date:** CME convention — session starting 18:00 ET belongs to the next calendar day.
- **MULTI-LEG RULE (the v1.0 bug, now BINDING):** strategies with unequal legs (IB_V3: 2ct
  base + 1ct runner; ORB 2-TP: 2+1) must be modeled on **native-dollar daily series at export
  sizing**. Per-contract normalization across unequal legs distorts the mix (v1.0 doubled
  IB's apparent daily SD: $1,549 vs true $785). Sizing changes for multi-leg strategies scale
  TOTAL dollars, flagged as approximations, or come from a re-export at the target leg structure.
- **Cadence:** Gene drops fresh Deep exports weekly/biweekly; ingest updates `strategy_expectations`
  and the backtest series; the /playbook Δ-vs-Model column reads only ingested data.

---

## 4. Current Odds — Engine v1.1, data basis TVdeep-2026-07-16 (includes the 7/14–17 losing week)

| Config | SA pass | SB pass | Median sessions | Launch-record number | Verdict |
|---|---|---|---|---|---|
| **G2 S11+CTRN @5+5** (AQUA Std) | 42.5% | **77.0%** | 19–20 | 71.9% / 28.1% breach / med 18 | **Launch number CONFIRMED** (SB is the comparable convention) |
| **IB_V3 @3ct** (TDFY Growth) | **76.9%** | 81.4% | 26–28 | 74.6% / med 26 / $117 | **Launch number CONFIRMED** (SA comparable — high-PF) |
| IB_V3 @2ct (approx ×2/3) | 85.4% | 88.9% | 44–46 | Phase 5 menu option | Safer, slower; not required |
| **G1 S12+PDHL @2+2** (TopOne) | 60.3% | 73.1% | 23 | Phase 5 family ~76.5% | Consistent |
| G1 @3+3 (graduation resize) | 56.3% | 68.1% | **14** | — | Velocity trade: −5pp pass, −9 sessions median. Gene's call. |
| **G3 ORB+STC+STRND @3+3+2** (Legends) | 54.1% | 80.7% | 39–42 | — | Healthy; consistency rule modeled |

**DLL verification (IB @3ct):** zero historical days at or below −$1,250 — worst raw day
−$1,036, worst stressed −$1,139 — on data including the worst week in the sample. TDFY's
DLL is a real barrier but has never been touched by this strategy at this size.

**Standing schema (no changes as of this date):** G2 5+5 · IB 3ct · G1 2+2 (3+3 optional on
graduation, priced above) · G3 3+3+2.

---

## 5. Portfolio & Sizing Doctrine

1. **N identical accounts = ONE bet with N fee stamps.** Copy-traded accounts pass together or
   breach together — always. Account count multiplies fee-at-risk, never diversifies it.
   Stack count is governed by (a) single-bet fragility and (b) tolerable simultaneous fee loss.
2. **Priced-risk framework:** deployments inside Gene's stated band (~60–70%+ pass) with a
   modeled breach probability are DELIBERATE BETS, not errors, when the number exists in
   `mc_runs` before purchase. The G2 breach was the priced 28% branch landing — the process
   worked; only the record transmission failed.
3. **Velocity trades are legitimate:** larger size = lower pass odds but faster median pass
   (G2 5+5, G1 3+3). The trade must be visible as two numbers side by side before choosing.
4. **All breach numbers are floors** (EOD-level engine; live can underperform backtest — G2
   ran ~2σ under its stressed model in its three live sessions).

---

## 6. The Config-Drift Gate (BINDING)

> **No stack deploys — and no eval is purchased — at a sizing/firm combination that does not
> have a canonical-engine run of that EXACT config in `mc_runs`.**

If deployment intent changes from the modeled config (size, firm, DD type, DLL, consistency,
anything touching risk math), the engine runs the new config FIRST. The /playbook card shows
modeled-config vs deployed-config match. This gate existed informally (the G2 pre-launch flag
→ model → decide sequence); it is now standing infrastructure so it cannot be lost in a handoff.

---

## 7. Attempt Economics (the scoreboard)

**Formula (BINDING):** pass_rate × (payout − fee) − (1 − pass_rate) × fee must be positive
per attempt, evaluated at the canonical pass rate for the exact deployed config.

**Ledger:** SQLite `attempt_ledger` (one row per eval/PA attempt: stack, dates, outcome,
net P&L, fee + source) · rendered as the **Attempt Record** table on /playbook.

Record as of 2026-07-17: G2 0W–5L ($400 fees, −$10,155 closed) · G3 0W–1L, 1 active ·
G1 1 active · IB 5 active, zero trades (TDFY fee TBD — outstanding from Gene).

---

## 8. G2 Rebuy Protocol (active decision, sequenced)

The ~72–77% pass basis for five AQUA Standards at 5+5 **stands on fresh data**. Rebuy is
model-consistent. **Sequence gate:** the strategy thread's S11/CONTRARIAN edge-vs-regime
verdict (their open item #1) comes FIRST — the model assumes backtest-quality edge, and the
only live evidence (3 sessions) ran ~2σ below it. Verdict says "regime, not decay" → buy five
with confidence. Verdict says "decay" → the 77% is void and the stack goes back to research.
Reset fees ($69 × N) are the cheap part; deploying a dead edge is the expensive part.

---

## 9. Incident Record (what this doctrine learned from)

| Date | Incident | Classification | Fix |
|---|---|---|---|
| 7/17 | G2 5-account correlated breach, 3 sessions | Priced 28% branch of an informed bet | Attempt ledger; correlated-bet doctrine §5.1 |
| 7/17 | "Config drift" mis-narrative by ops thread | Decision-record transmission failure across handoff | `mc_runs` provenance; this document |
| 7/17 | Engine v1.0 IB fragility claims | Multi-leg normalization bug (ops) | §3 multi-leg rule; superseded rows retained in `mc_runs` as audit trail |
| 7/16 | TV-vs-wire timezone phantom divergence risk | Prevented by empirical ET proof | §3 timezone rule |

**Meta-rule:** when two analyses disagree, NEITHER is believed until the disagreement is
mechanically explained. That discipline found the leg bug in hours. It is the trust system.

---

## 10. Open Items (as of 2026-07-17)

1. Strategy thread: pin SA-vs-SB as formal canon (mechanism in §2 makes this a formality).
2. Strategy thread: S11/CONTRARIAN edge-vs-regime verdict → unlocks G2 rebuy (§8).
3. Gene: TDFY Growth fee → completes IB attempt economics.
4. Gene: fix ORB export Properties (commission 0.65 + 1-tick; remove leaked CrossTrade key).
5. Ops: ship backtest CSVs + engine v1.1 source parity to box; wire engine as gen job.
6. Ops: remaining ledger backfill (4 AQUAs, 80906, 05041's 7/15 rows) incl. nuke-day trades.
7. Watch: first fires — STRND exit verb, IB TDFY (Tradeify login issue pending), ib10k demo leg.

---

## 11. Change Control

This document is amended only by: (a) a new dated version in the same directory, and
(b) a changelog entry in AGENTS_README. Superseded versions are never deleted. Numbers herein
carry their data basis; when a new export lands, §4 is re-run and re-stamped — the doctrine
text survives, the numbers refresh with provenance.

*— Compiled by the ops thread, 2026-07-17, from: Phase 4B IB_V3 addendum, Phase 5 firm
assignment, the EvalPass Compendium MC recipe, the G2 pre-launch decision transcript, the IB
TDFY decision transcript, engine v1.0/v1.1 runs (`mc_runs`), and the live wire.*
