The 8-check broker pre-flight chain.
Airline pre-flight checklists exist because cockpits are stressful and procedures save you under stress. Every commercial flight runs through the same fixed sequence — fuel, weight, weather, instruments, crew briefing, alternates, departure clearance, takeoff readiness — before the wheels move. The framework's broker pre-flight chain is the same idea applied to order placement. Eight checks, fixed sequence, default-refuse semantics. Every order placed through the dashboard runs the gauntlet; orders that fail any check are refused at preview time, before the place button enables. The chain is the framework's most consequential single piece of code — most of the discipline lives or dies in broker_guard.py.
The eight checks in order
| # | Check | Refuses when |
|---|---|---|
| 1 | Audit freshness | Audit data older than BROKER_STALE_MAX_SECONDS (default 900s = 15min) |
| 2 | R:R floor | Structural R:R below 2.0:1 (per Lesson 4) |
| 3 | Position size cap | Max-shares math exceeds available risk-budget OR per-name cap |
| 4 | Sector + sleeve concentration | Adding this trade pushes any of: sector cap, Sports Cars sleeve cap, Sovereignty Cap (per L13/L14/L21) |
| 5 | Macro tape | SPY pre-market ≤ −1.5% OR VIX > 30 OR drawdown ≥ 7% (per L11/L15) |
| 6 | Catalyst proximity | Earnings within 3 sessions OR FOMC within 90-min window (per L19/L23) |
| 7 | Options-level enforcement | Options entry but Level 1-2 only allowed (no naked, no complex) |
| 8 | HMAC-token + rate-limit + cooldown + dollar-cap | Bracketing safety: token mismatch / rate exceeded / cooldown active / order $ exceeds session cap |
Order matters. Earlier checks gate the later ones. If audit freshness fails (#1), the chain stops there — no point computing R:R off stale data. If R:R fails (#2), no point checking sector concentration. The cascade exits at the first refusal.
The override mechanism
Every check has an override toggle. The override:
- Requires explicit user action (typed CONFIRM in a 2-stage modal)
- Logs the override with timestamp, gate name, reason field (typed by user), eventual P&L
- Surfaces in the next Friday close ASSESS phase as an off-plan-or-flagged trade
- Accumulates in the journal as a per-gate adherence record over time
The journal review at year-end almost always shows that overrides made things worse, not better, by a margin most users find uncomfortable. The data is undeniable; the framework's job is to make the override visible without making it impossible. The trader retains agency; the journal forecloses self-deception.
Why default-refuse instead of default-allow
This is an architectural commitment. A system that defaults to "allow unless someone speaks up" requires the trader to remember every reason to refuse. They'll forget some. A system that defaults to "refuse unless every check explicitly passes" requires the math to actively earn each yes. The math doesn't forget. Same reasoning that puts default-refuse on every airline pre-flight: the cost of a missed check on the dangerous direction is asymmetric.
The audit log
Every gate decision (pass, refuse, override) writes to the broker_log. The log is queryable per-gate, per-name, per-session. Useful patterns it surfaces over time:
- Which gate refuses most often (usually R:R floor or catalyst proximity)
- Which gate gets overridden most often (usually catalyst proximity — traders chase earnings)
- Override-vs-pass P&L differential per gate (almost always negative for catalyst-proximity overrides)
- Time-of-day and day-of-week patterns in override frequency (most overrides happen Friday afternoon — fatigue + week-end pressure)
The real lesson
Eight checks, fixed sequence, default-refuse. The framework's pre-flight chain is the most consequential code in the dashboard because it's the gate every order passes through. Override exists, logs, and produces a year-end honest record. The trader who runs this chain weekly for a year accumulates a forensic adherence audit no other retail product produces. The math doesn't forget; the journal makes the pattern undeniable.
Related: L12 — 13 risk pillars · L22 — journal canonical