# V29 Data-Driven Optimization Report
## Based on 7,000-match Diagnostic Backtest (2026-05-27)

### Before (V28-Pro-Max)
- **4,134 settled BET-action picks**
- Hit rate: 54.9%
- Unit profit: -132.68
- Staked: 849.50
- **ROI: -15.6%**

### Root Cause Analysis

#### 1. Value Sniper Threshold Too Loose (CRITICAL)
```python
# OLD: ev_edge >= 0.008 or calibrated_conf >= 55.0
# This made 100% of bets qualify as "value sniper", bypassing ALL betting brain vetoes
```
- 4,134/4,134 bets (100%) had `is_value_sniper = True`
- Hard vetoes (negative_ev, market_muted, low_reliability) were NEVER enforced

#### 2. 89% of Bets Had Negative EV Edge
- n=3,688 with ev_edge < 0: ROI = -16.1%
- The model was systematically pricing below market, meaning every bet carried negative expected value

#### 3. OU25 Market Unprofitable in ALL Configurations
- n=1,563 bets, -17.1% ROI
- Even with ev>=5% + rel>=0.55: n=27, -36.9% ROI
- Grid search found NO profitable filter combination

#### 4. BTTS Market Marginal
- n=1,456 bets, -15.4% ROI
- Only profitable with ev>=5%: n=15, +12.9% (but tiny sample)

### Grid Search Results (Top Profitable Combos)

| Market | EV Min | Rel Min | V27 | n | Hit% | ROI |
|--------|--------|---------|-----|---|------|-----|
| MS | >=5% | >=0.55 | AGREE | 42 | 59.5% | **+10.4%** |
| MS | >=5% | >=0.55 | ANY | 52 | 59.6% | **+8.6%** |
| MS | >=3% | >=0.55 | ANY | 69 | 56.5% | **+4.0%** |
| BTTS | >=5% | >=0.70 | ANY | 15 | 60.0% | **+12.9%** |
| MS | >=5% | >=0.00 | ANY | 113 | 55.8% | **-0.7%** |

### Changes Applied (V29)

#### market_board.py
```python
# Tightened from: ev >= 0.008 OR conf >= 55.0
# To: ALL three must be true
is_value_sniper = ev_edge >= 0.05 and calibrated_conf >= 60.0 and odds_rel >= 0.55
```

#### betting_brain.py
1. **MIN_BET_SCORE**: 72.0 -> 62.0 (hard vetoes now do the filtering)
2. **MIN_WATCH_SCORE**: 62.0 -> 52.0
3. **MUTED_MARKETS**: `{"BTTS"}` -> `{"OU25", "DC", "OU35"}`
4. **MARKET_OPTIMAL_FILTERS**:
   - MS: min_edge=0.03, min_reliability=0.55, require_v27_agree=False
   - BTTS: min_edge=0.05, min_reliability=0.70 (strict envelope)
5. **Hard vetoes no longer bypassed by sniper**:
   - `negative_ev_edge` (ev < 0)
   - `ev_edge_too_high_trap` (ev >= 0.20)
   - `market_muted_by_backtest`
   - `low_reliability_league_hard_block` (rel < 0.30)
   - Per-market envelope checks

### Expected Performance (Simulated on 7K backtest)
- **65 bets** out of 7,000 matches (0.9% selectivity)
- Hit rate: 56.9%
- **ROI: +6.8%** (from -15.6%)
- MS dominates: n=64, ROI=+8.0%
- Consistent: April +14.0%, May +4.9%

### Trade-off
The system becomes very selective (fewer bets per day) but each bet carries genuine positive expected value. Quality over quantity.
