← Back to Dashboard
⚠️ SUPERSEDED HISTORICAL SNAPSHOT (Mar 2026, 87-trade cohort)
The numbers below are a frozen snapshot from the 87-trade cohort (Mar 2026).
Live state: ~117 closed trades, WR ~37%, net +$212.
Canonical sources: docs/STRATEGY_PLAYBOOK.md §2 + docs/FINDINGS.md.
Financial Projections & Assumptions (Revised After 87 Trades)
Date: March 9, 2026
Data source: 87 closed trades (84 clean, 3 bug-affected excluded) from Jan 7 — Mar 7, 2026
Purpose: Single reference document capturing all strategy analysis findings and implemented changes at the 87-trade milestone. Next re-evaluation at 150 trades.
⚠️ Apr 25, 2026 — partially superseded
This document captured the state at trade #87 (Mar 9, 2026). It remains
useful as a historical snapshot of the Mar 9 implementation push (Finding #202)
and the projections drawn from that data. For current numbers and the
ranked queue of next changes, see:
docs/STRATEGY_PLAYBOOK.md §1 (verdict at the 87-trade snapshot) and
§2 (combined Action Queue).
- Dashboard 🎯 Action Queue tab (live, recomputed on every report run).
docs/FINDINGS.md Finding #228 (Apr 25 — v3 Finding A retraction).
The Improvements / next-steps sections below are stale — many of the
6 recommendations from STRATEGY_IMPROVEMENTS.md (which is now a redirect)
have been shipped, retracted, or evolved. Do not treat the projections in
this file as the operational forward plan.
1. Strategy Overview (Post-Revision)
Changes Implemented (Finding #202, Mar 9, 2026)
| Parameter |
Previous |
New |
Rationale |
| LONG conviction max |
None (uncapped) |
90% |
90%+ conviction trades: 14.3% WR, -$116 P&L, 78% stop rate. Stock already priced in. |
| Stop loss (Large) |
2% |
3% |
Moderate widening improves total P&L by +$115 (from +$51 to +$166). |
| Stop loss (Mid) |
3% |
4% |
Same analysis. Moderate is the sweet spot — wider than that shows diminishing returns. |
| Stop loss (Small) |
4% |
5% |
Same analysis. |
Signal Acceptance Rules (Mar 2026 snapshot)
| Parameter |
Value |
| LONG conviction |
70% to <90% |
| SHORT conviction |
<=30% (miss probability >=70%) |
| Small cap LONG |
70-80% only (Finding #207). 80%+ blocked. Backtest: 70-80% has 66.7% WR, EV +$30.68. |
| Small cap SHORT |
Not allowed (squeeze risk) |
| Stop loss (Large) |
3% |
| Stop loss (Mid) |
4% |
| Stop loss (Small) |
5% |
| Entry (BMO) |
3:58 PM ET day before earnings |
| Exit (BMO) |
10:32 AM ET on earnings day |
| Entry (AMC) |
10:34 AM ET on earnings day |
| Exit (AMC) |
3:57 PM ET next trading day |
| Metric |
Value |
| Total trades |
84 clean (87 total) |
| Win rate |
32.1% |
| Total P&L |
+$82.95 |
| EV per trade |
+0.05% |
| Profit factor |
1.16 |
| Max drawdown |
-$166.55 |
| Sharpe-like ratio |
0.0082 |
| Current ROI |
+3.32% |
| Total commissions |
$125.31 ($1.74/trade) |
| Prediction accuracy |
81.0% (84/84 trades with known outcome) |
| Stop loss hit rate |
54.8% (46/84) |
3. Direction x Timing Analysis
| Combo |
Trades |
Win Rate |
P&L |
EV/Trade |
Stop Rate |
Survival to Exit |
| LONG BMO |
38 |
44.7% |
-$13.44 |
-$0.35 |
43% |
40% |
| LONG AMC |
34 |
20.6% |
-$46.75 |
-$1.38 |
64% |
17% |
| SHORT AMC |
10 |
20.0% |
+$120.81 |
+$12.08 |
50% |
30% |
| SHORT BMO |
2 |
50.0% |
+$22.33 |
+$11.16 |
50% |
50% |
Key Findings
- LONG AMC structural disadvantage: 13 of 23 AMC stops trigger at 16:01-16:17 ET — immediately after earnings release, not from pre-earnings noise. Only 17% survive to scheduled exit.
- When LONG AMC survives: 100% winners (+$184 on 6 trades, EV +$30.70). The edge exists but survival rate is too low.
- SHORT AMC best ROI: +3.75% ROI per dollar deployed. Large wins when miss predictions are correct.
- BMO vs AMC cohort backtest (Q3 2025, winsorized): BMO +1.23% EV (significant), AMC ~0% EV (no edge).
4. Conviction Analysis
| Band |
Trades |
Win Rate |
EV/Trade |
P&L |
Stop Rate |
| 70-80% |
28 |
39.3% |
+1.49% |
+$219.27 |
43% |
| 80-90% |
33 |
39.4% |
+0.01% |
-$32.79 |
47% |
| 90-95% |
21 |
14.3% |
-1.26% |
-$71.69 |
78% |
| 95%+ |
2 |
0.0% |
-5.62% |
-$31.84 |
17% |
| Band |
Trades |
WR |
P&L |
EV/Trade |
| 70-75% |
12 |
50.0% |
+$77.57 |
+$6.46 |
| 75-80% |
14 |
21.4% |
-$19.41 |
-$1.39 |
| 80-85% |
16 |
50.0% |
+$86.63 |
+$5.41 |
| 85-90% |
21 |
38.1% |
+$75.49 |
+$3.59 |
| 90-95% |
23 |
17.4% |
-$72.33 |
-$3.14 |
| 95%+ |
6 |
0.0% |
-$43.92 |
-$7.32 |
Q3 2025 Backtest Validation (5% buckets)
| Band |
Trades |
WR |
EV/Trade |
| 70-75% |
20 |
60.0% |
+$11.10 |
| 75-80% |
38 |
34.2% |
-$0.20 |
| 80-85% |
55 |
32.7% |
+$0.58 |
| 85-90% |
53 |
49.1% |
+$3.46 |
| 90-95% |
45 |
55.6% |
+$2.71 |
| 95%+ |
62 |
45.2% |
+$2.40 |
Key Finding
- 90%+ is profitable in Q3 2025 backtest but fails catastrophically in live 2026 trading (78% stop rate)
- The divergence is caused by higher pre-earnings volatility in 2026 and tighter stops triggering more often on high-conviction trades where the stock barely moves
- 75-80% dip in live data is statistically insignificant (14 trades, CIs overlap with adjacent bands)
- The 70-80% band is the best in both datasets
5. Stop Loss Analysis
Current vs Scenario Comparison (Using Actual Polygon Exit Prices)
| Scenario |
Stops Triggered |
Stop P&L |
Total P&L |
Data Coverage |
| Current (2%/3%/4%) |
35/46 |
-$478 |
+$51 |
9/11 priced |
| Moderate (3%/4%/5%) |
13/46 |
-$363 |
+$166 |
21/33 priced |
| Wide (4%/5%/6%) |
2/46 |
-$393 |
+$136 |
29/44 priced |
| Flat 5% all |
2/46 |
-$393 |
+$136 |
29/44 priced |
Stop Reversal Analysis (Polygon Actual Prices)
Of 41 stopped trades with correct predictions (prediction matched earnings outcome):
- 10 would have been winners at scheduled exit (+$113 total)
- 19 would have been losers at scheduled exit (-$473 total)
- Holding to exit would have been WORSE (-$360 vs -$399 from stops)
- "Correct prediction" does NOT guarantee favorable stock movement
Rationale for 3%/4%/5%
The moderate scenario reduces stops from 35 to 13 while improving total P&L by +$115. Going wider (4%/5%/6%) shows diminishing returns as the remaining 2 stop triggers lose more per trade.
6. Prediction Accuracy
| Outcome |
Trades |
% |
P&L |
| Correct: Beat predicted, Beat happened |
59 |
70.2% |
+$17.55 |
| Correct: Miss predicted, Miss happened |
9 |
10.7% |
+$18.67 |
| Wrong: Beat predicted, Miss happened |
13 |
15.5% |
-$45.18 |
| Wrong: Miss predicted, Beat happened |
3 |
3.6% |
-$8.94 |
| Overall accuracy |
84 |
81.0% |
|
Volume-Prediction Correlation (34 trades with data)
Note: the $1,847 figures below are the median-split analysis buckets for this cohort, not a trading threshold. The live volume gate is $1,000 (Finding #311).
- Low volume (<$1,847): 62.5% accuracy
- High volume (>=$1,847): 37.5% accuracy
- Higher volume correlates with lower accuracy (-12% difference)
- Sample too small for statistical significance
| Regime |
Trades |
Win Rate |
P&L |
| Uptrend |
36 |
38.9% |
+$48.06 |
| Sideways |
32 |
25.0% |
-$77.89 |
| Downtrend |
16 |
31.2% |
+$112.78 |
8. Backtest Scenario Comparison (Q3 2025, 370 Markets)
| Scenario |
Trades |
WR |
EV/Trade |
ROI |
PF |
| Original Projections ($25K) |
273 |
50.2% |
+1.53% |
+46.1% |
2.31 |
| Live Constraints ($2.5K) |
273 |
44.7% |
+0.90% |
+13.0% |
1.55 |
| Conviction >= 75% |
253 |
43.5% |
+0.63% |
+8.2% |
1.37 |
| Conviction >= 80% |
215 |
45.1% |
+0.77% |
+8.2% |
1.42 |
| Large Cap Only |
43 |
48.8% |
+0.42% |
+2.2% |
1.46 |
| Stop Loss: 2% all |
273 |
44.7% |
+1.25% |
+17.9% |
1.96 |
| Stop Loss: 4% all |
273 |
44.7% |
+0.86% |
+11.8% |
1.48 |
| Stop Loss: 5% all |
273 |
44.7% |
+0.74% |
+10.0% |
1.37 |
| No Stop Loss |
273 |
44.7% |
+0.10% |
+0.9% |
1.02 |
| Conviction 70-80% Only |
58 |
43.1% |
+1.37% |
+4.8% |
2.19 |
| BMO Only |
157 |
46.5% |
+1.68% |
+14.0% |
1.90 |
| BMO + Conv 70-75%/80-90% |
77 |
44.2% |
+2.14% |
+9.3% |
2.17 |
Key Backtest Findings
- BMO-only (scenario 15): PF 1.90, ROI +14.0% — highest ROI of any day-close single-filter scenario
- Combined filter (scenario 16): PF 2.17, EV +2.14% — highest profit factor and EV per trade
- 1h/2h exit scenarios show inflated ROI due to AMC outlier (+902% return) — use winsorized cohort data instead
9. BMO/AMC Cohort Timing (Winsorized, Q3 2025)
BMO Cohort (151 trades)
| Horizon |
WR |
EV/Trade |
| 4h |
48.3% |
+1.23% |
| Day close |
48.3% |
+1.19% |
| 2h |
48.3% |
+1.11% |
| 1h |
45.7% |
+0.92% |
AMC Cohort (122 trades)
| Horizon |
WR |
EV/Trade |
| 4h |
43.4% |
-0.00% |
| 1h |
41.8% |
-0.09% |
| 2h |
41.0% |
-0.15% |
| Day close |
40.2% |
-0.20% |
Current exit timing (BMO ~1h after open, AMC ~day close) is near-optimal.
| Metric |
Projected |
Actual |
Status |
| Win Rate (Longs) |
49.5% |
33.3% |
Worse |
| Win Rate (Shorts) |
60.3% |
25.0% |
Worse |
| Avg Win % (Longs) |
7.12% |
5.71% |
Worse |
| Avg Loss % (Longs) |
-2.62% |
-3.20% |
Worse |
| EV per Trade (Overall) |
2.43% |
0.05% |
Worse |
| Stop Loss Hit Rate |
15.0% |
54.8% |
Worse |
| Avg Slippage (Entry) |
0.55% |
0.04% |
Better |
| Avg Commission/Trade |
$1.00 |
$1.74 |
Worse |
11. Implemented Recommendations (Mar 9, 2026)
#1 CRITICAL — Skip 90%+ Conviction (IMPLEMENTED)
- Data: 29 live trades at 90%+ conviction: 14.3% WR, -$116 P&L, 78% stop rate
- Mechanism: Stock already priced in the expected outcome. Pre-earnings volatility triggers tight stops on stocks that barely move.
- Implementation:
Config.SIGNAL_LONG_MAX_THRESHOLD = 0.90. Added to signal_generator, priority.py, conviction_calculator, dashboard.
- Expected impact: Avoid ~29 losing trades, save ~$116 in losses + $40 in commissions
#4 HIGH — Widen Stop Losses to 3%/4%/5% (IMPLEMENTED)
- Data: What-If analysis with Polygon actual exit prices: moderate stops improve total P&L from +$51 to +$166
- Mechanism: Fewer stops trigger (13 vs 35 of 46), letting more trades survive to scheduled exit (89% WR, +$20/trade avg)
- Implementation:
Config.STOP_LOSS_LARGE_CAP = 0.03, STOP_LOSS_MID_CAP = 0.04, STOP_LOSS_SMALL_CAP = 0.05
- Expected impact: +$115 improvement in stop-related P&L
#5 MEDIUM — Enable Small Cap Longs at 70-80% (IMPLEMENTED, Finding #207)
- Data: Q3 2025 backtest with proper MCAP classification: 70-80% conviction small cap longs have 66.7% WR and +$30.68 EV (6 trades). 80-90% has only 30% WR and near-zero EV.
- Implementation: Changed small cap LONG rule from "require 90%+" to "allow 70-80% only". Full position sizing (15% of capital, Finding #211). Priority score 2/6.
- Rationale: Previous rule made small cap longs impossible (needed 90%+ but 90%+ was blocked). The 70-80% band captures genuine surprise moves in small caps.
#5b MEDIUM — Increase Position Sizes (IMPLEMENTED, Finding #211, Mar 10, 2026)
- Data: 95 closed trades analyzed. 90%+ filter reduces trade count by ~36% (26 trades eliminated), freeing capital. Position size quintile analysis shows Q5 (largest, avg $490) generates best absolute returns (+$139, $7.70/trade). Q1-Q2 (smallest, $157-$226) are net losers.
- Implementation: Large 25%→30%, Mid 18%→22%, Small 10%→15%.
- Rationale: Fewer trades post-filter means more capital available per trade. Larger positions amplify the edge on the remaining high-quality trades. On $2,450 capital: Large $735 (+$123), Mid $539 (+$98), Small $367 (+$122).
Other Recommendations (Not Yet Implemented — as of Mar 2026)
See docs/STRATEGY_PLAYBOOK.md §2 for current ship status; many of these have since shipped, been retracted, or evolved.
- #2 CRITICAL: RED FLAG: Low win rate (32.1%). Root cause: 90%+ conviction and LONG AMC. Implementing #1 and #3 would raise effective WR to ~44%.
- #3 HIGH: LONG AMC structural disadvantage. Two options: (A) skip all LONG AMC, (B) only trade at 70-80% conviction. Monitoring.
- #6 MEDIUM: Commission optimization (natural from fewer trades after #1).
12. Data Sources and Methodology
| Analysis |
Data Source |
Sample Size |
| Live performance |
trade_audit_log (production DB) |
84 clean trades |
| Prediction accuracy |
trade_audit_log.prediction_correct (backfilled from Yahoo Finance) |
84/84 trades |
| Stop reversal prices |
Polygon.io minute aggregates |
29/31 trades |
| Volume correlation |
trade_audit_log.volume_24h_at_entry |
34/84 trades |
| Q3 2025 backtest |
earnings_correlation_analysis.json |
370 markets |
| BMO/AMC cohort timing |
bmo_amc_timing_analysis.json (winsorized +/-20%) |
273 trades |
| Market regime |
SPY MA20/50/200 via yfinance |
84 trades |
| Document |
Purpose |
| docs/STRATEGY.md |
Trading strategy rules and parameters |
| docs/FINANCIAL_PROJECTIONS.md |
Original projections (pre-live trading) |
| docs/FINDINGS.md |
All findings, fixes, and changes |
| docs/OPERATIONS.md |
Server operations and service management |
| scripts/strategy_analysis_report.json |
Machine-readable strategy data (dashboard source) |
| scripts/stop_reversal_actual_prices.json |
Polygon exit prices for stopped trades |
| scripts/backtest_results_constrained.json |
Q3 2025 backtest results (16 scenarios) |
| scripts/bmo_amc_timing_analysis.json |
BMO/AMC cohort timing data |