← Back to Updates ·
Comparison page →
Money-Maker Plan — ChatGPT Codex
RESEARCH SURFACE — NOT FINANCIAL ADVICE
Source: OpenAI Codex · Generated 2026-05-11 · Most conservative of the 5 plans (matches user's stated "all classes first" preference)
Summary
- Current truth as of May 11, 2026: live
/audit is fresh, but the stored DB-health artifact is still red across all 6 checks, and hf_stats.concept_drift.drift_alert is still true. The first bottleneck is data trust, not new alpha.
- Class picture: EQUITY is the strongest broad candidate, ETF has the cleanest OOS profile but is still thin, CRYPTO has strong sub-systems but weak class-level behavior, FOREX is not credible OOS, COMMODITY is concentration-suspect, BOND is too thin.
- You chose "All classes first". This plan blocks live capital until every major class has a clean verdict and no shared data-integrity blocker can contaminate cross-class decisions.
- Use the already-shipped
.claude/skills/money-maker-ready/SKILL.md as the standard audit protocol. Do not spend time "promoting" the proposal; spend time making its inputs trustworthy and its verdicts class-actionable.
1. Fix the truth layer before any edge work
- Treat
db_health.json as a hard global gate. No class can advance while any of these stay red: pnl_integrity, ghost_rows, open_bloat, phantom_expired, outcome_coverage, won_pnl_contradiction.
- Repair the MySQL write/resolve path so closed outcomes, terminal statuses, and PnL signs are internally consistent. Target: eliminate phantom-expired rows, frozen validator behavior, and "WON with negative PnL" contradictions.
- Enforce asset-class tagging at write time and backfill any residual
UNKNOWN/mis-tagged rows before class analytics are recomputed.
- Make the audit pipeline publish a single machine-readable readiness gate in
dashboard_data.json that merges DB-health, drift, freshness, and resolver coverage.
2. Make /audit explicitly class-readiness-aware
- Extend the dashboard payload with a
readiness.by_class block for CRYPTO, EQUITY, ETF, FOREX, COMMODITY, and BOND.
- Each class record includes:
verdict, stage, blockers, n_cumulative, n_recent, oos_trades, oos_sharpe, oos_consistency, recent_pf, recent_wr, recent_max_dd, system_concentration, symbol_concentration, data_trust_ok.
- Add
leaders.by_class and draggers.by_class so the dashboard shows which source systems are driving or poisoning each class.
- Reconcile
/audit threshold text with docs/PERFORMANCE_CHARTER.md.
- Surface
capped_vs_raw_pnl_gap and single_symbol_concentration directly in the UI.
3. Replace the current "real money tracker" with a class-aware rollout state machine
- Retire the current crypto-centric assumptions in
alpha_engine/real_money_tracker.py as the readiness authority.
- Replace with one state per class:
BLOCKED
REHAB
OOS_READY
SHADOW
LIVE_ELIGIBLE
- The state machine must hard-block progression when global gates fail: stale payload, red DB-health, unresolved drift, missing walk-forward.
- Progression rules:
- REHAB → OOS_READY:
n ≥ 100, PF/WR/MDD at least Tier 2, positive OOS Sharpe, OOS consistency ≥ 80%.
- OOS_READY → SHADOW: also passes stress/regime replay and concentration caps.
- SHADOW → LIVE_ELIGIBLE: 14-30 days of forward shadow tracking with realized-vs-expected variance inside a fixed tolerance band.
- Because you chose all-classes-first, no class receives live capital until all six major classes are at least
SHADOW and none remain data-ambiguous.
4. Run six parallel class rehab tracks
EQUITY
- Lead class. Bottom-symbol pruning, High Conviction parity, feature upgrades around earnings drift, sector-relative strength, breadth. Force disclosure of capped-vs-raw PnL gap.
ETF
- Expand universe to
n ≥ 100 quickly. Block leveraged ETFs. Add sector-theme concentration caps. Sector-dispersion, AUM, and expense-ratio filters.
CRYPTO
- Do not evaluate as a broad class until poison removed. Quarantine documented draggers (
kimi_signal_tracking, stale/dead emitters like ml_crypto_pred_v12, overfit baby_strats:crypto_soc_*). Add funding, basis, open-interest, on-chain features. Score by sleeve/subsystem.
FOREX
- Keep in mutate-before-kill mode. Rebuild with symbol/direction/session/macro filters. Wire COT, DXY beta, carry/rate differential, news-blackout logic before expecting recovery.
COMMODITY
- Treat current headline PF as untrusted until concentration disclosed and walk-forward exists. Symbol concentration caps. Term-structure, COT, inventory, seasonality features. Only promote if edge survives outside CT=F/KC=F concentration.
BOND
- Expand universe, add duration/risk filters. Paper-only until meaningful sample.
Test plan
- Re-run the shipped
money-maker-ready audit on the freshest deployed payload after every pipeline change; require class-labeled claims in every report.
- Contract tests for new payload blocks:
readiness.by_class, leaders.by_class, draggers.by_class, concentration/caveat fields.
- Regression tests that fail if dashboard threshold text diverges from
PERFORMANCE_CHARTER.md.
- Integration tests that prove red DB-health or active drift forces
BLOCKED in the state machine.
- Per-class validation tests:
- EQUITY stays green only if symbol pruning improves recent PF without breaking OOS consistency.
- ETF stays non-live below
n=100.
- CRYPTO stays blocked if draggers are present even when elite sleeves look good.
- FOREX stays blocked while OOS Sharpe is negative.
- COMMODITY stays blocked if concentration caps breached or walk-forward missing.
- BOND stays blocked while sample below floor.
- Shadow-tracking acceptance test: each class must complete a forward shadow window with variance inside the agreed tolerance before becoming
LIVE_ELIGIBLE.
Assumptions and defaults
- "All classes first" = no live capital until CRYPTO, EQUITY, ETF, FOREX, COMMODITY, and BOND all have clean readiness states. FUTURES and SPORTS stay excluded until enough data to join.
- Tier 2 from
docs/PERFORMANCE_CHARTER.md is the minimum promotion floor unless stricter per-class rule documented.
- Read-only access to
ejaguiar1_stocks and ejaguiar1_backtests needed for verification; without it, reports remain advisory not promotion-grade.
- No years-long backtesting program needed. Path: clean the data, rehab the classes in parallel, complete OOS/stress validation, then run short forward-shadow windows across all classes.
- Local payload snapshot is stale relative to live page; prefer freshest deployed payload or direct DB query over old checked-in JSON when making promotion decisions.