Files
signal-platform/reports/portfolio-construction-prod505-capacity-bracket-daily-v1.md
dennisthiessenandClaude Opus 5 f5d4b516ab
Deploy / lint (push) Successful in 10s
Deploy / test (push) Successful in 1m21s
Deploy / deploy (push) Successful in 37s
docs: land capacity-study evidence and share the rank-map helper
Brings the durable artifacts of research/portfolio-capacity-rebalancing onto
main so the rationale for raising the count cap lives with the code that cites
it. The matrix runner, the research simulator hooks and the study's unit tests
are deliberately left behind; they remain at tag research/portfolio-capacity-final.

Corrects conclusions that were reached on EV per trade and are now superseded:
the findings doc's decisions 1 (keep cap 10) and 4 (run the risk-floor A/B) are
struck through and answered in a new correction section, and the research README
and phase-A matrix entries are updated to match. The frozen specification itself
is untouched -- its recorded SHA-256 f1e37783 still verifies.

effective-risk-floor-ab.md is retained but marked CLOSED/NEGATIVE: the study it
proposes is already answered by cap15 vs cash_unbounded (-0.753pp CAGR while
EV/trade rises), and its EV-based pass rule would have shipped it.

scripts/research_rankings.py replaces a fourth copy of the historical rank-map
helper; run_research_matrix, run_execution_recovery_matrix and
run_daily_reentry_matrix now share it. The shared version adds a duplicate
observation guard and a deterministic symbol tie-break the copies lacked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 23:08:29 +02:00

4.9 KiB

Focused daily portfolio-capacity matrix

Generated: 2026-08-05T19:25:17.150472+00:00

Question

The current daily Phase A control admitted 472 trades and rejected 519 qualified opportunities because the ten-slot book was full. This run brackets the economic cost of that binding constraint; it has no formal promotion gate.

Universe caveat: today's production membership is projected backward. Use paired arm-versus-control differences, not absolute profitability, for construction conclusions.

Validated universes

  • Tradable setup symbols with prices: 505.
  • Rank-only symbols with prices: 4149.
  • Full ranking symbols with prices: 4654.
  • Tradable qualified longs: 6118.
  • Rank-only qualified rows removed: 136286.

Paired annual medians

Empty Book — 0.10% per fill

Arm ΔEV net R 90% context ΔCalmar 90% context
cap10_incumbent 0.000 [0.000, 0.000] 0.000 [0.000, 0.000]
cash_unbounded 0.044 [-0.011, 0.060] 0.030 [-0.030, 0.120]
cap10_weekly_top10 0.000 [-0.091, 0.000] 0.000 [-0.260, 0.000]
cap15_incumbent 0.000 [0.000, 0.011] 0.000 [0.000, 0.130]
Arm ΔPF ΔGain-to-Pain ΔSortino ΔCAGR pp ΔMaxDD pp
cap10_incumbent 0.000 0.000 0.000 0.000 0.000
cash_unbounded 0.079 0.047 -0.013 1.350 0.000
cap10_weekly_top10 0.000 0.000 0.000 0.000 0.000
cap15_incumbent 0.000 0.000 0.000 0.000 0.000

Warm Book — 0.10% per fill

Arm ΔEV net R 90% context ΔCalmar 90% context
cap10_incumbent 0.000 [0.000, 0.000] 0.000 [0.000, 0.000]
cash_unbounded 0.034 [-0.014, 0.100] 0.050 [-0.160, 0.250]
cap10_weekly_top10 0.000 [-0.158, 0.065] 0.000 [-0.200, 0.330]
cap15_incumbent 0.000 [-0.006, 0.000] 0.000 [0.000, 0.180]
Arm ΔPF ΔGain-to-Pain ΔSortino ΔCAGR pp ΔMaxDD pp
cap10_incumbent 0.000 0.000 0.000 0.000 0.000
cash_unbounded 0.062 0.085 -0.004 2.200 0.400
cap10_weekly_top10 0.000 0.012 0.018 0.300 0.000
cap15_incumbent 0.000 0.000 0.000 0.000 0.000

Empty Book — 0.20% per fill

Arm ΔEV net R 90% context ΔCalmar 90% context
cap10_incumbent 0.000 [0.000, 0.000] 0.000 [0.000, 0.000]
cash_unbounded 0.041 [-0.010, 0.052] 0.030 [-0.015, 0.100]
cap10_weekly_top10 0.000 [-0.090, 0.000] 0.000 [-0.260, 0.000]
cap15_incumbent 0.000 [0.000, 0.010] 0.000 [0.000, 0.110]
Arm ΔPF ΔGain-to-Pain ΔSortino ΔCAGR pp ΔMaxDD pp
cap10_incumbent 0.000 0.000 0.000 0.000 0.000
cash_unbounded 0.066 0.035 -0.014 0.900 0.000
cap10_weekly_top10 0.000 0.000 0.000 0.000 0.000
cap15_incumbent 0.000 0.000 0.000 0.000 0.000

Warm Book — 0.20% per fill

Arm ΔEV net R 90% context ΔCalmar 90% context
cap10_incumbent 0.000 [0.000, 0.000] 0.000 [0.000, 0.000]
cash_unbounded 0.034 [-0.022, 0.102] 0.040 [-0.130, 0.230]
cap10_weekly_top10 0.000 [-0.158, 0.065] 0.000 [-0.190, 0.310]
cap15_incumbent 0.000 [-0.006, 0.000] 0.000 [0.000, 0.170]
Arm ΔPF ΔGain-to-Pain ΔSortino ΔCAGR pp ΔMaxDD pp
cap10_incumbent 0.000 0.000 0.000 0.000 0.000
cash_unbounded 0.060 0.083 -0.003 2.100 0.300
cap10_weekly_top10 0.000 0.017 0.020 0.300 0.000
cap15_incumbent 0.000 0.000 0.000 0.000 0.000

Warm-seed initialization dispersion

Arm Cost/fill Median EV IQR ratio Median Calmar IQR ratio
cap10_incumbent 0.10% 1.000 1.000
cash_unbounded 0.10% 1.000 1.000
cap10_weekly_top10 0.10% 1.000 1.000
cap15_incumbent 0.10% 1.000 1.000
cap10_incumbent 0.20% 1.000 1.000
cash_unbounded 0.20% 1.000 1.000
cap10_weekly_top10 0.20% 1.000 1.000
cap15_incumbent 0.20% 1.000 1.000

Capacity and operations — 0.10% per fill

Arm Median trades Median blocked Median positions Peak Turnover Min-risk rejects
cap10_incumbent 76.0 21.6% 4.98 10 26.36 0
cash_unbounded 74.0 0.0% 4.82 12 26.76 85517
cap10_weekly_top10 88.0 18.1% 5.13 10 28.44 0
cap15_incumbent 79.0 0.0% 5.15 12 27.32 0

Weekly-ranking opportunity set

  • Median fresh entrant pool: 0.0.
  • Median zero-entrant fraction: 0.558.
  • Replacements across reported paths: 2170.
  • Same-symbol re-entries within 10 sessions: 529.

Bootstrap intervals above resample seven annual summaries and are descriptive context only. They are not gates or independent-population confidence claims.