Add backtest pipeline, betting_brain filters, score coherence + social v3
betting_brain.py: - HARD_MIN_SAMPLES=50 floor for calibrator bypass - ev_edge < 0 + >= 0.20 hard vetoes - BTTS muted (grid search found no profitable config) - Per-market optimal envelopes (MS, OU25) - Score coherence filter: main_pick must agree with score prediction - HTFT reversal cross-check for MS picks feature_builder.py / data_loader.py: - Real home/away_position from data (was hardcoded 10) - Cup detection wired into UpsetEngine - _estimate_league_position with 300-day season filter New scripts: - diagnostic_backtest.py: per-bet diagnostic backtest with loss patterns - optimize_filters.py: grid search per-market optimal thresholds - analyze_backtest_csv.py: root-cause hypothesis testing on CSV - compare_backtests.py: side-by-side validation with verdict - test_score_coherence.py: smoke test for coherence filter (20/20 pass) Reports: - diagnostic_backtest_20260525_024437 (50-match smoke) - diagnostic_backtest_20260525_035649 (1000-match in-sample) - filter_optimization_patch.json (grid search winners per market) Social poster v3: - satori + resvg HTML/CSS rendering pipeline - Twemoji football/basketball + flag SVGs - caption SEO: 12 curated hashtags per post - image SEO: descriptive filenames + .json metadata sidecar - /health, /preview-png, /run-now endpoints Docs: - mds/SESSION_HANDOFF.md: full session state for cross-machine continuity - mds/SOCIAL_POSTER_SETUP.md: API keys + test commands Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
match_id,match_date,league_id,score_home,score_away,ht_score_home,ht_score_away,market,pick,odds,stake_units,playable,won,unit_profit,raw_confidence,calibrated_confidence,play_score,ev_edge,bet_grade,is_value_sniper,bb_score,bb_action,bb_vetoes,bb_issues,bb_positives,bb_model_prob,bb_implied_prob,bb_model_market_gap,bb_divergence,bb_trap_market,v27_consensus,data_quality_score,data_quality_flags,risk_level,odds_reliability,htft_reversal_prob,htft_top_pick,league_name,is_cup,model_version,decision_reason
|
||||
5iam9c9dw3ggz3y1ohr9uh53o,2026-05-24,8nbwkj392b0xzssqpw9jwmzdn,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
8c90p2ft4zxjdck8wlgq1a61g,2026-05-24,a9vrdkelbgif0gtu3wxsr75xo,2,2,0,0,OU25,Üst,1.41,0.2,True,True,0.082,59.5,65.4,58.4,-0.1557,B,True,26.4,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7092,-0.1137,0.0339,True,DISAGREE,0.74,ai_features_inferred_from_history,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved
|
||||
9ljz1grea3a8jajif4e9b7bpw,2026-05-24,2wolc27r8z03itcvwp43e38c5,1,1,1,1,BTTS,KG Var,1.62,0.2,True,True,0.124,53.7,69.9,48.4,-0.1476,B,True,1.6,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6173,-0.0802,,True,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,HIGH,0.5592,,,,False,v28-pro-max,betting_brain_approved
|
||||
1r7iq0nhg2b674jpcm92ragpg,2026-05-24,1zp1du9n4rj36p1ss9zbxtqfb,4,0,1,0,BTTS,KG Var,1.89,0.2,True,False,-0.2,53.2,69.9,52.9,-0.0832,B,True,0.0,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5291,0.0026,,True,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,HIGH,0.5353,,,,False,v28-pro-max,betting_brain_approved
|
||||
70dgok3yq76g076vemaps0178,2026-05-24,6lwpjhktjhl9g7x2w7njmzva6,2,1,1,0,BTTS,KG Var,1.74,0.2,True,True,0.148,51.9,68.4,60.4,-0.1255,B,True,15.7,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5747,-0.0555,,True,AGREE,0.74,ai_features_inferred_from_history,MEDIUM,0.6164,,,,False,v28-pro-max,betting_brain_approved
|
||||
72q9d4uimmby6g6bor26taz9w,2026-05-24,6jgwiu2gq3dllmrwt45pfdn2z,2,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.555,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,LOW,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
67dd2t7043kv0yw1zj1buwdg4,2026-05-24,8n9w0n3i9kk05echhtmstn6o9,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.698,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
ejdwfph35q57phtfz7jr8st1w,2026-05-24,8ey0ww2zsosdmwr8ehsorh6t7,0,2,0,0,BTTS,KG Var,1.82,0.2,True,False,-0.2,53.2,69.9,63.5,-0.1097,B,True,12.1,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5495,-0.0178,,True,DISAGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.51,,X/X,,False,v28-pro-max,betting_brain_approved
|
||||
68y8tlfnilw5trs1oqi4dhfkk,2026-05-24,8n9w0n3i9kk05echhtmstn6o9,2,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.535,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
68fghiwdtwspk1m0ft5mspzx0,2026-05-24,8n9w0n3i9kk05echhtmstn6o9,1,2,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.602,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
a1kqq0ggywfl6sl4srntxy2hg,2026-05-24,3ww12jab49q8q8mk9avdwjqgk,1,1,1,0,OU25,Üst,1.62,0.2,True,False,-0.2,61.4,65.4,60.6,-0.148,B,True,27.0,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6173,-0.0029,0.0854,True,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5961,,,,False,v28-pro-max,betting_brain_approved
|
||||
a1vpp4i6t61v7qm3dfy6iuj2s,2026-05-24,3ww12jab49q8q8mk9avdwjqgk,2,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.74,missing_full_ms_odds;live_match_pre_match_features;ai_features_inferred_from_history,LOW,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
28rk26zqah60qj7h78qh5beac,2026-05-24,663a54fmymndjeev47qm7d3nf,2,2,2,1,OU25,Üst,1.39,0.2,True,True,0.078,61.1,65.4,57.5,-0.2039,B,True,13.3,BET,,low_reliability_league;inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7194,-0.1087,0.0577,True,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,MEDIUM,0.3522,,,,False,v28-pro-max,betting_brain_approved
|
||||
a26stt54g5ju5ecodpcbcqxw4,2026-05-24,3ww12jab49q8q8mk9avdwjqgk,2,2,1,1,BTTS,KG Var,2.05,0.2,True,True,0.21,53.7,69.9,70.6,0.0354,B,True,33.5,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.4878,0.0493,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5961,,,,False,v28-pro-max,betting_brain_approved
|
||||
318rrnl9b1vlenjd9hwahpvro,2026-05-24,9z5643nd06afqu01ea2wt8y4g,1,0,0,0,DC,1X,1.12,0.0,False,True,0.0,73.5,73.5,72.9,-0.0553,PASS,True,41.8,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;inferred_statistical_features,value_sniper_override;v25_v27_aligned;triple_value_confirmed;usable_historical_sample,0.7351,0.8929,-0.1578,0.031,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,0.8734,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
65tlfs3m6sc70261z37i90jys,2026-05-24,89ovpy1rarewwzqvi30bfdr8b,4,3,1,1,OU25,Üst,1.36,0.2,True,True,0.072,60.2,65.4,53.5,-0.2107,B,True,24.8,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7353,-0.1335,0.0982,True,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.7068,,,,False,v28-pro-max,betting_brain_approved
|
||||
ei6nilo5074tnb17kvv37oy6s,2026-05-24,3j81qr7yc4gdnakfwnxf95ovh,1,1,1,1,MS,2,1.11,0.0,False,False,0.0,75.5,90.9,66.9,-0.0497,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;inferred_statistical_features;v25_v27_soft_disagreement;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.7554,0.9009,-0.1455,0.204,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,0.8771,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
cx8nb7w3nmell38mta1umh2qc,2026-05-24,54c65mhi143utomzvvv3q2avh,0,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
53348iqniod61z7xurb4tx250,2026-05-24,477yyajzheg2z8u7uick0e13e,2,0,0,0,OU25,Üst,1.93,0.2,True,False,-0.2,59.5,65.4,71.3,0.0414,B,True,45.8,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5181,0.0774,0.1084,False,AGREE,0.74,lineup_probable_not_confirmed;ai_features_inferred_from_history,MEDIUM,0.4706,,,,False,v28-pro-max,betting_brain_approved
|
||||
2hw717s7fxi2v2w53kdsplhqs,2026-05-24,8najqkluatpaxvqws78b9s17c,1,1,0,0,DC,12,1.24,0.0,False,False,0.0,70.0,70.0,61.2,-0.12,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7001,0.8065,-0.1064,0.0075,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,HIGH,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
1q1s55dy4d4z4gs34qk6vx9n8,2026-05-24,cegl2ivkc25blcatxp4jmk1ec,1,0,1,0,OU25,Üst,2.03,0.2,True,False,-0.2,50.0,57.7,54.3,0.0546,B,True,35.7,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.4926,0.0074,0.0555,False,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,HIGH,0.5993,,,,False,v28-pro-max,betting_brain_approved
|
||||
648u8zd49cwcxpspmvinlmexg,2026-05-24,1eruend45vd20g9hbrpiggs5u,1,0,0,0,MS,1,1.32,0.2,True,True,0.064,63.1,65.5,55.7,-0.0828,B,True,39.4,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6313,0.7576,-0.1263,0.0683,False,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,MEDIUM,0.8083,0.0,,,False,v28-pro-max,betting_brain_approved
|
||||
1psnufak57w8dfs9e5cvbmgwk,2026-05-24,cegl2ivkc25blcatxp4jmk1ec,3,0,2,0,BTTS,KG Var,1.94,0.2,True,False,-0.2,53.7,69.9,53.1,-0.0765,B,True,5.3,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5155,0.0216,,True,AGREE,0.74,lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,HIGH,0.5993,,,,False,v28-pro-max,betting_brain_approved
|
||||
921kqaviappxt0w1kfmq1ek2c,2026-05-24,byu00jvt1j6csyv4y1lkt2fm2,1,0,1,0,DC,X2,1.18,0.0,False,False,0.0,75.8,75.8,74.9,-0.1267,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,inferred_statistical_features;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;strong_historical_sample,0.7584,0.8475,-0.0891,0.1783,True,DISAGREE,0.74,ai_features_inferred_from_history,MEDIUM,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
3m11hvh2fzailt3ykd0uhzz84,2026-05-24,54c65mhi143utomzvvv3q2avh,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.591,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
7kvvf6blnps2xk15100ccdedw,2026-05-24,4zwgbb66rif2spcoeeol2motx,5,0,3,0,BTTS,KG Var,1.33,0.2,True,False,-0.2,57.1,69.9,62.3,-0.1512,B,True,29.1,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.7519,-0.1812,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.6995,,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
7liir8zj32o7m2udr7cknb8d0,2026-05-24,4zwgbb66rif2spcoeeol2motx,3,0,2,0,OU25,Üst,1.33,0.2,True,True,0.066,61.4,65.4,58.3,-0.1437,B,True,27.0,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7519,-0.1375,0.0279,True,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.6995,,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
7l74ilyz7olljclexvn8tbjtg,2026-05-24,4zwgbb66rif2spcoeeol2motx,5,1,4,0,BTTS,KG Var,1.55,0.2,True,True,0.11,57.1,69.9,68.2,-0.0873,B,True,32.7,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6452,-0.0745,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.6995,,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
8f6gex4eh119d2hh9y2zb5clw,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,2,0,2,0,OU25,Üst,1.49,0.2,True,False,-0.2,66.5,65.4,77.9,0.0081,B,True,50.1,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.6711,-0.006,0.1144,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,LOW,0.5033,,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
8ee7ipt4u6kyk6baueedsdafo,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,0,2,0,2,BTTS,KG Var,1.69,0.2,True,False,-0.2,54.3,69.9,64.7,-0.0792,B,True,27.6,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.5917,-0.0484,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,,2/2,,False,v28-pro-max,betting_brain_approved
|
||||
8fydg367drpc25r1bobxqj3f8,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,3,1,2,1,OU25,Üst,1.61,0.2,True,True,0.122,50.1,57.7,50.7,-0.1072,B,True,35.0,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6211,-0.1202,0.0553,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,,,,False,v28-pro-max,betting_brain_approved
|
||||
8fkdhce1peguwgnsunwoln3f8,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,0,2,0,2,OU25,Üst,1.24,0.0,False,False,0.0,61.4,65.4,61.1,-0.1548,PASS,True,16.8,WATCH_NO_VALUE,odds_below_minimum,inferred_statistical_features;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6144,0.8065,-0.1921,0.0942,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,LOW,0.5033,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
9g5hqtjja6ceqhkpghwmoy6ms,2026-05-24,2y8bntiif3a9y6gtmauv30gt,2,0,1,0,OU25,Üst,1.71,0.2,True,False,-0.2,50.1,57.7,52.6,-0.0794,B,True,36.5,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5848,-0.0839,0.0481,False,DISAGREE,0.74,ai_features_inferred_from_history,MEDIUM,0.4782,,,,False,v28-pro-max,betting_brain_approved
|
||||
8h6429zr5ijqcxc8gjxygjtw4,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,3,0,1,0,MS,1,1.33,0.2,True,True,0.066,66.1,65.5,66.7,-0.1155,B,True,0.0,BET,,inferred_statistical_features;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;htft_reversal_prob_minor=0.11,base_model_playable;value_sniper_override;strong_historical_sample,0.6614,0.7519,-0.0905,0.2583,True,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,0.0814,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
77knm2ibdtb7akzrbltwz7axg,2026-05-24,bly7ema5au6j40i0grhl0pnub,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
8es4680yd87gtmomg2jk3isyc,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,0,1,0,0,OU25,Üst,1.53,0.2,True,False,-0.2,59.5,65.4,67.8,-0.0259,B,True,42.4,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6536,-0.0581,0.0713,False,DISAGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,,2/2,,False,v28-pro-max,betting_brain_approved
|
||||
8dmcz3k1u4ze53nvrsoz7eoes,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,1,1,1,0,BTTS,KG Var,1.26,0.0,False,True,0.0,54.9,69.9,57.6,-0.2005,PASS,True,3.3,WATCH_NO_VALUE,odds_below_minimum,inferred_statistical_features;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5488,0.7937,-0.2449,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,LOW,0.5033,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
8gcbai6m7v7o8piqfram4qe50,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,3,1,2,0,HTFT,1/1,4.59,0.0,False,True,0.0,27.3,27.3,24.6,0.1657,PASS,True,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,inferred_statistical_features;historical_sample_too_low,base_model_playable,0.2734,0.2179,0.0555,,False,DISAGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,,1/1,,False,v28-pro-max,betting_brain_no_safe_pick
|
||||
3azy3enp78au0zfugc3l1yf4k,2026-05-24,54c65mhi143utomzvvv3q2avh,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.532,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
1d2fb7bt5f8xy5on24w1kj1g4,2026-05-24,54c65mhi143utomzvvv3q2avh,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.532,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;ai_features_inferred_from_history,LOW,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
pw01xm8v3jlz13fpi3zq0ftg,2026-05-24,3umprqta6ipyann6qjjh07biz,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
mjo9k4zr1x884vjlwea2y1hw,2026-05-24,3umprqta6ipyann6qjjh07biz,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
8d8fm7wli7tfx8hm9w5l8nuhg,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,1,1,1,0,BTTS,KG Var,1.72,0.2,True,True,0.144,53.7,69.9,65.2,-0.0712,B,True,28.0,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5814,-0.0443,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.5033,,,,False,v28-pro-max,betting_brain_approved
|
||||
oqsq3f0kvic8xfed8dp302z8,2026-05-24,3umprqta6ipyann6qjjh07biz,3,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
o7tn4si7fxvq9c2mg0xs48wk,2026-05-24,3umprqta6ipyann6qjjh07biz,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met
|
||||
eh9jfegscokidyczxfq691990,2026-05-24,3j81qr7yc4gdnakfwnxf95ovh,2,3,0,1,OU25,Üst,1.44,0.2,True,True,0.088,50.1,57.7,32.9,-0.2537,B,True,17.0,BET,,inferred_statistical_features;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6944,-0.1935,0.0596,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;ai_features_inferred_from_history,MEDIUM,0.8771,,,,False,v28-pro-max,betting_brain_approved
|
||||
dkhhkbwnxwl47e8hybv89mwb8,2026-05-24,5jd0k2txwnq69frs79eulba8j,1,2,0,1,OU25,Üst,1.23,0.0,False,True,0.0,61.4,65.4,61.2,-0.1185,PASS,True,11.4,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;inferred_statistical_features;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.813,-0.1986,0.0179,False,AGREE,0.74,ai_features_inferred_from_history,LOW,0.9233,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum
|
||||
1lknqdz9vmb3hnqu144zkkefo,2026-05-24,1r097lpxe0xn03ihb7wi98kao,1,0,1,0,BTTS,KG Var,1.78,0.2,True,False,-0.2,50.0,61.7,55.6,-0.088,B,True,29.3,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5618,-0.0618,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,MEDIUM,0.7391,,1/1,,False,v28-pro-max,betting_brain_approved
|
||||
3oazp9kfbyyiatn246k4to6xg,2026-05-24,9ynnnx1qmkizq1o3qr3v0nsuk,1,2,0,1,BTTS,KG Var,1.36,0.2,True,True,0.072,53.7,69.9,61.2,-0.1571,B,True,33.7,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7353,-0.1982,,False,AGREE,0.74,live_match_pre_match_features;ai_features_inferred_from_history,LOW,0.554,,2/2,,False,v28-pro-max,betting_brain_approved
|
||||
8cr8t6qh0r6g0mv6ftq0ic1sk,2026-05-24,a9vrdkelbgif0gtu3wxsr75xo,2,1,0,1,OU25,Üst,1.46,0.2,True,True,0.092,61.4,65.4,68.1,-0.0182,B,True,47.8,BET,,inferred_statistical_features;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6849,-0.0705,0.0535,False,AGREE,0.74,ai_features_inferred_from_history,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved
|
||||
|
@@ -0,0 +1,220 @@
|
||||
{
|
||||
"args": {
|
||||
"days": 3,
|
||||
"max_matches": 50,
|
||||
"start": null,
|
||||
"end": null,
|
||||
"progress_interval": 50
|
||||
},
|
||||
"aggregate": {
|
||||
"overall": {
|
||||
"n_total": 50,
|
||||
"n_playable_settled": 27,
|
||||
"wins": 15,
|
||||
"losses": 12,
|
||||
"hit_rate_pct": 55.56,
|
||||
"unit_profit": -0.862,
|
||||
"staked": 5.4,
|
||||
"roi_pct": -15.96
|
||||
},
|
||||
"by_market": {
|
||||
"OU25": {
|
||||
"n_total": 13,
|
||||
"n_playable_settled": 13,
|
||||
"wins": 7,
|
||||
"losses": 6,
|
||||
"hit_rate_pct": 53.85,
|
||||
"unit_profit": -0.6,
|
||||
"staked": 2.6,
|
||||
"roi_pct": -23.08
|
||||
},
|
||||
"BTTS": {
|
||||
"n_total": 12,
|
||||
"n_playable_settled": 12,
|
||||
"wins": 6,
|
||||
"losses": 6,
|
||||
"hit_rate_pct": 50.0,
|
||||
"unit_profit": -0.392,
|
||||
"staked": 2.4,
|
||||
"roi_pct": -16.33
|
||||
},
|
||||
"MS": {
|
||||
"n_total": 2,
|
||||
"n_playable_settled": 2,
|
||||
"wins": 2,
|
||||
"losses": 0,
|
||||
"hit_rate_pct": 100.0,
|
||||
"unit_profit": 0.13,
|
||||
"staked": 0.4,
|
||||
"roi_pct": 32.5
|
||||
}
|
||||
},
|
||||
"by_confidence": {
|
||||
"65-70": {
|
||||
"n_total": 22,
|
||||
"n_playable_settled": 22,
|
||||
"wins": 13,
|
||||
"losses": 9,
|
||||
"hit_rate_pct": 59.09,
|
||||
"unit_profit": -0.472,
|
||||
"staked": 4.4,
|
||||
"roi_pct": -10.73
|
||||
},
|
||||
"55-60": {
|
||||
"n_total": 4,
|
||||
"n_playable_settled": 4,
|
||||
"wins": 2,
|
||||
"losses": 2,
|
||||
"hit_rate_pct": 50.0,
|
||||
"unit_profit": -0.19,
|
||||
"staked": 0.8,
|
||||
"roi_pct": -23.75
|
||||
},
|
||||
"60-65": {
|
||||
"n_total": 1,
|
||||
"n_playable_settled": 1,
|
||||
"wins": 0,
|
||||
"losses": 1,
|
||||
"hit_rate_pct": 0.0,
|
||||
"unit_profit": -0.2,
|
||||
"staked": 0.2,
|
||||
"roi_pct": -100.0
|
||||
}
|
||||
},
|
||||
"by_odds": {
|
||||
"1.3-1.5": {
|
||||
"n_total": 11,
|
||||
"n_playable_settled": 11,
|
||||
"wins": 9,
|
||||
"losses": 2,
|
||||
"hit_rate_pct": 81.82,
|
||||
"unit_profit": 0.28,
|
||||
"staked": 2.2,
|
||||
"roi_pct": 12.73
|
||||
},
|
||||
"1.5-1.8": {
|
||||
"n_total": 10,
|
||||
"n_playable_settled": 10,
|
||||
"wins": 5,
|
||||
"losses": 5,
|
||||
"hit_rate_pct": 50.0,
|
||||
"unit_profit": -0.352,
|
||||
"staked": 2.0,
|
||||
"roi_pct": -17.6
|
||||
},
|
||||
"1.8-2.2": {
|
||||
"n_total": 6,
|
||||
"n_playable_settled": 6,
|
||||
"wins": 1,
|
||||
"losses": 5,
|
||||
"hit_rate_pct": 16.67,
|
||||
"unit_profit": -0.79,
|
||||
"staked": 1.2,
|
||||
"roi_pct": -65.83
|
||||
}
|
||||
},
|
||||
"by_grade": {
|
||||
"B": {
|
||||
"n_total": 27,
|
||||
"n_playable_settled": 27,
|
||||
"wins": 15,
|
||||
"losses": 12,
|
||||
"hit_rate_pct": 55.56,
|
||||
"unit_profit": -0.862,
|
||||
"staked": 5.4,
|
||||
"roi_pct": -15.96
|
||||
}
|
||||
},
|
||||
"by_competition": {
|
||||
"league": {
|
||||
"n_total": 27,
|
||||
"n_playable_settled": 27,
|
||||
"wins": 15,
|
||||
"losses": 12,
|
||||
"hit_rate_pct": 55.56,
|
||||
"unit_profit": -0.862,
|
||||
"staked": 5.4,
|
||||
"roi_pct": -15.96
|
||||
}
|
||||
}
|
||||
},
|
||||
"loss_diagnostics": {
|
||||
"n_losses": 12,
|
||||
"total_loss_units": -2.4,
|
||||
"patterns": {
|
||||
"high_htft_reversal_prob (>=0.20)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"cup_match": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"low_league_reliability (<0.45)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"v27_disagree": [
|
||||
3,
|
||||
25.0
|
||||
],
|
||||
"trap_market_flagged": [
|
||||
4,
|
||||
33.33
|
||||
],
|
||||
"low_calibrated_conf (<55)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"high_odds_underdog (>=2.5)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"low_data_quality (<0.55)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"high_risk_level": [
|
||||
3,
|
||||
25.0
|
||||
],
|
||||
"inferred_features": [
|
||||
12,
|
||||
100.0
|
||||
]
|
||||
},
|
||||
"by_market": [
|
||||
[
|
||||
"BTTS",
|
||||
6
|
||||
],
|
||||
[
|
||||
"OU25",
|
||||
6
|
||||
]
|
||||
],
|
||||
"by_league": [
|
||||
[
|
||||
null,
|
||||
12
|
||||
]
|
||||
],
|
||||
"top_bb_issues_in_losses": [
|
||||
[
|
||||
"inferred_statistical_features",
|
||||
12
|
||||
],
|
||||
[
|
||||
"triple_value_not_confirmed",
|
||||
12
|
||||
],
|
||||
[
|
||||
"trap_market_market_overpriced",
|
||||
4
|
||||
]
|
||||
],
|
||||
"top_bb_vetoes_in_losses": []
|
||||
},
|
||||
"recommendations": [],
|
||||
"errors_sample": []
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
==============================================================================
|
||||
DIAGNOSTIC BACKTEST REPORT
|
||||
==============================================================================
|
||||
Generated: 2026-05-25T02:44:37
|
||||
Sample window: start=-3d, end=now
|
||||
Max matches: 50
|
||||
Excluded days: ['2026-04-29', '2026-05-03']
|
||||
|
||||
OVERALL
|
||||
------------------------------------------------------------------------------
|
||||
n_total : 50
|
||||
n_playable_settled : 27
|
||||
wins : 15
|
||||
losses : 12
|
||||
hit_rate_pct : 55.56
|
||||
unit_profit : -0.862
|
||||
staked : 5.4
|
||||
roi_pct : -15.96
|
||||
|
||||
PER MARKET
|
||||
------------------------------------------------------------------------------
|
||||
market n hit% profit roi%
|
||||
OU25 13 53.85 -0.6 -23.08
|
||||
BTTS 12 50.0 -0.392 -16.33
|
||||
MS 2 100.0 0.13 32.5
|
||||
|
||||
PER CALIBRATED CONFIDENCE BAND
|
||||
------------------------------------------------------------------------------
|
||||
band n hit% roi%
|
||||
55-60 4 50.0 -23.75
|
||||
60-65 1 0.0 -100.0
|
||||
65-70 22 59.09 -10.73
|
||||
|
||||
PER ODDS BAND
|
||||
------------------------------------------------------------------------------
|
||||
band n hit% roi%
|
||||
1.3-1.5 11 81.82 12.73
|
||||
1.5-1.8 10 50.0 -17.6
|
||||
1.8-2.2 6 16.67 -65.83
|
||||
|
||||
LEAGUE vs CUP
|
||||
------------------------------------------------------------------------------
|
||||
league n= 27 hit=55.56% roi=-15.96%
|
||||
|
||||
LOSS DIAGNOSTICS
|
||||
------------------------------------------------------------------------------
|
||||
total losses: 12
|
||||
total lost units: -2.4
|
||||
By market: [('BTTS', 6), ('OU25', 6)]
|
||||
Loss patterns (count, % of losses):
|
||||
high_htft_reversal_prob (>=0.20) 0 (0.0%)
|
||||
cup_match 0 (0.0%)
|
||||
low_league_reliability (<0.45) 0 (0.0%)
|
||||
v27_disagree 3 (25.0%)
|
||||
trap_market_flagged 4 (33.33%)
|
||||
low_calibrated_conf (<55) 0 (0.0%)
|
||||
high_odds_underdog (>=2.5) 0 (0.0%)
|
||||
low_data_quality (<0.55) 0 (0.0%)
|
||||
high_risk_level 3 (25.0%)
|
||||
inferred_features 12 (100.0%)
|
||||
Top betting_brain issues seen in losses:
|
||||
inferred_statistical_features 12
|
||||
triple_value_not_confirmed 12
|
||||
trap_market_market_overpriced 4
|
||||
Top betting_brain vetoes (in losses — i.e. veto fired but bet still went through value-sniper override):
|
||||
|
||||
RECOMMENDATIONS
|
||||
------------------------------------------------------------------------------
|
||||
(none surfaced — sample too small or no clear pattern)
|
||||
|
||||
==============================================================================
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,335 @@
|
||||
{
|
||||
"args": {
|
||||
"days": 14,
|
||||
"max_matches": 1000,
|
||||
"start": null,
|
||||
"end": null,
|
||||
"progress_interval": 50
|
||||
},
|
||||
"aggregate": {
|
||||
"overall": {
|
||||
"n_total": 1000,
|
||||
"n_playable_settled": 524,
|
||||
"wins": 287,
|
||||
"losses": 237,
|
||||
"hit_rate_pct": 54.77,
|
||||
"unit_profit": -17.897,
|
||||
"staked": 107.0,
|
||||
"roi_pct": -16.73
|
||||
},
|
||||
"by_market": {
|
||||
"OU25": {
|
||||
"n_total": 236,
|
||||
"n_playable_settled": 236,
|
||||
"wins": 134,
|
||||
"losses": 102,
|
||||
"hit_rate_pct": 56.78,
|
||||
"unit_profit": -6.271,
|
||||
"staked": 48.5,
|
||||
"roi_pct": -12.93
|
||||
},
|
||||
"BTTS": {
|
||||
"n_total": 205,
|
||||
"n_playable_settled": 205,
|
||||
"wins": 105,
|
||||
"losses": 100,
|
||||
"hit_rate_pct": 51.22,
|
||||
"unit_profit": -8.89,
|
||||
"staked": 41.1,
|
||||
"roi_pct": -21.63
|
||||
},
|
||||
"MS": {
|
||||
"n_total": 76,
|
||||
"n_playable_settled": 76,
|
||||
"wins": 44,
|
||||
"losses": 32,
|
||||
"hit_rate_pct": 57.89,
|
||||
"unit_profit": -2.396,
|
||||
"staked": 16.0,
|
||||
"roi_pct": -14.98
|
||||
},
|
||||
"OU35": {
|
||||
"n_total": 3,
|
||||
"n_playable_settled": 3,
|
||||
"wins": 0,
|
||||
"losses": 3,
|
||||
"hit_rate_pct": 0.0,
|
||||
"unit_profit": -0.6,
|
||||
"staked": 0.6,
|
||||
"roi_pct": -100.0
|
||||
},
|
||||
"DC": {
|
||||
"n_total": 4,
|
||||
"n_playable_settled": 4,
|
||||
"wins": 4,
|
||||
"losses": 0,
|
||||
"hit_rate_pct": 100.0,
|
||||
"unit_profit": 0.26,
|
||||
"staked": 0.8,
|
||||
"roi_pct": 32.5
|
||||
}
|
||||
},
|
||||
"by_confidence": {
|
||||
"65-70": {
|
||||
"n_total": 420,
|
||||
"n_playable_settled": 420,
|
||||
"wins": 233,
|
||||
"losses": 187,
|
||||
"hit_rate_pct": 55.48,
|
||||
"unit_profit": -14.057,
|
||||
"staked": 85.1,
|
||||
"roi_pct": -16.52
|
||||
},
|
||||
"60-65": {
|
||||
"n_total": 33,
|
||||
"n_playable_settled": 33,
|
||||
"wins": 16,
|
||||
"losses": 17,
|
||||
"hit_rate_pct": 48.48,
|
||||
"unit_profit": -1.61,
|
||||
"staked": 6.6,
|
||||
"roi_pct": -24.39
|
||||
},
|
||||
"55-60": {
|
||||
"n_total": 52,
|
||||
"n_playable_settled": 52,
|
||||
"wins": 28,
|
||||
"losses": 24,
|
||||
"hit_rate_pct": 53.85,
|
||||
"unit_profit": -0.668,
|
||||
"staked": 10.5,
|
||||
"roi_pct": -6.36
|
||||
},
|
||||
"50-55": {
|
||||
"n_total": 5,
|
||||
"n_playable_settled": 5,
|
||||
"wins": 2,
|
||||
"losses": 3,
|
||||
"hit_rate_pct": 40.0,
|
||||
"unit_profit": -0.64,
|
||||
"staked": 1.3,
|
||||
"roi_pct": -49.23
|
||||
},
|
||||
"45-50": {
|
||||
"n_total": 8,
|
||||
"n_playable_settled": 8,
|
||||
"wins": 4,
|
||||
"losses": 4,
|
||||
"hit_rate_pct": 50.0,
|
||||
"unit_profit": -0.382,
|
||||
"staked": 1.9,
|
||||
"roi_pct": -20.11
|
||||
},
|
||||
"70-80": {
|
||||
"n_total": 6,
|
||||
"n_playable_settled": 6,
|
||||
"wins": 4,
|
||||
"losses": 2,
|
||||
"hit_rate_pct": 66.67,
|
||||
"unit_profit": -0.54,
|
||||
"staked": 1.6,
|
||||
"roi_pct": -33.75
|
||||
}
|
||||
},
|
||||
"by_odds": {
|
||||
"1.3-1.5": {
|
||||
"n_total": 241,
|
||||
"n_playable_settled": 241,
|
||||
"wins": 148,
|
||||
"losses": 93,
|
||||
"hit_rate_pct": 61.41,
|
||||
"unit_profit": -7.408,
|
||||
"staked": 49.0,
|
||||
"roi_pct": -15.12
|
||||
},
|
||||
"1.5-1.8": {
|
||||
"n_total": 221,
|
||||
"n_playable_settled": 221,
|
||||
"wins": 115,
|
||||
"losses": 106,
|
||||
"hit_rate_pct": 52.04,
|
||||
"unit_profit": -6.926,
|
||||
"staked": 44.3,
|
||||
"roi_pct": -15.63
|
||||
},
|
||||
"1.8-2.2": {
|
||||
"n_total": 56,
|
||||
"n_playable_settled": 56,
|
||||
"wins": 23,
|
||||
"losses": 33,
|
||||
"hit_rate_pct": 41.07,
|
||||
"unit_profit": -2.789,
|
||||
"staked": 12.2,
|
||||
"roi_pct": -22.86
|
||||
},
|
||||
"2.2-3.0": {
|
||||
"n_total": 5,
|
||||
"n_playable_settled": 5,
|
||||
"wins": 1,
|
||||
"losses": 4,
|
||||
"hit_rate_pct": 20.0,
|
||||
"unit_profit": -0.574,
|
||||
"staked": 1.3,
|
||||
"roi_pct": -44.15
|
||||
},
|
||||
"3.0-5.0": {
|
||||
"n_total": 1,
|
||||
"n_playable_settled": 1,
|
||||
"wins": 0,
|
||||
"losses": 1,
|
||||
"hit_rate_pct": 0.0,
|
||||
"unit_profit": -0.2,
|
||||
"staked": 0.2,
|
||||
"roi_pct": -100.0
|
||||
}
|
||||
},
|
||||
"by_grade": {
|
||||
"B": {
|
||||
"n_total": 518,
|
||||
"n_playable_settled": 518,
|
||||
"wins": 285,
|
||||
"losses": 233,
|
||||
"hit_rate_pct": 55.02,
|
||||
"unit_profit": -16.931,
|
||||
"staked": 105.3,
|
||||
"roi_pct": -16.08
|
||||
},
|
||||
"A": {
|
||||
"n_total": 6,
|
||||
"n_playable_settled": 6,
|
||||
"wins": 2,
|
||||
"losses": 4,
|
||||
"hit_rate_pct": 33.33,
|
||||
"unit_profit": -0.966,
|
||||
"staked": 1.7,
|
||||
"roi_pct": -56.82
|
||||
}
|
||||
},
|
||||
"by_competition": {
|
||||
"league": {
|
||||
"n_total": 524,
|
||||
"n_playable_settled": 524,
|
||||
"wins": 287,
|
||||
"losses": 237,
|
||||
"hit_rate_pct": 54.77,
|
||||
"unit_profit": -17.897,
|
||||
"staked": 107.0,
|
||||
"roi_pct": -16.73
|
||||
}
|
||||
}
|
||||
},
|
||||
"loss_diagnostics": {
|
||||
"n_losses": 237,
|
||||
"total_loss_units": -48.7,
|
||||
"patterns": {
|
||||
"high_htft_reversal_prob (>=0.20)": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"cup_match": [
|
||||
0,
|
||||
0.0
|
||||
],
|
||||
"low_league_reliability (<0.45)": [
|
||||
42,
|
||||
17.72
|
||||
],
|
||||
"v27_disagree": [
|
||||
60,
|
||||
25.32
|
||||
],
|
||||
"trap_market_flagged": [
|
||||
81,
|
||||
34.18
|
||||
],
|
||||
"low_calibrated_conf (<55)": [
|
||||
7,
|
||||
2.95
|
||||
],
|
||||
"high_odds_underdog (>=2.5)": [
|
||||
4,
|
||||
1.69
|
||||
],
|
||||
"low_data_quality (<0.55)": [
|
||||
40,
|
||||
16.88
|
||||
],
|
||||
"high_risk_level": [
|
||||
20,
|
||||
8.44
|
||||
],
|
||||
"inferred_features": [
|
||||
0,
|
||||
0.0
|
||||
]
|
||||
},
|
||||
"by_market": [
|
||||
[
|
||||
"OU25",
|
||||
102
|
||||
],
|
||||
[
|
||||
"BTTS",
|
||||
100
|
||||
],
|
||||
[
|
||||
"MS",
|
||||
32
|
||||
],
|
||||
[
|
||||
"OU35",
|
||||
3
|
||||
]
|
||||
],
|
||||
"by_league": [
|
||||
[
|
||||
null,
|
||||
237
|
||||
]
|
||||
],
|
||||
"top_bb_issues_in_losses": [
|
||||
[
|
||||
"triple_value_not_confirmed",
|
||||
230
|
||||
],
|
||||
[
|
||||
"trap_market_market_overpriced",
|
||||
81
|
||||
],
|
||||
[
|
||||
"low_reliability_league",
|
||||
40
|
||||
],
|
||||
[
|
||||
"v25_v27_soft_disagreement",
|
||||
10
|
||||
],
|
||||
[
|
||||
"engine_consensus_disagree",
|
||||
5
|
||||
],
|
||||
[
|
||||
"historical_sample_too_low",
|
||||
3
|
||||
],
|
||||
[
|
||||
"very_low_reliability_league",
|
||||
2
|
||||
],
|
||||
[
|
||||
"htft_reversal_prob_minor=0.13",
|
||||
1
|
||||
]
|
||||
],
|
||||
"top_bb_vetoes_in_losses": []
|
||||
},
|
||||
"recommendations": [
|
||||
{
|
||||
"type": "raise_confidence_threshold",
|
||||
"confidence_band": "65-70",
|
||||
"evidence": "n=420, roi=-16.52%",
|
||||
"suggested_fix": "Raise MIN_BET_SCORE or market_min_conf above 65"
|
||||
}
|
||||
],
|
||||
"errors_sample": []
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
==============================================================================
|
||||
DIAGNOSTIC BACKTEST REPORT
|
||||
==============================================================================
|
||||
Generated: 2026-05-25T03:56:49
|
||||
Sample window: start=-14d, end=now
|
||||
Max matches: 1000
|
||||
Excluded days: ['2026-04-29', '2026-05-03']
|
||||
|
||||
OVERALL
|
||||
------------------------------------------------------------------------------
|
||||
n_total : 1000
|
||||
n_playable_settled : 524
|
||||
wins : 287
|
||||
losses : 237
|
||||
hit_rate_pct : 54.77
|
||||
unit_profit : -17.897
|
||||
staked : 107.0
|
||||
roi_pct : -16.73
|
||||
|
||||
PER MARKET
|
||||
------------------------------------------------------------------------------
|
||||
market n hit% profit roi%
|
||||
OU25 236 56.78 -6.271 -12.93
|
||||
BTTS 205 51.22 -8.89 -21.63
|
||||
MS 76 57.89 -2.396 -14.98
|
||||
DC 4 100.0 0.26 32.5
|
||||
OU35 3 0.0 -0.6 -100.0
|
||||
|
||||
PER CALIBRATED CONFIDENCE BAND
|
||||
------------------------------------------------------------------------------
|
||||
band n hit% roi%
|
||||
45-50 8 50.0 -20.11
|
||||
50-55 5 40.0 -49.23
|
||||
55-60 52 53.85 -6.36
|
||||
60-65 33 48.48 -24.39
|
||||
65-70 420 55.48 -16.52
|
||||
70-80 6 66.67 -33.75
|
||||
|
||||
PER ODDS BAND
|
||||
------------------------------------------------------------------------------
|
||||
band n hit% roi%
|
||||
1.3-1.5 241 61.41 -15.12
|
||||
1.5-1.8 221 52.04 -15.63
|
||||
1.8-2.2 56 41.07 -22.86
|
||||
2.2-3.0 5 20.0 -44.15
|
||||
3.0-5.0 1 0.0 -100.0
|
||||
|
||||
LEAGUE vs CUP
|
||||
------------------------------------------------------------------------------
|
||||
league n= 524 hit=54.77% roi=-16.73%
|
||||
|
||||
LOSS DIAGNOSTICS
|
||||
------------------------------------------------------------------------------
|
||||
total losses: 237
|
||||
total lost units: -48.7
|
||||
By market: [('OU25', 102), ('BTTS', 100), ('MS', 32), ('OU35', 3)]
|
||||
Loss patterns (count, % of losses):
|
||||
high_htft_reversal_prob (>=0.20) 0 (0.0%)
|
||||
cup_match 0 (0.0%)
|
||||
low_league_reliability (<0.45) 42 (17.72%)
|
||||
v27_disagree 60 (25.32%)
|
||||
trap_market_flagged 81 (34.18%)
|
||||
low_calibrated_conf (<55) 7 (2.95%)
|
||||
high_odds_underdog (>=2.5) 4 (1.69%)
|
||||
low_data_quality (<0.55) 40 (16.88%)
|
||||
high_risk_level 20 (8.44%)
|
||||
inferred_features 0 (0.0%)
|
||||
Top betting_brain issues seen in losses:
|
||||
triple_value_not_confirmed 230
|
||||
trap_market_market_overpriced 81
|
||||
low_reliability_league 40
|
||||
v25_v27_soft_disagreement 10
|
||||
engine_consensus_disagree 5
|
||||
historical_sample_too_low 3
|
||||
very_low_reliability_league 2
|
||||
htft_reversal_prob_minor=0.13 1
|
||||
Top betting_brain vetoes (in losses — i.e. veto fired but bet still went through value-sniper override):
|
||||
|
||||
RECOMMENDATIONS
|
||||
------------------------------------------------------------------------------
|
||||
• [raise_confidence_threshold]
|
||||
confidence_band: 65-70
|
||||
evidence: n=420, roi=-16.52%
|
||||
suggested_fix: Raise MIN_BET_SCORE or market_min_conf above 65
|
||||
|
||||
==============================================================================
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"BTTS": {
|
||||
"min_calibrated_confidence": 65,
|
||||
"min_ev_edge": -1.0,
|
||||
"max_ev_edge": 0.1,
|
||||
"min_odds": 1.4,
|
||||
"max_odds": 10.0,
|
||||
"min_odds_reliability": 0.55,
|
||||
"require_v27_agree": true,
|
||||
"expected_n_bets": 54,
|
||||
"expected_hit_pct": 55.56,
|
||||
"expected_roi_pct": -10.96
|
||||
},
|
||||
"MS": {
|
||||
"min_calibrated_confidence": 0,
|
||||
"min_ev_edge": -0.05,
|
||||
"max_ev_edge": 0.15,
|
||||
"min_odds": 1.2,
|
||||
"max_odds": 10.0,
|
||||
"min_odds_reliability": 0.0,
|
||||
"require_v27_agree": true,
|
||||
"expected_n_bets": 21,
|
||||
"expected_hit_pct": 61.9,
|
||||
"expected_roi_pct": 8.23
|
||||
},
|
||||
"OU25": {
|
||||
"min_calibrated_confidence": 0,
|
||||
"min_ev_edge": -1.0,
|
||||
"max_ev_edge": 0.15,
|
||||
"min_odds": 1.8,
|
||||
"max_odds": 10.0,
|
||||
"min_odds_reliability": 0.0,
|
||||
"require_v27_agree": false,
|
||||
"expected_n_bets": 20,
|
||||
"expected_hit_pct": 65.0,
|
||||
"expected_roi_pct": 28.91
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user