From 988ee2f50d4370f1fedea389ef331b543884ac3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahri=20Can=20Se=C3=A7er?= Date: Mon, 25 May 2026 20:43:28 +0300 Subject: [PATCH] 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 --- .../diagnostic_backtest_20260525_024437.csv | 51 + .../diagnostic_backtest_20260525_024437.json | 220 ++++ .../diagnostic_backtest_20260525_024437.txt | 71 ++ .../diagnostic_backtest_20260525_035649.csv | 1001 +++++++++++++++++ .../diagnostic_backtest_20260525_035649.json | 335 ++++++ .../diagnostic_backtest_20260525_035649.txt | 86 ++ .../reports/filter_optimization_patch.json | 38 + ai-engine/scripts/analyze_backtest_csv.py | 227 ++++ ai-engine/scripts/compare_backtests.py | 134 +++ ai-engine/scripts/diagnostic_backtest.py | 674 +++++++++++ ai-engine/scripts/optimize_filters.py | 254 +++++ ai-engine/scripts/test_score_coherence.py | 54 + ai-engine/services/betting_brain.py | 202 +++- .../services/orchestrator/data_loader.py | 14 +- .../services/orchestrator/feature_builder.py | 36 +- mds/SESSION_HANDOFF.md | 261 +++++ mds/SOCIAL_POSTER_SETUP.md | 212 ++++ package-lock.json | 417 +++++++ package.json | 5 +- .../social-poster/assets/basketball.svg | 1 + src/modules/social-poster/assets/flag-de.svg | 1 + src/modules/social-poster/assets/flag-es.svg | 1 + src/modules/social-poster/assets/flag-eu.svg | 1 + src/modules/social-poster/assets/flag-fr.svg | 1 + src/modules/social-poster/assets/flag-gb.svg | 1 + src/modules/social-poster/assets/flag-it.svg | 1 + src/modules/social-poster/assets/flag-tr.svg | 1 + src/modules/social-poster/assets/flag-us.svg | 1 + src/modules/social-poster/assets/football.svg | 1 + .../caption-generator.service.ts | 112 +- .../social-poster/image-renderer.service.ts | 71 +- .../social-poster/social-poster.controller.ts | 64 +- .../social-poster/social-poster.service.ts | 71 +- src/scripts/render-social-card-sample.ts | 119 ++ src/scripts/render-social-card-v2.ts | 244 ++++ src/scripts/render-social-card-v3.ts | 331 ++++++ 36 files changed, 5268 insertions(+), 46 deletions(-) create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_024437.csv create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_024437.json create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_024437.txt create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_035649.csv create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_035649.json create mode 100644 ai-engine/reports/diagnostic_backtest_20260525_035649.txt create mode 100644 ai-engine/reports/filter_optimization_patch.json create mode 100644 ai-engine/scripts/analyze_backtest_csv.py create mode 100644 ai-engine/scripts/compare_backtests.py create mode 100644 ai-engine/scripts/diagnostic_backtest.py create mode 100644 ai-engine/scripts/optimize_filters.py create mode 100644 ai-engine/scripts/test_score_coherence.py create mode 100644 mds/SESSION_HANDOFF.md create mode 100644 mds/SOCIAL_POSTER_SETUP.md create mode 100644 src/modules/social-poster/assets/basketball.svg create mode 100644 src/modules/social-poster/assets/flag-de.svg create mode 100644 src/modules/social-poster/assets/flag-es.svg create mode 100644 src/modules/social-poster/assets/flag-eu.svg create mode 100644 src/modules/social-poster/assets/flag-fr.svg create mode 100644 src/modules/social-poster/assets/flag-gb.svg create mode 100644 src/modules/social-poster/assets/flag-it.svg create mode 100644 src/modules/social-poster/assets/flag-tr.svg create mode 100644 src/modules/social-poster/assets/flag-us.svg create mode 100644 src/modules/social-poster/assets/football.svg create mode 100644 src/scripts/render-social-card-sample.ts create mode 100644 src/scripts/render-social-card-v2.ts create mode 100644 src/scripts/render-social-card-v3.ts diff --git a/ai-engine/reports/diagnostic_backtest_20260525_024437.csv b/ai-engine/reports/diagnostic_backtest_20260525_024437.csv new file mode 100644 index 0000000..56d3b93 --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_024437.csv @@ -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 diff --git a/ai-engine/reports/diagnostic_backtest_20260525_024437.json b/ai-engine/reports/diagnostic_backtest_20260525_024437.json new file mode 100644 index 0000000..1c502bf --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_024437.json @@ -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": [] +} \ No newline at end of file diff --git a/ai-engine/reports/diagnostic_backtest_20260525_024437.txt b/ai-engine/reports/diagnostic_backtest_20260525_024437.txt new file mode 100644 index 0000000..c5e5c55 --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_024437.txt @@ -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) + +============================================================================== \ No newline at end of file diff --git a/ai-engine/reports/diagnostic_backtest_20260525_035649.csv b/ai-engine/reports/diagnostic_backtest_20260525_035649.csv new file mode 100644 index 0000000..ea1d24e --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_035649.csv @@ -0,0 +1,1001 @@ +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,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,54.7,65.4,54.2,-0.1863,B,True,45.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.7092,-0.162,0.0266,True,DISAGREE,1.0,,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,22.2,BET,,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.906,lineup_probable_not_confirmed;missing_referee,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,20.7,BET,,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.906,lineup_probable_not_confirmed;missing_referee,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,50.0,61.7,55.9,-0.1405,B,True,34.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5747,-0.0747,,True,AGREE,1.0,,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,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,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.7,69.9,66.7,-0.1053,B,True,33.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5495,-0.0124,,True,DISAGREE,1.0,live_match_pre_match_features,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,AGREE,0.535,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,HIGH,,,,,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,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,63.6,-0.148,B,True,48.4,BET,,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.0976,True,AGREE,1.0,live_match_pre_match_features,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.82,missing_full_ms_odds;live_match_pre_match_features,MEDIUM,,,,,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,34.0,BET,,low_reliability_league;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.0665,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,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,73.6,0.0354,B,True,54.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.4878,0.0493,,False,AGREE,1.0,live_match_pre_match_features,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,59.8,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable,value_sniper_override;v25_v27_aligned;triple_value_confirmed;usable_historical_sample,0.7351,0.8929,-0.1578,0.0555,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,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,59.5,65.4,56.2,-0.2145,B,True,46.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7353,-0.1398,0.0725,True,AGREE,1.0,live_match_pre_match_features,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;v25_v27_soft_disagreement;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.7554,0.9009,-0.1455,0.2536,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +53348iqniod61z7xurb4tx250,2026-05-24,477yyajzheg2z8u7uick0e13e,2,0,0,0,BTTS,KG Var,1.72,0.2,True,False,-0.2,53.7,69.9,60.7,-0.0231,B,True,50.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5814,-0.0443,,False,AGREE,0.946,lineup_probable_not_confirmed,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.3,70.3,61.6,-0.1187,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7025,0.8065,-0.104,0.019,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,HIGH,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +1q1s55dy4d4z4gs34qk6vx9n8,2026-05-24,cegl2ivkc25blcatxp4jmk1ec,1,0,1,0,BTTS,KG Var,1.8,0.2,True,False,-0.2,53.7,69.9,54.3,-0.0499,B,True,41.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5556,-0.0185,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,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,60.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6313,0.7576,-0.1263,0.0931,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,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.2,69.9,52.9,-0.0812,B,True,25.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5155,0.0162,,True,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,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,77.9,-0.1267,PASS,True,9.3,WATCH_NO_VALUE,odds_below_minimum,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.1771,True,DISAGREE,1.0,,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,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,65.3,-0.1512,B,True,50.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.7519,-0.1812,,False,AGREE,1.0,live_match_pre_match_features,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,61.3,-0.1437,B,True,48.3,BET,,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.0527,True,AGREE,1.0,live_match_pre_match_features,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,71.2,-0.0873,B,True,54.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6452,-0.0745,,False,AGREE,1.0,live_match_pre_match_features,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,80.9,0.0081,B,True,71.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.6711,-0.006,0.1195,False,AGREE,1.0,live_match_pre_match_features,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,67.7,-0.0792,B,True,48.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.5917,-0.0484,,False,AGREE,1.0,live_match_pre_match_features,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,53.7,-0.1072,B,True,56.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6211,-0.1202,0.0669,False,AGREE,1.0,live_match_pre_match_features,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.1,65.4,63.9,-0.1578,PASS,True,38.0,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6107,0.8065,-0.1958,0.069,False,DISAGREE,1.0,live_match_pre_match_features,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,55.6,-0.0794,B,True,57.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5848,-0.0839,0.0382,False,DISAGREE,1.0,,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,69.7,-0.1155,B,True,6.6,BET,,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.2643,True,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5033,0.08209999999999999,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,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,54.7,65.4,63.9,-0.0591,B,True,61.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6536,-0.1064,0.0139,False,AGREE,1.0,live_match_pre_match_features,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,60.6,-0.2005,PASS,True,24.6,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5488,0.7937,-0.2449,,False,AGREE,1.0,live_match_pre_match_features,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.7,27.7,28.2,0.1773,PASS,True,2.5,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,historical_sample_too_low,base_model_playable,0.2773,0.2179,0.0594,,False,DISAGREE,1.0,live_match_pre_match_features,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,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,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,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,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,68.2,-0.0712,B,True,49.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5814,-0.0443,,False,AGREE,1.0,live_match_pre_match_features,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,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,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,35.0,BET,,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.052,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,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,64.0,65.4,65.6,-0.1046,PASS,True,33.6,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6396,0.813,-0.1734,0.009,False,AGREE,1.0,,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,58.6,-0.088,B,True,50.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5618,-0.0618,,False,AGREE,1.0,live_match_pre_match_features,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,64.2,-0.1571,B,True,55.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7353,-0.1982,,False,AGREE,1.0,live_match_pre_match_features,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.1,65.4,71.0,-0.0206,B,True,69.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6849,-0.0742,0.0443,False,AGREE,1.0,,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved +6ex8ronmfbv2netu7uzjpij2s,2026-05-24,1dvti26ywxhu6eafhupc3f2pe,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +4x9zz6kpamj792euzk49wdj4k,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,0,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8t09oj7439jgmbyh46gw7fz10,2026-05-24,54c65mhi143utomzvvv3q2avh,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.591,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +djdparcwqygkncvo6esxqtjis,2026-05-24,2o9svokc5s7diish3ycrzk7jm,0,2,0,1,BTTS,KG Var,1.79,0.2,True,False,-0.2,53.7,69.9,63.9,-0.1446,B,True,36.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5587,-0.0216,,True,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.655,,X/X,,False,v28-pro-max,betting_brain_approved +2p81ty2y58xp0fqkymcafvv2s,2026-05-24,degxm4y6gmvp011ccyrev6z5p,3,0,2,0,OU25,Üst,1.38,0.2,True,True,0.076,60.2,65.4,62.2,-0.1102,B,True,34.6,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6018,0.7246,-0.1228,0.0885,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +6mysr2o8kpujr0op1lx0nqolw,2026-05-24,54c65mhi143utomzvvv3q2avh,4,0,4,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6pu791ioh9zn554pgcxsonfh0,2026-05-24,54c65mhi143utomzvvv3q2avh,1,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.537,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +3ltypocksabs5h9ahdabpqvbo,2026-05-24,54c65mhi143utomzvvv3q2avh,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2s250ptfzodynp1cdehz27rpw,2026-05-24,54c65mhi143utomzvvv3q2avh,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6pkjyk2frv1ag0d4ivigfh5p0,2026-05-24,54c65mhi143utomzvvv3q2avh,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6fd6w6h3frze58qu37zylm9ec,2026-05-24,54c65mhi143utomzvvv3q2avh,1,3,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +32xpxvs0uga4oug21ucw1eln8,2026-05-24,54c65mhi143utomzvvv3q2avh,3,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.542,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +31zujoo7bmhulo70043xo7ims,2026-05-24,9z5643nd06afqu01ea2wt8y4g,1,0,0,0,OU25,Üst,1.39,0.2,True,False,-0.2,59.5,65.4,54.8,-0.1681,B,True,10.8,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5955,0.7194,-0.1239,0.2044,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.8734,,,,False,v28-pro-max,betting_brain_approved +55xwipdr13y9h2ga7yv15n8yc,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,0,3,0,2,OU25,Üst,1.41,0.2,True,True,0.082,61.4,65.4,66.1,-0.0845,B,True,65.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7092,-0.0948,0.0458,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,1/1,,False,v28-pro-max,betting_brain_approved +59t89i9irkl7koxyl46cva4us,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,3,0,0,0,BTTS,KG Var,1.4,0.2,True,False,-0.2,54.9,69.9,60.7,-0.1505,B,True,49.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.7143,-0.1655,,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,1/1,,False,v28-pro-max,betting_brain_approved +55csoxensxdkji04ct70jxwk4,2026-05-24,477yyajzheg2z8u7uick0e13e,0,1,0,0,OU25,Üst,1.82,0.2,True,False,-0.2,59.5,65.4,64.0,-0.0065,B,True,51.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5495,0.046,0.0889,False,DISAGREE,0.946,lineup_probable_not_confirmed,HIGH,0.4706,,,,False,v28-pro-max,betting_brain_approved +djhh08ypcgbme36mqrxelkro4,2026-05-24,4jieyfpyom8d011dgeqj77ojm,3,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +5jhyu5t7bxi9tr2qzuef5c55g,2026-05-24,4jieyfpyom8d011dgeqj77ojm,13,1,6,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +euh2exfxxge6ryj4951wzi6tw,2026-05-24,3ri6juw2w6ma0jezszdlv1uqm,4,1,2,0,MS,1,1.33,0.2,True,True,0.066,64.2,65.5,33.2,-0.1634,B,True,28.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6423,0.7519,-0.1096,0.0516,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5356,0.0,,,False,v28-pro-max,betting_brain_approved +8fb7s3a0zpok0qiv3pyrdp6hg,2026-05-24,esrunz7rjb0td98mx9e5cedoy,3,0,1,0,OU25,Üst,1.5,0.2,True,True,0.1,54.7,65.4,55.4,-0.1443,B,True,42.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5472,0.6667,-0.1195,0.0418,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5516,,,,False,v28-pro-max,betting_brain_approved +an3yg6cpxrgbnutsjwt45wnx0,2026-05-24,ac42gi3penartj88fe9l6plpk,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +bmx7xiafzi4rs4j0azy9pso44,2026-05-24,4jg7he1n3rb5dniq6hf49xorq,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c8pyy0qdyqurxbx9tokfcek9g,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c87re2quywaohcmk19o7l39xw,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,2,4,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +992hh4exkg9oqbt4wnzx2buok,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +wf7mejjzxw9wlwtzrc76nwgk,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,5,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +82yqqnber44htz0e4bit2pdec,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,4,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dpwctop6zypmy6ehc8tf0fy1g,2026-05-24,domsjww1z4ouovaj6qogatnrf,2,2,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +209aggzt5b0u75beazlgxc8b8,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,3,0,1,0,BTTS,KG Var,1.4,0.2,True,False,-0.2,50.0,61.7,46.4,-0.1379,B,True,31.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5,0.7143,-0.2143,,False,AGREE,0.713,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +1zxwp6iexbzxj2dhx48il25n8,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,3,2,1,2,BTTS,KG Var,1.23,0.0,False,True,0.0,54.9,69.9,35.1,-0.2112,PASS,True,10.0,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5488,0.813,-0.2642,,False,DISAGREE,0.639,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.35,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +3dpj3a0h8hvuk5tj82aqic6j8,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,2,2,0,2,OU25,Üst,1.48,0.2,True,True,0.096,61.4,65.4,66.5,-0.053,B,True,49.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6144,0.6757,-0.0613,0.0329,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +3byar3qo8nnmo5d1h7uxzthqs,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,3,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9a0r6o19iyrxa6xgoxzs9591w,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,4,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +84ekuagwu7p49efx02atr2xp0,2026-05-24,5cwsxtx37les6m10xj71htkgf,3,2,1,1,BTTS,KG Var,1.44,0.2,True,True,0.088,53.7,69.9,50.5,-0.0955,B,True,39.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6944,-0.1573,,False,DISAGREE,0.946,lineup_probable_not_confirmed,HIGH,0.6101,,,,False,v28-pro-max,betting_brain_approved +66a9sxmp9intkymdlkbqvw7pw,2026-05-24,8y29fg2s85ppcb8uugm5ee8s4,3,1,0,1,OU25,Üst,1.5,0.2,True,True,0.1,60.2,65.4,57.0,-0.1838,B,True,46.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6667,-0.0649,0.1055,True,AGREE,0.96,missing_referee,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +920oumfpa5gmml0g0vj7gtwk4,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +20klgvu4fntk7pail81ztbb4k,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,1,3,0,2,OU25,Üst,1.42,0.2,True,True,0.084,61.1,65.4,56.5,-0.2257,B,True,31.1,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7042,-0.0935,0.0679,True,AGREE,0.735,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +3cjd1u2y6pk9ggus83wf15bf8,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,1,1,0,1,BTTS,KG Var,1.27,0.0,False,True,0.0,54.4,69.9,47.8,-0.2005,PASS,True,8.3,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5445,0.7874,-0.2429,,False,DISAGREE,0.748,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +cvvvvpenojoe9xzcadhbw7fh0,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,3,3,0,1,MS,1,1.65,0.2,True,False,-0.2,53.4,56.4,47.3,-0.0531,B,True,48.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5341,0.6061,-0.072,0.0403,False,AGREE,0.735,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +56e9cspo2f6quh9z50lywvok4,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,1,0,1,OU15,Üst,1.07,0.0,False,True,0.0,65.1,58.0,51.7,-0.1868,PASS,True,52.0,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced,base_model_playable;value_sniper_override;strong_historical_sample,0.6512,0.9346,-0.2834,,True,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,2/2,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +56sqj49wua0241sbk71k9rdhw,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,2,0,1,OU25,Üst,1.64,0.2,True,True,0.128,60.2,65.4,67.3,-0.0804,B,True,51.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6098,-0.008,0.0944,True,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,2/2,,False,v28-pro-max,betting_brain_approved +5770cell6dg85i03xfikgnwus,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,2,0,1,0,OU25,Üst,1.36,0.2,True,False,-0.2,60.2,65.4,64.1,-0.108,B,True,64.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7353,-0.1335,0.087,False,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,2/2,,False,v28-pro-max,betting_brain_approved +57mwrh5wr8gy7obpu0kjmstg4,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,1,0,0,BTTS,KG Var,1.31,0.2,True,True,0.062,54.3,69.9,53.4,-0.2321,B,True,33.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7634,-0.2201,,True,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,1/1,,False,v28-pro-max,betting_brain_approved +5831hbgqqz9ehu1ae5qlphvdg,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,2,1,0,BTTS,KG Var,1.42,0.2,True,True,0.084,54.9,69.9,59.4,-0.171,B,True,34.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.7042,-0.1554,,True,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,1/1,,False,v28-pro-max,betting_brain_approved +58ywxm6h28x3wp2h4cx4wl3pw,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,2,1,1,0,OU25,Üst,1.66,0.2,True,True,0.132,61.1,65.4,70.5,-0.0301,B,True,68.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6024,0.0083,0.0909,False,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,2/2,,False,v28-pro-max,betting_brain_approved +59d9ayrqml4blmyr6tibd1nh0,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,0,1,0,BTTS,KG Var,1.82,0.2,True,False,-0.2,53.7,69.9,69.5,-0.0416,B,True,55.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5495,-0.0124,,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,1/1,,False,v28-pro-max,betting_brain_approved +9m9y236lwfzw1l877nffrokr8,2026-05-24,erpufio3qaujd9gkszcqvb0bf,1,1,1,0,OU25,Üst,1.67,0.2,True,False,-0.2,60.2,65.4,63.9,-0.0087,B,True,56.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.5988,0.003,0.097,False,DISAGREE,0.96,missing_referee,HIGH,0.5972,,1/1,,False,v28-pro-max,betting_brain_approved +ecct5zd91kiad090oq9jatul0,2026-05-24,9chuiarcjofld1dkj9kysehmb,0,1,0,1,OU25,Üst,1.48,0.2,True,False,-0.2,59.5,65.4,66.6,-0.0926,B,True,60.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6757,-0.0802,0.0009,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +63zi4ztrqp7qc9b41qau5y42c,2026-05-24,1eruend45vd20g9hbrpiggs5u,0,1,0,1,MS,2,1.31,0.2,True,True,0.062,58.8,61.2,46.7,-0.175,B,True,15.9,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5881,0.7634,-0.1753,0.2227,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,LOW,0.8083,0.0,,,False,v28-pro-max,betting_brain_approved +8012ppgdkhuc54hewhue7fuac,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,2,5,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +58j0iztxifq963szj8t2ylhjo,2026-05-24,2kwbbcootiqqgmrzs6o5inle5,1,1,1,0,OU25,Üst,1.5,0.2,True,False,-0.2,59.5,65.4,61.5,-0.1565,B,True,47.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6667,-0.0712,0.0786,True,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.7386,,2/2,,False,v28-pro-max,betting_brain_approved +4rxhoi0i9401bepx6m7gcwd1w,2026-05-24,omyihforrpqj84kx7ts42cq1,1,0,1,0,BTTS,KG Var,1.73,0.2,True,False,-0.2,53.7,69.9,70.5,-0.0307,B,True,44.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.578,-0.0409,,False,DISAGREE,1.0,,MEDIUM,0.35,,2/2,,False,v28-pro-max,betting_brain_approved +1qaxnn018z3maqyxpzy4r4pp0,2026-05-24,cegl2ivkc25blcatxp4jmk1ec,1,0,1,0,BTTS,KG Var,1.88,0.2,True,False,-0.2,50.0,61.7,47.0,-0.0348,B,True,39.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5319,-0.0319,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.5993,,,,False,v28-pro-max,betting_brain_approved +2hfqlwknan5zb1kicsudsqmtw,2026-05-24,8najqkluatpaxvqws78b9s17c,0,1,0,1,DC,1X,1.08,0.0,False,False,0.0,75.2,75.2,69.0,-0.1338,PASS,True,6.2,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7525,0.9259,-0.1734,0.0049,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +38z7al9s53ba81he2vouroc2c,2026-05-24,54c65mhi143utomzvvv3q2avh,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.549,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +cv7zw00b4pph3x2up76rgzitw,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,1,1,1,1,MS,1,1.64,0.2,True,False,-0.2,53.4,56.4,46.7,-0.0355,B,True,47.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5341,0.6098,-0.0757,0.0516,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +3d4eap7f1or9mip7eagnnv09g,2026-05-24,6w05j3xxw76an1jwkzr6a6m03,1,1,0,1,OU25,Üst,1.54,0.2,True,False,-0.2,61.1,65.4,63.7,-0.1073,B,True,32.8,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.6494,-0.0387,0.0102,True,AGREE,0.899,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +aoj7j1dsvbigkj4manbgaayac,2026-05-24,ac42gi3penartj88fe9l6plpk,1,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2h7et0nv23owb5buu15imkums,2026-05-24,8najqkluatpaxvqws78b9s17c,2,0,1,0,DC,1X,1.09,0.0,False,True,0.0,74.8,74.8,68.5,-0.1357,PASS,True,5.9,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7477,0.9174,-0.1697,0.008,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4lcxunmkq0y13r6y87t9o3axg,2026-05-24,b60nisd3qn427jm0hrg9kvmab,2,3,1,2,OU25,Üst,1.5,0.2,True,True,0.1,61.1,65.4,69.4,-0.0518,B,True,55.4,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6667,-0.056,0.0477,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +5xe5ovbcilfosjm6fbamo8q38,2026-05-24,eterh6k7fau0ur6ossa0kzsvd,3,2,2,0,OU25,Üst,1.84,0.2,True,True,0.168,50.0,57.7,52.2,-0.1026,B,True,35.3,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5435,-0.0435,0.1048,True,DISAGREE,0.96,missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +cs4x1tki31033ptyi13s0pudw,2026-05-24,8dn0w8zh7nbn2i904603eigwf,4,1,2,0,OU25,Üst,1.33,0.2,True,True,0.066,61.4,65.4,62.1,-0.1157,B,True,51.3,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7519,-0.1375,0.027,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,,,,False,v28-pro-max,betting_brain_approved +crps6c4kg0vrsc623zr37e2ac,2026-05-24,8dn0w8zh7nbn2i904603eigwf,2,0,1,0,BTTS,KG Var,1.51,0.2,True,False,-0.2,53.2,69.9,51.1,-0.1956,B,True,21.2,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6623,-0.1306,,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,,,,False,v28-pro-max,betting_brain_approved +cszdud8zosypub5i0q2exvi1g,2026-05-24,8dn0w8zh7nbn2i904603eigwf,2,1,1,1,OU25,Üst,1.49,0.2,True,True,0.098,61.1,65.4,64.4,-0.0881,B,True,52.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6711,-0.0604,0.0486,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,,,,False,v28-pro-max,betting_brain_approved +bviin59dyuazf830xiixtf4lw,2026-05-24,138n7rt9ngbmktlhtwfeefqqp,0,1,0,1,MS,1,1.41,0.2,True,False,-0.2,66.1,65.5,64.3,0.0309,B,True,8.2,BET,,low_reliability_league;v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6614,0.7092,-0.0478,0.1741,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +csk5208ax5ljmqbkz90bllg5w,2026-05-24,8dn0w8zh7nbn2i904603eigwf,1,2,1,0,OU25,Üst,1.4,0.2,True,True,0.08,61.1,65.4,62.7,-0.1115,B,True,51.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7143,-0.1036,0.0629,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,,,,False,v28-pro-max,betting_brain_approved +cqelgheb22ywxg3r3avdkvi8k,2026-05-24,8dn0w8zh7nbn2i904603eigwf,1,1,1,1,BTTS,KG Var,1.33,0.2,True,True,0.066,54.4,69.9,51.4,-0.1669,B,True,35.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,,,,False,v28-pro-max,betting_brain_approved +cradfcsfcjgnaeebq9vqd9hjo,2026-05-24,8dn0w8zh7nbn2i904603eigwf,0,0,0,0,MS,1,1.38,0.2,True,False,-0.2,64.2,65.5,58.4,-0.0668,B,True,44.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6423,0.7246,-0.0823,0.0333,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3984,0.0,,,False,v28-pro-max,betting_brain_approved +bw6wwu2mmpfved7ssk84a7m6s,2026-05-24,138n7rt9ngbmktlhtwfeefqqp,0,1,0,1,MS,2,1.25,0.0,False,True,0.0,64.4,61.2,42.5,-0.2411,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;usable_historical_sample,0.6436,0.8,-0.1564,0.2496,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +macko17796382969743720650,2026-05-24,macko1692520799556438919,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +8gsasg1a8udin1qccgt1rk55g,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,3,1,2,0,BTTS,KG Var,1.44,0.2,True,True,0.088,53.2,69.9,63.3,-0.1377,B,True,45.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6944,-0.1627,,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5033,,1/1,,False,v28-pro-max,betting_brain_approved +8e0buzpazvekslf9rgudkmgpg,2026-05-24,3is4bkgf3loxv9qfg3hm8zfqb,0,2,0,1,BTTS,KG Var,1.54,0.2,True,False,-0.2,53.7,69.9,63.1,-0.2014,B,True,35.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6494,-0.1123,,True,AGREE,1.0,live_match_pre_match_features,LOW,0.5033,,1/1,,False,v28-pro-max,betting_brain_approved +f3cfpfkb939911crx4zvk30no,2026-05-24,ac112osli9fvox1epcg4ld3t6,0,3,0,0,BTTS,KG Var,1.25,0.0,False,False,0.0,54.3,69.9,53.3,-0.1389,PASS,True,37.5,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.8,-0.2567,,False,DISAGREE,0.96,missing_referee,HIGH,0.59,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +3mqd0l4fhdjzxnrkm74jbask4,2026-05-24,9ynnnx1qmkizq1o3qr3v0nsuk,3,1,2,0,BTTS,KG Var,1.34,0.2,True,True,0.068,57.1,69.9,71.7,-0.1182,B,True,57.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.7463,-0.1756,,False,AGREE,1.0,live_match_pre_match_features,LOW,0.554,,1/1,,False,v28-pro-max,betting_brain_approved +a92end1r5gaunhzoo0ydnp2xg,2026-05-24,6ifaeunfdelecgticvxanikzu,0,1,0,1,OU25,Üst,1.55,0.2,True,False,-0.2,59.5,65.4,65.4,-0.1134,B,True,50.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6452,-0.0497,0.0252,True,DISAGREE,1.0,,MEDIUM,0.5796,,,,False,v28-pro-max,betting_brain_approved +83v0laqc4ywf4421jixleqmfo,2026-05-24,5cwsxtx37les6m10xj71htkgf,1,0,1,0,OU25,Üst,1.61,0.2,True,False,-0.2,50.1,57.7,46.4,-0.0877,B,True,49.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6211,-0.1202,0.0302,False,AGREE,0.946,lineup_probable_not_confirmed,HIGH,0.6101,,,,False,v28-pro-max,betting_brain_approved +1tizos707l97orvq7l6kzwrh0,2026-05-24,4d5d3sf6805n5u6jdoa0hdlog,1,6,1,4,BTTS,KG Var,1.48,0.2,True,True,0.096,53.7,69.9,64.4,-0.1522,B,True,41.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6757,-0.1386,,True,AGREE,1.0,,LOW,0.7052,,,,False,v28-pro-max,betting_brain_approved +hs2kpswk5931yht5iffejo4,2026-05-24,ac112osli9fvox1epcg4ld3t6,2,2,0,1,OU25,Üst,1.34,0.2,True,True,0.068,60.2,65.4,61.6,-0.1088,B,True,63.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7463,-0.1445,0.0736,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +eccknklxgwi2t00fvvzzdh6vo,2026-05-24,ac112osli9fvox1epcg4ld3t6,3,1,1,0,OU25,Üst,1.39,0.2,True,True,0.078,60.2,65.4,65.8,-0.0523,B,True,66.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7194,-0.1176,0.0189,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +b0xmbmufcna6jupjcpbedj8d0,2026-05-24,dwiqifdd70ytjytcs09vzosb3,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2fl2guxrplo2c6tajmzp6egpg,2026-05-24,2g6lybov5xk8rlb79ek8imri7,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7311sb513l70dqyxb3578trtg,2026-05-24,6c76ua2pykvzepkmpprq4i8kf,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +e8sdhkqf66cfl47dx7ycll2qc,2026-05-24,ac112osli9fvox1epcg4ld3t6,3,0,1,0,MS,1,1.39,0.2,True,True,0.078,64.6,65.5,68.6,-0.0134,B,True,60.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6464,0.7194,-0.073,0.1204,False,AGREE,0.96,missing_referee,MEDIUM,0.59,0.0,,,False,v28-pro-max,betting_brain_approved +1uu1lt3z5nv68jbsall7yk5ck,2026-05-24,4m0gue88zp0eji1cxsjpwxna4,0,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +934voldr5t81nvn4ivxmnitqs,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,3,2,2,2,MS,2,1.49,0.2,True,False,-0.2,55.0,61.2,39.4,-0.1412,B,True,0.0,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;usable_historical_sample,0.5504,0.6711,-0.1207,0.157,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,0.0,,,False,v28-pro-max,betting_brain_approved +cvuwkbo0f2gx9o96ibr5i2jo4,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,2,0,0,0,BTTS,KG Var,1.44,0.2,True,False,-0.2,53.2,69.9,31.1,-0.1531,B,True,34.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6944,-0.1627,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +2ft6m1z0i5jju7e6kvsp0h7v8,2026-05-24,2g6lybov5xk8rlb79ek8imri7,2,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +718jyal8e2a5uwrwjkaj1wsno,2026-05-24,6c76ua2pykvzepkmpprq4i8kf,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +1m0tb8uc3apsaakqsjlz6stg4,2026-05-24,1r097lpxe0xn03ihb7wi98kao,1,0,0,0,OU25,Üst,1.5,0.2,True,False,-0.2,50.1,57.7,51.0,-0.1259,B,True,60.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6667,-0.1658,0.0295,False,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.7391,,2/2,,False,v28-pro-max,betting_brain_approved +64uax4sjlxngrk37lphgjfthw,2026-05-24,8y29fg2s85ppcb8uugm5ee8s4,1,2,1,2,OU25,Üst,1.61,0.2,True,True,0.122,59.5,65.4,68.0,-0.0218,B,True,39.6,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5955,0.6211,-0.0256,0.1713,False,DISAGREE,0.96,missing_referee,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +8y05op115nihzvwqej0v7ys,2026-05-24,6qitd9h242qkvjenaytfdnsf2,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.663,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +i5c6b7cm4yz56ajarkrccno,2026-05-24,6qitd9h242qkvjenaytfdnsf2,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dw3z03vjt7lw2xojllwfpqyhg,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,0,3,0,1,OU25,Üst,1.38,0.2,True,True,0.076,61.1,65.4,59.2,-0.0923,B,True,52.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7246,-0.1139,0.0325,False,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +2ivvd3cd6msbiofch81lvukgk,2026-05-24,1xeblbv1u1bbtoedqfuefqky8,0,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +bdsnymerivaet6t4rvqojl6ac,2026-05-24,6pa0oewm09lahbg90q9epk1j6,4,3,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cutdr21jsu6lgpjkucspm79jo,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,4,1,3,1,OU25,Üst,1.35,0.2,True,True,0.07,61.1,65.4,49.3,-0.2344,B,True,33.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7407,-0.13,0.0189,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +2g2ii8eieojzt1t75wx6vis5w,2026-05-24,1xeblbv1u1bbtoedqfuefqky8,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +1s3wikpnony2o3k1ckz4y5444,2026-05-24,8dtd2gc9ly2p87w3k6fd000es,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2yi78j70hquyssag6jzt9q4gk,2026-05-24,dexr6wlw3e339z88f1qr74wt6,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +ecv9x7ukgdmdyha2i43eg3l78,2026-05-24,9chuiarcjofld1dkj9kysehmb,1,0,0,0,OU25,Üst,1.62,0.2,True,False,-0.2,61.4,65.4,70.4,-0.0346,B,True,63.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6173,-0.0029,0.011,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +72h4gn9elysfkbdyrj2don578,2026-05-24,6jgwiu2gq3dllmrwt45pfdn2z,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +etynqn0mmyi2lqy013j5i7gno,2026-05-24,3ri6juw2w6ma0jezszdlv1uqm,1,1,0,0,MS,1,1.34,0.2,True,False,-0.2,57.8,65.5,45.2,-0.1498,B,True,35.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5782,0.7463,-0.1681,0.1068,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5356,0.0,,,False,v28-pro-max,betting_brain_approved +macko17796128304057822790,2026-05-24,7qdv1xae7ikfe8dft3oj29yqc,2,1,1,0,OU25,Üst,1.1,0.0,False,True,0.0,72.3,70.7,61.9,-0.161,PASS,True,42.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7233,0.9091,-0.1858,0.0499,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5692,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +macko17796128300979609678,2026-05-24,7qdv1xae7ikfe8dft3oj29yqc,0,1,0,0,OU25,Üst,1.16,0.0,False,False,0.0,61.4,65.4,51.4,-0.2209,PASS,True,42.5,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.8621,-0.2477,0.0077,True,DISAGREE,0.735,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5692,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +c7pkrchbll2si4vqkz7gzk4d0,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,4,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +9bqgugikvkw2scxzj5c5xru38,2026-05-24,2wolc27r8z03itcvwp43e38c5,1,0,1,0,BTTS,KG Var,1.87,0.2,True,False,-0.2,50.0,61.7,48.5,-0.1044,B,True,34.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5348,-0.0348,,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5592,,,,False,v28-pro-max,betting_brain_approved +5teo2lajj304wvy4a0faacyc,2026-05-24,4azsryi40zahspm5h6d0f0pgl,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dor7v807ez40qpguxiynhm32s,2026-05-24,aho73e5udydy96iun3tkzdzsi,2,1,1,0,BTTS,KG Var,1.3,0.2,True,True,0.06,54.3,69.9,55.6,-0.1909,B,True,19.0,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5433,0.7692,-0.2259,,False,AGREE,0.96,missing_referee,MEDIUM,0.5149,,,,False,v28-pro-max,betting_brain_approved +1zeul9g7njy7r4zdfqvatasyc,2026-05-24,cydr5rltozch9qnzjurt1r7d9,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +1zwkubdt4lu8v8v0o5ei84c2c,2026-05-24,cydr5rltozch9qnzjurt1r7d9,6,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +20eijg85rh1r5apz9rbmcyot0,2026-05-24,cydr5rltozch9qnzjurt1r7d9,2,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2lu1shsoxaetiz1ah10j698no,2026-05-24,bu1l7ckihyr0errxw61p0m05,2,1,1,0,MS,1,1.77,0.2,True,True,0.154,49.2,53.5,58.7,0.0562,B,True,59.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4916,0.565,-0.0734,0.0547,False,AGREE,1.0,,MEDIUM,0.6995,0.0,,,False,v28-pro-max,betting_brain_approved +2lc8r5v87rzbnkowvw8ee94pg,2026-05-24,bu1l7ckihyr0errxw61p0m05,3,0,3,0,BTTS,KG Var,1.33,0.2,True,False,-0.2,54.4,69.9,62.3,-0.125,B,True,51.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,False,AGREE,1.0,,MEDIUM,0.6995,,,,False,v28-pro-max,betting_brain_approved +2ll5y6s3b1mb2ma9uvwcoiln8,2026-05-24,bu1l7ckihyr0errxw61p0m05,2,1,1,1,BTTS,KG Var,1.64,0.2,True,True,0.128,54.3,69.9,67.2,-0.1235,B,True,42.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6098,-0.0665,,True,AGREE,1.0,,LOW,0.6995,,,,False,v28-pro-max,betting_brain_approved +9ghpdod8wvcd0z2r5x85j88wk,2026-05-24,3p81ltz6845appgkbgkzxueii,3,3,2,1,BTTS,KG Var,1.42,0.2,True,True,0.084,54.9,69.9,61.7,-0.1114,B,True,46.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.7042,-0.1554,,False,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_approved +aol95fd1axd4oy8ko7w0qdl3o,2026-05-24,3w1hkk9k9gr8fwssyn4icvdfo,3,0,3,0,BTTS,KG Var,1.68,0.2,True,False,-0.2,53.7,69.9,73.4,-0.0294,B,True,56.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5952,-0.0581,,False,AGREE,1.0,,LOW,0.4657,,,,False,v28-pro-max,betting_brain_approved +ak790t2h5go6efkvmypzcf384,2026-05-24,8vbck9a4mxjms783lf72779uu,3,1,2,1,OU25,Üst,1.38,0.2,True,True,0.076,60.2,65.4,58.6,-0.1655,B,True,38.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7246,-0.1228,0.0887,True,AGREE,0.676,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.4946,,,,False,v28-pro-max,betting_brain_approved +dvkxevf79teg5v2b3t2ihsc9g,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,2,1,0,0,OU25,Üst,1.43,0.2,True,True,0.086,60.2,65.4,55.4,-0.1539,B,True,35.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6993,-0.0975,0.0262,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +aj3h51l86nqqqvn6c6ikh0wlw,2026-05-24,7wssxdqi4xihseeam8grqa2b8,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9ypbqtwwdo5vudhwmxygy5afo,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4mffw610ks0whga7bdygrqxas,2026-05-24,b60nisd3qn427jm0hrg9kvmab,2,1,2,1,OU25,Üst,1.39,0.2,True,True,0.078,61.1,65.4,69.4,-0.0483,B,True,55.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7194,-0.1087,0.0116,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +2x5c42rfcoxbq4ir2aaksh6ac,2026-05-24,1jsiuepngd3pdeepzob61b02n,3,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.766,missing_full_ms_odds;lineup_probable_not_confirmed,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2w17mtr9hlcw2cdlrlwbl8t1w,2026-05-24,1jsiuepngd3pdeepzob61b02n,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.766,missing_full_ms_odds;lineup_probable_not_confirmed,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +895017iweccg35o7wrs9ipjpw,2026-05-24,7qf0jaayyxy3ruamsexv5p1kl,2,0,0,0,OU25,Üst,1.39,0.2,True,False,-0.2,61.1,65.4,59.3,-0.0872,B,True,57.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7194,-0.1087,0.0098,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5988,,,,False,v28-pro-max,betting_brain_approved +dq8ox7pdgi21ipykv1tcguuj8,2026-05-24,avfztt2gggt5n8h836zj7jhxa,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.514,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +4k9b6ykqyiyq1hplwek4b6dqs,2026-05-24,b60nisd3qn427jm0hrg9kvmab,1,2,0,0,OU25,Üst,1.38,0.2,True,True,0.076,61.4,65.4,67.4,-0.0804,B,True,53.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7246,-0.1102,0.0268,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +6xjaz1h41mcuwwp6k99ekbthw,2026-05-24,82jkgccg7phfjpd0mltdl3pat,1,2,1,2,OU25,Üst,1.17,0.0,False,True,0.0,61.4,65.4,51.5,-0.1973,PASS,True,40.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6144,0.8547,-0.2403,0.0099,True,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4mhrijcjpql0gll6tfmw9n5sk,2026-05-24,8cit3whr514nnd4zkaovsnqn,0,3,0,1,OU25,Üst,1.52,0.2,True,True,0.104,61.1,65.4,62.6,-0.1269,B,True,36.9,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6579,-0.0472,0.0703,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,,2/2,,False,v28-pro-max,betting_brain_approved +9ak0idj052sue8yl83ty63qc4,2026-05-24,3frp1zxrqulrlrnk503n6l4l,4,1,1,1,OU25,Üst,1.69,0.2,True,True,0.138,61.1,65.4,72.8,0.0075,B,True,70.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5917,0.019,0.0852,False,AGREE,1.0,,MEDIUM,0.5808,,2/2,,False,v28-pro-max,betting_brain_approved +4eeastyg42scff48p08hhxa1g,2026-05-24,a76wytvfp0qwq5xaqohher1bf,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.78,missing_full_ms_odds;missing_referee,HIGH,,,,,False,v28-pro-max,no_bet_conditions_met +6x0d2fstzulb73rh97ofdf310,2026-05-24,82jkgccg7phfjpd0mltdl3pat,0,5,0,2,BTTS,KG Var,1.3,0.2,True,False,-0.2,54.4,69.9,59.0,-0.1222,B,True,51.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7692,-0.2247,,False,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_approved +6wfnzb2kjxmy0zz119xhylc0k,2026-05-24,82jkgccg7phfjpd0mltdl3pat,3,3,2,2,OU25,Üst,1.2,0.0,False,True,0.0,66.5,65.4,67.1,-0.1169,PASS,True,69.2,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.8333,-0.1682,0.0432,False,AGREE,0.96,missing_referee;live_match_pre_match_features,LOW,0.7643,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +d475hwb454sgv3fuj4ysu3ztg,2026-05-24,8r98daokeuzsamu5fmjtblqx5,3,4,0,2,MS,1,1.47,0.0,False,False,0.0,50.5,53.5,39.7,-0.1855,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,v25_v27_aligned;usable_historical_sample,0.5046,0.6803,-0.1757,0.027,True,AGREE,0.96,missing_referee,MEDIUM,0.6922,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +d4rw35izeojquws2xkkkr81sk,2026-05-24,8r98daokeuzsamu5fmjtblqx5,0,1,0,1,BTTS,KG Var,1.56,0.2,True,False,-0.2,52.5,69.9,60.5,-0.0533,B,True,42.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.641,-0.1158,,False,DISAGREE,0.96,missing_referee,HIGH,0.6922,,,,False,v28-pro-max,betting_brain_approved +83bugg7s1s93l1vmmoxuaijo4,2026-05-24,5cwsxtx37les6m10xj71htkgf,1,3,1,2,BTTS,KG Var,1.54,0.2,True,True,0.108,54.3,69.9,55.0,-0.1109,B,True,51.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6494,-0.1061,,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.6101,,,,False,v28-pro-max,betting_brain_approved +6vd7bfmzt6vet1gpfeexxx0k4,2026-05-24,82jkgccg7phfjpd0mltdl3pat,2,3,1,1,BTTS,KG Var,1.25,0.0,False,True,0.0,54.4,69.9,55.4,-0.1592,PASS,True,43.9,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5445,0.8,-0.2555,,False,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +62xrvf4kgbnsez6tv29kiyivo,2026-05-24,8y29fg2s85ppcb8uugm5ee8s4,1,1,1,0,MS,1,1.72,0.2,True,False,-0.2,54.5,58.8,45.7,-0.2065,B,True,34.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5446,0.5814,-0.0368,0.0447,True,AGREE,0.96,missing_referee,MEDIUM,0.6866,0.0,,,False,v28-pro-max,betting_brain_approved +d3ebvpwf0cp41qibh8fqvou8k,2026-05-24,8r98daokeuzsamu5fmjtblqx5,0,3,0,1,HT,X,1.8,0.0,False,False,0.0,49.5,45.3,38.7,-0.0983,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,base_model_not_playable,,0.4947,0.5556,-0.0609,,False,DISAGREE,0.96,missing_referee,MEDIUM,0.6922,,,,False,v28-pro-max,betting_brain_no_safe_pick +do96f1btebff5xi70f9fdgefo,2026-05-24,aho73e5udydy96iun3tkzdzsi,1,1,0,0,OU25,Üst,1.59,0.2,True,False,-0.2,54.7,65.4,62.6,-0.0301,B,True,62.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6289,-0.0817,0.0003,False,AGREE,0.96,missing_referee,MEDIUM,0.5149,,,,False,v28-pro-max,betting_brain_approved +7niory7m4adr56x3vppc0efis,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,0,3,0,2,BTTS,KG Var,1.2,0.0,False,False,0.0,54.4,69.9,36.4,-0.2018,PASS,True,20.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8333,-0.2888,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7mj4t22e16k9qorotvhkxy9lg,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,0,2,0,0,BTTS,KG Var,1.38,0.2,True,False,-0.2,54.3,69.9,40.3,-0.1728,B,True,20.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7246,-0.1813,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +macko17796128291862035109,2026-05-24,7qdv1xae7ikfe8dft3oj29yqc,1,2,1,0,MS,1,1.17,0.0,False,False,0.0,67.8,65.5,41.7,-0.1195,PASS,True,47.2,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6784,0.8547,-0.1763,0.1169,False,AGREE,0.62,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5692,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +cjcaijve2fx6e66lr51luh1xw,2026-05-24,3p81ltz6845appgkbgkzxueii,1,2,0,2,OU25,Üst,1.24,0.0,False,True,0.0,66.5,65.4,70.6,-0.0904,PASS,True,65.8,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.8065,-0.1414,0.0688,False,DISAGREE,0.96,missing_referee;live_match_pre_match_features,LOW,0.5454,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9liv1dsjfi5qmpj3bblltfh90,2026-05-24,bcpgmjs508joni6hpme87qz2b,2,1,1,0,OU25,Üst,1.49,0.2,True,True,0.098,60.2,65.4,59.1,-0.1157,B,True,30.6,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6711,-0.0693,0.018,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +1kaxtlb7ml97zh437wvqt8gk,2026-05-24,ac112osli9fvox1epcg4ld3t6,0,2,0,1,BTTS,KG Var,1.33,0.2,True,False,-0.2,56.7,69.9,57.9,-0.1253,B,True,50.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5673,0.7519,-0.1846,,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +cvauo37ojwazjokmpci2risyc,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,2,1,1,0,DC,12,1.1,0.0,False,True,0.0,75.0,75.0,71.7,-0.0989,PASS,True,17.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7497,0.9091,-0.1594,0.0643,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9kg13ramzpjmz97icc6osg178,2026-05-24,bcpgmjs508joni6hpme87qz2b,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dnqqbbpkghpm3iq0ipjcqr3tg,2026-05-24,aho73e5udydy96iun3tkzdzsi,0,1,0,0,OU25,Üst,1.42,0.2,True,False,-0.2,61.1,65.4,60.6,-0.1372,B,True,43.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7042,-0.0935,0.0673,True,AGREE,0.96,missing_referee,MEDIUM,0.5149,,,,False,v28-pro-max,betting_brain_approved +2fv3ooli7yrg5hsev622rji8k,2026-05-24,1jsiuepngd3pdeepzob61b02n,0,2,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.766,missing_full_ms_odds;lineup_probable_not_confirmed,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +925vykz3kjxe446amv0mjcm50,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,2,1,0,0,BTTS,KG Var,1.33,0.2,True,True,0.066,53.7,69.9,40.8,-0.1594,B,True,35.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7519,-0.2148,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +8c1j7o292o1cpbaymhjb1t0r8,2026-05-24,3alyl4h2ug42jl1j67yj0owes,0,4,0,3,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ctsh0ci41gihqi0cfdqnj8qac,2026-05-24,1owhvvge4wlx7e0e431b4vhqx,3,1,0,0,MS,1,1.32,0.2,True,True,0.064,60.4,65.5,42.4,-0.1869,B,True,33.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6044,0.7576,-0.1532,0.0518,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5423,0.0,,,False,v28-pro-max,betting_brain_approved +6fmgpbbl7w0h473luy5nsj4lw,2026-05-24,54c65mhi143utomzvvv3q2avh,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +c9x1cvd9fagl6n2itx4hsax3o,2026-05-24,akmkihra9ruad09ljapsm84b3,1,1,0,0,OU25,Üst,1.44,0.2,True,False,-0.2,61.1,65.4,67.5,-0.0716,B,True,66.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6944,-0.0837,0.0326,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.6182,,1/1,,False,v28-pro-max,betting_brain_approved +bq24xgvi8c3yzqavhzfsm38yc,2026-05-24,6wubmo7di3kdpflluf6s8c7vs,0,1,0,0,MS,2,1.56,0.2,True,True,0.112,59.1,61.2,68.3,-0.0488,B,True,57.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5914,0.641,-0.0496,0.1329,False,AGREE,1.0,,LOW,0.5375,0.0,,,False,v28-pro-max,betting_brain_approved +eqjtfq8c575skl0o0mrebq9lg,2026-05-24,b73zounsynk9d3u1p9nvpu7i2,3,0,0,0,OU25,Üst,1.43,0.2,True,True,0.086,61.1,65.4,60.5,-0.1504,B,True,35.9,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6993,-0.0886,0.0542,True,AGREE,0.96,missing_referee,MEDIUM,0.4049,,,,False,v28-pro-max,betting_brain_approved +er4o81lfeq5oc9o7j9skljbis,2026-05-24,b73zounsynk9d3u1p9nvpu7i2,3,1,2,0,BTTS,KG Var,1.68,0.2,True,True,0.136,53.7,69.9,57.7,-0.1235,B,True,12.7,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5952,-0.0581,,True,AGREE,0.96,missing_referee,HIGH,0.4049,,,,False,v28-pro-max,betting_brain_approved +960si2jrh70502mtypgkbxf6c,2026-05-24,54c65mhi143utomzvvv3q2avh,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +do0sqioekutfyrm4u00ddh8gk,2026-05-24,avfztt2gggt5n8h836zj7jhxa,0,1,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7zphdbzzcja26hvqlkoozji8k,2026-05-24,d9dzk2ucvzhl71uc5cznrf834,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +brksl2qednmoax4v84n9pdtzo,2026-05-24,6wubmo7di3kdpflluf6s8c7vs,0,1,0,0,OU25,Üst,1.74,0.2,True,False,-0.2,59.5,65.4,71.8,-0.0664,B,True,53.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5747,0.0208,0.0936,True,AGREE,1.0,,LOW,0.5375,,,,False,v28-pro-max,betting_brain_approved +1ofgqaadwindnwpmjxir6bp5g,2026-05-24,98cah2nmq6d9pcwrzlh1hl0nh,2,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +1ct4fohjxnfutu51g7j3e76dw,2026-05-24,54c65mhi143utomzvvv3q2avh,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +969uc7esvcv7aij8zgnlanb4k,2026-05-24,54c65mhi143utomzvvv3q2avh,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +brz2e13x7xb5db3iilh698d90,2026-05-24,6wubmo7di3kdpflluf6s8c7vs,3,2,1,2,MS,1,1.06,0.0,False,True,0.0,72.5,74.4,69.6,-0.2273,PASS,True,40.7,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7253,0.9434,-0.2181,0.1129,True,AGREE,1.0,,LOW,0.5375,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +1qk0hlw72iu6qp7oq0bebqyvo,2026-05-24,cegl2ivkc25blcatxp4jmk1ec,0,0,0,0,BTTS,KG Var,1.87,0.2,True,False,-0.2,52.5,69.9,59.9,-0.0388,B,True,54.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.5348,-0.0096,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5993,,,,False,v28-pro-max,betting_brain_approved +d7et6jqnqhi1y8sup5zv00o44,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,3,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +38pq5ue8bwn678ht5n6ffvr4k,2026-05-24,54c65mhi143utomzvvv3q2avh,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.533,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +oggpgawpse42r6j8escxqsyc,2026-05-24,24sqrnfysjbuzxsyz3pqbhc96,8,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.696,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2w0lkza305w0svszre2s6ohsk,2026-05-24,dv7yrlxxgsfl7wl2sno3adndq,0,6,0,3,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dxgzhi51xas2q4qo3hgl3lbtg,2026-05-24,54c65mhi143utomzvvv3q2avh,0,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dwyg38x6gm08aqg3p52cbjdhw,2026-05-24,54c65mhi143utomzvvv3q2avh,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +c97kzydy67h43b34bj0tlzg9g,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7t3qoi121s1i0mjbd36mfzac4,2026-05-24,4m0gue88zp0eji1cxsjpwxna4,4,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.385,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6yrk09k4656c4tph2awlpfl78,2026-05-24,7pk2icgodrzaih8i0pikb21s4,4,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.422,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6vx3qfdfmr1n8g7r4riu2lnv8,2026-05-24,82jkgccg7phfjpd0mltdl3pat,0,1,0,0,BTTS,KG Var,1.86,0.3,True,False,-0.3,53.5,69.9,75.3,0.1128,A,True,99.5,BET,,,base_model_playable;value_sniper_override;triple_value_confirmed;strong_historical_sample,0.535,0.5376,-0.0026,,False,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_approved +7svnmomcnene2jd88ifu8fklw,2026-05-24,4m0gue88zp0eji1cxsjpwxna4,0,4,0,3,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cwz9klx1js82gp5i0rmap3jf8,2026-05-24,54c65mhi143utomzvvv3q2avh,2,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +wx880g4rsl398qdpdjqfbl04,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,3,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +bs8m5dd04f0shvk095q36mrdg,2026-05-24,cc9zntdbef14p20gt4ekvnjvs,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4w47iwnod5hd2rs1j6v9cl3pw,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9zruuvutd2p6tptns0zsamz9w,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9z9se9lhpy8hu6ybibjvd2j2s,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,2,1,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9y60mwnmkxsdts90f74z9asyc,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4z0l34zn9dhxbcac67k5gg5xw,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4wp856f1g1ycy272ttj9baqz8,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,4,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +90zgcqjboekqm69uqrdk3zu38,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,4,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +yx4lhw8jmau1crbie0k4nswk,2026-05-24,9w8ydnoft05zow8l4wu9sxfq1,5,1,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c6pvxvyumefjckshkrnjw0ems,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,4,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9wk03cpo3sm5isr5eiba6u2hg,2026-05-24,z3w7v4hqa7ssk5p6qkbpg9au,1,3,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +macko1779612246058415579,2026-05-24,macko1692520799556438919,3,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a87c6383o7tuff6wcezk4rr4k,2026-05-24,1okgv7alq5gggbccv5r9p63v8,1,2,0,0,BTTS,KG Var,1.65,0.2,True,True,0.13,53.7,69.9,55.0,-0.1818,B,True,10.0,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6061,-0.069,,True,DISAGREE,0.96,missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +d751txvprrmjgsqxo5b91lous,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dxxlx99yoj4u16bktld9hpn2s,2026-05-24,9zvu736m8f9jzeyukisgey356,0,4,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17796120346502486413,2026-05-24,macko1692520799556438919,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +9l5n7nw0rmygmh6emk3d8plp0,2026-05-24,bcpgmjs508joni6hpme87qz2b,2,0,1,0,OU25,Üst,1.68,0.2,True,False,-0.2,50.0,57.7,45.1,-0.1584,B,True,25.3,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5952,-0.0952,0.0597,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +9ksriik6afsw7gzp4cnl56nmc,2026-05-24,bcpgmjs508joni6hpme87qz2b,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +5do17s20ue07cno9qdrs7swk,2026-05-24,8ifnkq96dckjtn9ab9wplpl9l,1,4,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +el0qww63p8r1f2rdm302kwjdg,2026-05-24,1pptcuhbrktn3aia6khf9edt6,0,5,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +eq0xiwvxhf7fibklwstpxpjx0,2026-05-24,b73zounsynk9d3u1p9nvpu7i2,0,0,0,0,OU25,Üst,1.67,0.2,True,False,-0.2,54.7,65.4,55.7,-0.0731,B,True,40.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5988,-0.0516,0.0194,False,DISAGREE,0.96,missing_referee,HIGH,0.4049,,,,False,v28-pro-max,betting_brain_approved +d2o6kpsqg715x9xvc7sryzy8k,2026-05-24,8r98daokeuzsamu5fmjtblqx5,0,4,0,3,OU25,Üst,1.6,0.2,True,True,0.12,52.4,63.7,48.2,-0.1494,B,True,34.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5237,0.625,-0.1013,0.0474,True,AGREE,0.96,missing_referee,HIGH,0.6922,,,,False,v28-pro-max,betting_brain_approved +c7s8pu6hrj5155vczfpeq1lp0,2026-05-24,69ruk23bbos6yc07zeogu0mzu,3,2,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c89cc4v7dzb6wpemkopshzxn8,2026-05-24,69ruk23bbos6yc07zeogu0mzu,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ejzq1n5zse4kt3imyu5kufuhg,2026-05-24,1pptcuhbrktn3aia6khf9edt6,0,5,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +18m5stzz6yuiuaubu58co1qtw,2026-05-24,di7752smia5ba7js20dqcxxuo,2,2,2,1,BTTS,KG Var,1.33,0.2,True,True,0.066,53.7,69.9,58.5,-0.1713,B,True,36.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7519,-0.2148,,False,DISAGREE,0.96,missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +eki9o4yvd53oesr8o0xxuc844,2026-05-24,1pptcuhbrktn3aia6khf9edt6,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +5d2jr5wpnoohamjdpx1ixpj4k,2026-05-24,3a1kagik7bnoofrhr6qqp0dn8,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ejhngv4eeicam1e4wv27ukfmc,2026-05-24,1pptcuhbrktn3aia6khf9edt6,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +anixv6gapkfysazg1aubpylg4,2026-05-24,ehmpyfw70d7gs99hb9gz74wve,2,8,0,5,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17796068743051089867,2026-05-24,macko17758906228832537578,2,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +aogfglev6pz1b8y0ifqoiuhhw,2026-05-24,ehmpyfw70d7gs99hb9gz74wve,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9k5pj9vtiwefg48db2q0cflec,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,5,2,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c9gp6gkdv9gvmk6l09p2oyj9w,2026-05-24,69ruk23bbos6yc07zeogu0mzu,1,5,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4ms4ldvgx7pd6b7h53c0az3f8,2026-05-24,2mdmx668tyhy4u4z9zszwjv5v,0,1,0,0,OU25,Üst,1.44,0.2,True,False,-0.2,60.2,65.4,60.1,-0.0774,B,True,58.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6944,-0.0926,0.0003,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6345,,,,False,v28-pro-max,betting_brain_approved +aj5omlqxeeniq5wmeei0u60ic,2026-05-24,6g8hw3acenrw828la7gwx4mvs,0,5,0,2,MS,1,1.38,0.2,True,False,-0.2,59.1,65.5,53.1,0.0079,B,True,52.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5908,0.7246,-0.1338,0.0084,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.663,0.0,,,False,v28-pro-max,betting_brain_approved +egl17am2vzmk6aavy3at813x0,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +3a42mtlu20sdy22igm79z8idw,2026-05-24,5jej246l7zaj0c7cesk23wbug,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8u7s81nfoenuo198vm8s74tn8,2026-05-24,1okgv7alq5gggbccv5r9p63v8,1,3,0,0,BTTS,KG Var,1.47,0.2,True,True,0.094,53.7,69.9,65.0,-0.1257,B,True,39.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6803,-0.1432,,False,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +8v9kz58j9tu9i8xkebca5auj8,2026-05-24,1okgv7alq5gggbccv5r9p63v8,0,6,0,3,BTTS,KG Var,1.89,0.2,True,False,-0.2,53.3,69.9,69.0,-0.0691,B,True,28.5,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5327,0.5291,0.0036,,True,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +ainyttq68snwddjs9ajgd6jo4,2026-05-24,6g8hw3acenrw828la7gwx4mvs,0,2,0,1,BTTS,KG Var,1.33,0.2,True,False,-0.2,53.7,69.9,38.4,-0.1806,B,True,25.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7519,-0.2148,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_approved +62v7muont44u2m4xc1fp91a1g,2026-05-24,1n9l0ex47bu0762qg574hzjtd,2,1,1,1,BTTS,KG Var,1.24,0.0,False,True,0.0,54.3,69.9,40.5,-0.2364,PASS,True,8.6,WATCH_NO_VALUE,odds_below_minimum,very_low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.8065,-0.2632,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.2626,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +anzstdj9den9pq42frhigmzo4,2026-05-24,ehmpyfw70d7gs99hb9gz74wve,2,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4nbg4qqu8wcmhb9ffjhp9wphw,2026-05-24,2mdmx668tyhy4u4z9zszwjv5v,2,0,1,0,OU25,Üst,1.36,0.2,True,False,-0.2,60.2,65.4,57.6,-0.1076,B,True,56.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7353,-0.1335,0.0037,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6345,,,,False,v28-pro-max,betting_brain_approved +ahnqusbtbg4z6v5ww2wkb6dqs,2026-05-24,6g8hw3acenrw828la7gwx4mvs,1,1,0,0,OU25,Üst,1.42,0.2,True,False,-0.2,54.7,65.4,45.5,-0.2118,B,True,38.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.7042,-0.157,0.0433,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_approved +6jb7zchwq1qtwi7p8nl0xs178,2026-05-24,eqz64pn0qsp2y7aq4m9id3fn6,4,1,3,1,DC,12,1.05,0.0,False,True,0.0,79.6,79.6,74.4,-0.136,PASS,True,41.7,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7956,0.9524,-0.1568,0.0308,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.7031,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ai5s91g3mr8i3j07yxeldjoyc,2026-05-24,6g8hw3acenrw828la7gwx4mvs,2,0,1,0,OU25,Üst,1.47,0.2,True,False,-0.2,50.1,57.7,38.4,-0.2114,B,True,35.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6803,-0.1794,0.0789,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_approved +bmjvcplrdbjqnk3b3i6vbs9hw,2026-05-24,c94v1ygetqisxeijmyhta076y,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c8xpq0b8q5f5iuhgcpbzpvvh0,2026-05-24,69ruk23bbos6yc07zeogu0mzu,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dt4q2of8issim2q5caeszu4no,2026-05-24,8q60vlvn3krynkob6igrncdjq,1,3,0,1,MS,2,1.53,0.2,True,True,0.106,49.6,53.3,39.9,0.0234,B,True,41.9,BET,,triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4959,0.6536,-0.1577,0.0915,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.703,0.0,,,False,v28-pro-max,betting_brain_approved +dxfn0t4ox91angbpos7ga3xg4,2026-05-24,9zvu736m8f9jzeyukisgey356,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7rxvrr50xdkwxxu7ufivfyk9g,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,4,0,3,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +y9le4oioc8ulw74e30i4qnmc,2026-05-24,61fzfjogstjuukzcehighq7mu,1,3,0,1,MS,2,1.34,0.2,True,True,0.068,59.8,61.2,37.4,-0.1851,B,True,37.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5984,0.7463,-0.1479,0.0182,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6641,0.0,,,False,v28-pro-max,betting_brain_approved +7s9yam4x11hyd2quiv7729m38,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,5,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +bn3n9fpn7a5zx3x36ewcylct0,2026-05-24,c94v1ygetqisxeijmyhta076y,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a6l7iejhdxb5xv9ia2uyokefo,2026-05-24,1okgv7alq5gggbccv5r9p63v8,2,3,0,1,OU25,Üst,1.67,0.2,True,True,0.134,54.7,65.4,64.9,-0.0498,B,True,54.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5988,-0.0516,0.0108,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +ab7oavpbld7i76wwuvyzeklxw,2026-05-24,9zmk2nvdaohu0lggtfc6vdo4q,1,4,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7hyw3u2gobdfl1mbo2wvixudw,2026-05-24,ezdsrofi27pck8v4ifpcg24bu,3,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8j2gg66rnmwbggbp7u3r9bf2s,2026-05-24,287tckirbfj9nb8ar2k9r60vn,1,1,1,1,OU25,Üst,1.39,0.2,True,False,-0.2,61.4,65.4,68.0,-0.0654,B,True,66.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7194,-0.105,0.0421,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +9dga8cpnvybg8ga1d3fgjqj2s,2026-05-24,c1d9p6b2e9zr5tqlzx3ktjplg,2,0,1,0,OU35,Üst,2.5,0.2,True,False,-0.2,50.6,50.8,53.3,0.014,B,True,42.2,BET,,low_reliability_league;trap_market_market_overpriced,base_model_playable;value_sniper_override;strong_historical_sample,0.5058,0.4,0.1058,,True,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +cv5qfhn0wxbf3zx3w921wc4k4,2026-05-24,jznihqxle06xych9ygwiwnsa,4,0,2,0,BTTS,KG Var,1.32,0.2,True,False,-0.2,53.7,69.9,59.0,-0.1922,B,True,24.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.7576,-0.2205,,True,AGREE,1.0,,MEDIUM,0.4796,,,,False,v28-pro-max,betting_brain_approved +7igxrz35iwb9i2lh3xvugbnys,2026-05-24,ezdsrofi27pck8v4ifpcg24bu,5,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9f4260tnxkjs965arnnpbymms,2026-05-24,c1d9p6b2e9zr5tqlzx3ktjplg,2,0,0,0,OU25,Üst,1.56,0.2,True,False,-0.2,61.1,65.4,66.4,-0.1092,B,True,38.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.641,-0.0303,0.1091,True,DISAGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +9gaa61k2x9nygoe3wgfqmwsgk,2026-05-24,c1d9p6b2e9zr5tqlzx3ktjplg,3,2,1,1,MS,1,2.09,0.2,True,True,0.218,43.0,45.5,46.2,0.0919,B,True,45.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4298,0.4785,-0.0487,0.0326,False,AGREE,1.0,,MEDIUM,0.4129,0.0,,,False,v28-pro-max,betting_brain_approved +b3me0wq6vzdac92u8z0i68178,2026-05-24,ae1wva3zrzcp2zd15gpvsntg6,1,2,1,1,OU25,Üst,1.86,0.2,True,True,0.172,50.1,57.7,46.4,-0.0943,B,True,48.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5376,-0.0367,0.0256,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.7517,,,,False,v28-pro-max,betting_brain_approved +7ra35sk7bgasj06jov0nzk1zo,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,2,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +eg9hwa80gmjnxwltpim3j2uj8,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +34vz4ukh7f9lf3kcu2oigscgk,2026-05-24,5hwvpu5kcvehmftkhf8m6bvje,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +51nms4rylg0i11t0a2mtcax3o,2026-05-24,enzlj1as2raqm4ids1zyb07y1,1,0,1,0,MS,1,1.45,0.2,True,True,0.09,53.4,56.4,31.1,-0.1521,B,True,50.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5341,0.6897,-0.1556,0.0695,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +8hjtzr5hkjlrdsa6mcrtdmxw4,2026-05-24,287tckirbfj9nb8ar2k9r60vn,1,2,1,2,OU25,Üst,1.39,0.2,True,True,0.078,61.4,65.4,67.3,-0.0751,B,True,66.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7194,-0.105,0.0624,False,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +8i25o6ojz7ou1wfd6ive9ypec,2026-05-24,287tckirbfj9nb8ar2k9r60vn,1,3,1,3,OU25,Üst,1.17,0.0,False,True,0.0,68.5,65.4,64.5,-0.1613,PASS,True,47.9,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6854,0.8547,-0.1693,0.0003,True,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +8ikn0ri81aads0w2o8vj5q0ic,2026-05-24,287tckirbfj9nb8ar2k9r60vn,2,4,0,2,OU25,Üst,1.21,0.0,False,True,0.0,72.3,70.7,76.7,-0.0768,PASS,True,68.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7233,0.8264,-0.1031,0.0192,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,2/2,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9q4m6j59n0avhk1m5yyzag2dw,2026-05-24,2ty8ihceabty8yddmu31iuuej,0,0,0,0,OU25,Üst,1.78,0.2,True,False,-0.2,59.5,65.4,72.4,0.001,B,True,70.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5618,0.0337,0.0994,False,AGREE,1.0,,MEDIUM,0.6283,,,,False,v28-pro-max,betting_brain_approved +8bpoaj8tdfdwkysu1b8vzc5jo,2026-05-24,a9vrdkelbgif0gtu3wxsr75xo,3,0,2,0,OU25,Üst,1.44,0.2,True,True,0.088,61.1,65.4,67.9,-0.1084,B,True,55.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6944,-0.0837,0.0592,True,AGREE,1.0,,LOW,0.6618,,,,False,v28-pro-max,betting_brain_approved +2ppalf51k04ixoe2jji4ls9w4,2026-05-24,3tybapqetnmdiam9exg1q4yl0,5,3,2,1,OU25,Üst,1.72,0.2,True,True,0.144,59.5,65.4,65.1,0.0158,B,True,21.9,BET,,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.5955,0.5814,0.0141,0.018,False,DISAGREE,0.96,missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +81xdt1ngzgaszhjnca37qczro,2026-05-24,d2z998w0n69doc4gxlpprcb56,2,1,0,1,BTTS,KG Var,1.45,0.2,True,True,0.09,51.9,68.4,34.8,-0.1364,B,True,33.4,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.6897,-0.1705,,False,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +cyqs8u12mgyzovg8ngygskrv8,2026-05-24,e1kxdivp5g4cpldgpwvnzl1vv,3,1,1,1,OU15,Üst,1.24,0.0,False,True,0.0,53.7,50.0,39.3,-0.1207,PASS,False,22.3,REJECT,odds_below_minimum;calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,triple_value_confirmed;usable_historical_sample,0.5368,0.8065,-0.2697,,False,AGREE,0.96,missing_referee,MEDIUM,0.6626,,,,False,v28-pro-max,betting_brain_no_safe_pick +9fpu4zcdvi04mgdgwqbyjywwk,2026-05-24,c1d9p6b2e9zr5tqlzx3ktjplg,1,0,0,0,OU35,Üst,2.24,0.2,True,False,-0.2,43.9,49.7,54.8,0.0833,B,True,77.3,BET,,low_reliability_league,base_model_playable;value_sniper_override;triple_value_confirmed;strong_historical_sample,0.4718,0.4464,0.0254,,False,DISAGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +cuhgvdbp4unrq3apcjvi0n95g,2026-05-24,jznihqxle06xych9ygwiwnsa,1,3,0,1,MS,1,1.41,0.2,True,False,-0.2,63.1,65.5,67.4,-0.0801,B,True,27.9,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6313,0.7092,-0.0779,0.2088,False,AGREE,1.0,,MEDIUM,0.4796,0.0,,,False,v28-pro-max,betting_brain_approved +8fwksfs4ds357it76bka1ox04,2026-05-24,287tckirbfj9nb8ar2k9r60vn,1,2,0,2,OU25,Üst,1.17,0.0,False,True,0.0,66.5,65.4,71.4,-0.0744,PASS,True,61.6,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6651,0.8547,-0.1896,0.0026,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +31jlia5rkw4hojxc0thnch3x0,2026-05-24,5qmjkpvi92vrzdcb2knassjkk,2,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8feezjm8f4hfs6odo4gleu80k,2026-05-24,287tckirbfj9nb8ar2k9r60vn,2,1,1,1,OU25,Üst,1.3,0.2,True,True,0.06,66.1,65.4,73.5,-0.0533,B,True,67.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6615,0.7692,-0.1077,0.0234,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +9hfv3tidsrd4dkmfuvroiey38,2026-05-24,c1d9p6b2e9zr5tqlzx3ktjplg,2,1,2,0,BTTS,KG Var,1.77,0.2,True,True,0.154,53.7,69.9,67.7,-0.0872,B,True,27.6,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.565,-0.0279,,True,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +ctwt96u5893yxq357r3vtavbo,2026-05-24,jznihqxle06xych9ygwiwnsa,2,2,1,0,OU25,Üst,1.8,0.2,True,True,0.16,61.1,65.4,69.7,-0.0533,B,True,48.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5556,0.0551,0.0774,True,DISAGREE,1.0,,MEDIUM,0.4796,,,,False,v28-pro-max,betting_brain_approved +8h1pyz7vg3i13sk2kp6252f4k,2026-05-24,287tckirbfj9nb8ar2k9r60vn,2,1,1,1,OU25,Üst,1.61,0.2,True,True,0.122,61.1,65.4,71.9,-0.0082,B,True,69.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6211,-0.0104,0.0598,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +9f4bmb0k9heb8okqvqg2a2e50,2026-05-24,2y8bntiif3a9y6gtmauv30gt,1,2,1,2,OU25,Üst,1.81,0.2,True,True,0.162,59.5,65.4,75.6,0.0651,B,True,68.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5525,0.043,0.0487,False,AGREE,1.0,,MEDIUM,0.4782,,,,False,v28-pro-max,betting_brain_approved +7618aufr50u3eu4rv0p7lzuhg,2026-05-24,bly7ema5au6j40i0grhl0pnub,5,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.78,missing_full_ms_odds;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +eyn0dm1ave7ayjtpwl4pttixg,2026-05-24,scf9p4y91yjvqvg5jndxzhxj,0,3,0,1,BTTS,KG Var,1.74,0.2,True,False,-0.2,53.7,69.9,67.0,-0.0871,B,True,53.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5747,-0.0376,,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.6414,,1/1,,False,v28-pro-max,betting_brain_approved +6xx4wvkl0397ksvluhie3hmac,2026-05-24,6lwpjhktjhl9g7x2w7njmzva6,1,1,0,0,MS,2,2.13,0.3,True,False,-0.3,45.0,48.7,55.9,0.1137,B,True,48.5,BET,,triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.45,0.4695,-0.0195,0.1154,False,DISAGREE,1.0,,MEDIUM,0.6164,0.0,,,False,v28-pro-max,betting_brain_approved +cta3osdlftg91fabpweu8ueqc,2026-05-24,jznihqxle06xych9ygwiwnsa,2,0,0,0,MS,1,1.74,0.2,True,True,0.148,55.7,58.8,69.0,0.0621,A,True,93.0,BET,,,base_model_playable;value_sniper_override;v25_v27_aligned;triple_value_confirmed;usable_historical_sample,0.5566,0.5747,-0.0181,0.0484,False,AGREE,1.0,,MEDIUM,0.4796,0.0,,,False,v28-pro-max,betting_brain_approved +f7a4sq7b0dizv0fcmgokliqc,2026-05-24,ein4fkggto3pdh5msp8huafiq,0,3,0,3,OU25,Üst,1.77,0.2,True,True,0.154,60.2,65.4,67.6,-0.0357,B,True,48.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.565,0.0368,0.0832,True,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.4856,,,,False,v28-pro-max,betting_brain_approved +7p96ycbe431zrifm37oixh6vo,2026-05-23,5zr0b05eyx25km7z1k03ca9jx,0,1,0,0,BTTS,KG Var,1.71,0.2,True,False,-0.2,53.7,69.9,66.5,-0.0994,B,True,33.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5848,-0.0477,,True,AGREE,1.0,,MEDIUM,0.5424,,,,False,v28-pro-max,betting_brain_approved +5xeuqn6v6wbb8hrnzx0tms8wk,2026-05-23,enzlj1as2raqm4ids1zyb07y1,2,4,0,2,MS,1,1.33,0.2,True,False,-0.2,64.2,65.5,50.6,-0.0665,B,True,53.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6423,0.7519,-0.1096,0.0472,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +8dw9ie06gyq8wy33m3wfwlh5g,2026-05-23,287tckirbfj9nb8ar2k9r60vn,1,0,1,0,OU25,Üst,1.45,0.2,True,False,-0.2,61.4,65.4,68.9,-0.054,B,True,67.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6897,-0.0753,0.0801,False,AGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +8ee7bxleyyl44tw2t27bu1ams,2026-05-23,287tckirbfj9nb8ar2k9r60vn,6,2,2,1,MS,1,1.48,0.2,True,True,0.096,57.0,65.5,61.6,-0.2212,B,True,41.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed;htft_reversal_prob_minor=0.12,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.57,0.6757,-0.1057,0.0467,True,AGREE,1.0,live_match_pre_match_features,LOW,0.5529,0.08929999999999999,1/1,,False,v28-pro-max,betting_brain_approved +9gu2b3vjtmqip6ck1en58hp90,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,4,1,1,0,OU25,Üst,1.52,0.2,True,True,0.104,68.5,65.4,72.8,-0.0822,B,True,40.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6854,0.6579,0.0275,0.1322,True,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +9hziojb5u57wug11h8qykytjo,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,3,0,3,0,OU25,Üst,1.51,0.2,True,True,0.102,61.1,65.4,70.3,-0.0362,B,True,56.2,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6623,-0.0516,0.0957,False,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +8ew9b8lo4fmctgp1mbowy7x90,2026-05-23,287tckirbfj9nb8ar2k9r60vn,4,4,2,1,OU25,Üst,1.48,0.2,True,True,0.096,61.1,65.4,63.3,-0.1446,B,True,48.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6757,-0.065,0.0731,True,DISAGREE,1.0,live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +l1yb8jzpgqj6sn9m1u77awic,2026-05-23,enzlj1as2raqm4ids1zyb07y1,1,1,0,0,BTTS,KG Var,1.27,0.0,False,True,0.0,54.4,69.9,39.3,-0.2005,PASS,True,20.5,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5445,0.7874,-0.2429,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9pdkn5dj9494t32wfgms0zris,2026-05-23,2ty8ihceabty8yddmu31iuuej,3,1,0,0,OU25,Üst,1.61,0.2,True,True,0.122,54.7,65.4,64.1,-0.0542,B,True,66.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6211,-0.0739,0.0032,False,AGREE,1.0,,MEDIUM,0.6283,,,,False,v28-pro-max,betting_brain_approved +cs3pcj03rgj9kqm0rpdpmnok4,2026-05-23,jznihqxle06xych9ygwiwnsa,3,1,2,1,MS,1,1.5,0.2,True,True,0.1,57.8,65.5,71.0,-0.0249,B,True,54.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5779,0.6667,-0.0888,0.0905,False,AGREE,1.0,,MEDIUM,0.4796,0.0,,,False,v28-pro-max,betting_brain_approved +5wvsnwfys4s0xv98p43bdmzh0,2026-05-23,enzlj1as2raqm4ids1zyb07y1,0,3,0,2,BTTS,KG Var,1.33,0.2,True,False,-0.2,54.4,69.9,37.0,-0.2414,B,True,30.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +5x5m8f5u8n7if9hb5bkv1r384,2026-05-23,enzlj1as2raqm4ids1zyb07y1,0,3,0,2,BTTS,KG Var,1.34,0.2,True,False,-0.2,54.3,69.9,41.9,-0.1768,B,True,20.8,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5433,0.7463,-0.203,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +a2yjvupe4mp72iaqgjz0kftas,2026-05-23,enzlj1as2raqm4ids1zyb07y1,3,0,1,0,OU25,Üst,1.34,0.2,True,True,0.068,61.1,65.4,49.5,-0.2559,B,True,38.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.7463,-0.1356,0.0137,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +310feci4lqcbtwy22lif8njf8,2026-05-23,5qmjkpvi92vrzdcb2knassjkk,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a7oaty2spmguu49q3nfqqjrx0,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,3,1,1,0,OU25,Üst,1.53,0.2,True,True,0.106,61.1,65.4,73.9,0.0274,B,True,59.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6536,-0.0429,0.0865,False,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +a85vrknb34vz8nhnekj6rcb2s,2026-05-23,enzlj1as2raqm4ids1zyb07y1,2,1,0,0,BTTS,KG Var,1.39,0.2,True,True,0.078,53.7,69.9,42.5,-0.1757,B,True,30.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7194,-0.1823,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +3qqjj4ib0d4tfdgtcbpty0pas,2026-05-23,enzlj1as2raqm4ids1zyb07y1,1,1,1,1,BTTS,KG Var,1.41,0.2,True,True,0.082,52.5,69.9,53.3,-0.0226,B,True,48.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5252,0.7092,-0.184,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +9ejfslp9nx0yt8w6pu00cowes,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,4,3,2,1,OU25,Üst,1.38,0.2,True,True,0.076,61.4,65.4,62.1,-0.1673,B,True,35.3,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7246,-0.1102,0.1167,True,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +a81aqjoh53pfkd56tvpa190yc,2026-05-23,cfesxhzb83yl8b779uv3revz1,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.78,missing_full_ms_odds;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +cspbjqhztku6bc1pfgm1223v8,2026-05-23,jznihqxle06xych9ygwiwnsa,1,1,0,0,OU25,Üst,1.64,0.2,True,False,-0.2,61.4,65.4,66.7,-0.1055,B,True,45.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6098,0.0046,0.0217,True,DISAGREE,1.0,,MEDIUM,0.4796,,,,False,v28-pro-max,betting_brain_approved +csvtqxl4772y0sz8ykcxx1l3o,2026-05-23,enzlj1as2raqm4ids1zyb07y1,2,1,1,0,BTTS,KG Var,1.36,0.2,True,True,0.072,53.7,69.9,45.4,-0.1313,B,True,47.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7353,-0.1982,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +a9123bsdidq4p5dt9x8qhj7kk,2026-05-23,cfesxhzb83yl8b779uv3revz1,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.78,missing_full_ms_odds;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +89rymedsw0uqkoyljcbtok8wk,2026-05-23,a9vrdkelbgif0gtu3wxsr75xo,1,0,0,0,OU25,Üst,1.51,0.2,True,False,-0.2,61.1,65.4,65.8,-0.0996,B,True,50.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6623,-0.0516,0.0796,True,AGREE,1.0,,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved +f1ocxwfcpx89ck2y143o1dgk4,2026-05-23,scf9p4y91yjvqvg5jndxzhxj,3,2,1,1,BTTS,KG Var,1.72,0.2,True,True,0.144,53.7,69.9,66.2,-0.0472,B,True,55.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5814,-0.0443,,False,AGREE,0.96,missing_referee;live_match_pre_match_features,MEDIUM,0.6414,,1/1,,False,v28-pro-max,betting_brain_approved +f0onnl39t3l4qbiw1rlomn6dw,2026-05-23,scf9p4y91yjvqvg5jndxzhxj,1,0,1,0,BTTS,KG Var,1.67,0.2,True,False,-0.2,53.7,69.9,61.2,-0.0457,B,True,42.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5988,-0.0617,,False,DISAGREE,0.96,missing_referee;live_match_pre_match_features,HIGH,0.6414,,1/1,,False,v28-pro-max,betting_brain_approved +9dzzizkycxy8wdnsb5s4ebt3o,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,0,0,0,0,BTTS,KG Var,1.5,0.2,True,False,-0.2,53.2,69.9,64.8,-0.1259,B,True,39.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.532,0.6667,-0.1347,,False,DISAGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +copzl12j1jz1senild1ylbwgk,2026-05-23,6lkj3o21cr4g7bql6tb3fk222,1,1,0,0,OU25,Üst,1.51,0.2,True,False,-0.2,54.7,65.4,61.5,-0.1111,B,True,51.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6623,-0.1151,0.0006,False,DISAGREE,1.0,,MEDIUM,0.3261,,,,False,v28-pro-max,betting_brain_approved +f5ljvyq3009bni55ltpczpnh0,2026-05-23,6qitd9h242qkvjenaytfdnsf2,2,2,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2qrgxzj7fn67qk8qdhfsbt4b8,2026-05-23,46b141eaqq9q7o4gz5gtdpikk,2,1,0,0,OU25,Üst,1.74,0.2,True,True,0.148,50.1,57.7,50.0,-0.1155,B,True,60.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5747,-0.0738,0.0093,False,AGREE,0.96,missing_referee,MEDIUM,0.6752,,,,False,v28-pro-max,betting_brain_approved +2qidhwzhjsrgxteuy8kl9puz8,2026-05-23,46b141eaqq9q7o4gz5gtdpikk,0,2,0,2,BTTS,KG Var,1.79,0.2,True,False,-0.2,52.5,69.9,67.5,-0.0261,B,True,56.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.5587,-0.0335,,False,DISAGREE,0.96,missing_referee,MEDIUM,0.6752,,,,False,v28-pro-max,betting_brain_approved +10sh0oi639gx5rwk91bz4dwk4,2026-05-23,3tybapqetnmdiam9exg1q4yl0,0,3,0,2,OU25,Üst,1.47,0.2,True,True,0.094,61.1,65.4,58.3,-0.1102,B,True,20.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.6803,-0.0696,0.0076,True,AGREE,0.96,missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +7mpz1bt5qp7fo8opaj645me50,2026-05-23,5zr0b05eyx25km7z1k03ca9jx,3,0,1,0,MS,1,1.35,0.0,False,True,0.0,52.7,54.5,46.5,-0.1466,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;triple_value_not_confirmed,v25_v27_aligned;usable_historical_sample,0.5266,0.7407,-0.2141,0.0015,False,AGREE,1.0,,MEDIUM,0.5424,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +9l4buhpiqwtwzrfal34big0t0,2026-05-23,2wolc27r8z03itcvwp43e38c5,1,0,0,0,OU25,Üst,1.68,0.2,True,False,-0.2,60.2,65.4,72.4,0.0548,B,True,72.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.5952,0.0066,0.0936,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5592,,,,False,v28-pro-max,betting_brain_approved +6yexnctlbnjv3s0ynh7zhl15g,2026-05-23,6lwpjhktjhl9g7x2w7njmzva6,1,2,1,1,BTTS,KG Var,1.36,0.2,True,True,0.072,54.3,69.9,66.0,-0.083,B,True,53.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7353,-0.192,,False,AGREE,1.0,,MEDIUM,0.6164,,,,False,v28-pro-max,betting_brain_approved +chct16590t12vnk73lkkz6904,2026-05-23,enzlj1as2raqm4ids1zyb07y1,2,2,1,2,MS,2,1.38,0.2,True,False,-0.2,62.0,61.2,44.3,-0.0964,B,True,55.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6197,0.7246,-0.1049,0.0873,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +781p74dk1tbt4k4xu7738udxw,2026-05-23,bly7ema5au6j40i0grhl0pnub,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +4irhskoqwm0z8isldlqkmtul0,2026-05-23,5y0z0l2epprzbscvzsgldw8vu,2,1,2,1,BTTS,KG Var,1.55,0.2,True,True,0.11,53.2,69.9,63.2,-0.147,B,True,31.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6452,-0.1135,,True,DISAGREE,1.0,,MEDIUM,0.5288,,,,False,v28-pro-max,betting_brain_approved +8geiaz56su4qmpdhdf3rbsys4,2026-05-23,287tckirbfj9nb8ar2k9r60vn,1,1,0,1,OU25,Üst,1.43,0.2,True,False,-0.2,61.4,65.4,62.6,-0.1043,B,True,64.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6993,-0.0849,0.0646,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +ezozhck4fvl0pw4m3mu5svq50,2026-05-23,scf9p4y91yjvqvg5jndxzhxj,1,1,1,0,OU25,Üst,1.59,0.2,True,False,-0.2,61.1,65.4,61.4,-0.1293,B,True,48.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6289,-0.0182,0.0765,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.6414,,1/1,,False,v28-pro-max,betting_brain_approved +f2o0eplqjm9jqxt8mhvwp1wyc,2026-05-23,scf9p4y91yjvqvg5jndxzhxj,2,0,1,0,DC,1X,1.32,0.2,True,True,0.064,71.5,71.5,76.0,-0.0601,B,True,71.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7145,0.7576,-0.0431,0.0497,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.6414,,X/X,,False,v28-pro-max,betting_brain_approved +63q5fj1ego6cpqyj21ewkj28k,2026-05-23,1eruend45vd20g9hbrpiggs5u,1,1,1,0,OU15,Üst,1.31,0.0,False,True,0.0,50.0,50.0,34.5,-0.1751,PASS,False,6.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,strong_historical_sample,0.5,0.7634,-0.2634,,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.8083,,,,False,v28-pro-max,betting_brain_no_safe_pick +6qimw2evkyo11o3okdlw5rhg4,2026-05-23,byhmntnl1b4lxw0zz21im3zkd,2,2,1,1,OU25,Üst,1.74,0.2,True,True,0.148,50.0,57.7,43.9,-0.1771,B,True,31.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5747,-0.0747,0.0243,True,AGREE,1.0,,HIGH,0.7719,,,,False,v28-pro-max,betting_brain_approved +8b7wdulorshgzhhc1kfyljg9g,2026-05-23,a9vrdkelbgif0gtu3wxsr75xo,0,0,0,0,OU25,Üst,1.74,0.2,True,False,-0.2,50.1,57.7,48.1,-0.1155,B,True,48.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5747,-0.0738,0.0373,False,AGREE,1.0,,HIGH,0.6618,,,,False,v28-pro-max,betting_brain_approved +335s3vqytfwdbsmi2gprcbr4k,2026-05-23,5qmjkpvi92vrzdcb2knassjkk,4,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +l6b4a2ppspy13pnu59iy2vis,2026-05-23,enzlj1as2raqm4ids1zyb07y1,1,1,0,0,OU25,Üst,1.34,0.2,True,False,-0.2,61.1,65.4,54.3,-0.1503,B,True,35.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.7463,-0.1356,0.0349,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,MEDIUM,0.6442,,,,False,v28-pro-max,betting_brain_approved +dn9p3xuec8c01ywv6uyhyb28k,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,1,0,0,0,DC,X2,1.17,0.0,False,False,0.0,72.7,72.7,78.7,-0.1147,PASS,True,2.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7268,0.8547,-0.1279,0.1057,True,DISAGREE,1.0,,LOW,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +dpqzp3fyrkbeptb090vkump04,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,2,1,1,0,DC,1X,1.07,0.0,False,True,0.0,75.1,75.1,70.0,-0.1989,PASS,True,10.9,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7506,0.9346,-0.184,0.0232,True,AGREE,1.0,,MEDIUM,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +3up18t49bq8thej74h5lgf0us,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,1,2,1,0,BTTS,KG Var,1.65,0.2,True,True,0.13,54.9,69.9,61.9,0.0002,B,True,56.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.6061,-0.0573,,False,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3vhe91racce86uhq0b3mw29sk,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,1,0,0,0,OU25,Üst,1.94,0.4,True,False,-0.4,61.1,65.4,78.1,0.1541,A,True,100.0,BET,,,base_model_playable;value_sniper_override;v25_v27_aligned;triple_value_confirmed;strong_historical_sample,0.6107,0.5155,0.0952,0.0582,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3vur4jhid3p73hq5qz0t48bv8,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,1,1,0,1,OU25,Üst,1.47,0.2,True,False,-0.2,60.2,65.4,59.5,-0.133,B,True,48.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6803,-0.0785,0.0462,True,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3w881304b6s154go90fihrjtg,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,1,0,0,0,OU25,Üst,3.05,0.2,True,False,-0.2,50.0,57.7,63.1,0.1774,B,True,70.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5,0.3279,0.1721,0.08,False,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,X/X,,False,v28-pro-max,betting_brain_approved +3y3gz2ufpcbu5vkgph7jyg74k,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,1,1,0,1,OU25,Üst,1.56,0.2,True,False,-0.2,61.4,65.4,65.0,-0.0629,B,True,66.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.641,-0.0266,0.0679,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3wljbdagmhpi6h7viwogz9ul0,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,3,0,1,0,BTTS,KG Var,1.81,0.2,True,False,-0.2,57.1,69.9,64.3,-0.0438,B,True,55.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.5525,0.0182,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3v3zljn1yog1g4knq4uoaledw,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,2,1,1,1,BTTS,KG Var,1.31,0.2,True,True,0.062,54.4,69.9,50.9,-0.1323,B,True,49.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7634,-0.2189,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,,1/1,,False,v28-pro-max,betting_brain_approved +3wz71k4469ny273fw5c1yavx0,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,4,2,2,1,MS,1,1.35,0.2,True,True,0.07,64.2,65.5,50.1,-0.1533,B,True,36.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed;htft_reversal_prob_minor=0.10,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6423,0.7407,-0.0984,0.0108,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,0.0716,1/1,,False,v28-pro-max,betting_brain_approved +3xq4alyjtlltd6j11gckoxvkk,2026-05-23,34pl8szyvrbwcmfkuocjm3r6t,3,1,0,0,MS,2,1.69,0.2,True,False,-0.2,46.1,49.3,42.0,0.0106,A,True,89.4,BET,,htft_reversal_prob_minor=0.13,base_model_playable;value_sniper_override;v25_v27_aligned;triple_value_confirmed;strong_historical_sample,0.4609,0.5917,-0.1308,0.1395,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.8227,0.0698,2/2,,False,v28-pro-max,betting_brain_approved +9gn400d0652c6u02cjyitbf2s,2026-05-23,2y8bntiif3a9y6gtmauv30gt,2,2,2,0,MS,1,1.44,0.2,True,False,-0.2,60.3,65.5,69.6,-0.0465,B,True,58.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6028,0.6944,-0.0916,0.0784,False,AGREE,1.0,,MEDIUM,0.4782,0.0,,,False,v28-pro-max,betting_brain_approved +7l5tkh3v3ypj58x6jsh6lj6s4,2026-05-23,5zr0b05eyx25km7z1k03ca9jx,2,1,1,1,MS,1,1.8,0.2,True,True,0.16,46.8,46.3,51.9,0.0695,B,True,52.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4685,0.5556,-0.0871,0.0538,False,AGREE,1.0,,MEDIUM,0.5424,0.0,,,False,v28-pro-max,betting_brain_approved +6xdumuz4xjqeblq3iuu1pz5zo,2026-05-23,6lwpjhktjhl9g7x2w7njmzva6,2,2,2,1,MS,1,1.5,0.2,True,False,-0.2,57.7,65.5,65.7,-0.1043,B,True,55.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.577,0.6667,-0.0897,0.1229,False,AGREE,1.0,,MEDIUM,0.6164,0.0,,,False,v28-pro-max,betting_brain_approved +71yraylvsyjn4j3zumo3c1tzo,2026-05-23,6jgwiu2gq3dllmrwt45pfdn2z,1,2,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.477,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +4g8knrnsujk6tcs94qnbax0d0,2026-05-23,5y0z0l2epprzbscvzsgldw8vu,1,2,1,0,BTTS,KG Var,1.41,0.2,True,True,0.082,53.7,69.9,55.4,-0.1772,B,True,12.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.7092,-0.1721,,True,AGREE,1.0,,HIGH,0.5288,,,,False,v28-pro-max,betting_brain_approved +dq8z9kl7rj2hltgwhho6bfthw,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,1,1,0,1,DC,X2,1.31,0.2,True,True,0.062,75.4,75.4,86.7,-0.053,B,True,18.6,BET,,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.7539,0.7634,-0.0095,0.2188,True,DISAGREE,1.0,,LOW,0.5359,,,,False,v28-pro-max,betting_brain_approved +co78y84tuqbmsv18u9xc2lslw,2026-05-23,6lkj3o21cr4g7bql6tb3fk222,1,1,1,1,BTTS,KG Var,1.46,0.2,True,True,0.092,53.7,69.9,62.0,-0.1814,B,True,22.8,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6849,-0.1478,,True,AGREE,1.0,,MEDIUM,0.3261,,,,False,v28-pro-max,betting_brain_approved +669z55b10k5hgxxporckl1rf8,2026-05-23,8n9w0n3i9kk05echhtmstn6o9,3,3,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.723,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +1kano1peqbw5ho0zlex7mdw5w,2026-05-23,1r097lpxe0xn03ihb7wi98kao,2,1,2,1,OU25,Üst,1.71,0.2,True,True,0.142,52.0,63.7,64.6,-0.0497,B,True,66.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.555,0.5848,-0.0298,0.0586,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.7391,,1/1,,False,v28-pro-max,betting_brain_approved +7nlznjb6d6m4xl0nhj5ea7nro,2026-05-23,4zwgbb66rif2spcoeeol2motx,2,0,1,0,OU25,Üst,1.32,0.2,True,False,-0.2,61.1,65.4,59.1,-0.1323,B,True,62.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7576,-0.1469,0.0655,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.6995,,1/1,,False,v28-pro-max,betting_brain_approved +7nbj14tqx3jvprqhqw6k7zdhw,2026-05-23,4zwgbb66rif2spcoeeol2motx,0,2,0,2,OU25,Üst,1.32,0.2,True,False,-0.2,61.4,65.4,52.9,-0.2133,B,True,45.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7576,-0.1432,0.0951,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.6995,,2/2,,False,v28-pro-max,betting_brain_approved +7nwgtyk106orwf9cr9sfsrgus,2026-05-23,4zwgbb66rif2spcoeeol2motx,0,2,0,0,BTTS,KG Var,1.64,0.2,True,False,-0.2,53.7,69.9,61.1,-0.0133,B,True,56.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6098,-0.0727,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.6995,,X/X,,False,v28-pro-max,betting_brain_approved +8deax6mbv2kc0yxvyk3oii3v8,2026-05-23,287tckirbfj9nb8ar2k9r60vn,3,0,1,0,OU25,Üst,1.36,0.2,True,True,0.072,61.4,65.4,61.2,-0.1193,B,True,63.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7353,-0.1209,0.0655,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5529,,1/1,,False,v28-pro-max,betting_brain_approved +9z03xooiv839tbg2mwszaobh0,2026-05-23,a7jvnthhjvliqu9e3m509tmy2,3,0,1,0,BTTS,KG Var,1.62,0.2,True,False,-0.2,53.7,69.9,70.4,-0.0909,B,True,46.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6173,-0.0802,,False,AGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +910t2sdaawvn5hwb3slgmzn6c,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,1,0,0,0,DC,1X,1.13,0.0,False,True,0.0,71.5,71.5,72.8,-0.1676,PASS,True,3.9,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7147,0.885,-0.1703,0.0623,True,DISAGREE,1.0,,LOW,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2vdgx5h03fl4lfskfq5gy4ob8,2026-05-23,7nmz249q89qg5ezcvzlheljji,2,1,0,1,OU25,Üst,1.47,0.2,True,True,0.094,61.1,65.4,64.9,-0.0667,B,True,66.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6803,-0.0696,0.0314,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.6381,,,,False,v28-pro-max,betting_brain_approved +63gqftbo64zq8lkws43n7wxsk,2026-05-23,1eruend45vd20g9hbrpiggs5u,3,2,1,1,BTTS,KG Var,1.86,0.2,True,True,0.172,53.7,69.9,62.0,0.0011,B,True,56.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5376,-0.0005,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.8083,,,,False,v28-pro-max,betting_brain_approved +1rymgb8ash3j6rw8hq2nnjlec,2026-05-23,4jieyfpyom8d011dgeqj77ojm,4,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8ysdx9hfdwlpvqllbys0payhg,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,2,0,0,0,DC,1X,1.07,0.0,False,True,0.0,73.5,73.5,76.5,-0.139,PASS,True,18.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7351,0.9346,-0.1995,0.0357,True,AGREE,1.0,,LOW,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +91iox4r3k2mhxtp357otexwr8,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,0,1,0,0,DC,1X,1.11,0.0,False,False,0.0,73.5,73.5,73.9,-0.1764,PASS,True,16.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7351,0.9009,-0.1658,0.0098,True,AGREE,1.0,,LOW,0.5359,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +do98n7jq1ml1m0yuz9r4sx8no,2026-05-23,byu00jvt1j6csyv4y1lkt2fm2,0,0,0,0,MS,1,1.73,0.2,True,False,-0.2,59.4,65.5,79.0,0.0662,B,True,64.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5941,0.578,0.0161,0.0935,False,AGREE,1.0,,LOW,0.5359,0.0,,,False,v28-pro-max,betting_brain_approved +2rs50pyi9ownf9enlt93l2kno,2026-05-23,54c65mhi143utomzvvv3q2avh,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +319ybde1w4kr4f6e6ky8x5ams,2026-05-23,486rhdgz7yc0sygziht7hje65,3,0,0,0,BTTS,KG Var,1.17,0.0,False,False,0.0,57.1,69.9,61.1,-0.1719,PASS,True,49.0,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.8547,-0.284,,False,AGREE,1.0,,MEDIUM,0.7901,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9d3t32cg5u28x6fexqe7op15g,2026-05-23,2wolc27r8z03itcvwp43e38c5,3,0,1,0,BTTS,KG Var,1.64,0.2,True,False,-0.2,53.7,69.9,52.7,-0.1625,B,True,34.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6098,-0.0727,,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5592,,,,False,v28-pro-max,betting_brain_approved +8d8ptr2noopagrvswk6o46bys,2026-05-23,a9vrdkelbgif0gtu3wxsr75xo,0,0,0,0,DC,1X,1.31,0.2,True,True,0.062,73.3,73.3,80.6,-0.0623,B,True,55.0,BET,,triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7329,0.7634,-0.0305,0.1333,False,DISAGREE,1.0,,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved +2oz0uel04hq1ow4bp3x8wxb10,2026-05-23,89ovpy1rarewwzqvi30bfdr8b,1,1,1,0,OU25,Üst,1.58,0.2,True,False,-0.2,59.5,65.4,62.9,-0.1001,B,True,50.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6329,-0.0374,0.1031,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.7068,,,,False,v28-pro-max,betting_brain_approved +29lr5iqi7ofh7mjmdo1ntghlg,2026-05-23,663a54fmymndjeev47qm7d3nf,1,1,0,0,OU25,Üst,1.29,0.0,False,False,0.0,61.1,65.4,60.7,-0.1379,PASS,True,26.2,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6107,0.7752,-0.1645,0.0596,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3522,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ehhva4b3c8dm9bjdj9ifq20pg,2026-05-23,3j81qr7yc4gdnakfwnxf95ovh,3,0,1,0,MS,1,1.44,0.2,True,True,0.088,57.0,65.5,48.4,-0.0528,B,True,49.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5697,0.6944,-0.1247,0.0191,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.8771,0.0,,,False,v28-pro-max,betting_brain_approved +7in6ic89nzz2t5lxcawcef578,2026-05-23,domsjww1z4ouovaj6qogatnrf,6,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +50pbm4fbokfassr1y2y8uzc44,2026-05-23,8k1xcsyvxapl4jlsluh3eomre,0,3,0,2,BTTS,KG Var,1.61,0.2,True,False,-0.2,51.9,68.4,68.7,-0.0261,B,True,51.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5192,0.6211,-0.1019,,False,AGREE,1.0,,MEDIUM,0.7463,,,,False,v28-pro-max,betting_brain_approved +518l2k3ezs9er1ivaj27a5slw,2026-05-23,8k1xcsyvxapl4jlsluh3eomre,2,2,1,2,DC,X2,1.1,0.0,False,True,0.0,72.9,72.9,74.1,-0.1132,PASS,True,20.8,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;engine_consensus_disagree,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7294,0.9091,-0.1797,0.1087,False,DISAGREE,1.0,,MEDIUM,0.7463,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +65swmlx3ci1esecznmmpiq2ok,2026-05-23,8y29fg2s85ppcb8uugm5ee8s4,3,0,1,0,BTTS,KG Var,1.81,0.2,True,False,-0.2,54.3,69.9,66.1,-0.1041,B,True,38.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.5525,-0.0092,,True,AGREE,1.0,,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +70yca30q8zli8uolmfkbnpnh0,2026-05-23,1zcp6rnjil25rnsv1ttcz3dhx,1,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +5l0018vxptos31wnlehwf60b8,2026-05-23,4jieyfpyom8d011dgeqj77ojm,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3b8rgy96ym840lffnfbkuj6l0,2026-05-23,54c65mhi143utomzvvv3q2avh,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.555,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +505wfcq8d9k5vib1uwxve8hsk,2026-05-23,8k1xcsyvxapl4jlsluh3eomre,0,0,0,0,DC,1X,1.14,0.0,False,True,0.0,73.2,73.2,74.1,-0.1533,PASS,True,22.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7317,0.8772,-0.1455,0.0198,True,AGREE,1.0,,LOW,0.7463,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +8j4qrsqem1nbh6f9i5qfy8aok,2026-05-23,6ka830b4sankqj0xg70ojhcvj,2,0,1,0,BTTS,KG Var,1.81,0.2,True,False,-0.2,51.9,68.4,51.0,-0.0984,B,True,12.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5525,-0.0333,,True,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +b1bzyko194lppbrkgi8viopp0,2026-05-23,1b70m6qtxrp75b4vtk8hxh8c3,0,0,0,0,BTTS,KG Var,1.44,0.2,True,False,-0.2,53.7,69.9,62.5,-0.1395,B,True,50.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6944,-0.1573,,False,AGREE,1.0,,MEDIUM,0.6261,,,,False,v28-pro-max,betting_brain_approved +9dk21z1jrbvxfzt2x7lr28nbo,2026-05-23,2y8bntiif3a9y6gtmauv30gt,2,1,1,1,OU25,Üst,1.47,0.2,True,True,0.094,59.5,65.4,71.5,-0.0151,B,True,64.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6803,-0.0848,0.0081,False,AGREE,1.0,,MEDIUM,0.4782,,,,False,v28-pro-max,betting_brain_approved +2bzixo9l7n56sjm0xfaxzsftg,2026-05-23,degxm4y6gmvp011ccyrev6z5p,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2fw8ofi6yecb8kptpzqoma3h0,2026-05-23,degxm4y6gmvp011ccyrev6z5p,2,2,2,1,OU25,Üst,1.48,0.6,True,True,0.288,60.2,65.4,76.6,0.1188,B,True,62.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6018,0.6757,-0.0739,0.0804,False,AGREE,0.735,lineup_probable_not_confirmed;lineup_incomplete;missing_referee,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +2fdv257cv314l17csv6zyuolw,2026-05-23,degxm4y6gmvp011ccyrev6z5p,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2ed1ntmffhyi4j74p916w7pqs,2026-05-23,degxm4y6gmvp011ccyrev6z5p,1,0,1,0,MS,1,1.16,0.0,False,True,0.0,66.1,65.5,51.2,-0.209,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.6614,0.8621,-0.2007,0.1905,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2evbpe6j6jfbko4tknbe4no5w,2026-05-23,degxm4y6gmvp011ccyrev6z5p,2,2,0,1,OU25,Üst,1.68,0.2,True,True,0.136,54.7,65.4,59.9,-0.0839,B,True,59.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5952,-0.048,0.0272,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +2dus8i1wws8kyucsayvg4lvdg,2026-05-23,degxm4y6gmvp011ccyrev6z5p,3,2,1,0,OU25,Üst,1.48,0.2,True,True,0.096,59.5,65.4,64.7,-0.0771,B,True,36.4,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.5955,0.6757,-0.0802,0.084,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +2n8kmikfraax37ckev6kbnris,2026-05-23,degxm4y6gmvp011ccyrev6z5p,3,2,2,1,OU25,Üst,2.0,0.2,True,True,0.2,50.1,57.7,53.6,-0.0692,B,True,57.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5,0.0009,0.0148,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +2mkgl38x2bdmra0noe2rh78yc,2026-05-23,degxm4y6gmvp011ccyrev6z5p,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2pzqzaasga1ytzkyz6f229jpw,2026-05-23,degxm4y6gmvp011ccyrev6z5p,3,1,3,1,OU25,Üst,1.58,0.2,True,True,0.116,54.7,65.4,45.8,-0.2381,B,True,21.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5472,0.6329,-0.0857,0.0806,True,AGREE,0.818,lineup_probable_not_confirmed;lineup_incomplete;missing_referee,HIGH,0.5049,,,,False,v28-pro-max,betting_brain_approved +2o1q2siyeawi9fts8mvd8uvbo,2026-05-23,degxm4y6gmvp011ccyrev6z5p,3,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2qdk5uh6mdcwy8z1m9nol4x78,2026-05-23,degxm4y6gmvp011ccyrev6z5p,2,2,1,1,MS,1,1.86,0.2,True,False,-0.2,57.8,65.5,66.1,0.0746,B,True,58.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5782,0.5376,0.0406,0.1359,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5049,0.0,,,False,v28-pro-max,betting_brain_approved +4zsg7gnhr7u0gxi8jtrtdcr9w,2026-05-23,229149nh9etuw45zn3a0bw8io,0,0,0,0,OU25,Üst,1.44,0.2,True,False,-0.2,61.4,65.4,70.3,-0.0894,B,True,58.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6944,-0.08,0.083,False,DISAGREE,1.0,,LOW,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +er06z6fjzntr80hyn1dn3l72s,2026-05-23,bfqezwfhot1l3p1cpk4oonh25,2,1,0,1,OU25,Üst,1.4,0.2,True,True,0.08,61.4,65.4,67.1,-0.0788,B,True,60.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6144,0.7143,-0.0999,0.0243,False,AGREE,1.0,,MEDIUM,0.5705,,,,False,v28-pro-max,betting_brain_approved +1iz38m02tzgh8x5a9yg2ztgyc,2026-05-23,1r097lpxe0xn03ihb7wi98kao,3,3,2,1,OU25,Üst,1.5,0.2,True,True,0.1,61.1,65.4,60.6,-0.1253,B,True,49.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6667,-0.056,0.1329,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.7391,,2/2,,False,v28-pro-max,betting_brain_approved +3yxwclybj6x2hiews5nvmvg9g,2026-05-23,55hcphd1ccc6eai1ms77460on,4,0,0,0,MS,1,1.32,0.2,True,True,0.064,63.0,65.5,63.8,-0.1319,B,True,44.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed;htft_reversal_prob_minor=0.11,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6297,0.7576,-0.1279,0.0164,True,AGREE,1.0,,LOW,0.9445,0.0831,1/1,,False,v28-pro-max,betting_brain_approved +7ojxvk5t54gw7y7eeh732i4no,2026-05-23,3ww12jab49q8q8mk9avdwjqgk,3,0,2,0,OU25,Üst,1.57,0.2,True,True,0.114,61.1,65.4,65.0,-0.0718,B,True,66.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6369,-0.0262,0.1,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5961,,,,False,v28-pro-max,betting_brain_approved +d5vignrh77jfu0zfcm078cavo,2026-05-23,6ihotpaocgiovlxw18e9r9prx,0,1,0,1,OU25,Üst,1.33,0.2,True,False,-0.2,61.1,65.4,62.6,-0.1273,B,True,63.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7519,-0.1412,0.081,False,DISAGREE,1.0,,MEDIUM,0.7019,,,,False,v28-pro-max,betting_brain_approved +dkqu88vmgt5es31g2cdrf1q8k,2026-05-23,4jieyfpyom8d011dgeqj77ojm,2,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ekv5cryxj8gsek5b554649pn8,2026-05-23,6mts9l9nuewzt06owdperqwne,1,5,0,2,OU25,Üst,1.51,0.2,True,True,0.102,61.4,65.4,71.1,-0.0231,B,True,56.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6623,-0.0479,0.0246,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +d5m6vurtqq2v3a4ykp8t71gr8,2026-05-23,6v78kbs8d4hspxdgcti23a5n8,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4hnf52gfzuf6q97sgg6wv66ms,2026-05-23,54c65mhi143utomzvvv3q2avh,6,1,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +32oo432th2sgw3c89ovazsoic,2026-05-23,54c65mhi143utomzvvv3q2avh,3,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.651,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7gctgrgir0m9qjjqg7crz1ct0,2026-05-23,d88wxnb1q9o8jhw9enklfy5ww,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.514,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7bcetjsqg9ztmlmn16osnk6qc,2026-05-23,d88wxnb1q9o8jhw9enklfy5ww,2,1,1,1,,,,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7b3czor1abvd4ykvguhgjcnpw,2026-05-23,d88wxnb1q9o8jhw9enklfy5ww,0,3,0,1,,,,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +637kamaj96ulxnp58fkzdo4k4,2026-05-23,1eruend45vd20g9hbrpiggs5u,1,2,1,2,DC,1X,1.16,0.0,False,False,0.0,70.3,70.3,70.6,-0.0933,PASS,True,32.4,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7026,0.8621,-0.1595,0.0644,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.8083,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4hwkiq69v2x5893qy2kv3wp3o,2026-05-23,54c65mhi143utomzvvv3q2avh,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +8t9vl1az4x7d5et35xht6h0d0,2026-05-23,54c65mhi143utomzvvv3q2avh,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.532,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6moxfyk6n0w936washn7dd8no,2026-05-23,54c65mhi143utomzvvv3q2avh,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dxlptu8m4vv6awytspf4irod0,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,1,1,1,1,BTTS,KG Var,1.61,0.2,True,True,0.122,53.7,69.9,57.4,-0.084,B,True,47.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6211,-0.084,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,1/1,,False,v28-pro-max,betting_brain_approved +dwu9bbbohvuy1manspljbto2c,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,6,2,5,0,BTTS,KG Var,1.55,0.2,True,True,0.11,57.1,69.9,61.4,-0.0981,B,True,47.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6452,-0.0745,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,,,False,v28-pro-max,betting_brain_approved +dyr0v0eb25hza62dga2m59pg4,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,1,0,1,0,BTTS,KG Var,1.5,0.2,True,False,-0.2,53.7,69.9,56.6,-0.091,B,True,47.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6667,-0.1296,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,1/1,,False,v28-pro-max,betting_brain_approved +dxzjydnvviarmplponh88gkyc,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,2,2,1,0,BTTS,KG Var,1.42,0.2,True,True,0.084,54.4,69.9,52.5,-0.1539,B,True,29.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7042,-0.1597,,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,,,False,v28-pro-max,betting_brain_approved +dwgkiek40mct1gz4ii3lqbms4,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,4,0,2,0,OU25,Üst,1.3,0.2,True,True,0.06,60.2,65.4,66.2,-0.0465,B,True,57.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6018,0.7692,-0.1674,0.0613,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,1/1,,False,v28-pro-max,betting_brain_approved +dx806igmmrne1j3aok6pl8ob8,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,1,1,1,0,OU25,Üst,1.26,0.0,False,False,0.0,50.0,57.7,35.6,-0.233,PASS,True,20.0,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5,0.7937,-0.2937,0.013,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,HIGH,0.4559,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +dydbym64vpf21v2uv0c4bon4k,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,3,0,1,0,BTTS,KG Var,1.73,0.2,True,False,-0.2,53.7,69.9,57.9,-0.0791,B,True,47.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.578,-0.0409,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,1/1,,False,v28-pro-max,betting_brain_approved +dz4s6laczs1lco3wcgekdi4us,2026-05-23,7hl0svs2hg225i2zud0g3xzp2,2,1,1,0,OU25,Üst,1.74,0.2,True,True,0.148,60.2,65.4,64.5,-0.0974,B,True,45.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.5747,0.0271,0.0948,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4559,,1/1,,False,v28-pro-max,betting_brain_approved +2w4femqfvvsa9sxgl8mt9sbh0,2026-05-23,7nmz249q89qg5ezcvzlheljji,3,0,1,0,OU25,Üst,1.3,0.2,True,True,0.06,61.4,65.4,64.3,-0.0668,B,True,66.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7692,-0.1548,0.0575,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.6381,,,,False,v28-pro-max,betting_brain_approved +84p0hf186rl833clfgznxcs2c,2026-05-23,66zod8zakjpchbuqrfewpbx24,0,1,0,0,BTTS,KG Var,1.69,0.2,True,False,-0.2,51.9,68.4,69.7,-0.0156,B,True,44.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5917,-0.0725,,False,AGREE,1.0,,MEDIUM,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +8ehz4r6hj0lppo78oducj8g0k,2026-05-23,esrunz7rjb0td98mx9e5cedoy,3,2,2,1,BTTS,KG Var,1.66,0.2,True,True,0.132,53.7,69.9,59.8,-0.0386,B,True,54.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6024,-0.0653,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5516,,,,False,v28-pro-max,betting_brain_approved +8f1krtgnsfqhseltg6l4cjggk,2026-05-23,esrunz7rjb0td98mx9e5cedoy,3,2,3,0,OU25,Üst,1.78,0.2,True,True,0.156,50.0,57.7,47.6,-0.1742,B,True,43.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5618,-0.0618,0.0329,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5516,,,,False,v28-pro-max,betting_brain_approved +3cfjval9ttpz1y1hfmb0ybitw,2026-05-23,4nconewk3ipq2ql9a41h40ff8,3,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3bsm9ki76nidnp0bnf5loa2ac,2026-05-23,4nconewk3ipq2ql9a41h40ff8,1,5,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8663wdh5miy8t68kepek91nh0,2026-05-23,1txej2dzohnydl21zc9pgx6hy,2,3,1,2,DC,12,1.14,0.0,False,True,0.0,73.7,73.7,70.2,-0.1109,PASS,True,57.0,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7366,0.8772,-0.1406,0.003,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.464,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +85xyvu57n6ajc8tn98pvifhuc,2026-05-23,1txej2dzohnydl21zc9pgx6hy,0,1,0,1,OU25,Üst,1.47,0.2,True,False,-0.2,50.0,57.7,42.4,-0.1723,B,True,21.4,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.5,0.6803,-0.1803,0.0665,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.464,,,,False,v28-pro-max,betting_brain_approved +85psxa2meka81edrq2rbmm238,2026-05-23,1txej2dzohnydl21zc9pgx6hy,3,3,0,2,DC,12,1.14,0.0,False,False,0.0,74.2,74.2,66.6,-0.1638,PASS,True,4.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7423,0.8772,-0.1349,0.0259,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.464,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +bscu0q2epsisjs3tbnqo5rx90,2026-05-23,6wubmo7di3kdpflluf6s8c7vs,1,2,1,0,OU25,Üst,1.51,0.2,True,True,0.102,52.4,63.7,52.6,-0.2144,B,True,40.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5237,0.6623,-0.1386,0.0386,True,AGREE,1.0,,MEDIUM,0.5375,,,,False,v28-pro-max,betting_brain_approved +2yhe3pm0ji37mv458f9r783dg,2026-05-23,3428tckxcirwwh3o3jgc1m8ji,3,2,2,0,MS,1,2.42,0.3,True,True,0.426,54.7,58.8,56.4,0.1448,B,True,35.2,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5473,0.4132,0.1341,0.1622,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.5597,0.0,,,False,v28-pro-max,betting_brain_approved +eddpu97obwc2fvqqhgleld1jo,2026-05-23,9chuiarcjofld1dkj9kysehmb,3,1,2,0,OU25,Üst,1.53,0.2,True,True,0.106,61.1,65.4,68.4,-0.0154,B,True,63.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6536,-0.0429,0.006,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +63w2ahikdqs6uwmblga6cqck4,2026-05-23,8y29fg2s85ppcb8uugm5ee8s4,3,0,2,0,BTTS,KG Var,1.7,0.2,True,False,-0.2,57.1,69.9,74.4,-0.0421,B,True,56.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.5882,-0.0175,,False,AGREE,1.0,,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +95t9h2hi406cc9hqlo2b2bpxw,2026-05-23,5aw6uyw4pz2bpj24t5z8aacim,4,3,1,3,OU25,Üst,1.45,0.2,True,True,0.09,59.5,65.4,55.0,-0.1475,B,True,30.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6897,-0.0942,0.0758,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.5333,,,,False,v28-pro-max,betting_brain_approved +95frcq63uorcrmbi9y2xpk2dw,2026-05-23,5aw6uyw4pz2bpj24t5z8aacim,2,0,1,0,OU25,Üst,1.43,0.2,True,False,-0.2,59.5,65.4,54.8,-0.2266,B,True,40.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6993,-0.1038,0.0913,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5333,,,,False,v28-pro-max,betting_brain_approved +etcgqfdynpdsvc4gqky7ed5as,2026-05-23,9ikchyu9fb8bvx0s673jofj6s,0,3,0,0,OU25,Üst,1.56,0.2,True,True,0.112,50.1,57.7,47.5,-0.0662,B,True,50.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.641,-0.1401,0.0136,False,DISAGREE,0.946,lineup_probable_not_confirmed,HIGH,0.6622,,,,False,v28-pro-max,betting_brain_approved +6k5m2hvds68h1mc6xxcn5chsk,2026-05-23,67uya58idol2eq18ljecsru5o,2,2,1,2,BTTS,KG Var,1.28,0.0,False,True,0.0,53.7,69.9,23.5,-0.2666,PASS,True,11.6,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7812,-0.2441,,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6l07pixkwkkyai1a5aqo6u784,2026-05-23,67uya58idol2eq18ljecsru5o,4,0,4,0,BTTS,KG Var,1.21,0.0,False,False,0.0,54.4,69.9,39.4,-0.1817,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.5445,0.8264,-0.2819,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +eswodn7md376oerunk8x9wyz8,2026-05-23,3ri6juw2w6ma0jezszdlv1uqm,2,1,0,1,BTTS,KG Var,1.44,0.2,True,True,0.088,53.7,69.9,47.9,-0.1092,B,True,43.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6944,-0.1573,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5356,,,,False,v28-pro-max,betting_brain_approved +macko17795479113975152019,2026-05-23,macko1692520799556438919,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2gaafqxzjilb00rvsoj357r4k,2026-05-23,8najqkluatpaxvqws78b9s17c,0,0,0,0,DC,1X,1.15,0.0,False,True,0.0,71.0,71.0,69.4,-0.0839,PASS,True,21.5,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7096,0.8696,-0.16,0.061,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2gijzsa72e8f91hgab54h21p0,2026-05-23,8najqkluatpaxvqws78b9s17c,2,2,0,0,DC,1X,1.09,0.0,False,True,0.0,75.2,75.2,64.7,-0.1864,PASS,True,3.7,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7525,0.9174,-0.1649,0.001,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2gyxe4p3u3zxjwc7213kkqm1g,2026-05-23,8najqkluatpaxvqws78b9s17c,3,2,2,1,DC,1X,1.11,0.0,False,True,0.0,74.0,74.0,67.9,-0.1359,PASS,True,5.7,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7395,0.9009,-0.1614,0.0313,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2gqs9easy8edroff5ade3hpg4,2026-05-23,8najqkluatpaxvqws78b9s17c,2,2,1,1,DC,12,1.21,0.0,False,False,0.0,70.3,70.3,70.7,-0.0609,PASS,True,22.6,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7025,0.8264,-0.1239,0.0411,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5082,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +c77z2a9jdu80435051zxchrmc,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +aroux06rydh0ylsrwz27erjmc,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,2,3,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ap2zn9h86typ9fm298m4ub6z8,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,4,2,2,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +yfotg69x82wpzjqhdzuanmz8,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +80inxhwuzbhmunxx0tjzzi4gk,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,4,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8z7ffwim8fjgozwhmkgy9d3x0,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +erb14ygobdr1mldt99mjnoljo,2026-05-23,4qtsau8rkg0g5wt58wjw19rn1,2,3,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8cn50h1m099543ha2pcpu5gr8,2026-05-23,4qtsau8rkg0g5wt58wjw19rn1,0,3,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +bqi3wcyienyi0n9ad1smoanmc,2026-05-23,cc9zntdbef14p20gt4ekvnjvs,4,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7hrvlrpvpkdc2twwe80r9gljo,2026-05-23,domsjww1z4ouovaj6qogatnrf,2,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9f2kbhwb91o56gs64s678tc0k,2026-05-23,3p81ltz6845appgkbgkzxueii,3,1,2,0,OU25,Üst,1.31,0.2,True,True,0.062,61.1,65.4,51.9,-0.2474,B,True,40.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7634,-0.1527,0.0132,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_approved +2bccs0s8809370uuqgyta9ixg,2026-05-23,663a54fmymndjeev47qm7d3nf,1,0,1,0,MS,1,1.49,0.2,True,True,0.098,54.8,58.8,42.0,-0.1615,B,True,27.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5478,0.6711,-0.1233,0.0777,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3522,0.0,,,False,v28-pro-max,betting_brain_approved +di7vatp6bsj3qz8oqsbx89pn8,2026-05-23,4jieyfpyom8d011dgeqj77ojm,1,2,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4xtfeznrtr0a76qi9batabzf8,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,3,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +4vkeob56fyl7wyfj4gifjxu6s,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3lkmoznpn0iyqror6eahugpas,2026-05-23,54c65mhi143utomzvvv3q2avh,2,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +aig1j45b3g7jiju2rdndedzbo,2026-05-23,4qtsau8rkg0g5wt58wjw19rn1,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +brkcy07tsu2ijdjqiohkcd4wk,2026-05-23,cc9zntdbef14p20gt4ekvnjvs,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.514,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dr07lwt4k7haf4e1n7ph6gkk4,2026-05-23,domsjww1z4ouovaj6qogatnrf,4,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2cpm573o6uldsav9jpni2d250,2026-05-23,7ntvbsyq31jnzoqoa8850b9b8,1,0,0,0,OU25,Üst,1.95,0.2,True,False,-0.2,59.5,65.4,69.8,0.0092,B,True,65.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5128,0.0827,0.0749,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5305,,2/2,,False,v28-pro-max,betting_brain_approved +94cot5i9a9ypr64no8ajpeej8,2026-05-23,4887fa8m7jkxymlmo4sj1mhhi,1,2,1,2,OU25,Üst,1.5,0.2,True,True,0.1,59.5,65.4,66.7,-0.104,B,True,38.7,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6667,-0.0712,0.0879,True,AGREE,1.0,,MEDIUM,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +5x22do769ggspxs4t2pjr26tw,2026-05-23,eterh6k7fau0ur6ossa0kzsvd,3,3,1,0,BTTS,KG Var,1.74,0.2,True,True,0.148,53.7,69.9,77.2,0.0496,B,True,53.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5747,-0.0376,,False,DISAGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +918mad4vd58uzcflmtb922jo4,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,2,1,0,BTTS,KG Var,1.27,0.0,False,True,0.0,53.7,69.9,29.4,-0.3091,PASS,True,19.3,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7874,-0.2503,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5so31buu3mrntxj08qlb1h990,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,3,1,0,0,OU25,Üst,1.52,0.2,True,True,0.104,50.0,57.7,42.7,-0.1494,B,True,51.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.6579,-0.1579,0.0483,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6974,,,,False,v28-pro-max,betting_brain_approved +5tpwyz0acifyif3v82h5rb9xw,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,0,3,0,1,BTTS,KG Var,1.23,0.0,False,False,0.0,53.7,69.9,33.4,-0.2241,PASS,True,19.7,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.813,-0.2759,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6974,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5udyydzg51f960crz5jr2f578,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,0,2,0,1,BTTS,KG Var,1.23,0.0,False,False,0.0,53.7,69.9,33.7,-0.2206,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override,0.5371,0.813,-0.2759,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6974,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5tdxdqw5m875kl1tfbu3zik9g,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,0,1,0,0,OU25,Üst,1.5,0.2,True,False,-0.2,52.4,63.7,43.3,-0.226,B,True,37.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5237,0.6667,-0.143,0.001,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6974,,,,False,v28-pro-max,betting_brain_approved +5uph2eldvw6e8j36fmi6rk4d0,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,3,0,2,0,OE,Tek,1.61,0.0,False,True,0.0,52.1,32.3,23.6,-0.1052,PASS,False,5.6,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,base_model_not_playable,triple_value_confirmed;strong_historical_sample,0.5206,0.6211,-0.1005,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6974,,,,False,v28-pro-max,betting_brain_no_safe_pick +5szafvk8v8qi9m491866bvspg,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,2,1,0,0,MS,2,1.37,0.2,True,False,-0.2,59.7,61.2,40.6,-0.1021,B,True,45.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5973,0.7299,-0.1326,0.1089,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6974,0.0,,,False,v28-pro-max,betting_brain_approved +5u2lbklfkroi4natytablc55g,2026-05-23,cv3tuitw3ho3v0opjjxpn83b9,1,1,0,1,BTTS,KG Var,1.41,0.2,True,True,0.082,54.3,69.9,33.1,-0.1493,B,True,45.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7092,-0.1659,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.6974,,,,False,v28-pro-max,betting_brain_approved +b1tz8nrhlnkfpptxwpl7apwd0,2026-05-23,8kt53kt3mfo29gldhkl05u25b,3,1,2,0,OU25,Üst,1.26,0.0,False,True,0.0,61.1,65.4,65.5,-0.1539,PASS,True,41.3,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7937,-0.183,0.0519,True,AGREE,1.0,,LOW,0.35,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2t6rlqbfiw1pzmb9s7birt91w,2026-05-23,dvstmwnvw0mt5p38twn9yttyb,2,0,1,0,OU25,Üst,1.51,0.2,True,False,-0.2,59.5,65.4,64.8,-0.0677,B,True,66.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6623,-0.0668,0.0009,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.688,,1/1,,False,v28-pro-max,betting_brain_approved +2to2u9tg2soj09orb7cjqjbbo,2026-05-23,dvstmwnvw0mt5p38twn9yttyb,3,0,2,0,OU25,Üst,1.72,0.2,True,True,0.144,61.1,65.4,62.9,-0.1106,B,True,50.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5814,0.0293,0.0158,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.688,,1/1,,False,v28-pro-max,betting_brain_approved +2soyiliup6aqtvqex6rp37zf8,2026-05-23,dvstmwnvw0mt5p38twn9yttyb,2,1,2,1,OU35,Üst,2.68,0.2,True,False,-0.2,50.6,50.8,53.9,0.1085,B,True,72.5,BET,,,base_model_playable;value_sniper_override;strong_historical_sample,0.5058,0.3731,0.1327,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.688,,1/1,,False,v28-pro-max,betting_brain_approved +2u5hvdzldirlak0btbvcgljis,2026-05-23,dvstmwnvw0mt5p38twn9yttyb,0,1,0,1,OU25,Üst,1.47,0.2,True,False,-0.2,61.1,65.4,61.9,-0.1079,B,True,50.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6803,-0.0696,0.0279,True,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.688,,1/1,,False,v28-pro-max,betting_brain_approved +d58wuww2js181rfb4qivz7evo,2026-05-23,6ihotpaocgiovlxw18e9r9prx,1,0,0,0,OU25,Üst,1.34,0.2,True,False,-0.2,61.1,65.4,67.3,-0.0659,B,True,66.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7463,-0.1356,0.0312,False,DISAGREE,1.0,,MEDIUM,0.7019,,,,False,v28-pro-max,betting_brain_approved +b26hs4mjklu71eec1t9acjod0,2026-05-23,1b70m6qtxrp75b4vtk8hxh8c3,2,0,2,0,OU25,Üst,1.62,0.2,True,False,-0.2,50.0,57.7,45.8,-0.2314,B,True,43.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.6173,-0.1173,0.019,True,AGREE,1.0,,MEDIUM,0.6261,,,,False,v28-pro-max,betting_brain_approved +9ejuy7fal8mq8vqd1qetf3cpg,2026-05-23,3p81ltz6845appgkbgkzxueii,2,1,2,1,BTTS,KG Var,1.52,0.2,True,True,0.104,54.9,69.9,55.0,-0.1128,B,True,45.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.6579,-0.1091,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_approved +5kp56w73ilc331kt8weltsduc,2026-05-23,4jieyfpyom8d011dgeqj77ojm,1,3,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dei7q0aymv52jqyvjjwqg4n4k,2026-05-23,3l29w00m506ex93t5bbh9cg2a,5,3,1,1,BTTS,KG Var,1.28,0.0,False,True,0.0,54.3,69.9,59.2,-0.2183,PASS,True,34.5,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7812,-0.2379,,True,DISAGREE,1.0,,LOW,0.5355,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ddzq2uehw3jkrdmck9reqx15g,2026-05-23,3l29w00m506ex93t5bbh9cg2a,0,0,0,0,BTTS,KG Var,1.35,0.2,True,False,-0.2,57.1,69.9,74.8,-0.0753,B,True,55.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.7407,-0.17,,False,AGREE,1.0,,LOW,0.5355,,,,False,v28-pro-max,betting_brain_approved +ddgbgle20gcd1pilmcvw72psk,2026-05-23,3l29w00m506ex93t5bbh9cg2a,0,1,0,1,HT,2,1.36,0.0,False,True,0.0,52.1,72.1,64.2,-0.1899,PASS,True,13.6,REJECT,volatile_market_requires_exceptional_evidence,historical_sample_too_low,base_model_playable,0.5205,0.7353,-0.2148,,False,DISAGREE,1.0,,LOW,0.5355,,,,False,v28-pro-max,betting_brain_no_safe_pick +xipx2pn97htlfi693j5qy3v8,2026-05-23,b8rae0ib0frjmwlca429bq19q,3,2,2,0,BTTS,KG Var,1.17,0.0,False,True,0.0,53.7,69.9,30.0,-0.1852,PASS,True,38.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.8547,-0.3176,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +x7gw3m0a4xgph57lsvt6n5lg,2026-05-23,b8rae0ib0frjmwlca429bq19q,4,0,1,0,BTTS,KG Var,1.25,0.0,False,False,0.0,53.7,69.9,32.9,-0.1566,PASS,True,39.6,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.8,-0.2629,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +yrzx1ht68y3zwwye4vyu7ac4,2026-05-23,b8rae0ib0frjmwlca429bq19q,3,1,1,1,BTTS,KG Var,1.12,0.0,False,True,0.0,54.4,69.9,24.4,-0.3514,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;usable_historical_sample,0.5445,0.8929,-0.3484,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +wwamu8ii7m8fbxbwwazgc650,2026-05-23,b8rae0ib0frjmwlca429bq19q,2,2,0,1,BTTS,KG Var,1.17,0.0,False,True,0.0,54.3,69.9,38.2,-0.1825,PASS,True,29.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5433,0.8547,-0.3114,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +y57z90t7vjh14r5pfathmnmc,2026-05-23,b8rae0ib0frjmwlca429bq19q,4,0,1,0,BTTS,KG Var,1.44,0.2,True,False,-0.2,53.2,69.9,35.8,-0.1329,B,True,41.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6944,-0.1627,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.4624,,,,False,v28-pro-max,betting_brain_approved +wl6ftyb84z216xuumfcpmdck,2026-05-23,b8rae0ib0frjmwlca429bq19q,3,0,1,0,BTTS,KG Var,1.12,0.0,False,False,0.0,54.4,69.9,21.1,-0.2536,PASS,True,8.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5445,0.8929,-0.3484,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +z35rohjkwlovfca7r1bjw9as,2026-05-23,b8rae0ib0frjmwlca429bq19q,2,3,1,2,DC,12,1.05,0.0,False,True,0.0,76.7,76.7,66.0,-0.1878,PASS,True,4.2,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7667,0.9524,-0.1857,0.0277,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.4624,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +f4gyw7exja2rjgdqevbxe8z6c,2026-05-23,ac112osli9fvox1epcg4ld3t6,0,0,0,0,OU25,Üst,1.38,0.2,True,False,-0.2,66.5,65.4,74.0,-0.0489,B,True,68.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.7246,-0.0595,0.132,False,DISAGREE,1.0,,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +f5jdrvmp2cwedax2aifs3vmdw,2026-05-23,ac112osli9fvox1epcg4ld3t6,3,3,0,2,MS,1,2.62,0.4,True,False,-0.4,43.0,45.5,50.9,0.2313,A,True,100.0,BET,,,base_model_playable;value_sniper_override;v25_v27_aligned;triple_value_confirmed;usable_historical_sample,0.4303,0.3817,0.0486,0.0156,False,AGREE,1.0,,MEDIUM,0.59,0.0,,,False,v28-pro-max,betting_brain_approved +f50989u3ue8ttagktgiaen384,2026-05-23,ac112osli9fvox1epcg4ld3t6,4,0,1,0,OU25,Üst,1.39,0.2,True,True,0.078,61.1,65.4,57.7,-0.2137,B,True,46.3,BET,,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.0441,True,DISAGREE,1.0,,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +114k437pgf96vmiuup730h78,2026-05-23,ac112osli9fvox1epcg4ld3t6,2,1,1,1,OU25,Üst,1.42,0.2,True,True,0.084,68.5,65.4,64.1,-0.1533,B,True,48.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6854,0.7042,-0.0188,0.1124,True,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +eamioa7ycajv398g3mmjrghzo,2026-05-23,ac112osli9fvox1epcg4ld3t6,0,4,0,2,OU25,Üst,1.5,0.2,True,True,0.1,61.1,65.4,67.7,-0.0728,B,True,66.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6667,-0.056,0.0683,False,DISAGREE,1.0,,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +ebsn3poy1whjyi8wl8i9ikges,2026-05-23,ac112osli9fvox1epcg4ld3t6,0,0,0,0,BTTS,KG Var,1.47,0.2,True,False,-0.2,58.3,69.9,75.7,-0.0644,B,True,60.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5831,0.6803,-0.0972,,False,AGREE,1.0,,LOW,0.59,,,,False,v28-pro-max,betting_brain_approved +esc63bhggcgoa2um3l8k9x2xg,2026-05-23,9ikchyu9fb8bvx0s673jofj6s,0,0,0,0,OU25,Üst,1.97,0.2,True,False,-0.2,61.1,65.4,72.3,0.0586,B,True,72.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5076,0.1031,0.0936,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.6622,,,,False,v28-pro-max,betting_brain_approved +6mlygbrrs9njytk67z5mjrml0,2026-05-23,67uya58idol2eq18ljecsru5o,5,1,2,1,BTTS,KG Var,1.15,0.0,False,True,0.0,54.4,69.9,28.2,-0.2163,PASS,True,17.1,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8696,-0.3251,,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6n8r7lr82l3jyjghai9pdstn8,2026-05-23,67uya58idol2eq18ljecsru5o,2,0,0,0,DC,12,1.06,0.0,False,True,0.0,77.6,77.6,74.9,-0.0982,PASS,True,47.0,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7755,0.9434,-0.1679,0.0392,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6llpwd6flwgie43iopyol5d04,2026-05-23,67uya58idol2eq18ljecsru5o,4,1,1,1,BTTS,KG Var,1.21,0.0,False,True,0.0,54.9,69.9,37.6,-0.208,PASS,True,8.2,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5488,0.8264,-0.2776,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +90s5u0srklzfed3uoqghjpw5w,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,0,1,0,DC,12,1.09,0.0,False,True,0.0,73.6,73.6,70.9,-0.0912,PASS,True,22.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7365,0.9174,-0.1809,0.0575,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +92me9i37s6xyka42b2cvcmn10,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,4,0,0,0,MS,1,1.3,0.2,True,True,0.06,64.2,65.5,38.8,-0.1922,B,True,28.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6423,0.7692,-0.1269,0.0526,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,0.0,,,False,v28-pro-max,betting_brain_approved +53685b2p8dkb1tsue7bmljpqs,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,2,0,2,0,BTTS,KG Var,1.27,0.0,False,False,0.0,54.4,69.9,39.0,-0.1777,PASS,True,34.4,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7874,-0.2429,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +dumilptyofusbhl20qhz2ltec,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,2,0,2,OU25,Üst,1.37,0.2,True,True,0.074,59.5,65.4,57.3,-0.1644,B,True,40.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7299,-0.1344,0.0011,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5423,,,,False,v28-pro-max,betting_brain_approved +bht7exz6q0xaon46c7kjvbdw4,2026-05-23,zs18qaehvhg3w1208874zvfa,3,0,1,0,DC,12,1.13,0.0,False,True,0.0,74.0,74.0,67.7,-0.1063,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override;v25_v27_aligned,0.7402,0.885,-0.1448,0.0355,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,HIGH,0.8176,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +d9qz8igb2z5494p5c7hr172ms,2026-05-23,arrfx02rdlstdfwdyikwqtwgl,2,1,0,1,OU25,Üst,1.98,0.2,True,True,0.196,48.8,57.7,49.7,-0.0491,B,True,25.1,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5317,0.5051,0.0266,0.0731,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +465xv63iem7ydtxzd2q760jro,2026-05-23,cm3vqed635t5cxc113gkwm5vo,4,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a89c8c7ekbfok7b7tzo4k1xxw,2026-05-23,9jz1zljuigau64uhfamfdp5re,1,5,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +1sc98clykvldobmwajipx2zo4,2026-05-23,8dtd2gc9ly2p87w3k6fd000es,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +b2kp307pmms2s1nvxtra7493o,2026-05-23,1b70m6qtxrp75b4vtk8hxh8c3,2,0,0,0,MS,1,1.3,0.2,True,True,0.06,66.1,65.5,78.8,-0.0231,B,True,70.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6614,0.7692,-0.1078,0.1264,False,AGREE,1.0,,LOW,0.6261,0.0,,,False,v28-pro-max,betting_brain_approved +bg7bbbn1tahkluu1zs40i33f8,2026-05-23,4jieyfpyom8d011dgeqj77ojm,4,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +xtvkjydeqp5glb69v4h2q5uc,2026-05-23,b8rae0ib0frjmwlca429bq19q,0,2,0,1,MS,2,1.33,0.2,True,True,0.066,55.0,61.2,39.5,-0.132,B,True,38.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5504,0.7519,-0.2015,0.1176,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.4624,0.0,,,False,v28-pro-max,betting_brain_approved +90a9gf6f2j0mls1g0y2xchi50,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,2,4,0,1,OU25,Üst,1.35,0.2,True,True,0.07,59.5,65.4,47.5,-0.261,B,True,28.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5955,0.7407,-0.1452,0.0311,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +52ngsnmv3s4qps5ps2li2v578,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,6,0,3,0,BTTS,KG Var,1.26,0.0,False,False,0.0,53.7,69.9,33.5,-0.2504,PASS,True,19.8,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7937,-0.2566,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +c5c868mq2boti4msvr3up6vis,2026-05-23,cm3vqed635t5cxc113gkwm5vo,3,3,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +23gbmv3eatoa1w4frqtmhug44,2026-05-23,913mb508il6jzwtlj28fl892h,2,3,0,2,BTTS,KG Var,1.25,0.0,False,True,0.0,57.1,69.9,60.6,-0.242,PASS,True,17.6,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5707,0.8,-0.2293,,True,AGREE,1.0,,MEDIUM,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +24wzy4r1hmypquwhlg6k8c0lw,2026-05-23,913mb508il6jzwtlj28fl892h,5,4,2,2,BTTS,KG Var,1.11,0.0,False,True,0.0,65.7,69.9,71.6,-0.1758,PASS,True,19.1,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.6572,0.9009,-0.2437,,False,DISAGREE,1.0,,LOW,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +23tn13p5x8tj6v835og39qyhg,2026-05-23,913mb508il6jzwtlj28fl892h,1,2,0,0,BTTS,KG Var,1.22,0.0,False,True,0.0,66.6,69.9,71.9,-0.1449,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.6664,0.8197,-0.1533,,True,AGREE,1.0,,MEDIUM,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +25ngkt1e1oc6nldukvsts5qms,2026-05-23,913mb508il6jzwtlj28fl892h,3,2,0,1,BTTS,KG Var,1.2,0.0,False,True,0.0,54.9,69.9,61.7,-0.1886,PASS,True,5.8,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.5488,0.8333,-0.2845,,False,AGREE,1.0,,LOW,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +24k1ppykvygsivyw9renkm8t0,2026-05-23,913mb508il6jzwtlj28fl892h,2,4,1,1,BTTS,KG Var,1.25,0.0,False,True,0.0,57.1,69.9,64.2,-0.2329,PASS,True,28.1,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.8,-0.2293,,True,DISAGREE,1.0,,LOW,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +25a3dntqj7hok00s6c12gpst0,2026-05-23,913mb508il6jzwtlj28fl892h,4,1,1,1,MS,1,1.33,0.2,True,True,0.066,67.7,65.5,66.5,-0.2202,B,True,2.4,BET,,low_reliability_league;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6771,0.7519,-0.0748,0.1762,True,AGREE,1.0,,LOW,0.4044,0.0,,,False,v28-pro-max,betting_brain_approved +260atdzt81a9bk3uj8hgtr02c,2026-05-23,913mb508il6jzwtlj28fl892h,1,2,0,2,BTTS,KG Var,1.33,0.2,True,True,0.066,54.4,69.9,61.4,-0.1669,B,True,37.2,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,False,AGREE,1.0,,MEDIUM,0.4044,,,,False,v28-pro-max,betting_brain_approved +26d7w03rjd9lw57gtinzwoaac,2026-05-23,913mb508il6jzwtlj28fl892h,7,0,3,0,BTTS,KG Var,1.21,0.0,False,False,0.0,57.1,69.9,69.8,-0.1459,PASS,True,44.2,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.8264,-0.2557,,False,AGREE,1.0,,LOW,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +246spnj6yco0r1jhgx9bg172s,2026-05-23,913mb508il6jzwtlj28fl892h,2,2,1,1,BTTS,KG Var,1.18,0.0,False,True,0.0,57.1,69.9,66.1,-0.1941,PASS,True,23.3,WATCH_NO_VALUE,odds_below_minimum,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5707,0.8475,-0.2768,,True,AGREE,1.0,,LOW,0.4044,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4nhoktd8x1phd3t40k1dy5mac,2026-05-23,b60nisd3qn427jm0hrg9kvmab,2,0,1,0,OU25,Üst,1.62,0.2,True,False,-0.2,61.1,65.4,66.8,-0.0486,B,True,55.2,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6173,-0.0066,0.0012,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +4myiy6yofjcrtcw7is0hnpvdg,2026-05-23,b60nisd3qn427jm0hrg9kvmab,2,1,1,0,OU25,Üst,1.87,0.2,True,True,0.174,61.1,65.4,68.7,-0.0147,B,True,43.0,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5348,0.0759,0.0373,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +7ov6bma5e4yu8c111kcq08xzo,2026-05-23,3ww12jab49q8q8mk9avdwjqgk,5,0,2,0,MS,1,1.34,0.2,True,True,0.068,66.1,65.5,62.6,-0.069,B,True,56.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6614,0.7463,-0.0849,0.0732,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5961,0.0,,,False,v28-pro-max,betting_brain_approved +eb90h5bf3q6s4a824qk5qvk7o,2026-05-23,9chuiarcjofld1dkj9kysehmb,1,0,1,0,OU25,Üst,1.61,0.2,True,False,-0.2,61.1,65.4,68.3,-0.0194,B,True,63.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6211,-0.0104,0.0133,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +edw995whqbfvs5gopo563f2ms,2026-05-23,9chuiarcjofld1dkj9kysehmb,1,0,0,0,OU25,Üst,1.38,0.2,True,False,-0.2,61.1,65.4,61.3,-0.1213,B,True,44.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7246,-0.1139,0.0129,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +d4o1zv5wh51krfpsw3igy8sus,2026-05-23,6ihotpaocgiovlxw18e9r9prx,0,1,0,1,BTTS,KG Var,1.62,0.2,True,False,-0.2,57.1,69.9,73.5,-0.0551,B,True,55.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6173,-0.0466,,False,AGREE,1.0,,MEDIUM,0.7019,,,,False,v28-pro-max,betting_brain_approved +64d52e99m598ycau5xvs6xjbo,2026-05-23,8y29fg2s85ppcb8uugm5ee8s4,3,0,1,0,BTTS,KG Var,1.71,0.2,True,False,-0.2,54.3,69.9,62.1,-0.1665,B,True,35.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.5848,-0.0415,,True,AGREE,1.0,,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +952an72gzp21sop3ivlqqknis,2026-05-23,5aw6uyw4pz2bpj24t5z8aacim,1,0,0,0,BTTS,KG Var,1.27,0.0,False,False,0.0,53.7,69.9,47.0,-0.2066,PASS,True,17.7,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5371,0.7874,-0.2503,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5333,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +czf79ehu9cegivlcpdcvee784,2026-05-23,yv73ms6v1995b5wny16jcfi3,0,1,0,0,DC,12,1.16,0.0,False,True,0.0,68.1,68.1,68.0,-0.1846,PASS,True,43.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6811,0.8621,-0.181,0.0254,True,DISAGREE,1.0,,LOW,0.5787,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +d1jaw9ot410fwskkmimitctn8,2026-05-23,yv73ms6v1995b5wny16jcfi3,0,0,0,0,OU15,Üst,1.3,0.0,False,False,0.0,50.0,50.0,38.2,-0.189,PASS,False,6.6,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,strong_historical_sample,0.5,0.7692,-0.2692,,False,DISAGREE,1.0,,MEDIUM,0.5787,,,,False,v28-pro-max,betting_brain_no_safe_pick +czu1rjsv2o4fb3037yg7iojdg,2026-05-23,yv73ms6v1995b5wny16jcfi3,0,0,0,0,DC,1X,1.09,0.0,False,True,0.0,80.3,80.3,83.5,-0.1008,PASS,True,22.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8033,0.9174,-0.1141,0.0093,True,AGREE,1.0,,MEDIUM,0.5787,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +d0adrr3zyobcgzcqqe90sqtxw,2026-05-23,yv73ms6v1995b5wny16jcfi3,0,1,0,1,BTTS,KG Var,1.76,0.2,True,False,-0.2,52.5,69.9,62.9,-0.1676,B,True,35.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.5682,-0.043,,True,AGREE,1.0,,MEDIUM,0.5787,,,,False,v28-pro-max,betting_brain_approved +d0pc9vsrwb9l9h0qu14hskr2s,2026-05-23,yv73ms6v1995b5wny16jcfi3,1,0,0,0,MS,1,1.59,0.0,False,True,0.0,48.0,49.7,42.5,-0.1537,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;triple_value_not_confirmed,v25_v27_aligned;strong_historical_sample,0.4801,0.6289,-0.1488,0.0577,False,AGREE,1.0,,MEDIUM,0.5787,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +d1ybiqsdgthy8b6gkl5le1c7o,2026-05-23,yv73ms6v1995b5wny16jcfi3,0,2,0,1,HT,2,1.21,0.0,False,True,0.0,50.0,70.0,54.9,-0.2571,PASS,True,0.0,REJECT,odds_below_minimum;volatile_market_requires_exceptional_evidence,base_model_not_playable;historical_sample_too_low,,0.4995,0.8264,-0.3269,,False,AGREE,1.0,,LOW,0.5787,,,,False,v28-pro-max,betting_brain_no_safe_pick +d2db90v4sed62r5o26fuubl78,2026-05-23,yv73ms6v1995b5wny16jcfi3,2,2,0,2,DC,1X,1.09,0.0,False,True,0.0,86.8,86.8,93.2,-0.0994,PASS,True,29.8,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8683,0.9174,-0.0491,0.1209,True,AGREE,1.0,,LOW,0.5787,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2a2qayd4obynfp70re2hagt90,2026-05-23,663a54fmymndjeev47qm7d3nf,2,5,0,1,OU25,Üst,1.5,0.2,True,True,0.1,61.1,65.4,67.3,-0.0378,B,True,55.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6667,-0.056,0.0879,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.3522,,,,False,v28-pro-max,betting_brain_approved +43angiobu2vmmag7k61z8gil0,2026-05-23,di6z5rb67q76r5m9y9cc8xb9z,2,0,0,0,HT,1,1.33,0.0,False,False,0.0,48.8,50.3,32.0,-0.1693,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,base_model_not_playable;low_reliability_league,usable_historical_sample,0.4882,0.7519,-0.2637,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_no_safe_pick +6w34nxyboehm0ijh5updzzmz8,2026-05-23,4pohvulrkgzx38eoqse6b5cdg,0,3,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +euakllgnellll54f8kp12ehhw,2026-05-23,9ikchyu9fb8bvx0s673jofj6s,0,0,0,0,BTTS,KG Var,1.8,0.2,True,False,-0.2,53.7,69.9,59.2,-0.0499,B,True,53.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5556,-0.0185,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.6622,,,,False,v28-pro-max,betting_brain_approved +87vnq93i5ayy14xppftx9so44,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,2,1,1,1,BTTS,KG Var,1.08,0.0,False,True,0.0,57.1,69.9,36.9,-0.2563,PASS,True,30.2,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.9259,-0.3552,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ey7a9qs1dy7lqmi90y2jl9ic4,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,2,0,1,0,BTTS,KG Var,1.16,0.0,False,False,0.0,54.4,69.9,25.2,-0.2235,PASS,True,28.8,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8621,-0.3176,,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +f5046zsqna0jrpvasmjbirp5g,2026-05-23,6qitd9h242qkvjenaytfdnsf2,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +macko17794470247755228892,2026-05-23,7qdv1xae7ikfe8dft3oj29yqc,4,2,3,1,BTTS,KG Var,1.33,0.2,True,True,0.066,53.7,69.9,46.0,-0.1806,B,True,29.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7519,-0.2148,,True,DISAGREE,0.713,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5692,,,,False,v28-pro-max,betting_brain_approved +bjiez2efaxjtpjunz0rs6y8lw,2026-05-23,zs18qaehvhg3w1208874zvfa,3,0,1,0,OU25,Üst,1.43,0.2,True,True,0.086,61.1,65.4,53.4,-0.2099,B,True,45.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6993,-0.0886,0.0514,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.8176,,,,False,v28-pro-max,betting_brain_approved +bitvocfn4boui9d9bgsazj40k,2026-05-23,zs18qaehvhg3w1208874zvfa,3,1,1,0,BTTS,KG Var,1.51,0.2,True,True,0.102,53.2,69.9,58.4,-0.0493,B,True,48.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5317,0.6623,-0.1306,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.8176,,,,False,v28-pro-max,betting_brain_approved +c67vxb3ikv9lpersy867ky6ms,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +39gmj8ezpagxj66ye9dk6zaj8,2026-05-23,8ifnkq96dckjtn9ab9wplpl9l,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a91v3kd91jzje71cp4kca3kt0,2026-05-23,9jz1zljuigau64uhfamfdp5re,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2ywwhbzmtrtdgedohxkastuz8,2026-05-23,dexr6wlw3e339z88f1qr74wt6,1,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +9kopkogi3maf9czxmnoscz66s,2026-05-23,2wolc27r8z03itcvwp43e38c5,1,2,1,1,BTTS,KG Var,1.62,0.2,True,True,0.124,53.7,69.9,53.4,-0.1476,B,True,34.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6173,-0.0802,,True,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5592,,,,False,v28-pro-max,betting_brain_approved +ee61pxfh3sl1fy36z39qukzdg,2026-05-23,9jz1zljuigau64uhfamfdp5re,0,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cu9scz0jhmmo8jm5mskoxk7x0,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,1,1,1,BTTS,KG Var,1.26,0.0,False,True,0.0,54.4,69.9,36.6,-0.209,PASS,True,20.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7937,-0.2492,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +1slipy0lghy9uk3ukng1f2ql0,2026-05-23,bu1l7ckihyr0errxw61p0m05,4,0,2,0,OU25,Üst,1.36,0.2,True,True,0.072,61.1,65.4,65.4,-0.0931,B,True,65.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7353,-0.1246,0.0502,False,AGREE,1.0,,MEDIUM,0.6995,,,,False,v28-pro-max,betting_brain_approved +eu211d2dn346y54pnsk18407o,2026-05-23,bu1l7ckihyr0errxw61p0m05,0,3,0,1,OU25,Üst,1.69,0.2,True,True,0.138,61.1,65.4,65.7,-0.1108,B,True,50.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5917,0.019,0.1323,True,DISAGREE,1.0,,MEDIUM,0.6995,,,,False,v28-pro-max,betting_brain_approved +ett0mne9w92tjwfcwpkbesopg,2026-05-23,bu1l7ckihyr0errxw61p0m05,1,0,1,0,OU25,Üst,1.64,0.2,True,False,-0.2,59.5,65.4,73.6,-0.0276,B,True,74.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6098,-0.0143,0.0912,False,AGREE,1.0,,LOW,0.6995,,,,False,v28-pro-max,betting_brain_approved +etk6ycyl87vgj4ytuifx9al1w,2026-05-23,bu1l7ckihyr0errxw61p0m05,0,2,0,0,OU25,Üst,1.42,0.2,True,False,-0.2,59.5,65.4,61.5,-0.1511,B,True,48.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7042,-0.1087,0.0906,True,AGREE,1.0,,MEDIUM,0.6995,,,,False,v28-pro-max,betting_brain_approved +6uuu7gv1qxi6etuxiovkl5d04,2026-05-23,82jkgccg7phfjpd0mltdl3pat,2,0,0,0,OU25,Üst,1.56,0.2,True,False,-0.2,59.5,65.4,62.0,-0.109,B,True,49.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.641,-0.0455,0.0258,True,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_approved +c06yqup734soiuir259t00jdg,2026-05-23,ddyrh5latwfhesgfh4w401n92,1,0,0,0,BTTS,KG Var,1.26,0.0,False,False,0.0,54.3,69.9,58.3,-0.205,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override,0.5433,0.7937,-0.2504,,False,AGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +c1dbgnm1x83ly4q3ccwqy115g,2026-05-23,ddyrh5latwfhesgfh4w401n92,4,1,1,0,BTTS,KG Var,1.68,0.2,True,True,0.136,53.7,69.9,68.2,-0.1352,B,True,30.5,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5952,-0.0581,,True,AGREE,1.0,,LOW,0.3973,,,,False,v28-pro-max,betting_brain_approved +bz0r7hj84e6a6qdhe388ie5n8,2026-05-23,ddyrh5latwfhesgfh4w401n92,3,1,3,0,OU25,Üst,1.35,0.2,True,True,0.07,54.7,65.4,51.0,-0.2633,B,True,33.5,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.7407,-0.1935,0.0817,True,DISAGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_approved +c0z5ngxr8nxw9hkjsvip7rd3o,2026-05-23,ddyrh5latwfhesgfh4w401n92,2,1,1,1,BTTS,KG Var,1.4,0.2,True,True,0.08,54.3,69.9,60.9,-0.1833,B,True,22.7,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7143,-0.171,,True,AGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_approved +c1rg3o5x4vr3dy0dmtlxi2gic,2026-05-23,ddyrh5latwfhesgfh4w401n92,0,0,0,0,OU25,Üst,1.53,0.2,True,False,-0.2,55.3,65.4,62.6,-0.1789,B,True,34.9,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5755,0.6536,-0.0781,0.1377,True,AGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_approved +c0kzsy961u3p5yuzshhwn7pxw,2026-05-23,ddyrh5latwfhesgfh4w401n92,2,1,0,1,BTTS,KG Var,1.48,0.2,True,True,0.096,54.4,69.9,66.5,-0.0955,B,True,41.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.6757,-0.1312,,False,AGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_approved +bzesphcfp0sch3nsu9v57xono,2026-05-23,ddyrh5latwfhesgfh4w401n92,3,2,1,1,MS,1,2.07,0.2,True,True,0.214,53.4,56.4,52.0,-0.1576,B,True,23.6,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5341,0.4831,0.051,0.1168,True,AGREE,1.0,,MEDIUM,0.3973,0.0,,,False,v28-pro-max,betting_brain_approved +bzswig44jf44qhvxckuzrbxn8,2026-05-23,ddyrh5latwfhesgfh4w401n92,1,2,1,1,BTTS,KG Var,1.33,0.2,True,True,0.066,54.4,69.9,57.9,-0.2227,B,True,22.3,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,True,AGREE,1.0,,MEDIUM,0.3973,,,,False,v28-pro-max,betting_brain_approved +9fjfkqp7ojwoiyxmny16l78yc,2026-05-23,3p81ltz6845appgkbgkzxueii,4,0,2,0,OU25,Üst,1.4,0.2,True,True,0.08,61.4,65.4,63.4,-0.0895,B,True,60.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7143,-0.0999,0.0168,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_approved +cjxltvll9ayuogxddajao3ms4,2026-05-23,3p81ltz6845appgkbgkzxueii,3,2,2,1,OU25,Üst,1.27,0.0,False,True,0.0,61.4,65.4,59.2,-0.1387,PASS,True,57.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7874,-0.173,0.024,False,DISAGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +cgld17gvc3h2ze3qpujwcl4ic,2026-05-23,3p81ltz6845appgkbgkzxueii,2,0,2,0,BTTS,KG Var,1.34,0.2,True,False,-0.2,65.8,69.9,66.1,-0.0844,B,True,48.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6579,0.7463,-0.0884,,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5454,,,,False,v28-pro-max,betting_brain_approved +88kzc17709527ww9o2z7ukp3o,2026-05-23,7qf0jaayyxy3ruamsexv5p1kl,1,1,0,0,OU25,Üst,1.48,0.2,True,False,-0.2,54.7,65.4,50.3,-0.1558,B,True,39.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6757,-0.1285,0.08,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5988,,,,False,v28-pro-max,betting_brain_approved +euriahzxq6jj5xjt1gcr5swt0,2026-05-23,9ikchyu9fb8bvx0s673jofj6s,2,1,1,0,BTTS,KG Var,1.64,0.2,True,True,0.128,53.7,69.9,51.9,-0.0822,B,True,39.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6098,-0.0727,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.6622,,,,False,v28-pro-max,betting_brain_approved +e9pjd4wlmtld083asadmla238,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,0,2,0,1,DC,12,1.08,0.0,False,True,0.0,79.4,79.4,71.8,-0.1405,PASS,True,36.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7944,0.9259,-0.1315,0.0474,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,MEDIUM,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +65b2r7ro4rgosq91xy751mhas,2026-05-23,1klyfth8tl6lu6ra7k8zmy2n2,2,0,0,0,OU25,Üst,1.55,0.2,True,False,-0.2,60.2,65.4,63.1,-0.0843,B,True,29.5,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6018,0.6452,-0.0434,0.2463,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5996,,,,False,v28-pro-max,betting_brain_approved +ainn432h101evklbecab5nthw,2026-05-23,7wssxdqi4xihseeam8grqa2b8,2,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ahrxivxi6m8mf5l9qbafk0aok,2026-05-23,7wssxdqi4xihseeam8grqa2b8,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +99u3awu0fw6mnsadwy6wg0h04,2026-05-23,4vt0ldrcl6thpxpcs8zmpdq1g,0,2,0,1,OU25,Üst,1.58,0.2,True,False,-0.2,50.1,57.7,45.0,-0.1563,B,True,15.4,BET,,very_low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6329,-0.132,0.0432,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.2926,,,,False,v28-pro-max,betting_brain_approved +doaz20qu1371pk7mvw95zthqs,2026-05-23,4vt0ldrcl6thpxpcs8zmpdq1g,1,3,0,2,OU25,Üst,1.52,0.2,True,True,0.104,59.5,65.4,57.9,-0.1267,B,True,11.2,BET,,very_low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6579,-0.0624,0.0168,True,DISAGREE,0.713,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,HIGH,0.2926,,,,False,v28-pro-max,betting_brain_approved +dxrgutpz37unh8vcp6m4yuu50,2026-05-23,cbfgj4sfcj85s1ljyrgqqe78l,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +9xjfiuwknmwoz3vg71u5z3f2s,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +b27z4fmikiy8fihmit1z25b84,2026-05-23,7aj9v3zko7lw5cq2cxzwngyyo,0,3,0,3,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +57q0xkhwhid9o8qh7w6mvm7f8,2026-05-23,cc9zntdbef14p20gt4ekvnjvs,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7lm7e8hequsfcsyey6sbaa3h0,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,3,0,3,BTTS,KG Var,1.27,0.0,False,True,0.0,53.7,69.9,38.1,-0.1895,PASS,True,20.3,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7874,-0.2503,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +aivifms9v9il9f3cj3uuje0pg,2026-05-23,7wssxdqi4xihseeam8grqa2b8,2,1,0,0,DC,1X,1.15,0.0,False,True,0.0,70.9,70.9,58.6,-0.1992,PASS,True,7.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7087,0.8696,-0.1609,0.044,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.666,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +9k1n5tuzhtdilzjugjbu4lwyc,2026-05-23,cc9zntdbef14p20gt4ekvnjvs,1,2,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +8dypmxdafx216agx8og8h8d90,2026-05-23,esrunz7rjb0td98mx9e5cedoy,0,3,0,2,OU25,Üst,1.77,0.2,True,True,0.154,50.0,57.7,49.5,-0.0424,B,True,51.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.565,-0.065,0.0021,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.5516,,,,False,v28-pro-max,betting_brain_approved +6ubut57hovxx1w3z1xuxvnw9g,2026-05-23,82jkgccg7phfjpd0mltdl3pat,1,2,1,0,MS,1,1.42,0.2,True,False,-0.2,58.8,65.5,59.4,-0.0419,B,True,57.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5881,0.7042,-0.1161,0.0717,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.7643,0.0695,1/1,,False,v28-pro-max,betting_brain_approved +chl5cum5r4h1f032k6lnltixg,2026-05-23,3p81ltz6845appgkbgkzxueii,1,1,1,0,OU25,Üst,1.31,0.2,True,False,-0.2,61.4,65.4,64.1,-0.1169,B,True,63.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7634,-0.149,0.0584,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,LOW,0.5454,,,,False,v28-pro-max,betting_brain_approved +d1kh46ozxvtrgv7lf66mzrswk,2026-05-23,8r98daokeuzsamu5fmjtblqx5,1,1,1,0,BTTS,KG Var,1.68,0.2,True,True,0.136,50.0,61.7,61.0,-0.0457,B,True,52.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5952,-0.0952,,False,DISAGREE,1.0,,MEDIUM,0.6922,,,,False,v28-pro-max,betting_brain_approved +d0xvpwo0xk4nlid5fkn3ndz4k,2026-05-23,8r98daokeuzsamu5fmjtblqx5,0,0,0,0,DC,X2,1.36,0.2,True,True,0.072,75.4,75.4,84.9,-0.0741,B,True,22.4,BET,,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.7539,0.7353,0.0186,0.292,True,DISAGREE,1.0,,LOW,0.6922,,,,False,v28-pro-max,betting_brain_approved +2desaej1cja7z6urx4ofp2q6s,2026-05-23,8vbck9a4mxjms783lf72779uu,0,1,0,1,OU25,Üst,1.58,0.2,True,False,-0.2,50.0,57.7,39.4,-0.2344,B,True,30.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.6329,-0.1329,0.0025,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.4946,,,,False,v28-pro-max,betting_brain_approved +ed2a5dtxnj1uzvx730222h0d0,2026-05-23,79s9qgiydh9on34565f8suktl,2,1,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6hqx05fzbghkkyhhpsz4dkutw,2026-05-23,d0ah9vtxs9z0a2dzxxng44nx0,0,0,0,0,MS,2,1.56,0.0,False,False,0.0,52.0,53.3,51.9,-0.1225,PASS,False,0.0,REJECT,v25_v27_hard_disagreement,base_model_not_playable;low_reliability_league;triple_value_not_confirmed;historical_sample_too_low;engine_consensus_disagree,,0.5202,0.641,-0.1208,0.2917,False,DISAGREE,1.0,,LOW,0.35,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +82srftmwhv8icwrkoe8bbf6l0,2026-05-23,5cwsxtx37les6m10xj71htkgf,2,1,0,0,OU25,Üst,1.92,0.4,True,True,0.368,61.1,65.4,79.1,0.1337,B,True,76.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5208,0.0899,0.1365,False,DISAGREE,1.0,,MEDIUM,0.6101,,,,False,v28-pro-max,betting_brain_approved +2s50yvq7x8r8eexniku5xme50,2026-05-23,dvstmwnvw0mt5p38twn9yttyb,2,1,2,1,OU25,Üst,1.55,0.2,True,True,0.11,60.2,65.4,67.9,-0.0222,B,True,68.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6452,-0.0434,0.03,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.688,,1/1,,False,v28-pro-max,betting_brain_approved +6tsrvmnanligggmm73ahj7t3o,2026-05-23,82jkgccg7phfjpd0mltdl3pat,1,1,0,0,BTTS,KG Var,1.55,0.2,True,True,0.11,53.7,69.9,55.8,-0.089,B,True,51.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6452,-0.1081,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.7643,,1/1,,False,v28-pro-max,betting_brain_approved +2wjof1z1piho3hqegymobnbpw,2026-05-23,3428tckxcirwwh3o3jgc1m8ji,0,1,0,0,MS,2,1.15,0.0,False,True,0.0,75.5,90.9,80.1,-0.1944,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.7554,0.8696,-0.1142,0.3666,True,AGREE,0.946,lineup_probable_not_confirmed,LOW,0.5597,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ebrmw756o41nspbhswnh8iuc4,2026-05-23,9chuiarcjofld1dkj9kysehmb,2,1,0,1,OU25,Üst,1.48,0.2,True,True,0.096,61.4,65.4,63.7,-0.0904,B,True,60.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6757,-0.0613,0.0292,False,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.5346,,1/1,,False,v28-pro-max,betting_brain_approved +63f21ddnnw0hoz081gvr0esyc,2026-05-23,8y29fg2s85ppcb8uugm5ee8s4,5,1,3,0,BTTS,KG Var,1.67,0.2,True,True,0.134,51.9,68.4,64.0,-0.1059,B,True,52.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5988,-0.0796,,False,AGREE,1.0,,MEDIUM,0.6866,,,,False,v28-pro-max,betting_brain_approved +czf91xl3axzcuji86ae9o4yz8,2026-05-23,8r98daokeuzsamu5fmjtblqx5,1,0,0,0,BTTS,KG Var,1.57,0.2,True,False,-0.2,51.9,68.4,60.2,-0.1584,B,True,35.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.6369,-0.1177,,True,DISAGREE,1.0,,MEDIUM,0.6922,,,,False,v28-pro-max,betting_brain_approved +d0b98xc6kmoz5lp30ig8ip1jo,2026-05-23,8r98daokeuzsamu5fmjtblqx5,1,1,1,0,BTTS,KG Var,1.74,0.2,True,True,0.148,50.0,61.7,55.5,-0.1405,B,True,33.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5747,-0.0747,,True,AGREE,1.0,,MEDIUM,0.6922,,,,False,v28-pro-max,betting_brain_approved +5ke6o0kgb1e971aimo8i8c8ic,2026-05-23,4jieyfpyom8d011dgeqj77ojm,3,1,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dmnthpfmjkgma777kd3n8dfys,2026-05-23,aho73e5udydy96iun3tkzdzsi,2,0,1,0,OU25,Üst,1.51,0.2,True,False,-0.2,59.5,65.4,70.8,-0.0254,B,True,63.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6623,-0.0668,0.0699,False,AGREE,1.0,,MEDIUM,0.5149,,,,False,v28-pro-max,betting_brain_approved +dm3yy57azivl84utxducmh15g,2026-05-23,aho73e5udydy96iun3tkzdzsi,1,1,1,0,MS,1,1.5,0.2,True,False,-0.2,64.2,65.5,68.4,-0.0675,B,True,57.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6423,0.6667,-0.0244,0.0693,False,AGREE,1.0,,MEDIUM,0.5149,0.0,,,False,v28-pro-max,betting_brain_approved +dn63r84clkkyjylxsol8zzklw,2026-05-23,aho73e5udydy96iun3tkzdzsi,1,1,1,1,BTTS,KG Var,1.64,0.2,True,True,0.128,52.5,69.9,69.2,-0.1024,B,True,53.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.6098,-0.0846,,False,AGREE,1.0,,LOW,0.5149,,,,False,v28-pro-max,betting_brain_approved +f3xp2zia4riqkoajg0y8jdg5w,2026-05-23,ac112osli9fvox1epcg4ld3t6,0,1,0,1,BTTS,KG Var,1.28,0.0,False,False,0.0,54.9,69.9,56.6,-0.2061,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.5488,0.7812,-0.2325,,True,AGREE,1.0,,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +e865y1b8whst8c6x8ykz8q32s,2026-05-23,ac112osli9fvox1epcg4ld3t6,2,1,0,1,MS,1,1.62,0.3,True,True,0.186,64.2,65.5,77.2,0.0806,B,True,36.3,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6423,0.6173,0.025,0.202,False,AGREE,1.0,,MEDIUM,0.59,0.0,,,False,v28-pro-max,betting_brain_approved +eb6v45eqdxiwtcwxwz77szt3o,2026-05-23,ac112osli9fvox1epcg4ld3t6,1,1,0,0,BTTS,KG Var,1.33,0.2,True,True,0.066,54.4,69.9,60.6,-0.1576,B,True,49.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7519,-0.2074,,False,AGREE,1.0,,MEDIUM,0.59,,,,False,v28-pro-max,betting_brain_approved +ajvb13pc1krfr2muw978468t0,2026-05-23,8vbck9a4mxjms783lf72779uu,0,2,0,1,DC,1X,1.09,0.0,False,False,0.0,75.2,75.2,66.1,-0.1715,PASS,True,4.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7525,0.9174,-0.1649,0.0858,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.4946,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +882mybfpp4k6cs1vn7gjhh2xg,2026-05-23,7qf0jaayyxy3ruamsexv5p1kl,2,1,0,0,OU25,Üst,1.55,0.2,True,True,0.11,59.5,65.4,64.0,-0.07,B,True,64.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6452,-0.0497,0.0055,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5988,,,,False,v28-pro-max,betting_brain_approved +ettp40nufnigsbdqt7eh1apsk,2026-05-23,9ikchyu9fb8bvx0s673jofj6s,0,0,0,0,BTTS,KG Var,2.0,0.2,True,False,-0.2,51.9,68.4,58.1,0.0545,B,True,46.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5,0.0192,,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.6622,,,,False,v28-pro-max,betting_brain_approved +eeoaq33zegadyi7b01s8e87is,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,1,2,0,2,BTTS,KG Var,1.21,0.0,False,True,0.0,54.4,69.9,28.8,-0.3256,PASS,True,29.2,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8264,-0.2819,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6n3vhka9z0x55elea1k7llvys,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,2,0,0,0,BTTS,KG Var,1.15,0.0,False,False,0.0,54.4,69.9,23.3,-0.2445,PASS,True,28.5,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8696,-0.3251,,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +51malfljdtlpru9l4nf211nh0,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,4,1,1,BTTS,KG Var,1.29,0.0,False,True,0.0,53.7,69.9,35.9,-0.2239,PASS,True,20.0,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7752,-0.2381,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +1efj29qu0q5kiw78tamu3ks2c,2026-05-23,bt24epydr1s8zc2x5xb0n9noc,2,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2d3brj0hik9s32no58ognzwgk,2026-05-23,8vbck9a4mxjms783lf72779uu,2,2,1,0,OU25,Üst,1.34,0.2,True,True,0.068,59.5,65.4,55.3,-0.1501,B,True,35.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7463,-0.1508,0.0564,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.4946,,,,False,v28-pro-max,betting_brain_approved +eflo6a2j5lil3obqlvexfc1lg,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,2,3,1,0,MS,1,1.43,0.2,True,False,-0.2,56.0,58.8,43.4,-0.0794,B,True,55.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5598,0.6993,-0.1395,0.0421,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,0.0,,,False,v28-pro-max,betting_brain_approved +eg2bmsmsg3l163ltvn44198us,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,4,2,1,0,DC,12,1.07,0.0,False,True,0.0,80.3,80.3,69.5,-0.1736,PASS,True,34.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8032,0.9346,-0.1314,0.0528,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,MEDIUM,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4kmtyqzil2go17e8fjqe5wphw,2026-05-23,a4fgj2rfbpf4ejo1qi624fefo,2,2,2,0,BTTS,KG Var,1.21,0.0,False,True,0.0,54.4,69.9,36.9,-0.2249,PASS,True,30.2,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8264,-0.2819,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +cstoyu7c1vfjke7s8am90mntg,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,1,1,1,0,BTTS,KG Var,1.25,0.0,False,True,0.0,53.7,69.9,36.1,-0.2136,PASS,True,10.1,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5371,0.8,-0.2629,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ctb1qr0119i428lbz65r53jf8,2026-05-23,1owhvvge4wlx7e0e431b4vhqx,2,4,0,2,BTTS,KG Var,1.3,0.2,True,True,0.06,53.7,69.9,22.5,-0.2583,B,True,18.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7692,-0.2321,,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +2ahuoeivkf31bsvrx3j87r4es,2026-05-23,663a54fmymndjeev47qm7d3nf,2,2,1,0,OU25,Üst,1.7,0.2,True,True,0.14,54.7,65.4,54.2,-0.1077,B,True,24.7,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5882,-0.041,0.0331,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.3522,,,,False,v28-pro-max,betting_brain_approved +azhoe1ceux444x94qddhmp9g4,2026-05-23,dgxf9h69lnllbyh5k6jdtk0bu,4,2,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3996lw88zhu1xqpljwlgpg4yc,2026-05-23,8ifnkq96dckjtn9ab9wplpl9l,1,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a62llywo6njoe337q310gb3f8,2026-05-23,1okgv7alq5gggbccv5r9p63v8,1,0,0,0,BTTS,KG Var,1.48,0.2,True,False,-0.2,53.7,69.9,63.6,-0.1522,B,True,24.2,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6757,-0.1386,,True,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +epi4yv5muyfwtu8ahry4fi4gk,2026-05-23,b73zounsynk9d3u1p9nvpu7i2,2,3,1,1,BTTS,KG Var,1.74,0.2,True,True,0.148,51.9,68.4,66.7,-0.0768,B,True,41.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5747,-0.0555,,False,DISAGREE,1.0,,MEDIUM,0.4049,,,,False,v28-pro-max,betting_brain_approved +5lvn459r1uolnu3whpo3pptec,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,3,1,1,0,OU25,Üst,1.56,0.2,True,True,0.112,59.5,65.4,64.3,-0.0868,B,True,45.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.641,-0.0455,0.1309,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5036,,,,False,v28-pro-max,betting_brain_approved +macko17794470246036469438,2026-05-23,7qdv1xae7ikfe8dft3oj29yqc,5,0,4,0,OU25,Üst,1.13,0.0,False,True,0.0,66.5,65.4,71.8,-0.0663,PASS,True,28.7,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6651,0.885,-0.2199,0.0131,False,AGREE,0.782,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5692,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +bj66q7bop0dgafizmmu564t1w,2026-05-23,zs18qaehvhg3w1208874zvfa,3,1,1,1,BTTS,KG Var,1.31,0.2,True,True,0.062,54.4,69.9,41.1,-0.2498,B,True,27.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5445,0.7634,-0.2189,,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee;live_match_pre_match_features,MEDIUM,0.8176,,,,False,v28-pro-max,betting_brain_approved +bipa8glawdexa2c723be4xi50,2026-05-23,4jieyfpyom8d011dgeqj77ojm,3,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +erf3gqkv4ckc0t28n5pqelrtg,2026-05-23,3ri6juw2w6ma0jezszdlv1uqm,1,4,0,2,BTTS,KG Var,1.39,0.2,True,True,0.078,54.3,69.9,43.8,-0.1683,B,True,26.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7194,-0.1761,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5356,,,,False,v28-pro-max,betting_brain_approved +7zvk9aw5foh1u7eiqn093fz10,2026-05-23,7yx3dmsu97t2azo5nsowt7vwo,2,3,1,1,OU25,Üst,1.94,0.2,True,True,0.188,50.0,57.7,48.7,-0.0725,B,True,33.0,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5,0.5155,-0.0155,0.0695,False,DISAGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.35,,,,False,v28-pro-max,betting_brain_approved +b1x07488bi1q6a5p26gz3s1lg,2026-05-23,7aj9v3zko7lw5cq2cxzwngyyo,4,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3g4r40hugck058nfofmnfaiac,2026-05-23,dv7yrlxxgsfl7wl2sno3adndq,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ah5my7gk3iz385xnlpcat8lxw,2026-05-23,6g8hw3acenrw828la7gwx4mvs,1,2,0,1,DC,12,1.16,0.0,False,True,0.0,75.1,75.1,71.9,-0.0958,PASS,True,22.2,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7508,0.8621,-0.1113,0.0322,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +716v11qb8iepzxfu16mz0rcwk,2026-05-23,def5np5rjklzsnfgumw0uo60a,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8uqee4fptjjl0iez5dvou63o4,2026-05-23,1okgv7alq5gggbccv5r9p63v8,4,2,2,1,MS,1,1.31,0.2,True,True,0.062,62.8,65.5,71.1,-0.0221,B,True,47.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6282,0.7634,-0.1352,0.0989,False,AGREE,1.0,,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +5rr16a9cpp5n0f637x04b5ogk,2026-05-23,117yqo02rs8dykkxpm274w3bd,7,1,4,0,BTTS,KG Var,1.61,0.2,True,True,0.122,53.7,69.9,68.2,-0.1179,B,True,38.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6211,-0.084,,True,AGREE,1.0,,LOW,0.5298,,,,False,v28-pro-max,betting_brain_approved +5tlbbajclg3e82htgtzdgi6ms,2026-05-23,117yqo02rs8dykkxpm274w3bd,5,0,2,0,BTTS,KG Var,1.42,0.2,True,False,-0.2,54.4,69.9,62.7,-0.1428,B,True,45.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7042,-0.1597,,False,AGREE,1.0,,MEDIUM,0.5298,,,,False,v28-pro-max,betting_brain_approved +5suu95khvnfmfsi5lip78bifo,2026-05-23,117yqo02rs8dykkxpm274w3bd,0,0,0,0,OU25,Üst,1.34,0.2,True,False,-0.2,61.1,65.4,60.6,-0.2153,B,True,46.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7463,-0.1356,0.007,True,AGREE,1.0,,LOW,0.5298,,,,False,v28-pro-max,betting_brain_approved +5rdw2nmaxlz9ufxh2pqy1hjis,2026-05-23,117yqo02rs8dykkxpm274w3bd,2,0,1,0,BTTS,KG Var,1.55,0.2,True,False,-0.2,53.7,69.9,67.3,-0.0782,B,True,48.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6452,-0.1081,,False,AGREE,1.0,,MEDIUM,0.5298,,,,False,v28-pro-max,betting_brain_approved +macko1779526471248557452,2026-05-23,macko17161180860119283210,5,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8totdgqa23rnqp2qbpubtek2c,2026-05-23,1okgv7alq5gggbccv5r9p63v8,1,0,0,0,OU25,Üst,1.81,0.2,True,False,-0.2,50.0,57.7,55.2,-0.1013,B,True,49.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5525,-0.0525,0.0515,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +63caeyguf8ia8pn9936kb1afo,2026-05-23,1n9l0ex47bu0762qg574hzjtd,1,2,0,0,DC,12,1.08,0.0,False,True,0.0,80.5,80.5,82.7,-0.0824,PASS,True,8.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;very_low_reliability_league;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.8048,0.9259,-0.1211,0.0226,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.2626,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +cbbsyawd2xmdjo5ju2ztz94ic,2026-05-23,5f4vmg8dv2d0y8fuw60f0kbca,2,2,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c7axs8k5hzop8bsmo3q1c1p90,2026-05-23,69ruk23bbos6yc07zeogu0mzu,0,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4m95s68oyy3wrlto13ycful90,2026-05-23,2mdmx668tyhy4u4z9zszwjv5v,1,2,1,2,OU25,Üst,1.47,0.2,True,True,0.094,54.7,65.4,52.4,-0.119,B,True,55.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6803,-0.1331,0.0345,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6345,,,,False,v28-pro-max,betting_brain_approved +9x17fbazv45jijz2dtvylc2s4,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,3,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4v0cnkj2aa4kz45s4ru4jx79w,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +64e9r0rv5tg8kb80zh4fzlzis,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,2,4,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +66dx9d4u94t1uh0z1jyuuun10,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,3,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6514rdfs6bn4yp6h8vsba1bf8,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,3,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +xxqq43jbc12rr93is9gz2ql0,2026-05-23,9w8ydnoft05zow8l4wu9sxfq1,2,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +62dvh85n7tfeyz3f1aep9qas4,2026-05-23,1n9l0ex47bu0762qg574hzjtd,3,0,2,0,DC,12,1.06,0.0,False,True,0.0,80.3,80.3,80.1,-0.0724,PASS,True,3.4,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;very_low_reliability_league;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.8032,0.9434,-0.1402,0.0001,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.2626,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4ycjrv2epsmmzxgzlnctpl15g,2026-05-23,z3w7v4hqa7ssk5p6qkbpg9au,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,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +b2ag794tgntqc0mhpg96blp90,2026-05-23,xwnjb1az11zffwty3m6vn8y6,1,0,0,0,BTTS,KG Var,1.58,0.2,True,False,-0.2,53.7,69.9,48.6,-0.248,B,True,21.2,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6329,-0.0958,,True,AGREE,0.946,lineup_probable_not_confirmed;live_match_pre_match_features,MEDIUM,0.4197,,1/1,,False,v28-pro-max,betting_brain_approved +9z3thu8a1da66whhyys5ju0pg,2026-05-23,awvkxs5trlg5e5e5kg4hq8f1,2,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.766,missing_full_ms_odds;lineup_probable_not_confirmed,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6itgabj0m9y6ryw8nwsseh91w,2026-05-23,eqz64pn0qsp2y7aq4m9id3fn6,7,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dwxua76p0jh1qpahbf2cqtatw,2026-05-23,9zvu736m8f9jzeyukisgey356,8,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +5b2smltmywwywnh2lthbzog0k,2026-05-23,3a1kagik7bnoofrhr6qqp0dn8,0,5,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +an2fq7k7ayv1srgf3ksjbgrh0,2026-05-23,ehmpyfw70d7gs99hb9gz74wve,3,4,0,4,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +eozbagdper3cphsn9g7oxpkpg,2026-05-23,b73zounsynk9d3u1p9nvpu7i2,3,2,1,2,BTTS,KG Var,1.44,0.2,True,True,0.088,54.4,69.9,64.6,-0.1246,B,True,39.5,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.6944,-0.1499,,False,AGREE,1.0,,MEDIUM,0.4049,,,,False,v28-pro-max,betting_brain_approved +eogb04bgnalrww5xd3ytriql0,2026-05-23,b73zounsynk9d3u1p9nvpu7i2,0,1,0,0,BTTS,KG Var,1.53,0.2,True,False,-0.2,53.7,69.9,68.9,-0.0554,B,True,43.2,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6536,-0.1165,,False,AGREE,1.0,,MEDIUM,0.4049,,,,False,v28-pro-max,betting_brain_approved +391nxp95fxdtraf9996avtudw,2026-05-23,8ifnkq96dckjtn9ab9wplpl9l,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7ghp7jx86jc6nrav0voiupgk4,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,0,0,0,0,BTTS,KG Var,1.66,0.2,True,False,-0.2,52.5,69.9,64.5,-0.152,B,True,24.3,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.6024,-0.0772,,True,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +2ohbndtk5pxp42uy57k2snpqs,2026-05-23,ajm86skyzse4ym8g6fpgzncxa,0,0,0,0,MS,2,1.5,0.2,True,False,-0.2,55.0,61.2,43.4,-0.1285,B,True,49.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5504,0.6667,-0.1163,0.1166,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5112,0.0,,,False,v28-pro-max,betting_brain_approved +2ngv7m1ayizz7plh2adyv7a50,2026-05-23,ajm86skyzse4ym8g6fpgzncxa,2,2,0,1,DC,12,1.07,0.0,False,False,0.0,80.5,80.5,80.1,-0.0987,PASS,True,29.2,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8048,0.9346,-0.1298,0.0207,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5112,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2oypxyqjf6ae18hkzext4fm6s,2026-05-23,ajm86skyzse4ym8g6fpgzncxa,4,3,2,2,BTTS,KG Var,1.16,0.0,False,True,0.0,54.4,69.9,35.1,-0.2153,PASS,True,20.0,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8621,-0.3176,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5112,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2nzzl54kb9k0fyasebnuaidck,2026-05-23,ajm86skyzse4ym8g6fpgzncxa,1,4,0,1,OU25,Üst,1.41,0.2,True,True,0.082,61.1,65.4,61.5,-0.1062,B,True,57.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7092,-0.0985,0.0443,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5112,,,,False,v28-pro-max,betting_brain_approved +2pg4srvsb6r9tbzh0y9oofsic,2026-05-23,ajm86skyzse4ym8g6fpgzncxa,1,2,1,0,BTTS,KG Var,1.25,0.0,False,True,0.0,54.3,69.9,23.5,-0.2406,PASS,True,18.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.8,-0.2567,,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5112,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +x91ziwvpltppqydoro7xr384,2026-05-23,61fzfjogstjuukzcehighq7mu,3,2,1,1,BTTS,KG Var,1.43,0.2,True,True,0.086,50.0,61.7,15.0,-0.2963,B,True,25.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.6993,-0.1993,,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.6641,,,,False,v28-pro-max,betting_brain_approved +5juhzy4y9qbhcn29jgfknq2hg,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,0,1,0,0,DC,1X,1.19,0.0,False,False,0.0,70.6,70.6,65.8,-0.1165,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.706,0.8403,-0.1343,0.0098,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.5036,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +dvetg24f63jny0008n9qau80k,2026-05-23,9zvu736m8f9jzeyukisgey356,3,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dvwk4wwctp3efc6jlj6ab4o44,2026-05-23,9zvu736m8f9jzeyukisgey356,1,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c9tg1znu4wma85uzp56zbhzpw,2026-05-23,5f4vmg8dv2d0y8fuw60f0kbca,2,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cbts7lf074gx46va7n2sf3jtg,2026-05-23,5f4vmg8dv2d0y8fuw60f0kbca,2,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +17rwek5g3ua6goq68xtla9ses,2026-05-23,di7752smia5ba7js20dqcxxuo,2,0,0,0,MS,1,1.31,0.0,False,True,0.0,51.0,53.5,42.1,-0.2157,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,v25_v27_aligned,0.51,0.7634,-0.2534,0.0712,False,AGREE,1.0,,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +ab6uazzgtat8v73v7bdkkyv4k,2026-05-23,awlih5a6wxegtxcx2gtps77my,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dsl0ts2kdfuejlmxvx42z8efo,2026-05-23,8q60vlvn3krynkob6igrncdjq,0,4,0,0,HT,2,1.15,0.0,False,False,0.0,60.8,80.8,53.4,-0.1956,PASS,True,0.0,REJECT,odds_below_minimum;volatile_market_requires_exceptional_evidence,base_model_not_playable;historical_sample_too_low,,0.6079,0.8696,-0.2617,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.703,,,,False,v28-pro-max,betting_brain_no_safe_pick +c9a2ogis7h838jxjpcz01ckyc,2026-05-23,5f4vmg8dv2d0y8fuw60f0kbca,4,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +aflkfjhdtk8cap9gtbqd2qfbo,2026-05-23,6g8hw3acenrw828la7gwx4mvs,1,0,0,0,OU25,Üst,1.47,0.2,True,False,-0.2,50.1,57.7,41.9,-0.16,B,True,50.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.6803,-0.1794,0.0535,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_approved +7hhpxejzi37pyhx6fl084rxg4,2026-05-23,ezdsrofi27pck8v4ifpcg24bu,1,3,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7d7in2859jkpkh0ssbnrltm38,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,4,0,3,0,BTTS,KG Var,1.32,0.2,True,False,-0.2,54.4,69.9,39.0,-0.1809,B,True,25.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.7576,-0.2131,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5676,,,,False,v28-pro-max,betting_brain_approved +7cprglj2s8g2wxrfv8jttf4lw,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,3,0,0,0,DC,12,1.08,0.0,False,True,0.0,80.3,80.3,76.0,-0.1072,PASS,True,50.3,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8032,0.9259,-0.1227,0.0083,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5676,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7c73sbhbyyx80m13b47n1e0b8,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,2,0,1,0,BTTS,KG Var,1.2,0.0,False,False,0.0,54.4,69.9,32.5,-0.2483,PASS,True,24.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8333,-0.2888,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5676,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7biixa2v3352jy3si2b3zhrtg,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,1,4,0,1,MS,1,1.33,0.2,True,False,-0.2,62.8,65.5,47.4,-0.114,B,True,56.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6276,0.7519,-0.1243,0.0789,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.5676,0.0,,,False,v28-pro-max,betting_brain_approved +89bi8bbizfsh64ut9lbjxgqac,2026-05-23,bjzrti3ijoyjz8xqee72rfz3e,2,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8787oe49g6b8yyggr74zgy49g,2026-05-23,bjzrti3ijoyjz8xqee72rfz3e,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +88ttw140t4rucvhaqbc15rdhw,2026-05-23,bjzrti3ijoyjz8xqee72rfz3e,3,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +88c6bmdnpbrru8w6hp6nwoaac,2026-05-23,bjzrti3ijoyjz8xqee72rfz3e,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a740espx4k65cjxzbp71yfjf8,2026-05-23,1okgv7alq5gggbccv5r9p63v8,4,2,2,1,BTTS,KG Var,1.33,0.2,True,True,0.066,54.4,69.9,63.1,-0.1455,B,True,33.4,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5445,0.7519,-0.2074,,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +67xz6pn1g3fz0lqvrtcbqd638,2026-05-23,ep4po13e04rjg268pgete0fvu,0,1,0,1,OU25,Üst,1.4,0.6,True,False,-0.6,73.9,70.7,90.9,0.0914,B,True,65.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.7386,0.7143,0.0243,0.0812,False,AGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +61smz4rzydaqtlbocfzr6xdsk,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,0,3,0,2,OU25,Üst,1.63,0.2,True,True,0.126,59.5,65.4,68.5,-0.078,B,True,40.1,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6135,-0.018,0.0897,True,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +63f6ouilzvg3uw25lz9ul72ms,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,7,2,2,0,OU25,Üst,1.68,0.2,True,True,0.136,50.0,57.7,60.9,0.0249,B,True,56.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.5952,-0.0952,0.0004,False,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +7h3hs7suwd27pvx2q8huuj504,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,0,0,0,0,BTTS,KG Var,1.73,0.2,True,False,-0.2,51.9,68.4,66.1,-0.0931,B,True,40.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.578,-0.0588,,False,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +7hmnb9bx9b6srgitbl8qg0ff8,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,0,2,0,1,OU25,Üst,1.42,0.2,True,False,-0.2,50.1,57.7,52.2,-0.132,B,True,48.0,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.7042,-0.2033,0.0396,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +7feim1wo3gmr9t82yae7ot8us,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,0,1,0,1,OU25,Üst,1.62,0.2,True,False,-0.2,54.7,65.4,60.9,-0.1289,B,True,36.9,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6173,-0.0701,0.0223,True,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +8y0c5ig3lw68pmi9ls1q58avo,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,5,1,3,0,OU25,Üst,1.44,0.2,True,True,0.088,54.7,65.4,60.2,-0.1814,B,True,34.6,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5472,0.6944,-0.1472,0.0369,True,AGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +8vuzlow14rxhzbmluzj7a5pg4,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,2,1,0,0,BTTS,KG Var,1.61,0.2,True,True,0.122,52.5,69.9,63.9,-0.1603,B,True,23.8,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.6211,-0.0959,,True,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +aclcdqdshl75l1q3twmyv1kpg,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,1,1,1,0,BTTS,KG Var,1.8,0.2,True,True,0.16,53.7,69.9,75.5,0.0131,B,True,52.0,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5556,-0.0185,,False,AGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +adniel8wb0tuddr4vjp63kowk,2026-05-23,6nju5p3dc3gpz1wp7vpi56pzo,2,2,0,0,BTTS,KG Var,1.79,0.2,True,True,0.158,57.1,69.9,75.1,-0.0396,B,True,44.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.5587,0.012,,False,AGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +7au3j6auutzrhb0nd7610mhhw,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,2,2,2,1,OU25,Üst,1.35,0.2,True,True,0.07,60.2,65.4,51.6,-0.1982,B,True,38.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7407,-0.1389,0.0178,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5676,,,,False,v28-pro-max,betting_brain_approved +7ac8imixbln4mh1q50zc8yxhw,2026-05-23,ay4u6j7lfkcg7x21mx5q121j,2,3,0,1,BTTS,KG Var,1.27,0.0,False,True,0.0,54.3,69.9,24.8,-0.2584,PASS,True,28.7,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.7874,-0.2441,,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.5676,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6ibust57f3cfjlfgpyfskxgk4,2026-05-23,eqz64pn0qsp2y7aq4m9id3fn6,3,1,1,0,MS,1,1.49,0.2,True,True,0.098,53.4,56.4,37.7,-0.0545,B,True,43.8,BET,,triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5341,0.6711,-0.137,0.1396,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.7031,0.0,,,False,v28-pro-max,betting_brain_approved +6hu8gjstp89c2x5jvap7sap78,2026-05-23,eqz64pn0qsp2y7aq4m9id3fn6,0,2,0,1,BTTS,KG Var,1.09,0.0,False,False,0.0,54.4,69.9,30.2,-0.2642,PASS,True,19.4,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5445,0.9174,-0.3729,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.7031,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +wqvf2sn4crpxl7en08sv87bo,2026-05-23,61fzfjogstjuukzcehighq7mu,4,0,1,0,BTTS,KG Var,1.2,0.0,False,False,0.0,54.9,69.9,37.5,-0.1737,PASS,True,39.4,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.8333,-0.2845,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6641,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5j5lchcseo2zfnxvo1pheftp0,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,2,3,2,1,DC,1X,1.08,0.0,False,False,0.0,84.4,84.4,81.0,-0.148,PASS,True,15.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8437,0.9259,-0.0822,0.0436,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5036,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5o1bmkbqsr4kg8l018p9izaj8,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,5,1,3,0,OU25,Üst,1.64,0.2,True,True,0.128,61.1,65.4,67.7,-0.0304,B,True,62.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6098,0.0009,0.0557,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5036,,,,False,v28-pro-max,betting_brain_approved +aehnklo5grjhoh38o07x6wwes,2026-05-23,z1jegisr1gyeusokq5sgukbu,5,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +61txu2e6ffj2xqetggozuffh0,2026-05-23,1n9l0ex47bu0762qg574hzjtd,0,2,0,1,BTTS,KG Var,1.47,0.2,True,False,-0.2,50.0,61.7,29.0,-0.2855,B,True,0.4,BET,,very_low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.6803,-0.1803,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.2626,,,,False,v28-pro-max,betting_brain_approved +7ggg99jn1zdoghr1mr8xoy49g,2026-05-23,ezdsrofi27pck8v4ifpcg24bu,2,3,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +38c57czlw7hpf5kpz4vs0tct0,2026-05-23,5jej246l7zaj0c7cesk23wbug,4,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +38s1uuyqfw0d7o4qdaescjjmc,2026-05-23,5jej246l7zaj0c7cesk23wbug,7,1,4,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +3986k8eqtp5tmd5u4gfwcxez8,2026-05-23,5jej246l7zaj0c7cesk23wbug,2,1,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +39o2cg7zg6xcm8ab0qqmknuhg,2026-05-23,5jej246l7zaj0c7cesk23wbug,0,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a7of9nbf0p3sbkb7xk5kwrf9w,2026-05-23,1okgv7alq5gggbccv5r9p63v8,0,1,0,1,OU25,Üst,2.03,0.2,True,False,-0.2,50.1,57.7,66.6,0.0981,B,True,65.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.4926,0.0083,0.0128,False,AGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +5mx5go4jqpfiu0m89ewylfuok,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,2,0,1,0,DC,1X,1.07,0.0,False,True,0.0,84.4,84.4,81.0,-0.1466,PASS,True,15.4,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.8437,0.9346,-0.0909,0.0445,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5036,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5kkhrto3am8bnewg1a8w577dg,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,0,0,0,0,BTTS,KG Var,1.62,0.2,True,False,-0.2,53.7,69.9,56.2,-0.1023,B,True,46.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6173,-0.0802,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5036,,,,False,v28-pro-max,betting_brain_approved +5l4s4dcy1dzqct3q1oeyxbqxg,2026-05-23,5dycj9wdhxh3n33qubw18ohlk,2,1,2,1,BTTS,KG Var,1.68,0.2,True,True,0.136,50.0,61.7,50.5,-0.1162,B,True,48.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5952,-0.0952,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,LOW,0.5036,,,,False,v28-pro-max,betting_brain_approved +6hcpdlocyasud00n7k3v1o0lw,2026-05-23,eqz64pn0qsp2y7aq4m9id3fn6,4,4,2,2,MS,1,1.39,0.2,True,False,-0.2,55.2,58.8,39.8,-0.1222,B,True,12.6,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;strong_historical_sample,0.5515,0.7194,-0.1679,0.1416,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.7031,0.0,,,False,v28-pro-max,betting_brain_approved +drfbt4tpvj8rni1peqbw7m13o,2026-05-23,8q60vlvn3krynkob6igrncdjq,0,4,0,2,MS,2,1.36,0.2,True,True,0.072,59.7,61.2,43.0,-0.1088,B,True,50.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5973,0.7353,-0.138,0.041,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.703,0.0,,,False,v28-pro-max,betting_brain_approved +ds0k577hdndzoxwvqcyuns1lg,2026-05-23,8q60vlvn3krynkob6igrncdjq,1,1,1,0,OE,Tek,1.63,0.0,False,False,0.0,57.5,35.6,36.1,-0.0411,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low;volatile_market_requires_exceptional_evidence,base_model_not_playable,strong_historical_sample,0.5747,0.6135,-0.0388,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.703,,,,False,v28-pro-max,betting_brain_no_safe_pick +dqxkwczkjs21xo3di3jn2f8d0,2026-05-23,8q60vlvn3krynkob6igrncdjq,2,0,0,0,MS,1,1.35,0.2,True,True,0.07,55.8,58.8,37.2,-0.1541,B,True,46.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5577,0.7407,-0.183,0.08,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.703,0.0,,,False,v28-pro-max,betting_brain_approved +agnitev0ve0s5nx5ntna7o9p0,2026-05-23,6g8hw3acenrw828la7gwx4mvs,1,1,1,0,OU25,Üst,1.43,0.2,True,False,-0.2,59.5,65.4,55.7,-0.1387,B,True,41.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6993,-0.1038,0.0247,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.663,,,,False,v28-pro-max,betting_brain_approved +1rt7vlt9wm31isbufalipm2ac,2026-05-23,9u4pm8x0lfmfq3r0pypmrls71,0,1,0,1,BTTS,KG Var,1.09,0.0,False,False,0.0,54.9,69.9,19.1,-0.2612,PASS,True,18.0,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override,0.5488,0.9174,-0.3686,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.7244,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +6z8d1z1q3c0yhbozzhwhfcx78,2026-05-23,def5np5rjklzsnfgumw0uo60a,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +kxe98dr33sh9fymfz0x43bpw,2026-05-23,enzlj1as2raqm4ids1zyb07y1,2,2,0,2,BTTS,KG Var,1.33,0.2,True,True,0.066,53.7,69.9,44.4,-0.1424,B,True,41.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.7519,-0.2148,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +7fbsgfxsqy9yor4e3r0v63cwk,2026-05-23,ezdsrofi27pck8v4ifpcg24bu,3,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +ar2dxt1c76l06yxru9akvophw,2026-05-23,cesdwwnxbc5fmajgroc0hqzy2,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a9762wzsussnjq2iq68okp15g,2026-05-23,9zmk2nvdaohu0lggtfc6vdo4q,1,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c6tri31tk4tuoktjn4z6jm6ms,2026-05-23,69ruk23bbos6yc07zeogu0mzu,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2zvzkswrftqy245uwtb22k2z8,2026-05-23,5qmjkpvi92vrzdcb2knassjkk,1,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +c2wvdbu4x0eprzutp8blq4lxw,2026-05-23,enzlj1as2raqm4ids1zyb07y1,1,1,0,1,BTTS,KG Var,1.31,0.2,True,True,0.062,54.3,69.9,41.8,-0.174,B,True,39.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5433,0.7634,-0.2201,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +9cwq3k94m72ax2xgto6282xhw,2026-05-23,c1d9p6b2e9zr5tqlzx3ktjplg,2,0,1,0,BTTS,KG Var,1.49,0.2,True,False,-0.2,53.7,69.9,58.2,-0.2417,B,True,22.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6711,-0.134,,True,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +dr9slf8ceul5v8pa1pqxmdxqs,2026-05-23,enzlj1as2raqm4ids1zyb07y1,3,3,2,1,OU35,Üst,1.55,0.0,False,True,0.0,50.6,50.8,39.9,-0.1404,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;historical_sample_too_low,,0.5058,0.6452,-0.1394,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee;live_match_pre_match_features,LOW,0.6442,,,,False,v28-pro-max,betting_brain_no_safe_pick +66sll2xb25uz8nj1id4potq8k,2026-05-23,8n9w0n3i9kk05echhtmstn6o9,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6zvly5mewj7axa4jo7fz5rf2s,2026-05-23,6lwpjhktjhl9g7x2w7njmzva6,2,3,0,0,MS,1,1.09,0.0,False,False,0.0,69.6,65.5,68.3,-0.1373,PASS,True,23.4,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6962,0.9174,-0.2212,0.0351,False,AGREE,1.0,,LOW,0.6164,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2zd44qjp8dxp59giv35ayqkus,2026-05-23,5qmjkpvi92vrzdcb2knassjkk,0,3,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +75i94ecn2eouo0dgt63w30zdg,2026-05-23,bly7ema5au6j40i0grhl0pnub,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.78,missing_full_ms_odds;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +9dcagm27r0d80b7h674f2td78,2026-05-22,bdtat25m14jy85y484z3e6lf,0,2,0,2,BTTS,KG Var,1.84,0.2,True,False,-0.2,53.2,69.9,65.5,-0.0249,B,True,44.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5435,-0.0118,,False,AGREE,1.0,,HIGH,0.7437,,,,False,v28-pro-max,betting_brain_approved +9co612iv225bzl4b97qshrrpw,2026-05-22,2wolc27r8z03itcvwp43e38c5,0,0,0,0,HT_OU05,Üst,1.4,0.0,False,False,0.0,57.6,39.2,34.2,-0.1042,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,strong_historical_sample,0.5755,0.7143,-0.1388,,False,DISAGREE,1.0,,HIGH,0.5592,,,,False,v28-pro-max,betting_brain_no_safe_pick +7oal17qaem5yscp8s4kxdqz9w,2026-05-22,5zr0b05eyx25km7z1k03ca9jx,1,0,0,0,MS,1,1.65,0.0,False,True,0.0,51.6,53.5,52.3,-0.1106,PASS,False,0.1,REJECT,,base_model_not_playable;triple_value_not_confirmed,v25_v27_aligned;strong_historical_sample,0.5162,0.6061,-0.0899,0.0139,False,AGREE,1.0,,LOW,0.5424,0.0,,,False,v28-pro-max,betting_brain_no_safe_pick +2ysc8dw8t6k5ybayimt7s1x5g,2026-05-22,5qmjkpvi92vrzdcb2knassjkk,2,2,1,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +4gqg3amdcpr04dynyb5xugftg,2026-05-22,5y0z0l2epprzbscvzsgldw8vu,0,1,0,1,BTTS,KG Var,1.72,0.2,True,False,-0.2,50.0,61.7,57.1,-0.124,B,True,29.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5814,-0.0814,,True,AGREE,1.0,,MEDIUM,0.5288,,,,False,v28-pro-max,betting_brain_approved +8a93p68pww6rbvuu8x48bmsr8,2026-05-22,a9vrdkelbgif0gtu3wxsr75xo,1,1,0,1,OU25,Üst,1.55,0.2,True,False,-0.2,54.7,65.4,56.5,-0.1688,B,True,46.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6452,-0.098,0.0022,True,DISAGREE,1.0,,MEDIUM,0.6618,,,,False,v28-pro-max,betting_brain_approved +2148ya1ar2c97z8kfjuc50g0k,2026-05-22,7cwemnr3vi40znjq451zxkus6,1,2,0,0,BTTS,KG Var,1.61,0.2,True,True,0.122,53.7,69.9,49.0,-0.1404,B,True,17.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6211,-0.084,,True,AGREE,0.946,lineup_probable_not_confirmed,HIGH,0.5115,,,,False,v28-pro-max,betting_brain_approved +5xysuu5mmphlqpf7z6tl93aqc,2026-05-22,zilopfej2h0n3vpan5tcynpo,6,3,4,2,BTTS,KG Var,1.07,0.0,False,True,0.0,66.6,69.9,59.7,-0.2473,PASS,True,29.5,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6664,0.9346,-0.2682,,True,DISAGREE,1.0,,MEDIUM,0.6051,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5xe2wgyxhalrwyitk2d3ypi50,2026-05-22,zilopfej2h0n3vpan5tcynpo,0,1,0,0,DC,12,1.08,0.0,False,True,0.0,75.5,75.5,73.8,-0.1534,PASS,True,53.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7549,0.9259,-0.171,0.0562,True,AGREE,1.0,,MEDIUM,0.6051,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5wt5uajrfqnpxbyfah4s39250,2026-05-22,zilopfej2h0n3vpan5tcynpo,5,0,2,0,BTTS,KG Var,1.53,0.2,True,False,-0.2,50.0,61.7,54.4,-0.1478,B,True,52.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.6536,-0.1536,,False,AGREE,0.96,missing_referee,LOW,0.6051,,,,False,v28-pro-max,betting_brain_approved +7imkf04u2x2a12wpkqps2olqs,2026-05-22,3n9mk5b2mxmq831wfmv6pu86i,3,1,2,1,OU25,Üst,1.46,0.2,True,True,0.092,61.1,65.4,67.8,-0.0717,B,True,61.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6849,-0.0742,0.0266,False,AGREE,1.0,,MEDIUM,0.5437,,1/1,,False,v28-pro-max,betting_brain_approved +eg4s21weu4vwbs3dcn58j3pck,2026-05-22,4mbfidy8zum5u0aqjqo0vuqs2,1,1,0,1,OU25,Üst,1.47,0.2,True,False,-0.2,60.2,65.4,66.0,-0.0932,B,True,65.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.6803,-0.0785,0.0994,False,DISAGREE,1.0,,MEDIUM,0.673,,2/2,,False,v28-pro-max,betting_brain_approved +ei6zom9fzea9u8o64fmh4czdg,2026-05-22,4mbfidy8zum5u0aqjqo0vuqs2,1,2,1,0,BTTS,KG Var,1.92,0.2,True,True,0.184,53.7,69.9,71.9,0.0001,B,True,58.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5208,0.0163,,False,AGREE,1.0,,MEDIUM,0.673,,1/1,,False,v28-pro-max,betting_brain_approved +efif6mux6q31x22p9khdbrcb8,2026-05-22,4mbfidy8zum5u0aqjqo0vuqs2,0,0,0,0,BTTS,KG Var,1.75,0.2,True,False,-0.2,53.7,69.9,64.9,-0.0708,B,True,54.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5714,-0.0343,,False,DISAGREE,0.96,missing_referee,MEDIUM,0.673,,X/X,,False,v28-pro-max,betting_brain_approved +egra589pt8uc7an873wjh0844,2026-05-22,4mbfidy8zum5u0aqjqo0vuqs2,2,4,0,2,BTTS,KG Var,1.56,0.2,True,True,0.112,53.7,69.9,65.1,-0.1063,B,True,52.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.641,-0.1039,,False,DISAGREE,1.0,,MEDIUM,0.673,,2/2,,False,v28-pro-max,betting_brain_approved +ehfqevll4z9yu4xnyl4wu9p90,2026-05-22,4mbfidy8zum5u0aqjqo0vuqs2,2,1,1,1,OU25,Üst,1.45,0.2,True,True,0.09,60.2,65.4,68.3,-0.0152,B,True,63.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6018,0.6897,-0.0879,0.0741,False,AGREE,0.96,missing_referee,MEDIUM,0.673,,1/1,,False,v28-pro-max,betting_brain_approved +1zzjnc5j5d1c55lkvvtrdxces,2026-05-22,7cwemnr3vi40znjq451zxkus6,2,2,0,0,BTTS,KG Var,1.59,0.2,True,True,0.118,52.5,69.9,66.8,-0.0903,B,True,48.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5252,0.6289,-0.1037,,False,AGREE,1.0,,MEDIUM,0.5115,,,,False,v28-pro-max,betting_brain_approved +20iqmjc0gtri8ke1ugu8rks2c,2026-05-22,7cwemnr3vi40znjq451zxkus6,2,2,0,1,BTTS,KG Var,1.5,0.2,True,True,0.1,54.3,69.9,64.9,-0.0658,B,True,49.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6667,-0.1234,,False,AGREE,0.96,missing_referee,MEDIUM,0.5115,,,,False,v28-pro-max,betting_brain_approved +1jw6q6ep14zm0xwub580jbcb8,2026-05-22,1r097lpxe0xn03ihb7wi98kao,1,1,1,0,OU25,Üst,1.39,0.2,True,False,-0.2,59.5,65.4,64.4,-0.1064,B,True,64.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7194,-0.1239,0.1058,False,AGREE,1.0,,MEDIUM,0.7391,,1/1,,False,v28-pro-max,betting_brain_approved +1zgegq9tt01ul6fqcnihqx89g,2026-05-22,7cwemnr3vi40znjq451zxkus6,0,3,0,0,BTTS,KG Var,1.59,0.2,True,False,-0.2,51.9,68.4,63.8,-0.1169,B,True,46.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.6289,-0.1097,,False,DISAGREE,1.0,,MEDIUM,0.5115,,,,False,v28-pro-max,betting_brain_approved +di5hk9j0isxogsrxquhsjaadw,2026-05-22,9ipdpjgxpq12m0uyct27lc7t2,1,0,0,0,BTTS,KG Var,1.44,0.2,True,False,-0.2,54.3,69.9,66.0,-0.1052,B,True,40.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6944,-0.1511,,False,AGREE,1.0,,MEDIUM,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +c6v2p89liaztuzg1tlvk811jo,2026-05-22,79s9qgiydh9on34565f8suktl,1,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7o8m64oqnkb9aju9y48ta7lec,2026-05-22,3ww12jab49q8q8mk9avdwjqgk,1,2,0,1,BTTS,KG Var,1.5,0.2,True,True,0.1,53.7,69.9,65.8,-0.1435,B,True,41.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6667,-0.1296,,True,AGREE,1.0,,LOW,0.5961,,,,False,v28-pro-max,betting_brain_approved +2vpzj87cguhyol0z90zasuas4,2026-05-22,7nmz249q89qg5ezcvzlheljji,3,2,2,1,OU25,Üst,1.37,0.2,True,True,0.074,60.2,65.4,62.2,-0.1413,B,True,48.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7299,-0.1281,0.0511,True,AGREE,1.0,,MEDIUM,0.6381,,,,False,v28-pro-max,betting_brain_approved +2wh3msiam7cxd2h5xgqhwxwd0,2026-05-22,7nmz249q89qg5ezcvzlheljji,0,4,0,4,OU25,Üst,1.11,0.0,False,True,0.0,72.3,70.7,71.3,-0.1281,PASS,True,46.3,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.7233,0.9009,-0.1776,0.1325,False,AGREE,0.946,lineup_probable_not_confirmed,LOW,0.6381,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5vm79u6qd164mj9lzccgx48pg,2026-05-22,zilopfej2h0n3vpan5tcynpo,0,1,0,1,BTTS,KG Var,1.16,0.0,False,False,0.0,66.6,69.9,78.0,-0.083,PASS,True,60.0,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6664,0.8621,-0.1957,,False,DISAGREE,1.0,,LOW,0.6051,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5waeqvr2fnc77ek7dbsezmvx0,2026-05-22,zilopfej2h0n3vpan5tcynpo,1,0,1,0,MS,1,1.3,0.2,True,True,0.06,66.1,65.5,62.4,-0.1097,B,True,46.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6614,0.7692,-0.1078,0.1385,True,AGREE,0.946,lineup_probable_not_confirmed,LOW,0.6051,0.0,,,False,v28-pro-max,betting_brain_approved +27x0y8zphq2mru1syaqcadl3o,2026-05-22,663a54fmymndjeev47qm7d3nf,2,3,1,1,OU25,Üst,1.35,0.2,True,True,0.07,59.5,65.4,57.2,-0.1186,B,True,38.9,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.7407,-0.1452,0.0346,False,DISAGREE,0.96,missing_referee,HIGH,0.3522,,,,False,v28-pro-max,betting_brain_approved +42z4fx88gcpa2uegfn99thhxw,2026-05-22,8ey0ww2zsosdmwr8ehsorh6t7,0,0,0,0,OU25,Üst,2.02,0.2,True,False,-0.2,50.1,57.7,55.2,-0.0336,B,True,59.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.495,0.0059,0.0074,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.51,,1/1,,False,v28-pro-max,betting_brain_approved +62m54iqfwwmpffkqibgz6gm50,2026-05-22,1eruend45vd20g9hbrpiggs5u,0,1,,,BTTS,KG Var,1.95,0.2,True,False,-0.2,53.7,69.9,57.6,0.0126,B,True,44.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5128,0.0243,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.8083,,,,False,v28-pro-max,betting_brain_approved +cek3yq8n3s7febcmxtn6zmsr8,2026-05-22,7af85xa75vozt2l4hzi6ryts7,2,1,1,0,BTTS,KG Var,1.54,0.2,True,True,0.108,54.3,69.9,67.1,-0.0785,B,True,53.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6494,-0.1061,,False,AGREE,1.0,,MEDIUM,0.5663,,1/1,,False,v28-pro-max,betting_brain_approved +5493vyg43fxu0f6tmi6nr5vkk,2026-05-22,1owhvvge4wlx7e0e431b4vhqx,0,4,,,MS,2,1.33,0.2,True,True,0.066,62.0,61.2,32.2,-0.071,B,True,11.5,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6197,0.7519,-0.1322,0.1969,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,0.0,,,False,v28-pro-max,betting_brain_approved +63lgg1qce9djk8rs8ki0uhyc4,2026-05-22,5c96g1zm7vo5ons9c42uy2w3r,2,1,1,0,OU25,Üst,1.92,0.2,True,True,0.184,59.5,65.4,65.8,-0.0733,B,True,42.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5955,0.5208,0.0747,0.0613,True,DISAGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.5469,,X/X,,False,v28-pro-max,betting_brain_approved +2pa62avll1kwbzm1lajtz94ic,2026-05-22,89ovpy1rarewwzqvi30bfdr8b,1,1,0,0,OU25,Üst,1.78,0.2,True,False,-0.2,54.7,65.4,64.5,-0.0502,B,True,66.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5618,-0.0146,0.0686,False,AGREE,1.0,,MEDIUM,0.7068,,,,False,v28-pro-max,betting_brain_approved +4jojbaw05s54dsrkintxsvjtg,2026-05-22,b60nisd3qn427jm0hrg9kvmab,1,2,1,1,OU25,Üst,1.37,0.2,True,True,0.074,61.4,65.4,67.1,-0.1335,B,True,42.4,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7299,-0.1155,0.0166,True,AGREE,1.0,,LOW,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +ez49g6oth783g3ujxeay6qtjo,2026-05-22,57nu0wygurzkp6fuy5hhrtaa2,4,2,1,1,OU25,Üst,1.46,0.2,True,True,0.092,60.2,65.4,63.5,-0.0789,B,True,41.2,BET,,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6018,0.6849,-0.0831,0.0854,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.8099,,,,False,v28-pro-max,betting_brain_approved +65bktcoxz7uahgtfmtbkfantg,2026-05-22,8y29fg2s85ppcb8uugm5ee8s4,0,0,0,0,MS,1,1.32,0.2,True,False,-0.2,64.8,65.5,64.3,-0.107,B,True,55.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6481,0.7576,-0.1095,0.1078,False,AGREE,1.0,,MEDIUM,0.6866,0.0,,,False,v28-pro-max,betting_brain_approved +7knqur3ndjuum681cscutamms,2026-05-22,1owhvvge4wlx7e0e431b4vhqx,5,1,,,BTTS,KG Var,1.25,0.0,False,True,0.0,54.4,69.9,37.4,-0.1962,PASS,True,20.2,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8,-0.2555,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7n032d0p973y6kqcjazcd5xjo,2026-05-22,1owhvvge4wlx7e0e431b4vhqx,2,1,,,BTTS,KG Var,1.21,0.0,False,True,0.0,54.4,69.9,39.5,-0.1859,PASS,True,25.4,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8264,-0.2819,,False,DISAGREE,0.694,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,HIGH,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +dwl1eq13nni2nzl2lvmz3k55g,2026-05-22,1owhvvge4wlx7e0e431b4vhqx,2,1,,,BTTS,KG Var,1.25,0.0,False,True,0.0,54.4,69.9,27.7,-0.1787,PASS,True,33.1,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.8,-0.2555,,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +eg9ocvy41k9tudxc39xy7mv4k,2026-05-22,9u9j3f1oplv8p7wevlko5r8by,0,0,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +egpmpai8yhgacw2q3bq0k2k2c,2026-05-22,9u9j3f1oplv8p7wevlko5r8by,2,3,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +87g74vlgyihnpfavmhhnsfm6s,2026-05-22,a4fgj2rfbpf4ejo1qi624fefo,4,1,,,MS,1,1.4,0.2,True,True,0.08,54.7,58.8,26.7,-0.0877,B,True,12.6,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;strong_historical_sample,0.5473,0.7143,-0.167,0.1461,False,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,0.6184,0.0,,,False,v28-pro-max,betting_brain_approved +65h40pwkhkf756144n05xqs5w,2026-05-22,9w8ydnoft05zow8l4wu9sxfq1,2,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +296mzrj2z814w83llyznezvv8,2026-05-22,663a54fmymndjeev47qm7d3nf,3,0,1,0,OU25,Üst,1.51,0.2,True,True,0.102,54.7,65.4,59.1,-0.1534,B,True,35.6,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6623,-0.1151,0.0268,True,AGREE,0.959,,MEDIUM,0.3522,,,,False,v28-pro-max,betting_brain_approved +2rnn84bhy0wtmzwap2x1kb85w,2026-05-22,dvstmwnvw0mt5p38twn9yttyb,2,1,0,1,BTTS,KG Var,1.44,0.2,True,True,0.088,57.1,69.9,71.5,-0.0774,B,True,54.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6944,-0.1237,,False,AGREE,1.0,,MEDIUM,0.688,,2/2,,False,v28-pro-max,betting_brain_approved +a8qcx93u2jna3ntw9uqow30no,2026-05-22,6ifaeunfdelecgticvxanikzu,5,0,1,0,OU25,Üst,1.32,0.2,True,True,0.064,60.2,65.4,61.2,-0.1561,B,True,47.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7576,-0.1558,0.0687,True,AGREE,1.0,,MEDIUM,0.5796,,1/1,,False,v28-pro-max,betting_brain_approved +dj8yaa77o3afp28g45i2mk26s,2026-05-22,4yngyfinzd6bb1k7anqtqs0wt,0,1,,,BTTS,KG Var,1.92,0.2,True,False,-0.2,53.7,69.9,61.5,-0.1343,B,True,36.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5208,0.0163,,True,AGREE,0.96,missing_referee,MEDIUM,0.7586,,,,False,v28-pro-max,betting_brain_approved +dk0vp9m4bdlrfmthzlc434o44,2026-05-22,4yngyfinzd6bb1k7anqtqs0wt,2,2,,,BTTS,KG Var,1.56,0.2,True,True,0.112,53.7,69.9,64.6,-0.0647,B,True,54.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.641,-0.1039,,False,DISAGREE,0.96,missing_referee,MEDIUM,0.7586,,,,False,v28-pro-max,betting_brain_approved +d431nz86692fd3tbkms2b4o44,2026-05-22,6ihotpaocgiovlxw18e9r9prx,0,1,0,0,BTTS,KG Var,1.45,0.2,True,False,-0.2,57.1,69.9,72.7,-0.1028,B,True,58.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6897,-0.119,,False,DISAGREE,1.0,,LOW,0.7019,,,,False,v28-pro-max,betting_brain_approved +81z6cni8mvsy44b22jlyd82z8,2026-05-22,9w8ydnoft05zow8l4wu9sxfq1,1,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7p6hdazxx5eyhi5o6cskxycr8,2026-05-22,3ww12jab49q8q8mk9avdwjqgk,0,0,0,0,OU25,Üst,1.48,0.2,True,False,-0.2,50.0,57.7,54.3,-0.0837,B,True,62.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5,0.6757,-0.1757,0.0155,False,AGREE,1.0,,MEDIUM,0.5961,,,,False,v28-pro-max,betting_brain_approved +93xay95hknte8kany81m0c3ro,2026-05-22,5aw6uyw4pz2bpj24t5z8aacim,1,3,1,3,BTTS,KG Var,1.2,0.0,False,True,0.0,54.4,69.9,54.7,-0.2253,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override,0.5445,0.8333,-0.2888,,False,AGREE,1.0,,MEDIUM,0.5333,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +94aw3q8lygotjx2csdfhzt1xw,2026-05-22,5aw6uyw4pz2bpj24t5z8aacim,0,1,0,0,BTTS,KG Var,1.68,0.2,True,False,-0.2,53.7,69.9,72.7,-0.0412,B,True,56.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5952,-0.0581,,False,AGREE,1.0,,LOW,0.5333,,,,False,v28-pro-max,betting_brain_approved +94onetf46b6log9m88d51ifx0,2026-05-22,5aw6uyw4pz2bpj24t5z8aacim,1,1,0,0,OU25,Üst,1.39,0.2,True,False,-0.2,61.4,65.4,64.2,-0.1238,B,True,44.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7194,-0.105,0.1221,True,AGREE,1.0,,MEDIUM,0.5333,,,,False,v28-pro-max,betting_brain_approved +bhh0ujwq16dz7sy3rr52h826s,2026-05-22,zs18qaehvhg3w1208874zvfa,1,1,1,0,BTTS,KG Var,1.31,0.2,True,True,0.062,54.4,69.9,52.0,-0.2398,B,True,28.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5445,0.7634,-0.2189,,True,AGREE,1.0,,MEDIUM,0.8176,,,,False,v28-pro-max,betting_brain_approved +4li6xjlgg3z4t3l56a9enlgk4,2026-05-22,c0yqkbilbbg70ij2473xymmqv,3,0,2,0,BTTS,KG Var,1.44,0.2,True,False,-0.2,53.2,69.9,65.8,-0.046,B,True,50.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5317,0.6944,-0.1627,,False,AGREE,0.96,missing_referee,MEDIUM,0.6506,,,,False,v28-pro-max,betting_brain_approved +6njm92w4klq9w6mdgl7qprok4,2026-05-22,a4fgj2rfbpf4ejo1qi624fefo,2,1,,,BTTS,KG Var,1.25,0.0,False,True,0.0,54.9,69.9,36.7,-0.234,PASS,True,25.1,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5488,0.8,-0.2512,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4zwb30ptojzd13x7e57ouw36c,2026-05-22,8k1xcsyvxapl4jlsluh3eomre,2,1,0,1,DC,X2,1.09,0.0,False,False,0.0,75.8,75.8,76.1,-0.1533,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,value_sniper_override;strong_historical_sample,0.7584,0.9174,-0.159,0.1831,True,DISAGREE,1.0,,LOW,0.7463,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +b2yujqta8ol9xuan3il1estg4,2026-05-22,1b70m6qtxrp75b4vtk8hxh8c3,2,0,0,0,OU25,Üst,1.55,0.2,True,False,-0.2,59.5,65.4,66.6,-0.0917,B,True,51.3,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6452,-0.0497,0.1032,True,AGREE,1.0,,MEDIUM,0.6261,,,,False,v28-pro-max,betting_brain_approved +bb7mbc9bbjqxfl8hfo7foc4k4,2026-05-22,53bqtby283rqeils2kjnjy3g6,0,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +dlm7nmk88ra4oc2e5293sqxw4,2026-05-22,aho73e5udydy96iun3tkzdzsi,1,1,0,1,OU25,Üst,1.68,0.2,True,False,-0.2,59.5,65.4,69.3,-0.0558,B,True,62.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.5952,0.0003,0.0069,False,AGREE,1.0,,MEDIUM,0.5149,,,,False,v28-pro-max,betting_brain_approved +5shfq98mqu16pkcx98z9n8xec,2026-05-22,117yqo02rs8dykkxpm274w3bd,0,1,0,1,BTTS,KG Var,1.28,0.0,False,False,0.0,54.9,69.9,50.2,-0.1639,PASS,True,37.7,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5488,0.7812,-0.2325,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5298,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +664nca1eupdcr79lb322bf11w,2026-05-22,9x0ntku897kcmymr8y1dfkmlk,1,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8e8ay5hamvva9lttea0msdfys,2026-05-22,esrunz7rjb0td98mx9e5cedoy,2,1,1,0,OU25,Üst,1.98,0.2,True,True,0.196,50.1,57.7,55.9,-0.1458,B,True,50.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5051,-0.0042,0.0363,True,AGREE,1.0,,LOW,0.5516,,,,False,v28-pro-max,betting_brain_approved +53mo8n860zbnaxg7frel8vu38,2026-05-22,6i2wzu9kuszyysv8lpfpb3q50,1,0,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8t5twple1yys91tpek5uljpqs,2026-05-22,1okgv7alq5gggbccv5r9p63v8,1,0,1,0,MS,1,1.93,0.2,True,True,0.186,46.4,46.3,38.6,0.0083,A,True,82.2,BET,,low_reliability_league,base_model_playable;value_sniper_override;v25_v27_aligned;triple_value_confirmed;strong_historical_sample,0.464,0.5181,-0.0541,0.0942,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +a9oo2dma4yneej0619gstve38,2026-05-22,awlih5a6wxegtxcx2gtps77my,3,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +37flqx0qqp4k8ab2xka3u64gk,2026-05-22,5jej246l7zaj0c7cesk23wbug,2,0,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +70ozr4txila5ntvkphpcyw5jo,2026-05-22,def5np5rjklzsnfgumw0uo60a,1,2,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +5qnl4w5fyywpqhgjxkf8i4rh0,2026-05-22,117yqo02rs8dykkxpm274w3bd,3,1,1,0,OU25,Üst,1.44,0.2,True,True,0.088,60.1,65.4,58.6,-0.1692,B,True,36.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6014,0.6944,-0.093,0.0612,True,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5298,,,,False,v28-pro-max,betting_brain_approved +dqmrhjjeoqqndg3irqdy173f8,2026-05-22,9i6k76jrh4elmn91usdc1rlec,1,1,,,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17794328714511030435,2026-05-22,macko17493658128384132248,4,1,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +62j6yz8x0t6pwwi4w4gfw5o9g,2026-05-22,32n2r9bl6x90psj0wa7bfs6vq,0,0,0,0,OU25,Üst,1.6,0.2,True,False,-0.2,60.2,65.4,63.4,-0.1539,B,True,14.1,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6018,0.625,-0.0232,0.1561,True,AGREE,1.0,,MEDIUM,0.5487,,1/1,,False,v28-pro-max,betting_brain_approved +1u4gh5gk4zuh4ohvjf3skty50,2026-05-22,2hsidwomhjsaaytdy9u5niyi4,0,0,0,0,BTTS,KG Var,1.61,0.2,True,False,-0.2,54.3,69.9,73.9,0.0332,B,True,59.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6211,-0.0778,,False,AGREE,1.0,,MEDIUM,0.6012,,1/1,,False,v28-pro-max,betting_brain_approved +amhm2uv5gqdmcm0bkme62385w,2026-05-22,59tpnfrwnvhnhzmnvfyug68hj,2,0,0,0,MS,1,1.51,0.2,True,True,0.102,53.6,56.4,45.5,-0.1714,B,True,34.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5362,0.6623,-0.1261,0.0778,True,AGREE,1.0,,MEDIUM,0.8988,0.0664,1/1,,False,v28-pro-max,betting_brain_approved +6y1zj1a8wk1mjlhwe8x73d4b8,2026-05-22,32n2r9bl6x90psj0wa7bfs6vq,0,2,0,1,BTTS,KG Var,1.62,0.2,True,False,-0.2,51.9,68.4,65.1,-0.0926,B,True,47.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.6173,-0.0981,,False,DISAGREE,1.0,,MEDIUM,0.5487,,2/2,,False,v28-pro-max,betting_brain_approved +6k6gnzqvq7566csd17psu7y1g,2026-05-22,32n2r9bl6x90psj0wa7bfs6vq,2,2,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,1.0,,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +a7x4k46wlhscw59xpg32nnnkk,2026-05-21,enzlj1as2raqm4ids1zyb07y1,2,1,2,1,MS,1,1.33,0.2,True,True,0.066,62.8,65.5,45.8,-0.1311,B,True,12.4,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6276,0.7519,-0.1243,0.1758,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +ahzta8hajkmwhw5hzw7fsh0r8,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,2,4,1,2,DC,X2,1.05,0.0,False,True,0.0,84.8,84.8,81.2,-0.1437,PASS,True,10.9,WATCH_NO_VALUE,odds_below_minimum,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;usable_historical_sample,0.848,0.9524,-0.1044,0.2475,True,DISAGREE,1.0,,MEDIUM,0.8988,,2/2,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +66o34pdmfq5vbhzy1cx7rk0es,2026-05-21,32n2r9bl6x90psj0wa7bfs6vq,2,0,2,0,BTTS,KG Var,1.88,0.2,True,False,-0.2,53.7,69.9,73.5,-0.0298,B,True,56.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5319,0.0052,,False,AGREE,1.0,,LOW,0.5487,,1/1,,False,v28-pro-max,betting_brain_approved +670yh0rglxrukyjomhkj6y68k,2026-05-21,32n2r9bl6x90psj0wa7bfs6vq,1,1,1,1,MS,1,1.72,0.2,True,False,-0.2,56.6,65.5,69.2,-0.0611,B,True,58.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5658,0.5814,-0.0156,0.1195,False,AGREE,1.0,,MEDIUM,0.5487,0.060200000000000004,1/1,,False,v28-pro-max,betting_brain_approved +f1uav3iba42yfwj67l3522mtw,2026-05-21,by5nibd18nkt40t0j8a0j5yzx,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.82,missing_full_ms_odds,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +9azw5l95inf2ad6g41qo8g55g,2026-05-21,byhmntnl1b4lxw0zz21im3zkd,1,1,1,0,BTTS,KG Var,1.7,0.2,True,True,0.14,54.3,69.9,53.7,-0.0512,B,True,41.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.5882,-0.0449,,False,AGREE,0.946,lineup_probable_not_confirmed,HIGH,0.7719,,,,False,v28-pro-max,betting_brain_approved +4idsabf3qtgxuqi33up63p990,2026-05-21,6qitd9h242qkvjenaytfdnsf2,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.723,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6nrdbsouq27vrwtg0p857hfys,2026-05-21,67uya58idol2eq18ljecsru5o,0,4,0,2,BTTS,KG Var,1.29,0.0,False,False,0.0,54.9,69.9,41.2,-0.1654,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.5488,0.7752,-0.2264,,False,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.3912,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +c3d7kwe09ag7pkmdpw65qqgwk,2026-05-21,9oq3zc50vzv4w4rgsz7nw2fpt,1,1,0,1,BTTS,KG Var,1.71,0.2,True,True,0.142,53.7,69.9,65.6,-0.0276,B,True,32.0,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5848,-0.0477,,False,DISAGREE,1.0,,HIGH,0.35,,2/2,,False,v28-pro-max,betting_brain_approved +czxkf63kr0yrkj2erbn7slrf8,2026-05-21,d1xxzf0fzqwbxytex9hg7sy22,0,3,0,2,MS,2,1.68,0.2,True,True,0.136,58.8,61.2,53.3,-0.0614,B,True,0.0,BET,,low_reliability_league;v25_v27_soft_disagreement;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;usable_historical_sample,0.5881,0.5952,-0.0071,0.2948,False,DISAGREE,0.694,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +6vuj5uyifxv9x2x1edz1wc1ec,2026-05-21,akmkihra9ruad09ljapsm84b3,3,2,0,0,OU25,Üst,1.4,0.2,True,True,0.08,60.2,65.4,67.0,-0.0779,B,True,65.9,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7143,-0.1125,0.0066,False,AGREE,1.0,,MEDIUM,0.6182,,1/1,,False,v28-pro-max,betting_brain_approved +9msq3yytthxhuh6aiw1nysxec,2026-05-21,3alyl4h2ug42jl1j67yj0owes,6,1,4,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +7k9dzm0l209kchtvxqby3usd0,2026-05-21,4zwgbb66rif2spcoeeol2motx,2,2,0,1,BTTS,KG Var,1.39,0.2,True,True,0.078,54.9,69.9,64.3,-0.1454,B,True,55.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.7194,-0.1706,,False,AGREE,1.0,,LOW,0.6995,,2/2,,False,v28-pro-max,betting_brain_approved +e4ogok48csk4s4ettprcutw5w,2026-05-21,f30sl3386izcj2rnkjzp4mgvl,0,0,0,0,OU25,Üst,1.49,0.2,True,False,-0.2,61.4,65.4,70.0,-0.0439,B,True,55.8,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6711,-0.0567,0.0334,False,DISAGREE,1.0,,MEDIUM,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +diuusqdp8ydtxkizsbr6094b8,2026-05-21,4yngyfinzd6bb1k7anqtqs0wt,2,3,1,0,BTTS,KG Var,1.47,0.2,True,True,0.094,53.7,69.9,55.6,-0.0885,B,True,46.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.6803,-0.1432,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.7586,,,,False,v28-pro-max,betting_brain_approved +dkeohsykba5nehzd4qppswff8,2026-05-21,4yngyfinzd6bb1k7anqtqs0wt,2,2,2,1,BTTS,KG Var,1.73,0.2,True,True,0.146,53.7,69.9,53.6,-0.0549,B,True,41.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.578,-0.0409,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,HIGH,0.7586,,,,False,v28-pro-max,betting_brain_approved +evbce05a935nhqvrx74v8gt0,2026-05-21,7pk2icgodrzaih8i0pikb21s4,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7kkohxv9dr8osri9oydsvcoic,2026-05-21,4zwgbb66rif2spcoeeol2motx,3,1,2,0,BTTS,KG Var,1.46,0.2,True,True,0.092,53.7,69.9,64.3,-0.1099,B,True,52.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6849,-0.1478,,False,AGREE,1.0,,MEDIUM,0.6995,,1/1,,False,v28-pro-max,betting_brain_approved +7jy1u6np06jtz7c20bv2iaihg,2026-05-21,4zwgbb66rif2spcoeeol2motx,0,0,0,0,OU25,Üst,1.69,0.2,True,False,-0.2,61.1,65.4,72.1,-0.0043,B,True,69.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5917,0.019,0.1003,False,AGREE,1.0,,MEDIUM,0.6995,,2/2,,False,v28-pro-max,betting_brain_approved +8bkgqeqyb8bo2rwl0d2qd6exg,2026-05-21,8872tjohi4vpok4s2mtphxj9x,2,1,1,1,BTTS,KG Var,1.68,0.2,True,True,0.136,54.4,69.9,60.6,-0.028,B,True,43.4,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.5952,-0.0507,,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.35,,1/1,,False,v28-pro-max,betting_brain_approved +ci7pc6fjea46p4vdwzl9b728k,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,0,1,0,1,BTTS,KG Var,1.62,0.2,True,False,-0.2,50.1,61.7,56.0,-0.1742,B,True,37.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5006,0.6173,-0.1167,,True,AGREE,1.0,,LOW,0.661,,,,False,v28-pro-max,betting_brain_approved +cje1ni2zi68h4t8y7ycwxwopg,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,1,5,1,3,MS,2,1.77,0.2,True,True,0.154,45.0,48.7,54.2,0.0618,B,True,46.0,BET,,triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4501,0.565,-0.1149,0.0616,False,DISAGREE,1.0,,MEDIUM,0.661,0.0,,,False,v28-pro-max,betting_brain_approved +cgjezxjn1pdjw22wmbk2140t0,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,0,0,0,0,OU25,Üst,1.44,0.2,True,False,-0.2,61.4,65.4,67.6,-0.0692,B,True,66.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.6944,-0.08,0.0156,False,DISAGREE,1.0,,MEDIUM,0.661,,,,False,v28-pro-max,betting_brain_approved +chtxs8h6aepfl6jebfi0zyyhg,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,4,1,1,0,BTTS,KG Var,1.79,0.2,True,True,0.158,51.9,68.4,69.6,-0.0685,B,True,59.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5587,-0.0395,,False,AGREE,1.0,,LOW,0.661,,,,False,v28-pro-max,betting_brain_approved +2y72ln4v05nm3fmwvinrj28es,2026-05-21,9z5643nd06afqu01ea2wt8y4g,1,1,1,1,OU15,Üst,1.33,0.0,False,True,0.0,50.0,50.0,30.8,-0.1682,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,strong_historical_sample,0.5,0.7519,-0.2519,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.8734,,,,False,v28-pro-max,betting_brain_no_safe_pick +ch2dtj1p8g62xgkw9l5w1s7is,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,2,0,0,0,BTTS,KG Var,1.37,0.2,True,False,-0.2,54.9,69.9,64.2,-0.1068,B,True,52.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.7299,-0.1811,,False,DISAGREE,1.0,,MEDIUM,0.661,,,,False,v28-pro-max,betting_brain_approved +5v2uffl83dqa9epx1jz6x1qms,2026-05-21,zilopfej2h0n3vpan5tcynpo,2,2,0,0,BTTS,KG Var,1.42,0.2,True,True,0.084,63.6,69.9,72.1,-0.1152,B,True,43.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6361,0.7042,-0.0681,,True,AGREE,1.0,,LOW,0.6051,,,,False,v28-pro-max,betting_brain_approved +5cqxhgw1mz3ny55w5u2obdudw,2026-05-21,8nbwkj392b0xzssqpw9jwmzdn,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cjrnfurwy6rxkzdkpqrezzytw,2026-05-21,ea0h6cf3bhl698hkxhpulh2zz,1,1,0,1,OU25,Üst,1.25,0.0,False,False,0.0,61.4,65.4,56.5,-0.1992,PASS,True,41.2,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6144,0.8,-0.1856,0.0009,True,AGREE,1.0,,MEDIUM,0.661,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ab4w6mupbp0zrxc40349j5p90,2026-05-21,9xodk0pg32j4pfngld6kinsa1,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +d8secwaptefxr7aos3ij1bdhw,2026-05-21,3j81qr7yc4gdnakfwnxf95ovh,0,4,0,2,MS,2,1.15,0.0,False,True,0.0,70.5,75.0,48.4,-0.0774,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.705,0.8696,-0.1646,0.2199,False,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.8771,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4m0isthr5eaobor4yu70dj6s4,2026-05-21,a4fgj2rfbpf4ejo1qi624fefo,1,0,1,0,DC,12,1.05,0.0,False,True,0.0,79.6,79.6,74.7,-0.1065,PASS,True,4.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override;v25_v27_aligned,0.7963,0.9524,-0.1561,0.0473,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6184,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5cbimpuacf382stsm8mfhfl78,2026-05-21,b60nisd3qn427jm0hrg9kvmab,1,1,1,0,BTTS,KG Var,1.68,0.2,True,True,0.136,54.9,69.9,68.5,-0.0676,B,True,42.6,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.5952,-0.0464,,False,DISAGREE,1.0,,MEDIUM,0.4203,,1/1,,False,v28-pro-max,betting_brain_approved +an9hgu6dyejl46xdgu1pvknbo,2026-05-21,3w1hkk9k9gr8fwssyn4icvdfo,4,0,1,0,BTTS,KG Var,1.71,0.2,True,False,-0.2,53.7,69.9,72.9,-0.0396,B,True,56.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5848,-0.0477,,False,AGREE,1.0,,LOW,0.4657,,,,False,v28-pro-max,betting_brain_approved +524s7fogw70a5hq4c8tizk93o,2026-05-21,1owhvvge4wlx7e0e431b4vhqx,1,2,0,1,BTTS,KG Var,1.32,0.2,True,True,0.064,53.7,69.9,38.9,-0.1853,B,True,20.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7576,-0.2205,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.5423,,,,False,v28-pro-max,betting_brain_approved +514gxl2sknjb1b38vrh687578,2026-05-21,477yyajzheg2z8u7uick0e13e,1,0,1,0,OU25,Üst,1.73,0.2,True,False,-0.2,60.2,65.4,69.0,-0.0076,B,True,64.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.578,0.0238,0.0821,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.4706,,,,False,v28-pro-max,betting_brain_approved +50yysf8kjdn87w3ofygrxmsd0,2026-05-21,8k1xcsyvxapl4jlsluh3eomre,2,2,0,1,OU15,Üst,1.34,0.0,False,True,0.0,50.0,50.0,35.8,-0.2077,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable;trap_market_market_overpriced,strong_historical_sample,0.5,0.7463,-0.2463,,True,DISAGREE,1.0,,MEDIUM,0.7463,,,,False,v28-pro-max,betting_brain_no_safe_pick +macko17793876375478553690,2026-05-21,macko16870922147293180860,1,1,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +6viwbdf3r6z5m5k0zmm55sv84,2026-05-21,akmkihra9ruad09ljapsm84b3,2,0,1,0,BTTS,KG Var,1.39,0.2,True,False,-0.2,58.3,69.9,71.7,-0.0753,B,True,54.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5831,0.7194,-0.1363,,False,AGREE,1.0,,MEDIUM,0.6182,,1/1,,False,v28-pro-max,betting_brain_approved +i104r3w1df0ah94w5r4kyot0,2026-05-21,3umprqta6ipyann6qjjh07biz,1,1,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +j5q1rd4jlrumc8jw1vl5709g,2026-05-21,3umprqta6ipyann6qjjh07biz,0,2,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +5jc9r1ahyv17zek32gqsq5f6c,2026-05-21,29actv1ohj8r10kd9hu0jnb0n,1,3,0,0,OU25,Üst,1.59,0.2,True,True,0.118,61.1,65.4,68.6,-0.0625,B,True,66.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6289,-0.0182,0.043,False,DISAGREE,1.0,,MEDIUM,0.5737,,1/1,,False,v28-pro-max,betting_brain_approved +eh15ce3y5tm2ekfqiyz56tnh0,2026-05-21,3j81qr7yc4gdnakfwnxf95ovh,1,1,1,0,OU25,Üst,1.35,0.2,True,False,-0.2,60.2,65.4,49.3,-0.1929,B,True,38.7,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6018,0.7407,-0.1389,0.0006,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.8771,,,,False,v28-pro-max,betting_brain_approved +1txkiu6e5fwafb2g9aas0dn2s,2026-05-21,4x0hb0duvr678gpkdm06c2d0q,2,1,0,0,BTTS,KG Var,1.54,0.2,True,True,0.108,53.2,69.9,48.1,-0.0722,B,True,33.3,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.6494,-0.1177,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +1tpafibk7vez29uk6a0hkxfro,2026-05-21,4x0hb0duvr678gpkdm06c2d0q,0,1,0,1,OU25,Üst,1.56,0.2,True,False,-0.2,59.5,65.4,64.4,-0.0179,B,True,44.7,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5955,0.641,-0.0455,0.0684,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +9sv9up9he90ppnzw1522hpvro,2026-05-21,c0r21rtokgnbtc0o2rldjmkxu,3,2,2,1,OU25,Üst,1.67,0.2,True,True,0.134,50.1,57.7,56.0,-0.0608,B,True,63.7,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5988,-0.0979,0.0683,False,AGREE,1.0,,MEDIUM,0.7013,,,,False,v28-pro-max,betting_brain_approved +9t6ct1t3zpvyk07jrmxkraf4k,2026-05-21,c0r21rtokgnbtc0o2rldjmkxu,1,2,0,1,MS,1,1.91,0.5,True,False,-0.5,48.9,53.5,64.4,0.1672,B,True,65.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.4889,0.5236,-0.0347,0.0969,False,AGREE,1.0,,MEDIUM,0.7013,0.0,,,False,v28-pro-max,betting_brain_approved +82ap9d4ajtfjk4jh1tqpjw7pw,2026-05-21,65ggsqdi6drpa4m8y3gkll25k,1,2,1,0,OU25,Üst,1.52,0.2,True,True,0.104,54.7,65.4,49.3,-0.1774,B,True,20.9,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.6579,-0.1107,0.0197,True,AGREE,0.899,lineup_probable_not_confirmed;missing_referee,HIGH,0.4394,,,,False,v28-pro-max,betting_brain_approved +macko1779381454155202677,2026-05-21,macko17754042093422736469,4,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17793814546927386793,2026-05-21,macko17754042093422736469,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +cnyrletfc7bexv9yy8gody0wk,2026-05-21,z3w7v4hqa7ssk5p6qkbpg9au,1,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2zqh4ivgkih5t3118gtdbc8pg,2026-05-21,9z5643nd06afqu01ea2wt8y4g,1,2,1,2,OU25,Üst,1.55,0.2,True,True,0.11,59.5,65.4,48.2,-0.2367,B,True,4.5,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5955,0.6452,-0.0497,0.2031,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.8734,,,,False,v28-pro-max,betting_brain_approved +9skgdn5zra08v2wxrhtms5mok,2026-05-21,c0r21rtokgnbtc0o2rldjmkxu,6,0,4,0,OU25,Üst,1.4,0.2,True,True,0.08,59.5,65.4,55.7,-0.2288,B,True,17.1,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5955,0.7143,-0.1188,0.1438,True,AGREE,1.0,,MEDIUM,0.7013,,,,False,v28-pro-max,betting_brain_approved +52m0yebbqisx0hct6vvcq1gyc,2026-05-21,477yyajzheg2z8u7uick0e13e,3,3,0,2,OU25,Üst,1.54,0.2,True,True,0.108,59.5,65.4,70.8,0.0259,B,True,66.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5955,0.6494,-0.0539,0.0636,False,DISAGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.4706,,,,False,v28-pro-max,betting_brain_approved +amq7gedx15i7ystd2sgku8k5w,2026-05-21,3w1hkk9k9gr8fwssyn4icvdfo,3,1,2,0,BTTS,KG Var,1.53,0.2,True,True,0.106,53.7,69.9,73.6,-0.0232,B,True,57.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6536,-0.1165,,False,AGREE,1.0,,LOW,0.4657,,,,False,v28-pro-max,betting_brain_approved +82yf18f9phseykq6pib6ca3v8,2026-05-21,6ybvtzejh91761lqe7y1csrqo,0,0,0,0,OU15,Üst,1.38,0.0,False,False,0.0,50.0,50.0,29.6,-0.219,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable;trap_market_market_overpriced,strong_historical_sample,0.5,0.7246,-0.2246,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6158,,,,False,v28-pro-max,betting_brain_no_safe_pick +2xcih0l1fyflq7ch5uc21di50,2026-05-21,3428tckxcirwwh3o3jgc1m8ji,3,1,3,1,MS,1,1.42,0.2,True,True,0.084,60.3,65.5,58.9,-0.0549,B,True,32.7,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6028,0.7042,-0.1014,0.2196,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.5597,0.0,,,False,v28-pro-max,betting_brain_approved +f1rgex2g9wmpzz6f78d1webkk,2026-05-21,138n7rt9ngbmktlhtwfeefqqp,0,3,0,1,OU25,Üst,1.64,0.0,False,True,0.0,47.3,52.7,38.2,-0.1911,PASS,False,0.0,REJECT,play_score_too_low,base_model_not_playable;low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,v25_v27_aligned;usable_historical_sample,0.5069,0.6098,-0.1029,0.0045,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_no_safe_pick +f1ja87trcm2hsufoyl1u9lvys,2026-05-21,138n7rt9ngbmktlhtwfeefqqp,1,1,1,1,DC,12,1.14,0.0,False,False,0.0,76.3,76.3,69.8,-0.1616,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.763,0.8772,-0.1142,0.0546,True,AGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +bd6x5cg0qvq22wzezn2yym3o4,2026-05-21,3oa9e03e7w9nr8kqwqc3tlqz9,1,2,1,0,OU25,Üst,1.33,0.2,True,True,0.066,60.2,65.4,60.7,-0.1713,B,True,18.0,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6018,0.7519,-0.1501,0.1577,True,AGREE,0.96,missing_referee,LOW,0.5049,,,,False,v28-pro-max,betting_brain_approved +be2cdk19uapbj3lschnmcg2s4,2026-05-21,3oa9e03e7w9nr8kqwqc3tlqz9,0,0,0,0,OU35,Alt,1.56,0.0,False,True,0.0,50.6,30.4,24.4,-0.1371,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,,0.5058,0.641,-0.1352,,False,AGREE,0.96,missing_referee,LOW,0.5049,,,,False,v28-pro-max,betting_brain_no_safe_pick +bcwes78dnl29r0mpe7pcardas,2026-05-21,3oa9e03e7w9nr8kqwqc3tlqz9,0,2,0,0,OU25,Üst,1.39,0.2,True,False,-0.2,61.1,65.4,63.5,-0.1358,B,True,43.9,BET,,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.11,True,AGREE,1.0,,MEDIUM,0.5049,,,,False,v28-pro-max,betting_brain_approved +macko17793635351067547061,2026-05-21,macko17474028438909407652,3,3,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17793635355043535313,2026-05-21,macko17474028438909407652,2,3,0,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +bdrxl206rqne73cgurrdqx89g,2026-05-21,3oa9e03e7w9nr8kqwqc3tlqz9,2,1,0,0,OU25,Üst,1.16,0.0,False,True,0.0,61.1,65.4,57.6,-0.1895,PASS,True,0.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override;v25_v27_aligned,0.6107,0.8621,-0.2514,0.1023,False,AGREE,0.96,missing_referee,LOW,0.5049,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +macko17793635349184888219,2026-05-21,macko17474028438909407652,2,1,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17793635346937668191,2026-05-21,macko17474028438909407652,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +92n4cc8jnrzlmc2z4c761rwgk,2026-05-21,abs7n2ae3oydilk0tgmpnsj89,0,0,0,0,MS,1,1.5,0.2,True,False,-0.2,55.4,58.8,41.1,-0.069,B,True,51.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5536,0.6667,-0.1131,0.0325,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.7277,0.0,,,False,v28-pro-max,betting_brain_approved +93550af8havecaauuu3flzhuc,2026-05-21,abs7n2ae3oydilk0tgmpnsj89,2,0,2,0,MS,1,1.17,0.0,False,True,0.0,66.1,65.5,44.5,-0.147,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;triple_value_not_confirmed;historical_sample_too_low,value_sniper_override,0.6614,0.8547,-0.1933,0.15,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.7277,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +4i4di1wriiaaqm7skp4ntoavo,2026-05-21,6qitd9h242qkvjenaytfdnsf2,2,2,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.67,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +2ymcxpm282ty9w9hdgxry72fo,2026-05-21,9z5643nd06afqu01ea2wt8y4g,2,2,0,2,OU25,Alt,1.3,0.0,False,False,0.0,60.2,40.9,36.6,-0.0498,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable;missing_triple_value_evidence,v25_v27_aligned,0.6018,0.7692,-0.1674,0.0123,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.8734,,,,False,v28-pro-max,betting_brain_no_safe_pick +41b291z1wb7ft4r18fo88slxw,2026-05-21,1pz0ch210cun5hthsvq0lb7x3,4,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +41ndj3babg27lcgb83grup34k,2026-05-21,1pz0ch210cun5hthsvq0lb7x3,2,3,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +91wlad0otc39ivqmlaomi7j10,2026-05-21,abs7n2ae3oydilk0tgmpnsj89,1,0,1,0,DC,1X,1.13,0.0,False,True,0.0,71.5,71.5,71.3,-0.0564,PASS,True,64.1,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable,value_sniper_override;v25_v27_aligned;triple_value_confirmed;strong_historical_sample,0.7145,0.885,-0.1705,0.0466,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.7277,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7a52z0ftgkoghf8iq5rrd7j84,2026-05-21,zk2f8f4dzjpxb47gdwsvpga8,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +bqtjem2ass3cf25mp44bvgtuc,2026-05-21,6wubmo7di3kdpflluf6s8c7vs,0,1,0,0,BTTS,KG Var,1.68,0.2,True,False,-0.2,54.4,69.9,71.3,-0.012,B,True,52.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.5952,-0.0507,,False,AGREE,1.0,,MEDIUM,0.5375,,,,False,v28-pro-max,betting_brain_approved +82d09huyk6oz3fmkpxrmva6fo,2026-05-21,6ybvtzejh91761lqe7y1csrqo,0,0,0,0,DC,1X,1.19,0.0,False,True,0.0,67.8,67.8,54.3,-0.1651,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6783,0.8403,-0.162,0.1051,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,HIGH,0.6158,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7p0ld5jkauxgp0xj63agz4ems,2026-05-21,9xhmptx8yr16klvhfsss6drrw,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +82nopj0l7dl28hwccws449r84,2026-05-21,6ybvtzejh91761lqe7y1csrqo,0,3,0,2,OU15,Üst,1.37,0.0,False,True,0.0,50.0,50.0,29.2,-0.2232,PASS,False,0.0,REJECT,calibrated_confidence_too_low;play_score_too_low,base_model_not_playable;trap_market_market_overpriced,strong_historical_sample,0.5,0.7299,-0.2299,,True,DISAGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6158,,,,False,v28-pro-max,betting_brain_no_safe_pick +7nub4oj7vwdtelcpv3sgjid5g,2026-05-21,9xhmptx8yr16klvhfsss6drrw,3,1,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7optsaorecwch6hm1ecz3fr4k,2026-05-21,9xhmptx8yr16klvhfsss6drrw,2,2,1,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +dj666j8988xv11otm8ybb9dzo,2026-05-21,4jieyfpyom8d011dgeqj77ojm,0,3,0,2,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +macko17742678193008021818,2026-05-21,4wqzl8mtbvyn83510ufktshsk,0,0,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +d888bq7sjsx40mkl5idpb0qok,2026-05-21,3tybapqetnmdiam9exg1q4yl0,1,0,0,0,OU25,Üst,1.5,0.2,True,False,-0.2,61.4,65.4,72.6,-0.051,B,True,36.8,BET,,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6144,0.6667,-0.0523,0.0095,False,DISAGREE,1.0,,LOW,0.35,,,,False,v28-pro-max,betting_brain_approved +1cxn6fo8iobxrlo9pp1obxy50,2026-05-21,2bmwykmdlcc2u1c40ytoc39vy,2,0,2,0,OU25,Üst,1.28,0.0,False,False,0.0,61.4,65.4,64.4,-0.0967,PASS,True,64.8,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7812,-0.1669,0.0766,False,DISAGREE,1.0,,MEDIUM,0.7668,,1/1,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +a8y2p9b8zezqtqoelic7dxiqc,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,2,3,0,1,BTTS,KG Var,1.49,0.2,True,True,0.098,54.4,69.9,60.8,-0.0803,B,True,41.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5445,0.6711,-0.1266,,False,AGREE,1.0,,HIGH,0.8988,,1/1,,False,v28-pro-max,betting_brain_approved +aviuig6zmqsupihih7bh5egwk,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,3,2,3,1,BTTS,KG Var,1.59,0.2,True,True,0.118,53.7,69.9,59.5,-0.1041,B,True,39.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6289,-0.0918,,False,AGREE,1.0,,HIGH,0.8988,,1/1,,False,v28-pro-max,betting_brain_approved +9cd3s16k4ynj1qdmyez9hj578,2026-05-21,c1d9p6b2e9zr5tqlzx3ktjplg,0,1,0,1,OU25,Üst,1.39,0.2,True,False,-0.2,61.1,65.4,71.2,-0.0191,B,True,57.1,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.7194,-0.1087,0.0919,False,DISAGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +koi1nueppfmvu4v2sddk8i6s,2026-05-21,enzlj1as2raqm4ids1zyb07y1,1,2,1,1,BTTS,KG Var,1.27,0.0,False,True,0.0,54.4,69.9,31.8,-0.2983,PASS,True,24.6,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5445,0.7874,-0.2429,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ad9h2v21l514o3xn1g9turris,2026-05-21,byhmntnl1b4lxw0zz21im3zkd,1,0,1,0,BTTS,KG Var,1.72,0.2,True,False,-0.2,51.9,68.4,55.0,-0.1694,B,True,22.0,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5814,-0.0622,,True,DISAGREE,1.0,,HIGH,0.7719,,,,False,v28-pro-max,betting_brain_approved +a8kks0ed6ne7kk6kag74ch6ac,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,1,0,0,0,MS,1,1.36,0.2,True,True,0.072,62.0,65.5,64.6,-0.034,B,True,51.6,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6197,0.7353,-0.1156,0.0885,False,AGREE,1.0,,HIGH,0.8988,0.0596,1/1,,False,v28-pro-max,betting_brain_approved +aznhe93erxha8mdnmnz5mm6tw,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,2,0,0,0,BTTS,KG Var,1.82,0.2,True,False,-0.2,53.5,69.9,54.6,-0.1963,B,True,21.9,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5349,0.5495,-0.0146,,True,AGREE,1.0,,HIGH,0.8988,,1/1,,False,v28-pro-max,betting_brain_approved +6xp1gbyvii9akktn5srre702c,2026-05-21,32n2r9bl6x90psj0wa7bfs6vq,1,1,0,1,BTTS,KG Var,1.71,0.2,True,True,0.142,53.7,69.9,64.1,-0.0515,B,True,37.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5848,-0.0477,,False,DISAGREE,1.0,,HIGH,0.5487,,X/X,,False,v28-pro-max,betting_brain_approved +2y91xk2gkyf8tc4xzl8552cr8,2026-05-21,5qmjkpvi92vrzdcb2knassjkk,2,0,2,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.82,missing_full_ms_odds,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +av5pl2ve1oezwpqzhwqhtco44,2026-05-21,59tpnfrwnvhnhzmnvfyug68hj,0,1,0,0,BTTS,KG Var,2.13,0.2,True,False,-0.2,50.0,61.7,58.3,-0.0076,B,True,42.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.4695,0.0305,,False,AGREE,1.0,,HIGH,0.8988,,1/1,,False,v28-pro-max,betting_brain_approved +5cvk1s01wt7g8el7m6et9h2xg,2026-05-21,21unwecwwhmf87e9awiyd7ztg,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +6kji1zjq07yup91kliqdvm87o,2026-05-21,32n2r9bl6x90psj0wa7bfs6vq,0,3,0,1,OU25,Üst,1.21,0.0,False,True,0.0,54.7,65.4,53.5,-0.2196,PASS,True,35.8,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.5472,0.8264,-0.2792,0.121,False,DISAGREE,1.0,,LOW,0.5487,,2/2,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +aditexmoiv8kzlblpq6w8vf2s,2026-05-21,byhmntnl1b4lxw0zz21im3zkd,2,3,0,1,OU25,Üst,1.55,0.2,True,True,0.11,50.1,57.7,47.4,-0.1794,B,True,38.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.5009,0.6452,-0.1443,0.0244,True,AGREE,1.0,,MEDIUM,0.7719,,,,False,v28-pro-max,betting_brain_approved +6oongbytteks5laa2sp7p711w,2026-05-21,32n2r9bl6x90psj0wa7bfs6vq,2,0,1,0,BTTS,KG Var,1.89,0.2,True,False,-0.2,53.2,69.9,73.0,0.0227,B,True,54.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5291,0.0026,,False,AGREE,1.0,,MEDIUM,0.5487,,1/1,,False,v28-pro-max,betting_brain_approved +9bruzne6modxml7ienba55bf8,2026-05-21,c1d9p6b2e9zr5tqlzx3ktjplg,2,1,0,0,BTTS,KG Var,1.52,0.2,True,True,0.104,53.7,69.9,64.4,-0.1347,B,True,39.0,BET,,low_reliability_league;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6579,-0.1208,,False,AGREE,1.0,,MEDIUM,0.4129,,,,False,v28-pro-max,betting_brain_approved +csck3c60musl27l3t9oy3y7mc,2026-05-21,enzlj1as2raqm4ids1zyb07y1,0,2,0,1,BTTS,KG Var,1.29,0.0,False,False,0.0,54.3,69.9,35.1,-0.2589,PASS,True,25.0,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5433,0.7752,-0.2319,,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +kl7kq0scj39czk3chg851rf8,2026-05-21,enzlj1as2raqm4ids1zyb07y1,0,0,0,0,MS,2,1.35,0.2,True,False,-0.2,62.0,61.2,43.7,-0.1022,B,True,26.5,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.6197,0.7407,-0.121,0.1816,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +1cegvzqj84fhthi1shnxk7jf8,2026-05-20,2bmwykmdlcc2u1c40ytoc39vy,1,0,0,0,BTTS,KG Var,1.32,0.2,True,False,-0.2,57.1,69.9,64.4,-0.1561,B,True,50.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.7576,-0.1869,,False,AGREE,1.0,,MEDIUM,0.7668,,1/1,,False,v28-pro-max,betting_brain_approved +c3xbp166ilm8bh89fen7lbfv8,2026-05-20,3tybapqetnmdiam9exg1q4yl0,4,1,1,0,OU25,Üst,1.57,0.2,True,True,0.114,61.1,65.4,71.0,-0.0268,B,True,32.7,BET,,low_reliability_league;triple_value_not_confirmed;historical_sample_too_low,base_model_playable;value_sniper_override;v25_v27_aligned,0.6107,0.6369,-0.0262,0.0277,False,DISAGREE,1.0,,MEDIUM,0.35,,,,False,v28-pro-max,betting_brain_approved +cowp3iszovotbnwkg5qt66dxw,2026-05-20,jznihqxle06xych9ygwiwnsa,1,1,0,0,OU25,Üst,1.52,0.2,True,False,-0.2,61.1,65.4,64.5,-0.134,B,True,39.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.6579,-0.0472,0.0611,True,AGREE,1.0,,MEDIUM,0.4796,,,,False,v28-pro-max,betting_brain_approved +cgufran1u8g5n7btl975605jo,2026-05-20,enzlj1as2raqm4ids1zyb07y1,5,1,3,0,MS,1,1.11,0.0,False,True,0.0,67.7,65.5,46.7,-0.1549,PASS,True,40.4,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6771,0.9009,-0.2238,0.1312,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5w4tbqkg9kqbq395f2y55hzbo,2026-05-20,enzlj1as2raqm4ids1zyb07y1,1,3,1,2,BTTS,KG Var,1.36,0.2,True,True,0.072,53.7,69.9,52.1,-0.0386,B,True,47.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.7353,-0.1982,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +dr0ewvap2jnla42xhzvqly0wk,2026-05-20,enzlj1as2raqm4ids1zyb07y1,1,3,1,2,BTTS,KG Var,1.34,0.2,True,True,0.068,53.7,69.9,44.0,-0.1478,B,True,41.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.5371,0.7463,-0.2092,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +a284j2r0c34sufi0ofy5v5wd0,2026-05-20,enzlj1as2raqm4ids1zyb07y1,2,0,1,0,MS,1,1.07,0.0,False,True,0.0,72.4,74.4,52.5,-0.1826,PASS,True,13.0,WATCH_NO_VALUE,odds_below_minimum,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.7236,0.9346,-0.211,0.1801,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +ad3qei060nmsrmcjb9q69hes4,2026-05-20,59tpnfrwnvhnhzmnvfyug68hj,0,0,0,0,BTTS,KG Var,1.75,0.2,True,False,-0.2,53.7,69.9,62.5,-0.1443,B,True,36.4,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5714,-0.0343,,True,AGREE,1.0,,MEDIUM,0.8988,,1/1,,False,v28-pro-max,betting_brain_approved +6bjhyw8ttk59602i5imue41ec,2026-05-20,32n2r9bl6x90psj0wa7bfs6vq,3,2,2,0,BTTS,KG Var,1.63,0.2,True,True,0.126,54.9,69.9,66.2,-0.1008,B,True,47.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5488,0.6135,-0.0647,,False,AGREE,1.0,,MEDIUM,0.5487,,2/2,,False,v28-pro-max,betting_brain_approved +6fokakf2kcigcu90z8agystg4,2026-05-20,32n2r9bl6x90psj0wa7bfs6vq,2,2,2,0,OU25,Üst,1.98,0.2,True,True,0.196,50.1,57.7,56.3,-0.0732,B,True,44.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5009,0.5051,-0.0042,0.1324,True,AGREE,1.0,,MEDIUM,0.5487,,1/1,,False,v28-pro-max,betting_brain_approved +6t6nw48lb090ggpwppzgg1fro,2026-05-20,32n2r9bl6x90psj0wa7bfs6vq,3,1,0,1,OU25,Üst,1.93,0.3,True,True,0.279,54.7,65.4,71.9,0.0941,B,True,69.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5472,0.5181,0.0291,0.0907,False,AGREE,1.0,,MEDIUM,0.5487,,1/1,,False,v28-pro-max,betting_brain_approved +6qrosfxg2gh0ws7sutdup3w2c,2026-05-20,byhmntnl1b4lxw0zz21im3zkd,3,1,1,1,MS,1,1.5,0.2,True,True,0.1,62.8,65.5,63.5,-0.1275,B,True,11.3,BET,,v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;usable_historical_sample,0.6278,0.6667,-0.0389,0.1899,True,AGREE,1.0,,MEDIUM,0.7719,0.0,,,False,v28-pro-max,betting_brain_approved +crtqyaokfu4fs0oma6h7ch3x0,2026-05-20,enzlj1as2raqm4ids1zyb07y1,0,2,0,2,BTTS,KG Var,1.38,0.2,True,False,-0.2,53.7,69.9,44.2,-0.1507,B,True,46.3,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.7246,-0.1875,,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,,,,False,v28-pro-max,betting_brain_approved +dqhz0tzq7gup8ix4wsddnwjkk,2026-05-20,enzlj1as2raqm4ids1zyb07y1,4,0,3,0,MS,1,1.39,0.2,True,True,0.078,54.8,58.8,34.5,-0.1314,B,True,52.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5478,0.7194,-0.1716,0.0545,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,LOW,0.6442,0.0,,,False,v28-pro-max,betting_brain_approved +a7oe3nf4p4uoqzcq5jsaggkyc,2026-05-20,enzlj1as2raqm4ids1zyb07y1,3,0,3,0,OU25,Üst,1.34,0.2,True,True,0.068,61.1,65.4,50.8,-0.1972,B,True,33.8,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;usable_historical_sample,0.6107,0.7463,-0.1356,0.0212,True,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.6442,,,,False,v28-pro-max,betting_brain_approved +d0dmgzte7ese3kr1i7blbclck,2026-05-20,d1xxzf0fzqwbxytex9hg7sy22,0,0,0,0,MS,2,1.32,0.2,True,False,-0.2,60.6,61.2,26.3,-0.1763,B,True,0.0,BET,,low_reliability_league;v25_v27_soft_disagreement;trap_market_market_overpriced;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;usable_historical_sample,0.6056,0.7576,-0.152,0.3784,True,DISAGREE,0.51,lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,MEDIUM,0.35,0.0,,,False,v28-pro-max,betting_brain_approved +4huy3z790zz7mdtdk88xqulg4,2026-05-20,6qitd9h242qkvjenaytfdnsf2,2,0,1,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.663,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +7driv3z4c70ttol4hg9tbvwno,2026-05-20,bdtat25m14jy85y484z3e6lf,0,3,0,1,DC,1X,1.14,0.0,False,False,0.0,71.6,71.6,68.1,-0.1693,PASS,True,15.3,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;trap_market_market_overpriced;triple_value_not_confirmed,value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7161,0.8772,-0.1611,0.0516,True,AGREE,1.0,,MEDIUM,0.7437,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +2v5wfzbki1u23np30d0cwc8ic,2026-05-20,byhmntnl1b4lxw0zz21im3zkd,1,1,0,1,MS,1,1.16,0.0,False,False,0.0,68.0,65.5,67.9,-0.1043,PASS,True,0.0,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable;v25_v27_soft_disagreement;triple_value_not_confirmed,value_sniper_override;strong_historical_sample,0.6795,0.8621,-0.1826,0.1857,False,AGREE,1.0,,MEDIUM,0.7719,0.0,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +edqbj79vl3irmm3zzn27d7cwk,2026-05-20,4c1nfi2j1m731hcay25fcgndq,0,3,0,2,OU25,Üst,1.69,0.2,True,True,0.138,61.1,65.4,72.1,-0.0043,B,True,69.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.5917,0.019,0.0317,False,DISAGREE,1.0,,MEDIUM,0.8425,,2/2,,False,v28-pro-max,betting_brain_approved +10mcv0v2qglqxf2lmqmqdxt04,2026-05-20,57nu0wygurzkp6fuy5hhrtaa2,3,1,1,0,BTTS,KG Var,1.87,0.2,True,True,0.174,51.9,68.4,58.3,-0.0358,B,True,54.1,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.5348,-0.0156,,False,AGREE,0.906,lineup_probable_not_confirmed;missing_referee,MEDIUM,0.8099,,,,False,v28-pro-max,betting_brain_approved +1xyqpvkl9nvqamkryhqzk6vpw,2026-05-20,1zp1du9n4rj36p1ss9zbxtqfb,0,2,0,0,BTTS,KG Var,1.58,0.2,True,False,-0.2,53.7,69.9,46.7,-0.1748,B,True,16.1,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.6329,-0.0958,,True,DISAGREE,0.946,lineup_probable_not_confirmed,HIGH,0.5353,,,,False,v28-pro-max,betting_brain_approved +76jwirnkp558fcanycwzporh0,2026-05-20,1zp1du9n4rj36p1ss9zbxtqfb,3,3,2,2,BTTS,KG Var,1.95,0.2,True,True,0.19,50.0,61.7,50.2,-0.0746,B,True,45.2,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5,0.5128,-0.0128,,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.5353,,,,False,v28-pro-max,betting_brain_approved +e8avsgspm7mvpmcn7bdw41sk,2026-05-20,7pk2icgodrzaih8i0pikb21s4,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +2xtpdr91njfibkqq7krdasr2s,2026-05-20,9z5643nd06afqu01ea2wt8y4g,1,1,1,0,DC,1X,1.09,0.0,False,True,0.0,75.3,75.3,75.2,-0.0491,PASS,True,60.7,WATCH_NO_VALUE,odds_below_minimum,base_model_not_playable,value_sniper_override;v25_v27_aligned;triple_value_confirmed;usable_historical_sample,0.7532,0.9174,-0.1642,0.0055,False,AGREE,0.51,lineup_unavailable;lineup_incomplete;missing_referee,MEDIUM,0.8734,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +59b87hbgmzrrq29ej70hd1ces,2026-05-20,3alyl4h2ug42jl1j67yj0owes,8,1,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_probable_not_confirmed;lineup_projection_low_confidence;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +chgamzwwmgfnosfuxeq7btudw,2026-05-20,ea0h6cf3bhl698hkxhpulh2zz,1,4,1,2,BTTS,KG Var,1.43,0.2,True,True,0.086,54.3,69.9,65.9,-0.1301,B,True,56.4,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5433,0.6993,-0.156,,False,AGREE,1.0,,LOW,0.661,,,,False,v28-pro-max,betting_brain_approved +3icim81cjg5pqo9dw6b8rdbf8,2026-05-20,9ynnnx1qmkizq1o3qr3v0nsuk,2,1,1,0,OU25,Üst,1.29,0.0,False,True,0.0,61.4,65.4,64.5,-0.1092,PASS,True,64.2,WATCH_NO_VALUE,odds_below_minimum,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6144,0.7752,-0.1608,0.0842,False,AGREE,1.0,,MEDIUM,0.554,,2/2,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +7634ts5y1wbhg14ezmb8a31uc,2026-05-20,1zp1du9n4rj36p1ss9zbxtqfb,1,0,0,0,BTTS,KG Var,1.68,0.2,True,False,-0.2,53.7,69.9,62.6,-0.1705,B,True,30.2,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5371,0.5952,-0.0581,,True,AGREE,1.0,,MEDIUM,0.5353,,,,False,v28-pro-max,betting_brain_approved +75m5p9e8p9ngwdo5kiaxth8gk,2026-05-20,1zp1du9n4rj36p1ss9zbxtqfb,0,0,0,0,BTTS,KG Var,1.61,0.2,True,False,-0.2,51.9,68.4,53.2,-0.1255,B,True,44.8,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5192,0.6211,-0.1019,,False,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.5353,,,,False,v28-pro-max,betting_brain_approved +ccpxl6w9aitcaba4cqdul8h78,2026-05-20,77yifp2y2tvn80ndo3f0laav8,1,2,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +cc65bnwrsdo1gcim5x7lokf84,2026-05-20,77yifp2y2tvn80ndo3f0laav8,0,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,DISAGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +c6b6wxzw3qs1y3u97umz2bjmc,2026-05-20,cm3vqed635t5cxc113gkwm5vo,3,0,3,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.33,missing_full_ms_odds;lineup_unavailable;lineup_incomplete;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +cb40fnsuigo81uf6dwejm5gr8,2026-05-20,77yifp2y2tvn80ndo3f0laav8,1,1,0,0,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,MEDIUM,,,,,False,v28-pro-max,no_bet_conditions_met +cakt15p996xw1spiwzhd3m49g,2026-05-20,77yifp2y2tvn80ndo3f0laav8,2,1,2,1,,,,1.0,False,,0.0,,,,,,False,,,,,,,,,,False,AGREE,0.726,missing_full_ms_odds;lineup_probable_not_confirmed;missing_referee,LOW,,,,,False,v28-pro-max,no_bet_conditions_met +8udm1tzxu627am91311qm6z9w,2026-05-20,8ey0ww2zsosdmwr8ehsorh6t7,2,0,1,0,BTTS,KG Var,1.48,0.2,True,False,-0.2,57.1,69.9,71.5,-0.0884,B,True,49.0,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5707,0.6757,-0.105,,False,AGREE,1.0,,MEDIUM,0.51,,1/1,,False,v28-pro-max,betting_brain_approved +5yx1y8fs5h6vi8gnaqdea0aac,2026-05-20,8y29fg2s85ppcb8uugm5ee8s4,0,0,0,0,MS,2,1.35,0.2,True,False,-0.2,61.0,61.2,64.7,-0.086,B,True,19.4,BET,,v25_v27_soft_disagreement;triple_value_not_confirmed;engine_consensus_disagree,base_model_playable;value_sniper_override;usable_historical_sample,0.6097,0.7407,-0.131,0.2716,False,DISAGREE,1.0,,LOW,0.6866,0.0,,,False,v28-pro-max,betting_brain_approved +c78avy8opbs6wgyprk615nc44,2026-05-20,7r1f93t6ddrsa5n8v1nq6qlzm,0,0,0,0,OU25,Üst,1.31,0.2,True,False,-0.2,66.5,65.4,70.6,-0.0961,B,True,60.5,BET,,triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6651,0.7634,-0.0983,0.037,False,AGREE,1.0,,MEDIUM,0.5393,,,,False,v28-pro-max,betting_brain_approved +c7s44pa4duozlgfb8ltdwlfkk,2026-05-20,7r1f93t6ddrsa5n8v1nq6qlzm,4,2,0,1,DC,12,1.07,0.0,False,True,0.0,77.2,77.2,78.5,-0.1586,PASS,True,54.3,WATCH_NO_VALUE,odds_below_minimum,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.772,0.9346,-0.1626,0.0479,True,AGREE,1.0,,LOW,0.5393,,,,False,v28-pro-max,betting_brain_no_value_odds_below_minimum +5b935tz5r81qi2qommrt6il90,2026-05-20,b60nisd3qn427jm0hrg9kvmab,2,0,1,0,OU25,Üst,1.65,0.2,True,False,-0.2,61.1,65.4,69.4,-0.0578,B,True,41.1,BET,,low_reliability_league;trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.6107,0.6061,0.0046,0.0335,True,AGREE,1.0,,MEDIUM,0.4203,,2/2,,False,v28-pro-max,betting_brain_approved +vy7hzojtyamk4vc4dp6cyihg,2026-05-20,8k1xcsyvxapl4jlsluh3eomre,0,2,0,1,BTTS,KG Var,1.76,0.2,True,False,-0.2,53.2,69.9,56.3,-0.1448,B,True,40.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;strong_historical_sample,0.5317,0.5682,-0.0365,,True,DISAGREE,0.946,lineup_probable_not_confirmed,LOW,0.7463,,,,False,v28-pro-max,betting_brain_approved +vor8bi1ib9u82el0s53d8xsk,2026-05-20,8k1xcsyvxapl4jlsluh3eomre,1,0,1,0,OU25,Üst,2.11,0.2,True,False,-0.2,50.4,57.9,53.0,-0.0794,B,True,48.5,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.5412,0.4739,0.0673,0.1398,True,AGREE,0.946,lineup_probable_not_confirmed,MEDIUM,0.7463,,,,False,v28-pro-max,betting_brain_approved +vci8s1s81w30sf74fi78u1as,2026-05-20,8k1xcsyvxapl4jlsluh3eomre,2,1,1,1,HT_OU05,Üst,1.21,0.0,False,True,0.0,64.2,43.7,40.2,-0.1203,PASS,False,7.0,REJECT,odds_below_minimum;calibrated_confidence_too_low;play_score_too_low,base_model_not_playable,strong_historical_sample,0.6417,0.8264,-0.1847,,False,AGREE,0.946,lineup_probable_not_confirmed,LOW,0.7463,,,,False,v28-pro-max,betting_brain_no_safe_pick +caxcibrklzvjyx0l0im52d990,2026-05-20,7r1f93t6ddrsa5n8v1nq6qlzm,2,0,1,0,OU25,Üst,1.38,0.2,True,False,-0.2,72.3,70.7,81.6,-0.061,B,True,55.6,BET,,trap_market_market_overpriced;triple_value_not_confirmed,base_model_playable;value_sniper_override;v25_v27_aligned;strong_historical_sample,0.7233,0.7246,-0.0013,0.1274,True,DISAGREE,1.0,,LOW,0.5393,,,,False,v28-pro-max,betting_brain_approved diff --git a/ai-engine/reports/diagnostic_backtest_20260525_035649.json b/ai-engine/reports/diagnostic_backtest_20260525_035649.json new file mode 100644 index 0000000..4892846 --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_035649.json @@ -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": [] +} \ No newline at end of file diff --git a/ai-engine/reports/diagnostic_backtest_20260525_035649.txt b/ai-engine/reports/diagnostic_backtest_20260525_035649.txt new file mode 100644 index 0000000..1fd3244 --- /dev/null +++ b/ai-engine/reports/diagnostic_backtest_20260525_035649.txt @@ -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 + +============================================================================== \ No newline at end of file diff --git a/ai-engine/reports/filter_optimization_patch.json b/ai-engine/reports/filter_optimization_patch.json new file mode 100644 index 0000000..4601a15 --- /dev/null +++ b/ai-engine/reports/filter_optimization_patch.json @@ -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 + } +} \ No newline at end of file diff --git a/ai-engine/scripts/analyze_backtest_csv.py b/ai-engine/scripts/analyze_backtest_csv.py new file mode 100644 index 0000000..3d1ca6d --- /dev/null +++ b/ai-engine/scripts/analyze_backtest_csv.py @@ -0,0 +1,227 @@ +""" +Deep root-cause analysis on diagnostic_backtest CSV. +Tests specific hypotheses with hard numbers and proposes actionable +filter rules with estimated impact (units saved, ROI shift). +""" + +import sys, os, glob +import pandas as pd +import numpy as np + +REPORTS_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "reports") + +def latest_csv(): + files = sorted(glob.glob(os.path.join(REPORTS_DIR, "diagnostic_backtest_*.csv")), + key=os.path.getmtime, reverse=True) + return files[0] if files else None + +def fmt_pct(x): + return f"{x:>6.2f}%" if pd.notna(x) else " ----" + +def cell(df, label, mask): + sub = df[mask] + n = len(sub) + if n == 0: + return f" {label:<60} n=0" + wins = (sub["won"] == True).sum() + losses = (sub["won"] == False).sum() + settled = wins + losses + hr = 100.0 * wins / settled if settled else 0 + profit = sub["unit_profit"].sum() + staked = sub["stake_units"].sum() + roi = 100.0 * profit / staked if staked else 0 + return (f" {label:<60} n={n:>4} hit={hr:>6.2f}% " + f"profit={profit:>+7.2f}u roi={roi:>+7.2f}%") + +def hypothesis_block(title, rows): + print(f"\n{'─' * 78}") + print(f" {title}") + print(f"{'─' * 78}") + for row in rows: + print(row) + +def main(): + csv_path = latest_csv() + if not csv_path: + print("No backtest CSV found") + return + print(f"Reading {csv_path}") + df = pd.read_csv(csv_path) + print(f"Loaded {len(df)} rows") + + # Filter only playable + settled + pdf = df[(df["playable"] == True) & (df["won"].notna())].copy() + pdf["won"] = pdf["won"].astype(bool) + print(f"Playable + settled: {len(pdf)}") + + overall_hr = (pdf["won"].sum() / len(pdf)) * 100 + overall_roi = 100.0 * pdf["unit_profit"].sum() / pdf["stake_units"].sum() + print(f"\nOVERALL: hit={overall_hr:.2f}% roi={overall_roi:.2f}%") + + # ───────────────────────────────────────────────────────────────────── + # H1: TRIPLE VALUE CONFIRMATION + # ───────────────────────────────────────────────────────────────────── + triple_confirmed_mask = ~pdf["bb_issues"].fillna("").str.contains( + "triple_value_not_confirmed", na=False + ) + hypothesis_block( + "H1: TRIPLE VALUE CONFIRMED vs NOT CONFIRMED", + [ + cell(pdf, "triple_value CONFIRMED", triple_confirmed_mask), + cell(pdf, "triple_value NOT CONFIRMED", ~triple_confirmed_mask), + ] + ) + + # ───────────────────────────────────────────────────────────────────── + # H2: TRAP MARKET FLAG + # ───────────────────────────────────────────────────────────────────── + trap_mask = pdf["bb_trap_market"] == True + hypothesis_block( + "H2: TRAP MARKET FLAG (model says band rate < implied → market overpriced)", + [ + cell(pdf, "trap_market_flag = TRUE (model warned)", trap_mask), + cell(pdf, "trap_market_flag = FALSE", ~trap_mask), + ] + ) + + # ───────────────────────────────────────────────────────────────────── + # H3: V25/V27 CONSENSUS + # ───────────────────────────────────────────────────────────────────── + agree_mask = pdf["v27_consensus"] == "AGREE" + disagree_mask = pdf["v27_consensus"] == "DISAGREE" + hypothesis_block( + "H3: V25 ↔ V27 CONSENSUS", + [ + cell(pdf, "AGREE", agree_mask), + cell(pdf, "DISAGREE", disagree_mask), + cell(pdf, "neither/null", ~(agree_mask | disagree_mask)), + ] + ) + + # ───────────────────────────────────────────────────────────────────── + # H4: ODDS RELIABILITY (league quality) + # ───────────────────────────────────────────────────────────────────── + pdf["rel_band"] = pd.cut( + pdf["odds_reliability"].fillna(0.35), + [0, 0.30, 0.45, 0.55, 1.0], + labels=["<0.30 verylow", "0.30-0.45 low", "0.45-0.55 mid", ">=0.55 high"] + ) + hypothesis_block( + "H4: LEAGUE ODDS RELIABILITY", + [cell(pdf, str(b), pdf["rel_band"] == b) for b in pdf["rel_band"].cat.categories] + ) + + # ───────────────────────────────────────────────────────────────────── + # H5: CALIBRATOR IMPACT (raw vs calibrated) + # ───────────────────────────────────────────────────────────────────── + pdf["calib_delta"] = pdf["calibrated_confidence"] - pdf["raw_confidence"] + pdf["delta_band"] = pd.cut( + pdf["calib_delta"].fillna(0), + [-100, -10, -3, 3, 10, 100], + labels=["cal<raw (3..10)", "cal>>raw (+10+)"] + ) + hypothesis_block( + "H5: CALIBRATOR DELTA (calibrated_conf - raw_conf)", + [cell(pdf, str(b), pdf["delta_band"] == b) for b in pdf["delta_band"].cat.categories] + ) + + # ───────────────────────────────────────────────────────────────────── + # H6: EV EDGE + # ───────────────────────────────────────────────────────────────────── + pdf["edge_band"] = pd.cut( + pdf["ev_edge"].fillna(0), + [-10, -0.05, 0.0, 0.05, 0.10, 0.20, 10], + labels=["edge<-5%", "-5%-0%", "0-5%", "5-10%", "10-20%", ">20%"] + ) + hypothesis_block( + "H6: EV EDGE (model_prob - implied_prob)", + [cell(pdf, str(b), pdf["edge_band"] == b) for b in pdf["edge_band"].cat.categories] + ) + + # ───────────────────────────────────────────────────────────────────── + # H7: ODDS x MARKET cross + # ───────────────────────────────────────────────────────────────────── + pdf["odds_band"] = pd.cut( + pdf["odds"].fillna(0), + [0, 1.30, 1.50, 1.80, 2.20, 3.00, 100], + labels=["<1.30", "1.30-1.50", "1.50-1.80", "1.80-2.20", "2.20-3.00", ">3.00"] + ) + + print(f"\n{'─' * 78}") + print(f" H7: ODDS BAND × MARKET (per cell hit% / roi% / n)") + print(f"{'─' * 78}") + pivot_n = pdf.pivot_table(index="market", columns="odds_band", + values="match_id", aggfunc="count", fill_value=0, + observed=False) + pivot_roi = pdf.pivot_table(index="market", columns="odds_band", + values="unit_profit", aggfunc="sum", fill_value=0, + observed=False) + pivot_stake = pdf.pivot_table(index="market", columns="odds_band", + values="stake_units", aggfunc="sum", fill_value=0, + observed=False) + pivot_roi_pct = (100.0 * pivot_roi / pivot_stake.replace(0, np.nan)).round(1) + print("\n Bet count per cell:") + print(pivot_n.to_string()) + print("\n ROI% per cell:") + print(pivot_roi_pct.to_string()) + + # ───────────────────────────────────────────────────────────────────── + # H8: COMBINED FILTER SIMULATION + # ───────────────────────────────────────────────────────────────────── + print(f"\n{'─' * 78}") + print(" H8: COMBINED FILTER SIMULATION (what if we add rules)") + print(f"{'─' * 78}") + + def simulate(filter_name, keep_mask): + kept = pdf[keep_mask] + rejected = pdf[~keep_mask] + if len(kept) == 0: + return f" {filter_name:<55} → 0 bet remain" + kept_hr = 100.0 * kept["won"].sum() / len(kept) + kept_profit = kept["unit_profit"].sum() + kept_staked = kept["stake_units"].sum() + kept_roi = 100.0 * kept_profit / kept_staked if kept_staked else 0 + saved = -rejected["unit_profit"].sum() # money we WOULD HAVE LOST + return (f" {filter_name:<55} keep={len(kept):>3} hit={kept_hr:>5.1f}% " + f"roi={kept_roi:>+6.2f}% saved={saved:>+6.2f}u") + + print(simulate("BASELINE (no extra filter)", pd.Series([True] * len(pdf), index=pdf.index))) + print(simulate("REJECT triple_value_not_confirmed", + ~pdf["bb_issues"].fillna("").str.contains("triple_value_not_confirmed"))) + print(simulate("REJECT trap_market_flag", + ~(pdf["bb_trap_market"] == True))) + print(simulate("REJECT v27 DISAGREE", + pdf["v27_consensus"] != "DISAGREE")) + print(simulate("REJECT odds_reliability < 0.45", + pdf["odds_reliability"].fillna(1.0) >= 0.45)) + print(simulate("REJECT odds in 1.80-2.20", + (pdf["odds"].fillna(0) < 1.80) | (pdf["odds"].fillna(0) >= 2.20))) + print(simulate("REJECT ev_edge < 0", + pdf["ev_edge"].fillna(0) >= 0)) + print(simulate("REJECT ev_edge < 0.05", + pdf["ev_edge"].fillna(0) >= 0.05)) + print() + print(" COMBINED rules:") + # Stack 1: drop triple_not_confirmed + trap_market + DISAGREE + s1 = ( + ~pdf["bb_issues"].fillna("").str.contains("triple_value_not_confirmed") + & ~(pdf["bb_trap_market"] == True) + & (pdf["v27_consensus"] != "DISAGREE") + ) + print(simulate("STACK1: !triple_not_conf & !trap & !disagree", s1)) + # Stack 2: + edge>=0 + s2 = s1 & (pdf["ev_edge"].fillna(0) >= 0) + print(simulate("STACK2: STACK1 + edge >= 0", s2)) + # Stack 3: + reliability>=0.45 + s3 = s2 & (pdf["odds_reliability"].fillna(1.0) >= 0.45) + print(simulate("STACK3: STACK2 + reliability >= 0.45", s3)) + # Stack 4: + odds outside 1.80-2.20 + s4 = s3 & ((pdf["odds"].fillna(0) < 1.80) | (pdf["odds"].fillna(0) >= 2.20)) + print(simulate("STACK4: STACK3 + odds NOT in 1.80-2.20", s4)) + + print(f"\n{'─' * 78}") + print("DONE.") + +if __name__ == "__main__": + main() diff --git a/ai-engine/scripts/compare_backtests.py b/ai-engine/scripts/compare_backtests.py new file mode 100644 index 0000000..638a3f4 --- /dev/null +++ b/ai-engine/scripts/compare_backtests.py @@ -0,0 +1,134 @@ +""" +Compare two diagnostic_backtest CSV outputs side-by-side. +Used to validate that a filter change actually improved ROI vs the +baseline run — and to detect overfitting (in-sample success but +out-of-sample collapse). + +Usage: + python scripts/compare_backtests.py + python scripts/compare_backtests.py (auto-picks 2 most recent CSVs) +""" + +import sys, os, glob +import pandas as pd +from typing import Dict + +REPORTS_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "reports") + + +def load(path: str) -> pd.DataFrame: + df = pd.read_csv(path) + df["won_bool"] = df["won"].map( + {True: True, False: False, "True": True, "False": False, 1: True, 0: False} + ) + return df + + +def stats(df: pd.DataFrame, mask=None) -> Dict: + if mask is not None: + df = df[mask] + playable = df[(df["playable"] == True) & (df["won_bool"].notna())] + if len(playable) == 0: + return {"n_total": len(df), "n_playable": 0, "hit": 0, "profit": 0, + "staked": 0, "roi": 0} + wins = playable["won_bool"].sum() + profit = playable["unit_profit"].sum() + staked = playable["stake_units"].sum() + return { + "n_total": int(len(df)), + "n_playable": int(len(playable)), + "wins": int(wins), + "losses": int(len(playable) - wins), + "hit": round(100.0 * wins / len(playable), 2), + "profit": round(profit, 2), + "staked": round(staked, 2), + "roi": round(100.0 * profit / staked, 2) if staked else 0, + } + + +def line(label: str, a: Dict, b: Dict, suffix: str = ""): + fields = ["n_total", "n_playable", "hit", "profit", "staked", "roi"] + parts = [f"{label:<28}"] + for f in fields: + va = a.get(f, "-") + vb = b.get(f, "-") + parts.append(f"{f}: {str(va):>8} → {str(vb):>8}") + print(" " + " | ".join(parts) + suffix) + + +def main(): + if len(sys.argv) == 3: + a_path, b_path = sys.argv[1], sys.argv[2] + else: + files = sorted(glob.glob(os.path.join(REPORTS_DIR, "diagnostic_backtest_*.csv")), + key=os.path.getmtime, reverse=True) + if len(files) < 2: + print("Need at least 2 backtest CSVs in reports/. Pass paths manually.") + return + b_path, a_path = files[0], files[1] # newest first as "validation" + + print(f"Baseline A: {os.path.basename(a_path)}") + print(f"Validation B: {os.path.basename(b_path)}") + + a = load(a_path) + b = load(b_path) + + print(f"\n{'=' * 100}") + print(f" OVERALL") + print(f"{'=' * 100}") + line("ALL", stats(a), stats(b)) + + print(f"\n{'─' * 100}") + print(f" PER MARKET") + print(f"{'─' * 100}") + markets = sorted(set(a["market"].dropna().unique()) | set(b["market"].dropna().unique())) + for m in markets: + line(f"market={m}", + stats(a, a["market"] == m), + stats(b, b["market"] == m)) + + # New veto family check — did MUTED_MARKETS actually mute? + print(f"\n{'─' * 100}") + print(f" NEW VETO IMPACT (look for new veto names in betting_brain.vetoes)") + print(f"{'─' * 100}") + new_vetoes = ["market_muted_by_backtest", "negative_ev_edge", "ev_edge_too_high_trap", + "outside_envelope_edge_low", "outside_envelope_edge_high", + "outside_envelope_odds_low", "outside_envelope_v27_must_agree"] + for veto in new_vetoes: + a_hits = a["bb_vetoes"].fillna("").str.contains(veto).sum() + b_hits = b["bb_vetoes"].fillna("").str.contains(veto).sum() + print(f" {veto:<45} A={a_hits:>4} B={b_hits:>4}") + + # Top issue tags + print(f"\n{'─' * 100}") + print(f" BTTS MUTE CHECK — should be ~0 playable in validation") + print(f"{'─' * 100}") + a_btts_play = ((a["market"] == "BTTS") & (a["playable"] == True)).sum() + b_btts_play = ((b["market"] == "BTTS") & (b["playable"] == True)).sum() + print(f" BTTS playable bets: A={a_btts_play} → B={b_btts_play} " + f"(should be 0 in B if MUTE works)") + + # Verdict + print(f"\n{'=' * 100}") + a_s = stats(a) + b_s = stats(b) + roi_delta = b_s["roi"] - a_s["roi"] + if b_s["n_playable"] < 20: + verdict = "TOO FEW BETS — sample insufficient" + elif roi_delta > 5 and b_s["roi"] > 0: + verdict = "✅ FILTERS WORK — ROI improved AND positive" + elif roi_delta > 5: + verdict = "🟡 PARTIAL — ROI improved but still negative" + elif roi_delta > 0: + verdict = "🟡 SLIGHT IMPROVEMENT" + elif roi_delta < -5: + verdict = "❌ OVERFITTING — validation ROI collapsed" + else: + verdict = "❌ NO MATERIAL CHANGE" + print(f" VERDICT: {verdict}") + print(f" ROI: {a_s['roi']}% → {b_s['roi']}% (Δ {roi_delta:+.2f}pp)") + print(f"{'=' * 100}") + + +if __name__ == "__main__": + main() diff --git a/ai-engine/scripts/diagnostic_backtest.py b/ai-engine/scripts/diagnostic_backtest.py new file mode 100644 index 0000000..1d9685d --- /dev/null +++ b/ai-engine/scripts/diagnostic_backtest.py @@ -0,0 +1,674 @@ +""" +Diagnostic Backtest +=================== +Run the full V28 orchestrator (in-process — no HTTP) on a window of completed +matches, capture the recommendation + key signal features + the actual outcome, +and produce a *diagnostic* report: not just "what was the hit rate" but +"which feature clusters drive the losing bets". + +Outputs: + - reports/diagnostic_backtest_YYYYMMDD.csv (per-bet detail) + - reports/diagnostic_backtest_YYYYMMDD.json (aggregate metrics) + - reports/diagnostic_backtest_YYYYMMDD.txt (human-readable summary) + +Usage: + python scripts/diagnostic_backtest.py --days 14 --max-matches 2000 + python scripts/diagnostic_backtest.py --start 2026-05-10 --end 2026-05-24 +""" + +from __future__ import annotations + +import argparse +import json +import os +import sys +import time +import traceback +from collections import defaultdict, Counter +from datetime import datetime, timedelta, timezone +from typing import Any, Dict, List, Optional, Tuple + +import psycopg2 +from psycopg2.extras import RealDictCursor + +# Path bootstrap so we can import the ai-engine package from anywhere +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +AI_ENGINE_DIR = os.path.dirname(SCRIPT_DIR) +sys.path.insert(0, AI_ENGINE_DIR) + +from data.db import get_clean_dsn +from services.single_match_orchestrator import get_single_match_orchestrator + +REPORTS_DIR = os.path.join(AI_ENGINE_DIR, "reports") +os.makedirs(REPORTS_DIR, exist_ok=True) + +# Days with confirmed feeder gaps — exclude from sample +EXCLUDED_DATES = {"2026-05-03", "2026-04-29"} + + +# ── Outcome resolution ──────────────────────────────────────────────── +def _norm_pick(pick: Optional[str]) -> str: + return str(pick or "").strip().casefold() + + +def resolve_outcome(market: str, pick: str, sh: int, sa: int, + htsh: Optional[int], htsa: Optional[int]) -> Optional[bool]: + """Mirror of prediction-settlement.market-resolver.ts (TS side). + Returns True/False on settle, None if cannot resolve.""" + m = (market or "").upper().replace(" ", "").replace("-", "_") + p = _norm_pick(pick) + + if m in ("MS", "ML", "1X2"): + outcome = "1" if sh > sa else "2" if sa > sh else "x" + return p in {outcome, outcome.upper(), outcome.lower(), "0" if outcome == "x" else outcome} + + if m in ("HT", "IY"): + if htsh is None or htsa is None: + return None + outcome = "1" if htsh > htsa else "2" if htsa > htsh else "x" + return p in {outcome, "0" if outcome == "x" else outcome} + + if m in ("OU05", "OU15", "OU25", "OU35", "OU45", "TOTAL"): + line = {"OU05": 0.5, "OU15": 1.5, "OU25": 2.5, "OU35": 3.5, + "OU45": 4.5, "TOTAL": 2.5}[m] + total = sh + sa + if total == line: + return None + is_over = total > line + if "over" in p or "üst" in p or "ust" in p: + return is_over + if "alt" in p or "under" in p: + return not is_over + return None + + if m in ("OU05_HT", "OU15_HT", "OU25_HT", "HT_OU05", "HT_OU15", "HT_OU25"): + if htsh is None or htsa is None: + return None + line = {"OU05_HT": 0.5, "OU15_HT": 1.5, "OU25_HT": 2.5, + "HT_OU05": 0.5, "HT_OU15": 1.5, "HT_OU25": 2.5}[m] + total = htsh + htsa + if total == line: + return None + is_over = total > line + if "over" in p or "üst" in p or "ust" in p: + return is_over + if "alt" in p or "under" in p: + return not is_over + return None + + if m in ("BTTS", "KG"): + both = sh > 0 and sa > 0 + if "yes" in p or "var" in p: + return both + if "no" in p or "yok" in p: + return not both + return None + + if m in ("HTFT", "IYMS"): + if htsh is None or htsa is None or "/" not in p: + return None + ht_p, ft_p = p.split("/", 1) + ht_actual = "1" if htsh > htsa else "2" if htsa > htsh else "x" + ft_actual = "1" if sh > sa else "2" if sa > sh else "x" + return ht_p.strip() == ht_actual and ft_p.strip() == ft_actual + + if m in ("DC", "CIFTE_SANS"): + ft = "1" if sh > sa else "2" if sa > sh else "X" + raw = p.upper().replace("-", "").replace("/", "") + if raw in ("1X", "X1"): + pair = ["1", "X"] + elif raw in ("X2", "2X"): + pair = ["X", "2"] + elif raw in ("12", "21"): + pair = ["1", "2"] + else: + return None + return ft in pair + + if m in ("OE", "TEKCIFT"): + is_odd = (sh + sa) % 2 == 1 + if "tek" in p or "odd" in p: + return is_odd + if "cift" in p or "çift" in p or "even" in p: + return not is_odd + return None + + return None + + +def compute_unit_profit(won: Optional[bool], stake: float, odds: Optional[float]) -> float: + if won is None: + return 0.0 + if not won: + return -abs(stake) if stake else -1.0 + if not odds or odds <= 1.0: + return 0.0 + return round(stake * (odds - 1.0), 4) + + +# ── Data fetch ──────────────────────────────────────────────────────── +def fetch_match_window(args) -> List[Dict]: + dsn = get_clean_dsn() + if "?schema=" in dsn: + dsn = dsn.split("?schema=")[0] + + if args.start and args.end: + start = datetime.strptime(args.start, "%Y-%m-%d") + end = datetime.strptime(args.end, "%Y-%m-%d") + timedelta(days=1) + else: + end = datetime.now(timezone.utc).replace(tzinfo=None) + start = end - timedelta(days=args.days) + + start_ms = int(start.timestamp() * 1000) + end_ms = int(end.timestamp() * 1000) + + excluded = sorted(EXCLUDED_DATES) + excluded_clause = "" + if excluded: + ex_csv = ",".join(f"'{d}'" for d in excluded) + excluded_clause = ( + f" AND to_timestamp(mst_utc/1000)::date " + f"NOT IN ({ex_csv})" + ) + + with psycopg2.connect(dsn) as conn: + with conn.cursor(cursor_factory=RealDictCursor) as cur: + cur.execute( + f""" + SELECT id AS match_id, + score_home, score_away, + ht_score_home, ht_score_away, + league_id, + to_timestamp(mst_utc/1000)::date AS match_date + FROM matches + WHERE sport='football' + AND status='FT' + AND score_home IS NOT NULL + AND score_away IS NOT NULL + AND mst_utc >= %s + AND mst_utc < %s + {excluded_clause} + ORDER BY mst_utc DESC + LIMIT %s + """, + (start_ms, end_ms, args.max_matches), + ) + return cur.fetchall() + + +# ── Per-bet capture ─────────────────────────────────────────────────── +def capture_bet_row(match: Dict, package: Dict) -> Dict[str, Any]: + """Distill orchestrator response + ground truth into one analytic row.""" + main = package.get("main_pick") or {} + bb = main.get("betting_brain") or {} + advice = package.get("bet_advice") or {} + v27 = package.get("v27_engine") or {} + triple = (v27.get("triple_value") or {}) + risk = package.get("risk") or {} + quality = package.get("data_quality") or {} + htft_payload = ((package.get("market_board") or {}).get("HTFT") or {}) + htft_probs = htft_payload.get("probs") or {} + + sh, sa = match["score_home"], match["score_away"] + htsh, htsa = match["ht_score_home"], match["ht_score_away"] + + market = main.get("market") + pick = main.get("pick") + odds_val = _f(main.get("odds")) + stake = _f(main.get("stake_units"), 1.0) + playable = bool(main.get("playable")) and bool(advice.get("playable")) + + won = resolve_outcome(market, pick, sh, sa, htsh, htsa) if market and pick else None + profit = compute_unit_profit(won, stake, odds_val) if playable else 0.0 + + # Reversal context (only meaningful for MS picks) + rev_prob = None + if market == "MS" and pick in ("1", "2"): + if pick == "1": + rev_prob = _f(htft_probs.get("1/2"), 0.0) + _f(htft_probs.get("1/X"), 0.0) + else: + rev_prob = _f(htft_probs.get("2/1"), 0.0) + _f(htft_probs.get("2/X"), 0.0) + + return { + "match_id": match["match_id"], + "match_date": str(match["match_date"]), + "league_id": match.get("league_id"), + "score_home": sh, + "score_away": sa, + "ht_score_home": htsh, + "ht_score_away": htsa, + "market": market, + "pick": pick, + "odds": odds_val, + "stake_units": stake, + "playable": playable, + "won": won, + "unit_profit": profit, + "raw_confidence": _f(main.get("raw_confidence")), + "calibrated_confidence": _f(main.get("calibrated_confidence")), + "play_score": _f(main.get("play_score")), + "ev_edge": _f(main.get("ev_edge")), + "bet_grade": main.get("bet_grade"), + "is_value_sniper": bool(main.get("is_value_sniper")), + "bb_score": _f(bb.get("score")), + "bb_action": bb.get("action"), + "bb_vetoes": ";".join(bb.get("vetoes") or []), + "bb_issues": ";".join(bb.get("issues") or []), + "bb_positives": ";".join(bb.get("positives") or []), + "bb_model_prob": _f(bb.get("model_prob")), + "bb_implied_prob": _f(bb.get("implied_prob")), + "bb_model_market_gap": _f(bb.get("model_market_gap")), + "bb_divergence": _f(bb.get("divergence")), + "bb_trap_market": bool(bb.get("trap_market_flag")), + "v27_consensus": v27.get("consensus"), + "data_quality_score": _f(quality.get("score")), + "data_quality_flags": ";".join(quality.get("flags") or []), + "risk_level": (risk.get("level") if isinstance(risk, dict) else None), + "odds_reliability": _f(main.get("odds_reliability")), + "htft_reversal_prob": rev_prob, + "htft_top_pick": _argmax(htft_probs), + "league_name": (package.get("match_info") or {}).get("league_name"), + "is_cup": _is_cup((package.get("match_info") or {}).get("league_name") or ""), + "model_version": package.get("model_version"), + "decision_reason": main.get("pick_reason") or advice.get("reason"), + } + + +def _f(x: Any, default: Optional[float] = None) -> Optional[float]: + try: + return float(x) if x is not None else default + except (TypeError, ValueError): + return default + + +def _argmax(d: Dict[str, Any]) -> Optional[str]: + best, val = None, -1.0 + for k, v in d.items(): + fv = _f(v, 0.0) or 0.0 + if fv > val: + best, val = k, fv + return best + + +_CUP_KEYWORDS = ("kupa", "cup", "coupe", "copa", "coppa", "pokal", "trophy", + "shield", "ziraat", "süper kupa", "super cup", "beker", "taça", "taca") + + +def _is_cup(name: str) -> bool: + n = (name or "").lower() + return any(kw in n for kw in _CUP_KEYWORDS) + + +# ── Aggregation helpers ──────────────────────────────────────────────── +def _bucket(value: Optional[float], edges: List[float]) -> Optional[str]: + if value is None: + return None + for i, edge in enumerate(edges): + if value < edge: + if i == 0: + return f"<{edge}" + return f"{edges[i-1]}-{edge}" + return f">={edges[-1]}" + + +def _summary_stats(rows: List[Dict]) -> Dict[str, Any]: + if not rows: + return {"n": 0} + settled = [r for r in rows if r["playable"] and r["won"] is not None] + won = sum(1 for r in settled if r["won"]) + lost = sum(1 for r in settled if not r["won"]) + profit = sum(float(r["unit_profit"]) for r in settled) + staked = sum(float(r["stake_units"]) for r in settled) + return { + "n_total": len(rows), + "n_playable_settled": len(settled), + "wins": won, + "losses": lost, + "hit_rate_pct": round(100.0 * won / len(settled), 2) if settled else None, + "unit_profit": round(profit, 3), + "staked": round(staked, 3), + "roi_pct": round(100.0 * profit / staked, 2) if staked else None, + } + + +def aggregate(rows: List[Dict]) -> Dict[str, Any]: + out: Dict[str, Any] = {"overall": _summary_stats(rows)} + + by = lambda key_fn: defaultdict(list) + market_buckets = by(None) + conf_buckets = by(None) + odds_buckets = by(None) + grade_buckets = by(None) + cup_buckets = by(None) + motivation_buckets = by(None) + + for r in rows: + if r["playable"]: + market_buckets[r["market"] or "?"].append(r) + conf_buckets[_bucket(r["calibrated_confidence"], + [45, 50, 55, 60, 65, 70, 80])].append(r) + odds_buckets[_bucket(r["odds"], [1.3, 1.5, 1.8, 2.2, 3.0, 5.0])].append(r) + grade_buckets[r["bet_grade"] or "?"].append(r) + cup_buckets["cup" if r["is_cup"] else "league"].append(r) + + out["by_market"] = {k: _summary_stats(v) for k, v in market_buckets.items()} + out["by_confidence"] = {k: _summary_stats(v) for k, v in conf_buckets.items() if k} + out["by_odds"] = {k: _summary_stats(v) for k, v in odds_buckets.items() if k} + out["by_grade"] = {k: _summary_stats(v) for k, v in grade_buckets.items()} + out["by_competition"] = {k: _summary_stats(v) for k, v in cup_buckets.items()} + return out + + +def loss_diagnostics(rows: List[Dict]) -> Dict[str, Any]: + losses = [r for r in rows if r["playable"] and r["won"] is False] + if not losses: + return {"n_losses": 0} + n = len(losses) + + def share(predicate) -> Tuple[int, float]: + c = sum(1 for r in losses if predicate(r)) + return c, round(100.0 * c / n, 2) + + diagnostics = { + "n_losses": n, + "total_loss_units": round(sum(float(r["unit_profit"]) for r in losses), 3), + "patterns": { + "high_htft_reversal_prob (>=0.20)": share( + lambda r: (r.get("htft_reversal_prob") or 0) >= 0.20 + ), + "cup_match": share(lambda r: r["is_cup"]), + "low_league_reliability (<0.45)": share( + lambda r: (r.get("odds_reliability") or 1) < 0.45 + ), + "v27_disagree": share(lambda r: r.get("v27_consensus") == "DISAGREE"), + "trap_market_flagged": share(lambda r: r.get("bb_trap_market")), + "low_calibrated_conf (<55)": share( + lambda r: (r.get("calibrated_confidence") or 0) < 55 + ), + "high_odds_underdog (>=2.5)": share( + lambda r: (r.get("odds") or 0) >= 2.5 + ), + "low_data_quality (<0.55)": share( + lambda r: (r.get("data_quality_score") or 1) < 0.55 + ), + "high_risk_level": share( + lambda r: r.get("risk_level") in ("HIGH", "EXTREME") + ), + "inferred_features": share( + lambda r: "ai_features_inferred_from_history" in (r.get("data_quality_flags") or "") + ), + }, + "by_market": Counter(r["market"] for r in losses).most_common(), + "by_league": Counter(r.get("league_name") for r in losses).most_common(10), + } + + # Top issue tags from betting_brain across losses + issue_counter = Counter() + veto_counter = Counter() + for r in losses: + for tag in (r.get("bb_issues") or "").split(";"): + if tag: + issue_counter[tag] += 1 + for tag in (r.get("bb_vetoes") or "").split(";"): + if tag: + veto_counter[tag] += 1 + diagnostics["top_bb_issues_in_losses"] = issue_counter.most_common(15) + diagnostics["top_bb_vetoes_in_losses"] = veto_counter.most_common(15) + return diagnostics + + +# ── Recommendations ──────────────────────────────────────────────────── +def make_recommendations(rows: List[Dict], agg: Dict[str, Any], + diag: Dict[str, Any]) -> List[Dict[str, Any]]: + recs: List[Dict[str, Any]] = [] + overall = agg.get("overall") or {} + if not overall.get("n_playable_settled"): + return recs + + # Cross-reference market hit rate vs overall — flag chronic losers. + overall_hit = overall.get("hit_rate_pct") or 0.0 + for market, stats in (agg.get("by_market") or {}).items(): + n = stats.get("n_playable_settled") or 0 + hit = stats.get("hit_rate_pct") + roi = stats.get("roi_pct") + if n < 30: + continue + if hit is not None and roi is not None and roi < -10 and hit < overall_hit - 10: + recs.append({ + "type": "drop_market", + "market": market, + "evidence": f"hit={hit}%, roi={roi}%, n={n} — chronic loser", + "suggested_fix": f"Add veto in betting_brain when market=={market} unless overwhelming evidence", + "estimated_loss_prevented_units": round(-(stats.get("unit_profit") or 0), 2), + }) + + # Confidence band tuning — flag bands where ROI < 0 despite passing eşik + for band, stats in (agg.get("by_confidence") or {}).items(): + n = stats.get("n_playable_settled") or 0 + roi = stats.get("roi_pct") + if n >= 40 and roi is not None and roi < -8: + recs.append({ + "type": "raise_confidence_threshold", + "confidence_band": band, + "evidence": f"n={n}, roi={roi}%", + "suggested_fix": f"Raise MIN_BET_SCORE or market_min_conf above {band.split('-')[0]}", + }) + + # Loss diagnostic — if cup matches dominate losses, recommend cup-aware filter + patterns = (diag.get("patterns") or {}) + cup_share = patterns.get("cup_match", (0, 0))[1] + if cup_share >= 25: + recs.append({ + "type": "cup_match_filter", + "evidence": f"{cup_share}% of losses are cup matches", + "suggested_fix": "Tighten betting_brain thresholds for is_cup_match=True picks", + }) + + rev_share = patterns.get("high_htft_reversal_prob (>=0.20)", (0, 0))[1] + if rev_share >= 15: + recs.append({ + "type": "tighten_reversal_check", + "evidence": f"{rev_share}% of losses had HTFT reversal prob >=0.20 (already partial fix)", + "suggested_fix": "Lower reversal threshold in betting_brain from 0.25 to 0.20 for veto trigger", + }) + + rel_share = patterns.get("low_league_reliability (<0.45)", (0, 0))[1] + if rel_share >= 20: + recs.append({ + "type": "league_reliability_filter", + "evidence": f"{rel_share}% of losses in low-reliability leagues (<0.45)", + "suggested_fix": "Add hard veto when odds_reliability<0.45 for non-value-sniper picks", + }) + + return recs + + +# ── CSV / report writers ─────────────────────────────────────────────── +def write_csv(rows: List[Dict], path: str): + if not rows: + return + import csv + fields = list(rows[0].keys()) + with open(path, "w", newline="", encoding="utf-8") as f: + w = csv.DictWriter(f, fieldnames=fields) + w.writeheader() + for r in rows: + w.writerow(r) + + +def write_text_summary(rows: List[Dict], agg: Dict, diag: Dict, + recs: List[Dict], path: str, args): + lines: List[str] = [] + push = lines.append + push("=" * 78) + push("DIAGNOSTIC BACKTEST REPORT") + push("=" * 78) + push(f"Generated: {datetime.now().isoformat(timespec='seconds')}") + push(f"Sample window: start={args.start or f'-{args.days}d'}, end={args.end or 'now'}") + push(f"Max matches: {args.max_matches}") + push(f"Excluded days: {sorted(EXCLUDED_DATES)}") + push("") + push("OVERALL") + push("-" * 78) + overall = agg.get("overall") or {} + for k in ("n_total", "n_playable_settled", "wins", "losses", + "hit_rate_pct", "unit_profit", "staked", "roi_pct"): + push(f" {k:25}: {overall.get(k)}") + push("") + push("PER MARKET") + push("-" * 78) + push(f" {'market':<8} {'n':>6} {'hit%':>7} {'profit':>9} {'roi%':>7}") + for market, s in sorted((agg.get("by_market") or {}).items(), + key=lambda kv: -(kv[1].get("n_playable_settled") or 0)): + push(f" {market:<8} {s.get('n_playable_settled',0):>6} " + f"{str(s.get('hit_rate_pct','')):>7} " + f"{str(s.get('unit_profit','')):>9} " + f"{str(s.get('roi_pct','')):>7}") + push("") + push("PER CALIBRATED CONFIDENCE BAND") + push("-" * 78) + push(f" {'band':<10} {'n':>6} {'hit%':>7} {'roi%':>7}") + for band, s in sorted((agg.get("by_confidence") or {}).items()): + push(f" {band:<10} {s.get('n_playable_settled',0):>6} " + f"{str(s.get('hit_rate_pct','')):>7} " + f"{str(s.get('roi_pct','')):>7}") + push("") + push("PER ODDS BAND") + push("-" * 78) + push(f" {'band':<10} {'n':>6} {'hit%':>7} {'roi%':>7}") + for band, s in sorted((agg.get("by_odds") or {}).items()): + push(f" {band:<10} {s.get('n_playable_settled',0):>6} " + f"{str(s.get('hit_rate_pct','')):>7} " + f"{str(s.get('roi_pct','')):>7}") + push("") + push("LEAGUE vs CUP") + push("-" * 78) + for k, s in (agg.get("by_competition") or {}).items(): + push(f" {k:<8} n={s.get('n_playable_settled',0):>4} " + f"hit={s.get('hit_rate_pct','-')}% roi={s.get('roi_pct','-')}%") + push("") + push("LOSS DIAGNOSTICS") + push("-" * 78) + push(f" total losses: {diag.get('n_losses')}") + push(f" total lost units: {diag.get('total_loss_units')}") + push(f" By market: {diag.get('by_market')}") + push(" Loss patterns (count, % of losses):") + for pattern, (c, pct) in (diag.get("patterns") or {}).items(): + push(f" {pattern:<55} {c:>4} ({pct}%)") + push(" Top betting_brain issues seen in losses:") + for issue, c in (diag.get("top_bb_issues_in_losses") or []): + push(f" {issue:<55} {c}") + push(" Top betting_brain vetoes (in losses — i.e. veto fired but bet still went through value-sniper override):") + for veto, c in (diag.get("top_bb_vetoes_in_losses") or []): + push(f" {veto:<55} {c}") + push("") + push("RECOMMENDATIONS") + push("-" * 78) + if not recs: + push(" (none surfaced — sample too small or no clear pattern)") + for r in recs: + push(f" • [{r['type']}]") + for k, v in r.items(): + if k == "type": + continue + push(f" {k}: {v}") + push("") + push("=" * 78) + with open(path, "w", encoding="utf-8") as f: + f.write("\n".join(lines)) + + +# ── Main loop ───────────────────────────────────────────────────────── +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--days", type=int, default=14, + help="Backwards window from now (default 14)") + parser.add_argument("--max-matches", type=int, default=2000, + help="Hard cap on matches processed (default 2000)") + parser.add_argument("--start", help="Start date YYYY-MM-DD (overrides --days)") + parser.add_argument("--end", help="End date YYYY-MM-DD") + parser.add_argument("--progress-interval", type=int, default=50) + args = parser.parse_args() + + print("=" * 70) + print("DIAGNOSTIC BACKTEST") + print("=" * 70) + print(f"Loading orchestrator...") + orch = get_single_match_orchestrator() + # Warm V25 + V27 + basketball loaders so the first match doesn't pay it + try: + orch._get_v25_predictor() + except Exception as e: + print(f" v25 warmup: {e}") + try: + orch._get_v27_predictor() + except Exception as e: + print(f" v27 warmup: {e}") + + print(f"Fetching match window...") + matches = fetch_match_window(args) + n = len(matches) + print(f" {n} matches selected") + + if not matches: + print("No matches to process. Exiting.") + return + + rows: List[Dict[str, Any]] = [] + errors: List[Tuple[str, str]] = [] + t0 = time.time() + + for i, m in enumerate(matches, start=1): + mid = str(m["match_id"]) + try: + pkg = orch.analyze_match(mid) + if pkg is None: + continue + row = capture_bet_row(m, pkg) + rows.append(row) + except KeyboardInterrupt: + print("\nInterrupted, writing partial results...") + break + except Exception as e: + errors.append((mid, str(e))) + if len(errors) <= 5: + traceback.print_exc() + + if i % args.progress_interval == 0: + elapsed = time.time() - t0 + rate = i / elapsed + eta = (n - i) / rate if rate else 0 + playable_so_far = sum(1 for r in rows if r["playable"]) + print(f" [{i}/{n}] rate={rate:.1f}/s eta={eta/60:.1f}min " + f"playable={playable_so_far} errors={len(errors)}") + + print(f"\nProcessed {len(rows)} rows in {(time.time()-t0):.1f}s " + f"({len(errors)} errors)") + + # Aggregate + print("Aggregating...") + agg = aggregate(rows) + diag = loss_diagnostics(rows) + recs = make_recommendations(rows, agg, diag) + + stamp = datetime.now().strftime("%Y%m%d_%H%M%S") + csv_path = os.path.join(REPORTS_DIR, f"diagnostic_backtest_{stamp}.csv") + json_path = os.path.join(REPORTS_DIR, f"diagnostic_backtest_{stamp}.json") + txt_path = os.path.join(REPORTS_DIR, f"diagnostic_backtest_{stamp}.txt") + + write_csv(rows, csv_path) + with open(json_path, "w", encoding="utf-8") as f: + json.dump({"args": vars(args), "aggregate": agg, "loss_diagnostics": diag, + "recommendations": recs, "errors_sample": errors[:20]}, + f, indent=2, default=str) + write_text_summary(rows, agg, diag, recs, txt_path, args) + + print(f"\nOutputs:") + print(f" CSV: {csv_path}") + print(f" JSON: {json_path}") + print(f" TXT: {txt_path}") + print("\nOverall:", agg.get("overall")) + + +if __name__ == "__main__": + main() diff --git a/ai-engine/scripts/optimize_filters.py b/ai-engine/scripts/optimize_filters.py new file mode 100644 index 0000000..a3cbe56 --- /dev/null +++ b/ai-engine/scripts/optimize_filters.py @@ -0,0 +1,254 @@ +""" +Filter Optimizer +================ +Grid-search over filter thresholds (per market) using the existing +diagnostic_backtest CSV. Finds the (confidence, edge, odds, reliability) +combination that maximizes ROI while keeping bet volume reasonable. + +No re-prediction needed — pure offline simulation on the bets already +captured. Output: per-market optimal thresholds + projected ROI lift + +JSON patch ready to drop into config/market_thresholds.json. + +Usage: + python scripts/optimize_filters.py + python scripts/optimize_filters.py --csv reports/diagnostic_backtest_X.csv + python scripts/optimize_filters.py --min-bets 20 --apply +""" + +import argparse +import json +import os +import sys +import glob +import itertools +from typing import List, Dict, Tuple, Optional +import pandas as pd +import numpy as np + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +AI_ENGINE_DIR = os.path.dirname(SCRIPT_DIR) +sys.path.insert(0, AI_ENGINE_DIR) + +REPORTS_DIR = os.path.join(AI_ENGINE_DIR, "reports") +CONFIG_PATH = os.path.join(AI_ENGINE_DIR, "config", "market_thresholds.json") + + +def latest_csv() -> Optional[str]: + files = sorted(glob.glob(os.path.join(REPORTS_DIR, "diagnostic_backtest_*.csv")), + key=os.path.getmtime, reverse=True) + return files[0] if files else None + + +def load_backtest(path: str) -> pd.DataFrame: + df = pd.read_csv(path) + # Keep only playable + settled bets — these are what the SYSTEM + # actually placed and got an outcome on. + pdf = df[(df["playable"] == True) & (df["won"].notna())].copy() + pdf["won"] = pdf["won"].astype(bool) + pdf["calibrated_confidence"] = pdf["calibrated_confidence"].fillna(0) + pdf["ev_edge"] = pdf["ev_edge"].fillna(0) + pdf["odds"] = pdf["odds"].fillna(0) + pdf["odds_reliability"] = pdf["odds_reliability"].fillna(0.35) + return pdf + + +def evaluate(pdf: pd.DataFrame, mask) -> Dict: + kept = pdf[mask] + if len(kept) == 0: + return {"n": 0, "hit_pct": 0, "profit": 0, "staked": 0, "roi_pct": 0} + wins = kept["won"].sum() + profit = kept["unit_profit"].sum() + staked = kept["stake_units"].sum() + return { + "n": int(len(kept)), + "hit_pct": round(100.0 * wins / len(kept), 2), + "profit": round(profit, 3), + "staked": round(staked, 3), + "roi_pct": round(100.0 * profit / staked, 2) if staked else 0, + } + + +def grid_search_market( + market_df: pd.DataFrame, + market: str, + min_bets: int = 15, +) -> List[Dict]: + """Try a wide grid of (min_conf, min_edge, max_edge, min_odds, max_odds, + min_reliability) combinations. Return all candidates with n >= min_bets, + sorted by ROI descending.""" + + conf_options = [0, 45, 50, 55, 60, 65, 70] + min_edge_options = [-1.0, -0.05, 0.0, 0.03, 0.05, 0.08] + max_edge_options = [10.0, 0.30, 0.20, 0.15, 0.10] + min_odds_options = [1.20, 1.30, 1.40, 1.50, 1.60, 1.80] + max_odds_options = [10.0, 3.0, 2.5, 2.2, 2.0] + rel_options = [0.0, 0.30, 0.45, 0.55] + consensus_options = ["any", "agree_or_null"] + + candidates: List[Dict] = [] + for mc, mine, maxe, mino, maxo, mrel, cons in itertools.product( + conf_options, min_edge_options, max_edge_options, + min_odds_options, max_odds_options, rel_options, consensus_options, + ): + if mine >= maxe or mino >= maxo: + continue + mask = ( + (market_df["calibrated_confidence"] >= mc) + & (market_df["ev_edge"] >= mine) + & (market_df["ev_edge"] <= maxe) + & (market_df["odds"] >= mino) + & (market_df["odds"] <= maxo) + & (market_df["odds_reliability"] >= mrel) + ) + if cons == "agree_or_null": + mask &= market_df["v27_consensus"] != "DISAGREE" + result = evaluate(market_df, mask) + if result["n"] >= min_bets: + candidates.append({ + "market": market, + "min_conf": mc, + "min_edge": mine, + "max_edge": maxe, + "min_odds": mino, + "max_odds": maxo, + "min_reliability": mrel, + "consensus": cons, + **result, + }) + candidates.sort(key=lambda r: (r["roi_pct"], r["n"]), reverse=True) + return candidates + + +def baseline(pdf: pd.DataFrame, market: str) -> Dict: + m = pdf[pdf["market"] == market] + return evaluate(m, pd.Series([True] * len(m), index=m.index)) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--csv", default=None, help="Override CSV path") + parser.add_argument("--min-bets", type=int, default=15, + help="Min bet count to consider a config valid") + parser.add_argument("--top-k", type=int, default=3, + help="Show top K configs per market") + parser.add_argument("--apply", action="store_true", + help="Patch config/market_thresholds.json with winners") + args = parser.parse_args() + + csv_path = args.csv or latest_csv() + if not csv_path or not os.path.exists(csv_path): + print("No backtest CSV found.") + return + print(f"Loading: {csv_path}") + pdf = load_backtest(csv_path) + print(f"Playable + settled bets: {len(pdf)}") + + markets = sorted(pdf["market"].dropna().unique()) + print(f"Markets: {markets}\n") + + all_winners: Dict[str, Dict] = {} + + for market in markets: + market_df = pdf[pdf["market"] == market] + n_total = len(market_df) + base = baseline(pdf, market) + + print(f"\n{'=' * 78}") + print(f"MARKET: {market} (n={n_total} baseline_roi={base['roi_pct']}%)") + print(f"{'=' * 78}") + + if n_total < args.min_bets * 2: + print(f" Sample too small to grid-search reliably (n={n_total}). Skip.") + continue + + candidates = grid_search_market(market_df, market, args.min_bets) + if not candidates: + print(f" No config kept >= {args.min_bets} bets. Skip.") + continue + + # Pareto-ish: show top-K by ROI but also one that keeps higher bet count + winners = candidates[:args.top_k] + keep_high_volume = None + for c in candidates: + if c["n"] >= max(40, n_total // 3) and c["roi_pct"] > base["roi_pct"]: + keep_high_volume = c + break + + print(f" {'rank':<5}{'n':>5}{'hit%':>7}{'roi%':>8} " + f"{'min_conf':>9}{'min_edge':>10}{'max_edge':>10}" + f"{'min_odds':>10}{'max_odds':>10}{'min_rel':>9}{'cons':>15}") + for i, w in enumerate(winners, 1): + print(f" {i:<5}{w['n']:>5}{w['hit_pct']:>7}{w['roi_pct']:>+8}" + f" {w['min_conf']:>9}{w['min_edge']:>+10.3f}{w['max_edge']:>+10.3f}" + f"{w['min_odds']:>10.2f}{w['max_odds']:>10.2f}" + f"{w['min_reliability']:>9.2f}{w['consensus']:>15}") + if keep_high_volume and keep_high_volume not in winners: + print(f" high {keep_high_volume['n']:>5}{keep_high_volume['hit_pct']:>7}" + f"{keep_high_volume['roi_pct']:>+8}" + f" {keep_high_volume['min_conf']:>9}" + f"{keep_high_volume['min_edge']:>+10.3f}" + f"{keep_high_volume['max_edge']:>+10.3f}" + f"{keep_high_volume['min_odds']:>10.2f}" + f"{keep_high_volume['max_odds']:>10.2f}" + f"{keep_high_volume['min_reliability']:>9.2f}" + f"{keep_high_volume['consensus']:>15}") + + # Pick a "good" recommendation: best ROI with n >= min_bets + # If best ROI is still negative, flag the market as unprofitable. + best = winners[0] + all_winners[market] = best + if best["roi_pct"] <= 0: + print(f" ⚠️ Best config still loses money (ROI={best['roi_pct']}%) " + f"— consider muting this market entirely.") + else: + print(f" ✅ Best config: ROI={best['roi_pct']}% on {best['n']} bets " + f"(vs baseline {base['roi_pct']}% on {n_total}).") + + # ─── Aggregate impact ──────────────────────────────────────────────── + print(f"\n{'=' * 78}") + print("AGGREGATE IMPACT (if we apply each market's best config)") + print(f"{'=' * 78}") + total_old_bets = total_old_profit = total_old_staked = 0 + total_new_bets = total_new_profit = total_new_staked = 0 + for market, win in all_winners.items(): + base = baseline(pdf, market) + total_old_bets += base["n"] + total_old_profit += base["profit"] + total_old_staked += base["staked"] + total_new_bets += win["n"] + total_new_profit += win["profit"] + total_new_staked += win["staked"] + base_roi = 100.0 * total_old_profit / total_old_staked if total_old_staked else 0 + new_roi = 100.0 * total_new_profit / total_new_staked if total_new_staked else 0 + print(f" Baseline: {total_old_bets:>4} bets, " + f"profit={total_old_profit:+.2f}u, ROI={base_roi:+.2f}%") + print(f" Optimized: {total_new_bets:>4} bets, " + f"profit={total_new_profit:+.2f}u, ROI={new_roi:+.2f}%") + print(f" Δ: {total_new_bets - total_old_bets:+d} bets, " + f"{total_new_profit - total_old_profit:+.2f}u, " + f"{new_roi - base_roi:+.2f}pp") + + # ─── Write JSON patch ──────────────────────────────────────────────── + patch_path = os.path.join(REPORTS_DIR, "filter_optimization_patch.json") + patch = {market: { + "min_calibrated_confidence": win["min_conf"], + "min_ev_edge": win["min_edge"], + "max_ev_edge": win["max_edge"], + "min_odds": win["min_odds"], + "max_odds": win["max_odds"], + "min_odds_reliability": win["min_reliability"], + "require_v27_agree": win["consensus"] == "agree_or_null", + "expected_n_bets": win["n"], + "expected_hit_pct": win["hit_pct"], + "expected_roi_pct": win["roi_pct"], + } for market, win in all_winners.items()} + with open(patch_path, "w", encoding="utf-8") as f: + json.dump(patch, f, indent=2) + print(f"\nPatch saved: {patch_path}") + + if args.apply: + print("\n--apply flag set. Patching not implemented yet — " + "review the patch JSON and update config/market_thresholds.json manually.") + +if __name__ == "__main__": + main() diff --git a/ai-engine/scripts/test_score_coherence.py b/ai-engine/scripts/test_score_coherence.py new file mode 100644 index 0000000..9d257db --- /dev/null +++ b/ai-engine/scripts/test_score_coherence.py @@ -0,0 +1,54 @@ +"""Smoke test for the score-coherence filter using the LAFC vs Sounders +1-0 scenario from production. Verifies that markets that contradict the +predicted score are correctly excluded from the coherent set, and that +the markets the model got right are all included. +""" +import os, sys +sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from services.betting_brain import BettingBrain + +brain = BettingBrain() +pkg = { + "score_prediction": {"ft": "1-0", "ht": "0-0"}, +} +coh = brain._score_consistent_markets(pkg) +print(f"Predicted: 1-0 (HT 0-0)") +print(f"Coherent set size: {len(coh)}") +print() + +# Each pick the system actually offered for the LAFC match, with whether +# it was the *actual* winning pick. +test_picks = [ + ("MS", "1", True, "correct"), + ("MS", "2", False, "wrong"), + ("MS", "X", False, "wrong"), + ("DC", "1X", True, "correct"), + ("DC", "12", True, "correct"), + ("DC", "X2", False, "wrong"), + ("OU25", "Üst", False, "WRONG — system featured this"), + ("OU25", "Alt", True, "correct"), + ("OU35", "Alt", True, "correct"), + ("OU35", "Üst", False, "wrong"), + ("BTTS", "Var", False, "wrong"), + ("BTTS", "Yok", True, "correct"), + ("HT", "X", True, "correct"), + ("HT", "1", False, "wrong"), + ("HTFT", "X/1", True, "correct"), + ("HTFT", "1/1", False, "wrong (HT was 0-0)"), + ("HT_OU05", "Üst", False, "wrong"), + ("HT_OU05", "Alt", True, "correct"), + ("OE", "Çift", False, "wrong (1 is odd)"), + ("OE", "Tek", True, "correct"), +] + +print(f"{'market':<10}{'pick':<10}{'real-win?':<12}{'in-coherent?':<14}{'match?'}") +print("-" * 60) +ok = 0 +for market, pick, would_win, note in test_picks: + in_coh = (market, pick) in coh + match = "✓" if in_coh == would_win else "✗ MISMATCH" + if in_coh == would_win: ok += 1 + print(f"{market:<10}{pick:<10}{str(would_win):<12}{str(in_coh):<14}{match} {note}") + +print() +print(f"Result: {ok}/{len(test_picks)} picks correctly classified") diff --git a/ai-engine/services/betting_brain.py b/ai-engine/services/betting_brain.py index 53ab84c..306cbe0 100644 --- a/ai-engine/services/betting_brain.py +++ b/ai-engine/services/betting_brain.py @@ -39,6 +39,31 @@ class BettingBrain: SNIPER_BLOCKED_MARKETS = {"HT", "HTFT", "OE", "CARDS", "HT_OU05", "HT_OU15"} + # Markets that lose money under every filter combination per the + # diagnostic backtest (1000 matches). Until calibration is rebuilt for + # these specifically, force NO_BET. Re-evaluate after each backtest run. + MUTED_MARKETS = {"BTTS"} + + # Per-market optimal filter envelopes derived from the diagnostic + # backtest grid search (reports/filter_optimization_patch.json). Any + # pick falling OUTSIDE this envelope is vetoed. Tightens the playable + # band to the ROI-positive zone identified empirically. + # + # Each entry: {min_conf, min_edge, max_edge, min_odds, max_odds, + # min_reliability, require_v27_agree} + MARKET_OPTIMAL_FILTERS = { + "MS": { + "min_edge": -0.05, "max_edge": 0.15, + "min_odds": 1.20, "max_odds": 10.0, + "min_reliability": 0.0, "require_v27_agree": True, + }, + "OU25": { + "min_edge": -1.0, "max_edge": 0.15, + "min_odds": 1.80, "max_odds": 10.0, + "min_reliability": 0.0, "require_v27_agree": False, + }, + } + MARKET_PRIORS = { "DC": 4.0, "OU15": 3.0, @@ -86,6 +111,36 @@ class BettingBrain: watchlist.sort(key=self._candidate_sort_key, reverse=True) no_value.sort(key=self._candidate_sort_key, reverse=True) + # ── SCORE COHERENCE FILTER ────────────────────────────────────── + # If the model also produced a score prediction (e.g. 1-0), pick + # main_pick from the subset of candidates that would WIN at that + # score. Stops the system from recommending OU25 Üst while also + # predicting 1-0 (only 1 goal). Falls back to original list if no + # coherent candidate exists. + coherent_set = self._score_consistent_markets(guarded) + coherent_flag = False + if coherent_set: + def is_coherent(row: Dict[str, Any]) -> bool: + m = str(row.get("market") or "") + p = str(row.get("pick") or "") + return (m, p) in coherent_set + + approved_coh = [r for r in approved if is_coherent(r)] + watchlist_coh = [r for r in watchlist if is_coherent(r)] + + if approved_coh: + approved = approved_coh + coherent_flag = True + elif watchlist_coh: + # No coherent BET candidates — at least promote a coherent + # watch over an incoherent BET. + watchlist = watchlist_coh + [r for r in watchlist if not is_coherent(r)] + coherent_flag = True + # Tag every row so the UI/diagnostics can see what happened + for row in judged_rows.values(): + row.setdefault("betting_brain", {}) + row["betting_brain"]["score_coherent"] = is_coherent(row) + original_main = guarded.get("main_pick") or {} main_pick = None decision = "NO_BET" @@ -142,10 +197,11 @@ class BettingBrain: rejected = [d for d in decisions if d.get("action") == "REJECT"] guarded["betting_brain"] = { - "version": "judge-v1", + "version": "judge-v2-score-coherent", "decision": decision, "reason": decision_reason, "main_pick_key": main_key or None, + "score_coherent_filter_applied": coherent_flag, "approved_count": len(approved), "watchlist_count": len(watchlist), "rejected_count": len(rejected), @@ -243,6 +299,44 @@ class BettingBrain: if play_score < 50.0 and not is_value_sniper: vetoes.append("play_score_too_low") + # ── HARD EV-EDGE VETO ─────────────────────────────────────────── + # Diagnostic backtest (1000 maç, 524 settled bet) gösterdi ki + # ev_edge < 0 olan bahisler %76 of all picks ve ROI yaklaşık -%16. + # ev_edge < 0 = "model market'in altında olasılık veriyor" = vig'i + # yiyemeyeceğimiz negative-EV bahis. Hard veto: oynama. + # Sniper override hâlâ geçer (yüksek convicted alternatif pick'ler). + if ev_edge < 0.0 and not is_value_sniper: + vetoes.append("negative_ev_edge") + issues.append(f"ev_edge={ev_edge:.3f}_below_zero") + # Trap edge: bizim diagnostic backtest'te ev_edge >= 0.20 olan tüm + # bahisler kaybediyordu (n=10, hepsi -%25+ ROI). Model market'i bu + # kadar yanlış buluyorsa muhtemelen modelin kendisinin yanlış olduğu + # bir senaryo (eksik info, tuhaf maç, vs.) — oynama. + if ev_edge >= 0.20 and not is_value_sniper: + vetoes.append("ev_edge_too_high_trap") + issues.append(f"ev_edge={ev_edge:.3f}_trap_range") + + # ── MUTED MARKETS (grid search showed no profitable config) ── + if market in self.MUTED_MARKETS and not is_value_sniper: + vetoes.append("market_muted_by_backtest") + issues.append(f"market_{market}_muted") + + # ── PER-MARKET OPTIMAL ENVELOPE (from grid search) ── + envelope = self.MARKET_OPTIMAL_FILTERS.get(market) + if envelope and not is_value_sniper: + if ev_edge < envelope["min_edge"]: + vetoes.append("outside_envelope_edge_low") + if ev_edge > envelope["max_edge"]: + vetoes.append("outside_envelope_edge_high") + if odds and odds < envelope["min_odds"]: + vetoes.append("outside_envelope_odds_low") + if odds and odds > envelope["max_odds"]: + vetoes.append("outside_envelope_odds_high") + if odds_rel < envelope["min_reliability"]: + vetoes.append("outside_envelope_reliability_low") + if envelope["require_v27_agree"] and consensus != "AGREE": + vetoes.append("outside_envelope_v27_must_agree") + if divergence is not None: if divergence >= self.HARD_DIVERGENCE and not is_value_sniper: score -= 42.0 @@ -635,6 +729,112 @@ class BettingBrain: return self._safe_float(ou25.get(key)) if key else None return None + def _score_consistent_markets(self, package: Dict[str, Any]) -> Optional[set]: + """Build the set of (market, pick) tuples that WOULD WIN if the + model's own score prediction came true. We use this as a coherence + gate: if the model is confident about a 1-0 outcome but also wants + to play OU25 Üst, those two beliefs contradict each other — and the + score prediction is the more informative one because it aggregates + all market signals into a single most-likely scenario. + + Returns None if the score prediction is missing or malformed; in + that case we skip the coherence check. + """ + score_pred = package.get("score_prediction") or {} + ft_raw = str(score_pred.get("ft") or score_pred.get("full_time") or "").strip() + ht_raw = str(score_pred.get("ht") or score_pred.get("half_time") or "").strip() + + def parse(s: str) -> Optional[Tuple[int, int]]: + for sep in ("-", ":", "–"): + if sep in s: + parts = s.split(sep, 1) + try: + return int(parts[0].strip()), int(parts[1].strip()) + except (ValueError, IndexError): + return None + return None + + ft = parse(ft_raw) + if ft is None: + return None + ht = parse(ht_raw) + + fh, fa = ft + total = fh + fa + consistent: set = set() + + # MS / 1X2 — single outcome + if fh > fa: + consistent.add(("MS", "1")) + consistent.add(("ML", "1")) + elif fh < fa: + consistent.add(("MS", "2")) + consistent.add(("ML", "2")) + else: + consistent.add(("MS", "X")) + consistent.add(("ML", "X")) + + # DC — two of three legs win at any score + if fh >= fa: + consistent.add(("DC", "1X")) + if fh <= fa: + consistent.add(("DC", "X2")) + if fh != fa: + consistent.add(("DC", "12")) + + # Over/Under main lines + for line, market in ((0.5, "OU05"), (1.5, "OU15"), + (2.5, "OU25"), (3.5, "OU35"), (4.5, "OU45")): + if total > line: + for p in ("Üst", "Ust", "Over", "OVER"): + consistent.add((market, p)) + elif total < line: + for p in ("Alt", "Under", "UNDER"): + consistent.add((market, p)) + # total == line → push, neither side wins → don't add + + # BTTS — both teams score + if fh > 0 and fa > 0: + for p in ("Var", "KG Var", "Yes", "YES"): + consistent.add(("BTTS", p)) + else: + for p in ("Yok", "KG Yok", "No", "NO"): + consistent.add(("BTTS", p)) + + # OE — total goals odd/even + if total % 2 == 1: + for p in ("Tek", "Odd", "ODD"): + consistent.add(("OE", p)) + else: + for p in ("Çift", "Cift", "Even", "EVEN"): + consistent.add(("OE", p)) + + # HT-only markets (need HT score) + if ht is not None: + hh, ha = ht + ht_total = hh + ha + if hh > ha: + consistent.add(("HT", "1")) + elif hh < ha: + consistent.add(("HT", "2")) + else: + consistent.add(("HT", "X")) + for line, market in ((0.5, "HT_OU05"), (1.5, "HT_OU15"), (2.5, "HT_OU25")): + if ht_total > line: + for p in ("Üst", "Ust", "Over"): + consistent.add((market, p)) + elif ht_total < line: + for p in ("Alt", "Under"): + consistent.add((market, p)) + + # HTFT — single combo + ht_o = "1" if hh > ha else "2" if hh < ha else "X" + ft_o = "1" if fh > fa else "2" if fh < fa else "X" + consistent.add(("HTFT", f"{ht_o}/{ft_o}")) + consistent.add(("HTFT", f"{ht_o}{ft_o}")) + + return consistent + def _triple_value(self, package: Dict[str, Any], key: Optional[str]) -> Optional[Dict[str, Any]]: if not key: return None diff --git a/ai-engine/services/orchestrator/data_loader.py b/ai-engine/services/orchestrator/data_loader.py index fa34a28..9d2f133 100644 --- a/ai-engine/services/orchestrator/data_loader.py +++ b/ai-engine/services/orchestrator/data_loader.py @@ -449,6 +449,12 @@ class DataLoaderMixin: return 1.5, 1.2 return weighted_for / total_weight, weighted_against / total_weight + # Approximate European season window — Eredivisie/PL/La Liga start late + # July / mid-August, end May. Using 300 days as a buffer covers most + # competitions while excluding "career points" from previous seasons. + # When a proper seasons table lands this should query season boundaries. + _SEASON_LOOKBACK_MS = 300 * 24 * 60 * 60 * 1000 + def _estimate_league_position( self, cur: RealDictCursor, @@ -458,6 +464,7 @@ class DataLoaderMixin: ) -> int: if not team_id or not league_id: return 10 + season_start_ms = before_date_ms - self._SEASON_LOOKBACK_MS try: cur.execute( """ @@ -478,6 +485,7 @@ class DataLoaderMixin: AND m.score_home IS NOT NULL AND m.score_away IS NOT NULL AND m.mst_utc < %s + AND m.mst_utc >= %s UNION ALL SELECT m.away_team_id AS team_id, @@ -492,11 +500,15 @@ class DataLoaderMixin: AND m.score_home IS NOT NULL AND m.score_away IS NOT NULL AND m.mst_utc < %s + AND m.mst_utc >= %s ) tm GROUP BY tm.team_id ORDER BY points DESC """, - (league_id, before_date_ms, league_id, before_date_ms), + ( + league_id, before_date_ms, season_start_ms, + league_id, before_date_ms, season_start_ms, + ), ) rows = cur.fetchall() if not rows: diff --git a/ai-engine/services/orchestrator/feature_builder.py b/ai-engine/services/orchestrator/feature_builder.py index d1c5d4f..dd08493 100644 --- a/ai-engine/services/orchestrator/feature_builder.py +++ b/ai-engine/services/orchestrator/feature_builder.py @@ -225,20 +225,43 @@ class FeatureBuilderMixin: if enrichment_failures: print(f"⚠️ Enrichment partial failures for {data.match_id}: {', '.join(enrichment_failures)}") + # ── Cup game detection (used by upset engine + elo dampening below) ── + _league_name_lower = (getattr(data, 'league_name', '') or '').lower() + _cup_keywords = ("kupa", "cup", "coupe", "copa", "coppa", "pokal", + "trophy", "shield", "ziraat", "süper kupa", "super cup", + "beker", "taça", "taca") + _is_cup_match = any(kw in _league_name_lower for kw in _cup_keywords) + + # ── League size hint: top European leagues 18-20 teams, lower 16-24 ── + # We don't have a per-league team count, so fall back to 20 (standard). + # When standings infra lands this should pull from seasons table. + _league_total_teams = 20 + # Upset engine features upset_atmosphere, upset_motivation, upset_fatigue = 0.0, 0.0, 0.0 try: upset_engine = get_upset_engine() + # Use the real position estimates from data_loader; fall back to mid- + # table (10) only when the loader couldn't compute one. Hardcoding 10 + # for every team made motivation_score collapse to 0 for everyone. + _home_pos = getattr(data, 'home_position', None) + _away_pos = getattr(data, 'away_position', None) + if _home_pos is None or _home_pos <= 0: + _home_pos = 10 + if _away_pos is None or _away_pos <= 0: + _away_pos = 10 upset_feats = upset_engine.get_features( home_team_name=getattr(data, 'home_team_name', '') or '', home_team_id=data.home_team_id, away_team_name=getattr(data, 'away_team_name', '') or '', league_name=getattr(data, 'league_name', '') or '', - home_position=10, - away_position=10, + home_position=_home_pos, + away_position=_away_pos, match_date_ms=data.match_date_ms, + is_cup_match=_is_cup_match, home_days_rest=int(home_rest), away_days_rest=int(away_rest), + total_teams=_league_total_teams, ) upset_atmosphere = upset_feats.get('upset_atmosphere', 0.0) upset_motivation = upset_feats.get('upset_motivation', 0.0) @@ -276,15 +299,10 @@ class FeatureBuilderMixin: is_season_start = 1.0 if match_month in (7, 8, 9) else 0.0 is_season_end = 1.0 if match_month in (5, 6) else 0.0 - # ── Cup game detection: dampen home advantage in feature space ── - _league_name = (getattr(data, 'league_name', '') or '').lower() - _cup_keywords = ("kupa", "cup", "coupe", "copa", "coppa", "pokal", - "trophy", "shield", "ziraat", "süper kupa", "super cup") - _is_cup = any(kw in _league_name for kw in _cup_keywords) - # ── Derived / Interaction features (V27) ── # Cup games: home ELO advantage is ~30% weaker (rotation, lower motivation) - elo_diff = (home_elo - away_elo) * (0.70 if _is_cup else 1.0) + # Uses _is_cup_match computed earlier (before upset engine call). + elo_diff = (home_elo - away_elo) * (0.70 if _is_cup_match else 1.0) form_elo_diff = home_form_elo_val - away_form_elo_val attack_vs_defense_home = data.home_goals_avg - data.away_conceded_avg attack_vs_defense_away = data.away_goals_avg - data.home_conceded_avg diff --git a/mds/SESSION_HANDOFF.md b/mds/SESSION_HANDOFF.md new file mode 100644 index 0000000..0b8a3a1 --- /dev/null +++ b/mds/SESSION_HANDOFF.md @@ -0,0 +1,261 @@ +# SESSION HANDOFF — iddaai sistem durumu + +**Son güncelleme**: 2026-05-25 ~20:30 +**Hedef**: Başka makinede / yeni Claude session'ında bu doc tek başına okunup işin nerede kaldığı anlaşılabilmeli. + +--- + +## 🎯 Üst-seviye hedef + +Sistem **maç başı-1 saat** kullanıcı tetiklemesiyle çalışacak. Bahis uzmanı seviyesinde: +- **main_pick + value_pick** (sistemin önerdiği) +- **Tüm market olasılıkları** (MS, HT, OU05-45, BTTS, OE, DC, HTFT, HCAP, Cards, Corners) +- **Net HT + FT skoru** + **Top-5 olası skor dağılımı** +- **Evidence panel**: lineup impact, son 5 maç, h2h, hakem profili, benzer-oran-band geçmişi + +Ürün modeli: hem user kendi bahisini oynar, hem sistem para kazanırsa abonelik satılır. +Hedef ROI: **≥%10**. Günde **3-5 kaliteli bahis**. + +Detaylı requirements doc: bu dosyanın altında, "Requirements Spec" bölümü. + +--- + +## 🟢 Şu an arka planda KOŞAN işler + +### 1. Validation backtest (LOCAL — bu laptop) +- **Script**: `ai-engine/scripts/diagnostic_backtest.py` +- **Komut**: `python scripts/diagnostic_backtest.py --start 2026-05-01 --end 2026-05-14 --max-matches 1500` +- **Log**: `ai-engine/validation_full.log` (OneDrive senkronize) +- **Çıkış**: bittiğinde `ai-engine/reports/diagnostic_backtest_.{csv,json,txt}` +- **Tahmini bitiş**: 2026-05-25 ~22:00 (yaklaşık) +- **Amaç**: Yeni kodla (calibrator + ev_edge veto + envelope + coherence + BTTS mute) **out-of-sample** doğrulama +- **Risk**: Laptop uyursa ölür. Bitmesini beklemen lazım VEYA partial sonuçla devam. + +```powershell +# Status check (kendin) +$log='C:\Users\fahri\OneDrive\المستندات\GitHub\iddaai\iddaai-be\ai-engine\validation_full.log' +Select-String $log 'rate=|Outputs:' | Select-Object -Last 3 | ForEach-Object {$_.Line} +``` + +### 2. Feeder historical scan (REMOTE — Pi server) +- **Konum**: SSH @ haruncan@95.70.252.214:2222 → docker container `iddaai-be` → pm2 +- **PM2 process**: `feeder-historical` (id=1) +- **Log rotation**: pm2-logrotate kurulu (max 30MB/dosya, 3 dosya, gzip) +- **Davranış**: 2026-05-03'ten geriye 2023-06-01'e kadar mackolik'ten odds/lineup patch +- **Otomatik restart**: 502 olunca 30 sn delay sonra restart (max 1000 kez) +- **Beklenen süre**: 24-72 saat + +```bash +# Status (kendin SSH'la) +sudo docker exec iddaai-be pm2 list +sudo docker exec iddaai-be pm2 logs feeder-historical --lines 30 --nostream +``` + +--- + +## 📝 Bu seansta yapılan KOD değişiklikleri + +Hepsi local repo'da, OneDrive senkronize edecek, başka makinede pull etmesen de açtığında orada olacak. + +### A. Settlement / data layer +| Dosya | Değişiklik | +|---|---| +| `iddaai-be/prisma.config.ts` | `.env` fallback ekledim (`.env.local` üstüne) — `prisma generate` çalışsın diye | +| `iddaai-be/src/tasks/prediction-settlement.market-resolver.ts` | DC parser ayraçsız "1X/X2/12" kabul ediyor + HT_OU05/HT_OU15/HT_OU25 resolver eklendi | +| `iddaai-be/src/tasks/feature-enrichment.task.ts` **(YENİ)** | Cron 08:15 — eksik football_ai_features row insert + odds_movement SQL backfill | +| `iddaai-be/src/tasks/python-enrichment.task.ts` **(YENİ)** | Cron 08:25 — Python `enrich_ai_features.py` subprocess | +| `iddaai-be/src/tasks/tasks.module.ts` | İki yeni task register | +| `iddaai-be/src/scripts/run-feature-enrichment.ts` **(YENİ)** | Manuel one-shot trigger | + +### B. AI engine — betting brain +`iddaai-be/ai-engine/services/betting_brain.py` — büyük revizyon: +- **HARD_MIN_SAMPLES = 50** floor (calibrator bypass <50 sample) +- **`ev_edge < 0.0` HARD VETO** (`negative_ev_edge`) +- **`ev_edge >= 0.20` HARD VETO** (`ev_edge_too_high_trap`) +- **`MUTED_MARKETS = {"BTTS"}`** — backtest no profitable config bulduğu için +- **`MARKET_OPTIMAL_FILTERS`** — MS ve OU25 için grid-search'ten gelen optimal envelope +- **`_score_consistent_markets()`** — skor tahminine uymayan picks elimine +- **`judge()` score coherence filter** — main_pick coherent set'ten seçilir +- **HTFT reversal cross-check** — Man City 1/2 senaryosu + +### C. AI engine — model & calibration +| Dosya | Değişiklik | +|---|---| +| `ai-engine/models/calibration.py` | HARD_MIN_SAMPLES floor + sample-weighted blend formülü değişti | +| `ai-engine/models/calibration/*.pkl` | **10 calibrator retrain** (ms_home/draw/away, ou15/25/35, btts, ht_home/draw/away) — 4989-5000 sample her biri | + +### D. AI engine — orchestrator feature builder +`ai-engine/services/orchestrator/feature_builder.py`: +- Hardcoded `home_position=10, away_position=10` → real `data.home_position` kullanılıyor +- Cup detection upper'a taşındı, `is_cup_match` UpsetEngine'e geçiyor +- Total teams parametresi UpsetEngine'e geçiyor + +`ai-engine/services/orchestrator/data_loader.py`: +- `_estimate_league_position` artık **sezon filtresi** (son 300 gün) kullanıyor + +### E. AI engine — scripts (yeni) +| Dosya | Ne yapıyor | +|---|---| +| `ai-engine/scripts/diagnostic_backtest.py` | Per-bet diagnostic backtest (CSV+JSON+TXT output) | +| `ai-engine/scripts/analyze_backtest_csv.py` | Backtest CSV üzerinde root-cause hipotez testleri | +| `ai-engine/scripts/optimize_filters.py` | Grid search per-market optimal threshold | +| `ai-engine/scripts/compare_backtests.py` | İki CSV karşılaştırması verdict ile | +| `ai-engine/scripts/test_score_coherence.py` | Coherence filter smoke test (LAFC senaryosu) | + +### F. Social poster modülü (NestJS) +| Dosya | Değişiklik | +|---|---| +| `src/modules/social-poster/social-poster.service.ts` | Cron 15→10 dk, window 10-60, MAX_POSTS_PER_RUN, getHealthStatus() | +| `src/modules/social-poster/image-renderer.service.ts` | SEO filename + metadata sidecar (.json) | +| `src/modules/social-poster/caption-generator.service.ts` | SEO hashtag stratejisi (12 küratör tag) | +| `src/modules/social-poster/social-poster.controller.ts` | `/health` public + `/preview-png/:matchId` + `/run-now` endpoints | +| `mds/SOCIAL_POSTER_SETUP.md` **(YENİ)** | Env vars + API key alma adımları + test komutları | + +### G. Modern image rendering (deneme) +| Dosya | Açıklama | +|---|---| +| `src/scripts/render-social-card-v3.ts` | satori + resvg-js ile modern HTML→PNG rendering (Twemoji top + bayrak) | +| `src/modules/social-poster/assets/*.svg` | Twemoji futbol/basket/bayrak SVG'leri | + +### H. Yapılan DB değişiklikleri (idempotent — tekrar koşturulursa sorun yok) +| İşlem | Etki | +|---|---| +| `football_ai_features` 4008+ satır backfill | Son 60 günün FT maçları için feature row var artık (calculator_ver=feature_enrichment_task_v1) | +| Python enrichment koştu | h2h, referee, possession, league_avg, implied_* hepsi gerçek değerlerle dolu (181,614+ satır enriched) | +| Calibrator dosyaları yazıldı | `ai-engine/models/calibration/*.pkl` overwritten | + +--- + +## 📂 Önemli dosya konumları (OneDrive synced) + +``` +iddaai-be/ +├── mds/ +│ ├── SESSION_HANDOFF.md ← BU DOSYA +│ └── SOCIAL_POSTER_SETUP.md ← social poster env+keys +├── ai-engine/ +│ ├── reports/ ← BACKTEST CIKTILARI +│ │ ├── diagnostic_backtest_*.csv,json,txt +│ │ └── filter_optimization_patch.json +│ ├── validation_full.log ← validation backtest canlı log +│ ├── diagnostic_backtest_run.log ← önceki backtest log +│ ├── enrichment_run3.log ← enrichment koşma log +│ └── calibration_run.log ← calibrator retrain log +├── public/predictions/ ← render edilmiş social card PNG/JSON +└── src/scripts/ ← tüm yeni script'ler +``` + +--- + +## 🔑 Erişim bilgileri + +### Pi sunucu (feeder + prod stack) +- **SSH**: `haruncan@95.70.252.214:2222` +- **Şifre**: `M594xH%$iM&4MM` +- **Plink kullan**: `~/plink.exe -ssh -P 2222 -pw '' -hostkey 'SHA256:iq0YVI/4J897sf9dkksI7QzetpLCD0l57ZMX4UissI8' haruncan@95.70.252.214` +- **Docker**: `iddaai-be`, `iddaai-ai-engine`, `iddaai-fe`, `iddaai-postgres`, `iddaai-redis`, `gitea` + +### DB (uzak Postgres @ Pi) +- **SSH tunnel function**: `iddaai-db` PowerShell fonksiyonu (yerel makinedeki profile'da kayıtlı) +- **Tunnel: localhost:5432 → Pi:5432** +- **Connection string**: `postgresql://iddaai_user:IddaA1_S4crET!@localhost:5432/iddaai_db?schema=public` +- **MCP**: Claude'un postgres MCP'si bu tunnel üzerinden çalışıyor (restricted mode, read-only) + +--- + +## 📊 BACKTEST sonuçları geçmişi + +### Backtest #1 — In-sample grid search (2026-05-11 → 05-24, 1000 maç) +- **CSV**: `ai-engine/reports/diagnostic_backtest_20260525_035649.csv` +- **TXT**: `ai-engine/reports/diagnostic_backtest_20260525_035649.txt` +- **Toplam playable**: 524 bet +- **Hit rate**: %54.77 +- **ROI**: **−%16.73** (baseline kötü) +- **Grid-search'ten çıkan optimal filtreler (in-sample)**: + - MS: edge [-5%, +15%], V27 AGREE zorunlu → +%8.23 (21 bet) + - OU25: odds ≥ 1.80, edge ≤ +15% → +%28.91 (20 bet) + - BTTS: tüm config'lerde kayıp → MUTE +- **Aggregate optimize**: 95 bet, ROI +%2.16 (in-sample) + +### Backtest #2 — Validation (2026-05-01 → 05-14, KOŞUYOR) +- **Bitince konum**: `ai-engine/reports/diagnostic_backtest_.{csv,json,txt}` +- **Karşılaştırma çalıştır**: `python scripts/compare_backtests.py` (otomatik en yeni 2'yi alır) +- **Beklenen sonuç**: ROI ≥ 0 → out-of-sample doğrulama BAŞARILI; in-sample overfit değil + +--- + +## ❓ Backtest BİTTİĞİNDE yapılacak (yeni session'da bu kısımdan başla) + +### 1. Sonucu oku +```powershell +cd C:\Users\fahri\OneDrive\المستندات\GitHub\iddaai\iddaai-be\ai-engine +Get-ChildItem reports\diagnostic_backtest_*.txt | Sort-Object LastWriteTime -Descending | Select-Object -First 1 | Get-Content +``` + +### 2. Karşılaştır +```powershell +python scripts\compare_backtests.py +``` + +Bu otomatik en yeni 2 backtest'i karşılaştırır, **VERDICT** verir: +- ✅ "FILTERS WORK" → ROI pozitif AND improved +- 🟡 "PARTIAL" → improved ama hâlâ negatif +- ❌ "OVERFITTING" → validation ROI collapse + +### 3. Karara göre 2 yol + +**Eğer ROI ≥ +%2 ve overfit yok:** +- `/sc:design` ile UI/API contract → Sprint 1 +- Sprint 1: top-5 skor + evidence panel + "why" cümlesi +- Test edip prod'a aç + +**Eğer ROI negatif veya overfit:** +- `analyze_backtest_csv.py` ile loss diagnostic +- Hangi market hâlâ kötü → tighten filter veya mute +- Calibrator recalibrate (özellikle BTTS dışındakiler için yeni sample) +- Tekrar backtest + +--- + +## ⚠️ Bilinen açık problemler / sorular + +1. **Coherence filter validate edilmedi production-side** — smoke test 20/20 ama gerçek production data ile karşılaştırma yok +2. **Lineup-overlap last-5 hesabı** — yazılmadı, requirements doc'ta F8 var +3. **Skor top-5 distribution** — Poisson zaten hesaplıyor, surface edilmedi (UI tarafı) +4. **"Why" cümlesi main_pick'te** — boş, doldurulması gerek +5. **Cards/Corners/RED CARD model** — yok, "henüz desteklenmiyor" placeholder ile bırak (kullanıcı onayladı: mevcut market'ler sağlamlaşsın) +6. **Orphan match_id 51 satır** — `prediction_runs` içinde, `matches`'ta yok. Sample noise, geçiştirilebilir. +7. **opening_value feeder bug** — `odds_movement_*` SQL yazıyor ama tüm değerler 0 (opening == closing). Feeder upstream sorun. Düşük öncelik. + +--- + +## 🚦 Yeni Claude session'ında ilk komut + +``` +Bu projeye yeni bağlandım. Lütfen aşağıdaki dosyayı oku ve bana proje durumunu özet ver: + +C:\Users\fahri\OneDrive\المستندات\GitHub\iddaai\iddaai-be\mds\SESSION_HANDOFF.md + +Sonra validation backtest'in sonucuna bak: +- C:\Users\fahri\OneDrive\المستندات\GitHub\iddaai\iddaai-be\ai-engine\reports\ + içindeki en yeni diagnostic_backtest_*.txt dosyasını oku +- compare_backtests.py script'ini koş, verdict göster +- Verdict'e göre sonraki adımı öner +``` + +Buradan devam eder. Tüm context bu doc'ta + dosyalarda + DB'de. + +--- + +## 🛠️ Requirements spec (sıkıştırılmış) + +**Ürün**: UI-tetikli per-match analiz, bahis uzmanı seviyesi +**Trigger**: User tıklar, on-demand +**Output**: main_pick + value_pick + tüm market olasılıkları + tek HT/FT skoru + top-5 skor dağılımı + evidence panel +**Kapsam**: Mevcut market'ler sağlamlaştırılır, yeni market eklenmez (kullanıcı onayı) +**Quality bar**: Calibration sapması ±2-5pp per market, NaN yok, response <3sn +**Validation**: Out-of-sample backtest (1500 maç, May 1-14) — KOŞUYOR + +--- + +**SON NOT**: Backtest'in TAMAMLANMASINI bekle (~22:00). Laptop'u kapatma. Bittiğinde OneDrive senkronize eder, başka makinede otomatik orada olur. Yeni session'da bu dosyayı oku, sonuçlara bak, devam et. diff --git a/mds/SOCIAL_POSTER_SETUP.md b/mds/SOCIAL_POSTER_SETUP.md new file mode 100644 index 0000000..daa233d --- /dev/null +++ b/mds/SOCIAL_POSTER_SETUP.md @@ -0,0 +1,212 @@ +# Social Poster — Setup & Operations + +Otomatik tahmin kartı üretip Twitter / Facebook / Instagram'a postlayan modül. +Cron her **10 dakikada bir** çalışır, **yaklaşan 10-60 dk içindeki maçları** +yakalar, AI Engine'den tahmin alır, 1080×1080 görsel üretir, caption üretir, +3 platforma post eder. + +## 1) ENV değişkenleri + +`.env`'ye ekle: + +```bash +# Master switch — false ise cron çalışmaz, manual endpoint'ler de boş döner. +SOCIAL_POSTER_ENABLED=true + +# Hangi sporlar (virgüllü liste). Varsayılan: football,basketball +SOCIAL_POSTER_SPORTS=football,basketball + +# Yaklaşan maç penceresi (dakika). Varsayılan 10-60. +SOCIAL_POSTER_WINDOW_MIN=10 +SOCIAL_POSTER_WINDOW_MAX=60 + +# Tek cron koşusunda kaç maç post edilir (rate-limit koruması). Varsayılan 5. +SOCIAL_POSTER_MAX_PER_RUN=5 + +# Public base URL — Instagram media upload için fotoğrafın HTTPS'ten erişilebilir +# olması ŞART. Localhost ile IG çalışmaz; production domain veya ngrok kullan. +APP_BASE_URL=https://api.iddaai.com + +# AI Engine URL (orchestrator) +AI_ENGINE_URL=http://localhost:8000 + +# ─── Twitter / X ─── +TWITTER_API_KEY=... +TWITTER_API_SECRET=... +TWITTER_ACCESS_TOKEN=... +TWITTER_ACCESS_SECRET=... + +# ─── Meta (Facebook + Instagram) ─── +META_PAGE_ACCESS_TOKEN=... # FB Page'in long-lived access token'ı +META_PAGE_ID=... # FB Page numeric ID +META_IG_USER_ID=... # IG Business account numeric ID +META_GRAPH_API_VERSION=v25.0 # opsiyonel + +# ─── Caption AI (opsiyonel — yoksa template caption kullanılır) ─── +ENABLE_GEMINI=true +GEMINI_API_KEY=... +GEMINI_MODEL=gemini-1.5-flash + +# Veya local Ollama: +OLLAMA_BASE_URL=http://localhost:11434 +SOCIAL_POSTER_OLLAMA_MODEL=llama3.1 +``` + +## 2) API anahtarlarını alma + +### Twitter / X +1. https://developer.x.com → Project + App oluştur +2. App'ın "Keys and tokens" → "API Key", "API Secret" al +3. User authentication settings → "Read and write and Direct Message" +4. "Access Token and Secret" generate et (bu hesap adına post eder) +5. **Free tier**: 1500 tweet/ay, 50 post/24 saat — 10 dk'lık cron'la günde + ~144 koşu × 5 post = 720 potansiyel post → free tier yetmez, **Basic plan + ($200/ay)** lazım. Cron interval'i 30 dk'ya alıp 50/gün kalmak istersen + `@Cron("*/30 * * * *")` olarak değiştir. + +### Meta (Facebook + Instagram) +1. https://developers.facebook.com → App oluştur (type: Business) +2. Facebook Page bağla (mevcut sayfan yoksa oluştur) +3. Instagram Business hesabını Facebook Page'e bağla +4. Graph API Explorer'dan **page access token** al (User token değil!) +5. Long-lived token'a çevir (60 gün geçerli, refresh edilebilir) +6. **Page ID**: `https://graph.facebook.com/me/accounts?access_token=...` +7. **IG User ID**: `graph.facebook.com/{pageId}?fields=instagram_business_account&access_token=...` +8. Required permissions: `pages_show_list`, `pages_manage_posts`, + `pages_read_engagement`, `instagram_basic`, `instagram_content_publish` + +### Gemini (caption AI — opsiyonel) +- https://aistudio.google.com → API key (free tier yeterli, günde ~1500 istek) +- `ENABLE_GEMINI=true` + `GEMINI_API_KEY=...` +- Gemini yoksa template caption kullanılır (yine SEO'lu, sadece daha statik) + +## 3) Test komutları + +```bash +# Servisi başlat +npm run start:dev + +# Health endpoint — auth gerekmez +curl http://localhost:3005/social-poster/health | jq + +# Manuel preview (görsel + JSON) — superadmin token gerekir +curl -H "Authorization: Bearer $TOKEN" \ + http://localhost:3005/social-poster/preview/ + +# Görseli tarayıcıda direkt göster +open http://localhost:3005/social-poster/preview-png/?token=$TOKEN + +# Manuel post (tek maç, tüm platformlara) — superadmin token +curl -X POST -H "Authorization: Bearer $TOKEN" \ + http://localhost:3005/social-poster/post/ + +# Cron'u beklemeden full sweep koş — superadmin token +curl -X POST -H "Authorization: Bearer $TOKEN" \ + http://localhost:3005/social-poster/run-now +``` + +## 4) SEO özellikleri + +### Image dosya adı (SEO) +Eskiden: `prediction_basketball_xyz12345_1716595200000.jpg` (opaque) +Yeni: `sampiyonlar-ligi-unicaja-malaga-vs-aek-20260525.jpg` (Google indexable) + +### Yan dosya: metadata sidecar +Her görsel için aynı dizinde `.json`: +- `title`, `description`, `og:*`, `schema.org SportsEvent`, `picks[]` +- Sayfada `` Open Graph + Twitter Cards bu dosyadan beslenir +- Schema.org markup zengin sonuç (Google rich snippet) sağlar + +### Caption (SEO + hashtags) +Her post 12'ye kadar küratör hashtag içerir: +- Marka: `#MaçTahmini #İddaa #BugünMaç` +- Spor: `#Futbol #Basketbol #FutbolTahmin` +- Lig: `#SüperLig #PremierLeague #ŞampiyonlarLigi #EuroLeague #NBA` +- Bölge: `#Türkiye #İngiltere #İspanya` +- Takım: `#Galatasaray #Fenerbahçe` +- Gün: `#PazarTahmini #CumartesiTahmini` +- Market: `#AltÜst #KGVar #ÇifteŞans #MaçSonucu #Handikap` + +LLM (Gemini) caption üretiyorsa hashtag'leri çıkarır; sistem kendi +hashtag set'ini ekler. Tutarlı index için tek kaynak. + +## 5) İzleme + +```bash +# Health endpoint — periyodik monitor +curl http://localhost:3005/social-poster/health | jq + +# Sample output: +{ + "enabled": true, + "sports": ["football", "basketball"], + "window_min_minutes": 10, + "window_max_minutes": 60, + "max_posts_per_run": 5, + "top_leagues_loaded": 42, + "posted_match_count": 137, + "last_run_at": "2026-05-25T03:10:00.123Z", + "last_run_result": { "posted": 4, "skipped": 1, "errors": 0 }, + "twitter_available": true, + "meta_facebook_available": true, + "meta_instagram_available": true, + "ai_engine_url": "http://localhost:8000", + "app_base_url": "https://api.iddaai.com" +} +``` + +`posted_match_count` `storage/social-poster-posted.json`'dan okunur, son 500 +match ID hafızada — aynı maçı 2 kere post etmez. + +## 6) Rate limit ipuçları + +| Platform | Free limit | Tedbir | +|---|---|---| +| Twitter | 50 post/24 saat | `SOCIAL_POSTER_MAX_PER_RUN=2` + cron `*/30` → günde ~96 | +| Facebook | ~200 post/saat (Page) | Default config rahat | +| Instagram | 25 post/24 saat | `MAX_PER_RUN=1` + cron `*/60` → günde 24, sınırın hemen altında | + +IG en sıkı sınır — production için **IG ayrı cron'da daha seyrek post** +yapılması önerilir (kod henüz tek cron, ileride ayrılabilir). + +## 7) Hangi maçlar seçilir? + +`top_leagues.json` dosyasındaki league_id'ler içinden: +- Şu anda 10-60 dakika sonra başlayacak +- Daha önce post edilmemiş +- `sport: football, basketball` filtresi geçen + +`top_leagues.json` yoksa **tüm liglerden** maç seçer (hacmi yüksek tutar). +Sadece premium ligler postlamak istersen dosyayı doldur. + +## 8) Görsel formatı + +- **Boyut**: 1080×1080 (Instagram square — Twitter da kabul ediyor) +- **Format**: JPEG, quality 94 +- **Tema**: Sport'a göre değişir — football yeşil, basketball turuncu +- **İçerik**: Lig logosu + ülke bayrağı, takım logoları + adları, HT skor, + FT skor, top 3 tahmin (confidence ile), risk badge + +Card layout `image-renderer.service.ts` içinde — value-pick yıldız ile +işaretli, scenario top 3 listelenir, footer alt'ta tarih + brand. + +## 9) Sık sorular + +**Q: Görseller nereye yazılıyor?** +`public/predictions/` (gitignored). ServeStatic ile `/predictions/.jpg` +URL'inden erişilir. + +**Q: Eski görseller temizleniyor mu?** +Hayır — manuel temizlik gerekir. Cron eklemek istersen `LimitResetterTask` +örneği var. + +**Q: AI Engine çalışmıyorsa ne olur?** +Cron tahmin alamaz, log'a hata düşer, devam eder. Sonraki koşuda dener. + +**Q: Bir maç 2 kere post ediliyor mu?** +Hayır — `postedMatchIds` set'i Match ID bazında dedup yapar, dosyaya yazılır +(restart-safe). + +**Q: Caption Gemini olmadan ne kadar iyi?** +Template caption tüm bilgileri + 12 hashtag içerir. SEO açısından yeterli, +sadece anlatım daha statik. Gemini ile her post için özgün metin. diff --git a/package-lock.json b/package-lock.json index 2dc59ac..152e3e0 100755 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "@nestjs/terminus": "^11.0.0", "@nestjs/throttler": "^6.5.0", "@prisma/client": "^6.19.3", + "@resvg/resvg-js": "^2.6.2", "axios": "^1.13.6", "bcrypt": "^6.0.0", "bullmq": "^5.66.4", @@ -49,6 +50,8 @@ "prisma": "^6.19.3", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", + "satori": "^0.26.0", + "satori-html": "^0.3.2", "twitter-api-v2": "^1.29.0", "zod": "^4.3.5" }, @@ -3912,12 +3915,243 @@ "@redis/client": "^1.0.0" } }, + "node_modules/@resvg/resvg-js": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js/-/resvg-js-2.6.2.tgz", + "integrity": "sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==", + "license": "MPL-2.0", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@resvg/resvg-js-android-arm-eabi": "2.6.2", + "@resvg/resvg-js-android-arm64": "2.6.2", + "@resvg/resvg-js-darwin-arm64": "2.6.2", + "@resvg/resvg-js-darwin-x64": "2.6.2", + "@resvg/resvg-js-linux-arm-gnueabihf": "2.6.2", + "@resvg/resvg-js-linux-arm64-gnu": "2.6.2", + "@resvg/resvg-js-linux-arm64-musl": "2.6.2", + "@resvg/resvg-js-linux-x64-gnu": "2.6.2", + "@resvg/resvg-js-linux-x64-musl": "2.6.2", + "@resvg/resvg-js-win32-arm64-msvc": "2.6.2", + "@resvg/resvg-js-win32-ia32-msvc": "2.6.2", + "@resvg/resvg-js-win32-x64-msvc": "2.6.2" + } + }, + "node_modules/@resvg/resvg-js-android-arm-eabi": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm-eabi/-/resvg-js-android-arm-eabi-2.6.2.tgz", + "integrity": "sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-android-arm64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-android-arm64/-/resvg-js-android-arm64-2.6.2.tgz", + "integrity": "sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-darwin-arm64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-arm64/-/resvg-js-darwin-arm64-2.6.2.tgz", + "integrity": "sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-darwin-x64": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-darwin-x64/-/resvg-js-darwin-x64-2.6.2.tgz", + "integrity": "sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm-gnueabihf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm-gnueabihf/-/resvg-js-linux-arm-gnueabihf-2.6.2.tgz", + "integrity": "sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm64-gnu": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-gnu/-/resvg-js-linux-arm64-gnu-2.6.2.tgz", + "integrity": "sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-arm64-musl": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-arm64-musl/-/resvg-js-linux-arm64-musl-2.6.2.tgz", + "integrity": "sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-x64-gnu": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-gnu/-/resvg-js-linux-x64-gnu-2.6.2.tgz", + "integrity": "sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-linux-x64-musl": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-linux-x64-musl/-/resvg-js-linux-x64-musl-2.6.2.tgz", + "integrity": "sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-arm64-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-arm64-msvc/-/resvg-js-win32-arm64-msvc-2.6.2.tgz", + "integrity": "sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-ia32-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-ia32-msvc/-/resvg-js-win32-ia32-msvc-2.6.2.tgz", + "integrity": "sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==", + "cpu": [ + "ia32" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@resvg/resvg-js-win32-x64-msvc": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@resvg/resvg-js-win32-x64-msvc/-/resvg-js-win32-x64-msvc-2.6.2.tgz", + "integrity": "sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@scarf/scarf": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz", "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==", "hasInstallScript": true }, + "node_modules/@shuding/opentype.js": { + "version": "1.4.0-beta.0", + "resolved": "https://registry.npmjs.org/@shuding/opentype.js/-/opentype.js-1.4.0-beta.0.tgz", + "integrity": "sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==", + "license": "MIT", + "dependencies": { + "fflate": "^0.7.3", + "string.prototype.codepointat": "^0.2.1" + }, + "bin": { + "ot": "bin/ot" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/@sinclair/typebox": { "version": "0.34.47", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.47.tgz", @@ -6535,6 +6769,15 @@ "node": ">=6" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001762", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", @@ -7086,6 +7329,36 @@ "node": ">= 8" } }, + "node_modules/css-background-parser": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/css-background-parser/-/css-background-parser-0.1.0.tgz", + "integrity": "sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==", + "license": "MIT" + }, + "node_modules/css-box-shadow": { + "version": "1.0.0-3", + "resolved": "https://registry.npmjs.org/css-box-shadow/-/css-box-shadow-1.0.0-3.tgz", + "integrity": "sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==", + "license": "MIT" + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-gradient-parser": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/css-gradient-parser/-/css-gradient-parser-0.0.17.tgz", + "integrity": "sha512-w2Xy9UMMwlKtou0vlRnXvWglPAceXCTtcmVSo8ZBUvqCV5aXEFP/PC6d+I464810I9FT++UACwTD5511bmGPUg==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, "node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", @@ -7102,6 +7375,17 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, "node_modules/css-what": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", @@ -7433,6 +7717,15 @@ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/emoji-regex-xs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-2.0.1.tgz", + "integrity": "sha512-1QFuh8l7LqUcKe24LsPUNzjrzJQ7pgRwp1QMcZ5MX6mFplk2zQ08NVCM84++1cveaUUYtcCYHmeFEuNg16sU4g==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/empathic": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", @@ -8152,6 +8445,12 @@ "node": "^12.20 || >= 14.13" } }, + "node_modules/fflate": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.7.4.tgz", + "integrity": "sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -8794,6 +9093,18 @@ "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", "dev": true }, + "node_modules/hex-rgb": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/hex-rgb/-/hex-rgb-4.3.0.tgz", + "integrity": "sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hookified": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.0.tgz", @@ -10097,6 +10408,25 @@ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.33.tgz", "integrity": "sha512-r9kw4OA6oDO4dPXkOrXTkArQAafIKAU71hChInV4FxZ69dxCfbwQGDPzqR5/vea94wU705/3AZroEbSoeVWrQw==" }, + "node_modules/linebreak": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.1.0.tgz", + "integrity": "sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==", + "license": "MIT", + "dependencies": { + "base64-js": "0.0.8", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -11030,6 +11360,12 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11042,6 +11378,16 @@ "node": ">=6" } }, + "node_modules/parse-css-color": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/parse-css-color/-/parse-css-color-0.2.1.tgz", + "integrity": "sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.1.4", + "hex-rgb": "^4.1.0" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -11438,6 +11784,12 @@ "node": ">=4" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, "node_modules/prebuild-install": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", @@ -12012,6 +12364,37 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "node_modules/satori": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/satori/-/satori-0.26.0.tgz", + "integrity": "sha512-tkMFrfIs3l2mQ2JEcyW0ADTy3zGggFRFzi6Ef8YozQSFsFKEqaSO1Y8F9wJg4//PJGQauMalHGTUEkPrFwhVPA==", + "license": "MPL-2.0", + "dependencies": { + "@shuding/opentype.js": "1.4.0-beta.0", + "css-background-parser": "^0.1.0", + "css-box-shadow": "1.0.0-3", + "css-gradient-parser": "^0.0.17", + "css-to-react-native": "^3.0.0", + "emoji-regex-xs": "^2.0.1", + "escape-html": "^1.0.3", + "linebreak": "^1.1.0", + "parse-css-color": "^0.2.1", + "postcss-value-parser": "^4.2.0", + "yoga-layout": "^3.2.1" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/satori-html": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/satori-html/-/satori-html-0.3.2.tgz", + "integrity": "sha512-wjTh14iqADFKDK80e51/98MplTGfxz2RmIzh0GqShlf4a67+BooLywF17TvJPD6phO0Hxm7Mf1N5LtRYvdkYRA==", + "license": "MIT", + "dependencies": { + "ultrahtml": "^1.2.0" + } + }, "node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -12488,6 +12871,12 @@ "node": ">=8" } }, + "node_modules/string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "license": "MIT" + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12858,6 +13247,12 @@ "real-require": "^0.2.0" } }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "license": "MIT" + }, "node_modules/tinyexec": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", @@ -13260,6 +13655,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ultrahtml": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.6.0.tgz", + "integrity": "sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==", + "license": "MIT" + }, "node_modules/undici": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici/-/undici-7.18.2.tgz", @@ -13274,6 +13675,16 @@ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "license": "MIT", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -13858,6 +14269,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoga-layout": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/yoga-layout/-/yoga-layout-3.2.1.tgz", + "integrity": "sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==", + "license": "MIT" + }, "node_modules/zod": { "version": "4.3.5", "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", diff --git a/package.json b/package.json index c6a3ded..323b827 100755 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "@nestjs/terminus": "^11.0.0", "@nestjs/throttler": "^6.5.0", "@prisma/client": "^6.19.3", + "@resvg/resvg-js": "^2.6.2", "axios": "^1.13.6", "bcrypt": "^6.0.0", "bullmq": "^5.66.4", @@ -82,6 +83,8 @@ "prisma": "^6.19.3", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", + "satori": "^0.26.0", + "satori-html": "^0.3.2", "twitter-api-v2": "^1.29.0", "zod": "^4.3.5" }, @@ -134,4 +137,4 @@ "prisma": { "seed": "ts-node prisma/seed.ts" } -} \ No newline at end of file +} diff --git a/src/modules/social-poster/assets/basketball.svg b/src/modules/social-poster/assets/basketball.svg new file mode 100644 index 0000000..2469395 --- /dev/null +++ b/src/modules/social-poster/assets/basketball.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-de.svg b/src/modules/social-poster/assets/flag-de.svg new file mode 100644 index 0000000..10a5399 --- /dev/null +++ b/src/modules/social-poster/assets/flag-de.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-es.svg b/src/modules/social-poster/assets/flag-es.svg new file mode 100644 index 0000000..d1fd565 --- /dev/null +++ b/src/modules/social-poster/assets/flag-es.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-eu.svg b/src/modules/social-poster/assets/flag-eu.svg new file mode 100644 index 0000000..045024a --- /dev/null +++ b/src/modules/social-poster/assets/flag-eu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-fr.svg b/src/modules/social-poster/assets/flag-fr.svg new file mode 100644 index 0000000..4eafe7a --- /dev/null +++ b/src/modules/social-poster/assets/flag-fr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-gb.svg b/src/modules/social-poster/assets/flag-gb.svg new file mode 100644 index 0000000..21b97e9 --- /dev/null +++ b/src/modules/social-poster/assets/flag-gb.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-it.svg b/src/modules/social-poster/assets/flag-it.svg new file mode 100644 index 0000000..6c38017 --- /dev/null +++ b/src/modules/social-poster/assets/flag-it.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-tr.svg b/src/modules/social-poster/assets/flag-tr.svg new file mode 100644 index 0000000..861da57 --- /dev/null +++ b/src/modules/social-poster/assets/flag-tr.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/flag-us.svg b/src/modules/social-poster/assets/flag-us.svg new file mode 100644 index 0000000..d51f600 --- /dev/null +++ b/src/modules/social-poster/assets/flag-us.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/assets/football.svg b/src/modules/social-poster/assets/football.svg new file mode 100644 index 0000000..f24749c --- /dev/null +++ b/src/modules/social-poster/assets/football.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/modules/social-poster/caption-generator.service.ts b/src/modules/social-poster/caption-generator.service.ts index 4db480b..35a3700 100644 --- a/src/modules/social-poster/caption-generator.service.ts +++ b/src/modules/social-poster/caption-generator.service.ts @@ -134,36 +134,106 @@ Sadece post metnini yaz, başka hiçbir şey ekleme.`; } private ensureHashtags(text: string, card: PredictionCardDto): string { - // If no hashtags in text, add them - if (!text.includes("#")) { - const leagueTag = card.leagueName - .replace(/\s+/g, "") - .replace(/[^a-zA-Z0-9üöçşğıİÜÖÇŞĞ]/g, ""); - const homeTag = card.homeTeam.replace(/\s+/g, ""); - const awayTag = card.awayTeam.replace(/\s+/g, ""); - const sportTag = card.sport === "basketball" ? "Basketbol" : "Futbol"; - text += `\n\n#${leagueTag} #${homeTag} #${awayTag} #${sportTag}`; + // Always strip any LLM-emitted hashtags then append our curated SEO set, + // so we control the canonical tags the post is indexed under. + const stripped = text.replace(/(^|\s)#[^\s#]+/g, "").trim(); + const tags = this.buildSeoHashtags(card); + return `${stripped}\n\n${tags}`.trim(); + } + + /** + * Build the canonical SEO hashtag set for a prediction card. + * Combines: league, country, teams, sport, betting keywords, day-of-week, + * top-pick market, and evergreen brand tags. Capped at ~12 tags + * (over-tagging gets penalised on X / IG). + */ + private buildSeoHashtags(card: PredictionCardDto): string { + const slug = (s: string) => + (s || "") + .replace(/[^\p{L}\p{N}]/gu, "") + .replace(/\s+/g, ""); + + const tags = new Set(); + const push = (t: string) => { + if (t && t.length > 1 && t.length <= 30) tags.add(`#${t}`); + }; + + // Brand / vertical + push("MaçTahmini"); + push("İddaa"); + push("BugünMaç"); + push(card.sport === "basketball" ? "Basketbol" : "Futbol"); + push(card.sport === "basketball" ? "BasketTahmin" : "FutbolTahmin"); + + // Region / league + if (card.countryName) push(slug(card.countryName)); + if (card.leagueName) { + push(slug(card.leagueName)); + // Common popular shorthands + const ln = card.leagueName.toLowerCase(); + if (ln.includes("süper")) push("SüperLig"); + if (ln.includes("premier")) push("PremierLeague"); + if (ln.includes("şampiyonlar")) push("ŞampiyonlarLigi"); + if (ln.includes("euroleague")) push("EuroLeague"); + if (ln.includes("nba")) push("NBA"); } - return text.trim(); + + // Teams + push(slug(card.homeTeam)); + push(slug(card.awayTeam)); + if (card.homeTeam && card.awayTeam) { + push(slug(`${card.homeTeam}${card.awayTeam}`)); + } + + // Day of week (Turkish) + const dayTags = ["Pazar", "Pazartesi", "Salı", "Çarşamba", + "Perşembe", "Cuma", "Cumartesi"]; + push(`${dayTags[new Date().getDay()]}Tahmini`); + + // Market-driven tags + const top = card.topPicks?.[0]; + if (top) { + const m = (top.marketEn || "").toLowerCase(); + if (m.includes("over") || m.includes("under")) push("AltÜst"); + if (m.includes("both teams")) push("KGVar"); + if (m.includes("double chance")) push("ÇifteŞans"); + if (m.includes("match result")) push("MaçSonucu"); + if (m.includes("handicap") || m.includes("spread")) push("Handikap"); + } + + return Array.from(tags).slice(0, 12).join(" "); } /** * Fallback caption when Gemini is not available. + * Designed to be informative + scannable + indexable; expanded vs the + * old one-liner so the post still ranks even without LLM enrichment. */ private generateFallbackCaption(card: PredictionCardDto): string { - const topPick = card.topPicks[0]; - const leagueTag = card.leagueName - .replace(/\s+/g, "") - .replace(/[^a-zA-Z0-9üöçşğıİÜÖÇŞĞ]/g, ""); - const sportLabel = card.sport === "basketball" ? "Basketbol" : "Futbol"; - const halfLabel = card.sport === "basketball" ? "İD" : "İY"; + const halfLabel = card.sport === "basketball" ? "İlk Devre" : "İlk Yarı"; + const top = card.topPicks || []; - return `⚡ ${card.leagueName}${card.countryName ? ` (${card.countryName})` : ""}: ${card.homeTeam} vs ${card.awayTeam} -🎯 ${sportLabel} tahminimiz: ${card.ftScore} (${halfLabel}: ${card.htScore}) -📊 Güven: %${card.scoreConfidence} -${topPick ? `🔥 ${topPick.market}: ${topPick.pick} (%${topPick.confidence})` : ""} + const lines: string[] = []; + const flag = card.countryName ? `🌍 ${card.countryName}` : "🌍"; + lines.push(`${flag} | ${card.leagueName}`); + lines.push(`⚽ ${card.homeTeam} 🆚 ${card.awayTeam}`); + lines.push(`🗓️ ${card.matchDate}`); + lines.push(""); + lines.push(`🎯 ${sportLabel} Skor Tahmini`); + lines.push(` • ${halfLabel}: ${card.htScore}`); + lines.push(` • Maç Sonu: ${card.ftScore}`); + lines.push(` • Skor Güveni: %${card.scoreConfidence}`); -#${leagueTag} #${sportLabel} #MaçTahmini #iddaai`.trim(); + if (top.length) { + lines.push(""); + lines.push("🔥 En İyi Tahminler:"); + top.slice(0, 3).forEach((p, i) => { + const stars = "⭐".repeat(Math.min(3, Math.max(1, Math.round(p.confidence / 30)))); + lines.push(` ${i + 1}. ${p.market} (%${p.confidence}) ${stars}`); + }); + } + + return lines.join("\n"); } } diff --git a/src/modules/social-poster/image-renderer.service.ts b/src/modules/social-poster/image-renderer.service.ts index afe4542..0bbc4b4 100644 --- a/src/modules/social-poster/image-renderer.service.ts +++ b/src/modules/social-poster/image-renderer.service.ts @@ -45,16 +45,85 @@ export class ImageRendererService implements OnModuleInit { throw new Error("canvas native module is not available"); } - const fileName = `prediction_${card.sport}_${card.matchId}_${Date.now()}.jpg`; + // SEO-friendly filename: "--vs--.jpg" + // Search engines index image filenames; matchId is opaque, this isn't. + const fileName = this.buildSeoFilename(card); const filePath = path.join(this.outputDir, fileName); this.logger.log( `Rendering ${card.sport} social card for ${card.homeTeam} vs ${card.awayTeam}`, ); await this.drawCanvas(card, filePath); + + // Sidecar metadata for OpenGraph / SEO consumers (same basename + .json). + try { + this.writeMetadataSidecar(card, filePath); + } catch (e) { + this.logger.warn(`metadata sidecar failed: ${(e as Error).message}`); + } + return filePath; } + private buildSeoFilename(card: PredictionCardDto): string { + const slug = (s: string) => + (s || "") + .toLowerCase() + .normalize("NFD") + .replace(/[̀-ͯ]/g, "") + .replace(/[ıİ]/g, "i") + .replace(/[şŞ]/g, "s") + .replace(/[çÇ]/g, "c") + .replace(/[ğĞ]/g, "g") + .replace(/[öÖ]/g, "o") + .replace(/[üÜ]/g, "u") + .replace(/[^a-z0-9]+/g, "-") + .replace(/^-+|-+$/g, "") + .slice(0, 40); + const league = slug(card.leagueName) || "match"; + const home = slug(card.homeTeam) || "home"; + const away = slug(card.awayTeam) || "away"; + const d = new Date(); + const stamp = `${d.getFullYear()}${String(d.getMonth() + 1).padStart(2, "0")}${String(d.getDate()).padStart(2, "0")}`; + return `${league}-${home}-vs-${away}-${stamp}.jpg`; + } + + private writeMetadataSidecar(card: PredictionCardDto, imagePath: string): void { + const meta = { + title: `${card.homeTeam} - ${card.awayTeam} Maç Tahmini | ${card.leagueName}`, + description: + `${card.leagueName} maçında ${card.homeTeam} - ${card.awayTeam} ` + + `karşılaşması için AI destekli maç tahmini. Tahmini skor ${card.ftScore}, ` + + `ilk yarı ${card.htScore}. En iyi 3 bahis önerisi.`, + og: { + type: "article", + title: `${card.homeTeam} vs ${card.awayTeam} — ${card.leagueName}`, + description: `Skor tahmini: ${card.ftScore} (İlk yarı: ${card.htScore})`, + image_alt: `${card.homeTeam} - ${card.awayTeam} maç tahmin kartı`, + }, + structured_data: { + "@context": "https://schema.org", + "@type": "SportsEvent", + name: `${card.homeTeam} vs ${card.awayTeam}`, + sport: card.sport === "basketball" ? "Basketball" : "Football", + homeTeam: { "@type": "SportsTeam", name: card.homeTeam }, + awayTeam: { "@type": "SportsTeam", name: card.awayTeam }, + location: card.countryName || undefined, + organizer: card.leagueName, + startDate: card.matchDate, + }, + picks: card.topPicks.map((p) => ({ + market: p.market, + pick: p.pick, + confidence: p.confidence, + odds: p.odds, + })), + generated_at: new Date().toISOString(), + }; + const sidecar = imagePath.replace(/\.jpg$/i, ".json"); + fs.writeFileSync(sidecar, JSON.stringify(meta, null, 2), "utf-8"); + } + private async drawCanvas( data: PredictionCardDto, outPath: string, diff --git a/src/modules/social-poster/social-poster.controller.ts b/src/modules/social-poster/social-poster.controller.ts index b62b2af..82e4799 100644 --- a/src/modules/social-poster/social-poster.controller.ts +++ b/src/modules/social-poster/social-poster.controller.ts @@ -1,25 +1,81 @@ -import { Controller, Post, Param, Get, UseGuards } from "@nestjs/common"; +import { + Controller, + Post, + Param, + Get, + UseGuards, + Res, + NotFoundException, +} from "@nestjs/common"; import { ApiBearerAuth, ApiTags } from "@nestjs/swagger"; +import type { Response } from "express"; +import * as fs from "fs"; import { SocialPosterService } from "./social-poster.service"; import { Roles } from "../../common/decorators"; import { RolesGuard } from "../auth/guards/auth.guards"; @ApiTags("Social Poster") -@ApiBearerAuth() -@UseGuards(RolesGuard) -@Roles("superadmin") @Controller("social-poster") export class SocialPosterController { constructor(private readonly socialPosterService: SocialPosterService) {} + /** Public health endpoint — config + last-run snapshot. Safe to expose. */ + @Get("health") + health() { + return this.socialPosterService.getHealthStatus(); + } + + @ApiBearerAuth() + @UseGuards(RolesGuard) + @Roles("superadmin") @Get("preview/:matchId") async previewCard(@Param("matchId") matchId: string) { return this.socialPosterService.renderPreview(matchId); } + /** + * Render the prediction card for a match and stream the raw JPEG back — + * the fastest way to QA the visual without opening the JSON or a viewer. + */ + @ApiBearerAuth() + @UseGuards(RolesGuard) + @Roles("superadmin") + @Get("preview-png/:matchId") + async previewPng( + @Param("matchId") matchId: string, + @Res() res: Response, + ): Promise { + const { imagePath } = await this.socialPosterService.renderPreview(matchId); + if (!fs.existsSync(imagePath)) { + throw new NotFoundException("Image not rendered"); + } + res.setHeader("Content-Type", "image/jpeg"); + res.setHeader( + "Cache-Control", + "public, max-age=300, stale-while-revalidate=60", + ); + fs.createReadStream(imagePath).pipe(res); + } + + @ApiBearerAuth() + @UseGuards(RolesGuard) + @Roles("superadmin") @Post("post/:matchId") async postMatch(@Param("matchId") matchId: string) { return this.socialPosterService.manualPost(matchId); } + + /** + * Force a cron-style sweep right now — useful right after pushing config + * changes, instead of waiting up to 10 minutes for the next scheduled run. + */ + @ApiBearerAuth() + @UseGuards(RolesGuard) + @Roles("superadmin") + @Post("run-now") + async runNow() { + await this.socialPosterService.checkAndPostUpcomingMatches(); + return this.socialPosterService.getHealthStatus(); + } } diff --git a/src/modules/social-poster/social-poster.service.ts b/src/modules/social-poster/social-poster.service.ts index 5d9267d..a4352a2 100644 --- a/src/modules/social-poster/social-poster.service.ts +++ b/src/modules/social-poster/social-poster.service.ts @@ -34,8 +34,15 @@ export class SocialPosterService { private readonly sports: string[]; private readonly windowMinMinutes: number; private readonly windowMaxMinutes: number; + private readonly maxPostsPerRun: number; private readonly postedMatchIds = new Set(); private topLeagueIds: Set = new Set(); + private lastRunAt: Date | null = null; + private lastRunResult: { posted: number; skipped: number; errors: number } = { + posted: 0, + skipped: 0, + errors: 0, + }; constructor( private readonly prisma: PrismaService, @@ -59,11 +66,18 @@ export class SocialPosterService { .split(",") .map((sport) => sport.trim()) .filter(Boolean); + // Default expanded to 10-60 min so each 10-minute cron run has a fresh + // batch of upcoming matches without overlap (each match falls in one + // ~10-min slice of the window). Override via env if you want tighter + // "just before kickoff" timing. this.windowMinMinutes = Number( - this.configService.get("SOCIAL_POSTER_WINDOW_MIN") || 25, + this.configService.get("SOCIAL_POSTER_WINDOW_MIN") || 10, ); this.windowMaxMinutes = Number( - this.configService.get("SOCIAL_POSTER_WINDOW_MAX") || 45, + this.configService.get("SOCIAL_POSTER_WINDOW_MAX") || 60, + ); + this.maxPostsPerRun = Number( + this.configService.get("SOCIAL_POSTER_MAX_PER_RUN") || 5, ); this.loadTopLeagues(); @@ -108,12 +122,15 @@ export class SocialPosterService { } /** - * Cron: Every 15 minutes, check for upcoming matches. - * Posts predictions 30 minutes before kickoff. + * Cron: Every 10 minutes, check for upcoming matches and post prediction + * cards. Window is 10-60 min before kickoff; max posts/run is capped so + * one cron pass cannot flood Twitter / IG rate limits. */ - @Cron("*/15 * * * *") + @Cron("*/10 * * * *") async checkAndPostUpcomingMatches() { if (!this.isEnabled) return; + this.lastRunAt = new Date(); + this.lastRunResult = { posted: 0, skipped: 0, errors: 0 }; try { const matches = await this.getUpcomingMatches( @@ -121,11 +138,22 @@ export class SocialPosterService { this.windowMaxMinutes, ); this.logger.log( - `📅 Found ${matches.length} upcoming matches in the window`, + `📅 Found ${matches.length} upcoming matches in window ` + + `[${this.windowMinMinutes}-${this.windowMaxMinutes} min]`, ); + let postedThisRun = 0; for (const match of matches) { - if (this.postedMatchIds.has(match.id)) continue; + if (postedThisRun >= this.maxPostsPerRun) { + this.logger.log( + `Hit max-per-run cap (${this.maxPostsPerRun}); deferring rest`, + ); + break; + } + if (this.postedMatchIds.has(match.id)) { + this.lastRunResult.skipped++; + continue; + } try { const result = await this.predictAndPost(match); @@ -136,12 +164,15 @@ export class SocialPosterService { if (!posted) { this.logger.warn( - `No platform accepted post for match ${match.id}; it will be retried later`, + `No platform accepted post for match ${match.id}; will retry later`, ); + this.lastRunResult.errors++; continue; } this.postedMatchIds.add(match.id); + this.lastRunResult.posted++; + postedThisRun++; // Cleanup: remove old IDs (keep last 500) if (this.postedMatchIds.size > 500) { @@ -155,6 +186,7 @@ export class SocialPosterService { this.logger.error( `Failed to process match ${match.id}: ${error.message}`, ); + this.lastRunResult.errors++; } // Small delay between posts to avoid rate limits @@ -162,9 +194,32 @@ export class SocialPosterService { } } catch (error) { this.logger.error(`Cron job failed: ${error.message}`); + this.lastRunResult.errors++; } } + /** + * Snapshot of the poster's runtime state for the /health endpoint. + */ + getHealthStatus() { + return { + enabled: this.isEnabled, + sports: this.sports, + window_min_minutes: this.windowMinMinutes, + window_max_minutes: this.windowMaxMinutes, + max_posts_per_run: this.maxPostsPerRun, + top_leagues_loaded: this.topLeagueIds.size, + posted_match_count: this.postedMatchIds.size, + last_run_at: this.lastRunAt?.toISOString() || null, + last_run_result: this.lastRunResult, + twitter_available: this.twitterService.available, + meta_facebook_available: this.metaService.facebookAvailable, + meta_instagram_available: this.metaService.instagramAvailable, + ai_engine_url: this.aiEngineUrl, + app_base_url: this.appBaseUrl, + }; + } + /** * Get matches starting in [minMinutes, maxMinutes] from now. * Filtered by top leagues. diff --git a/src/scripts/render-social-card-sample.ts b/src/scripts/render-social-card-sample.ts new file mode 100644 index 0000000..47ad7fb --- /dev/null +++ b/src/scripts/render-social-card-sample.ts @@ -0,0 +1,119 @@ +/** + * Standalone renderer for social-poster image preview. + * Bypasses NestJS — directly instantiates ImageRendererService with a + * sample PredictionCardDto so we can SEE what the output looks like + * without standing up the full app. + * + * Usage: + * npx ts-node --transpile-only -r tsconfig-paths/register \ + * src/scripts/render-social-card-sample.ts + */ + +import { ImageRendererService } from "../modules/social-poster/image-renderer.service"; +import { PredictionCardDto } from "../modules/social-poster/dto/prediction-card.dto"; + +async function main() { + const renderer = new ImageRendererService(); + renderer.onModuleInit(); + + // Sample 1: Basketball — like the user's Unicaja vs AEK reference image + const basketCard: PredictionCardDto = { + matchId: "sample-basket-001", + sport: "basketball", + homeTeam: "Unicaja Malaga", + awayTeam: "AEK", + homeLogo: "", + awayLogo: "", + leagueName: "Şampiyonlar Ligi", + leagueLogo: "", + countryName: "Avrupa", + countryFlag: "", + matchDate: "25 May 2026 - 21:00", + htScore: "40-35", + ftScore: "88-75", + scoreConfidence: 90, + topPicks: [ + { + market: "Toplam Sayı: Üst 160.5", + marketEn: "Total Points: Over 160.5", + pick: "Üst", + confidence: 85, + odds: 1.85, + }, + { + market: "Ev Sahibi Toplam: Üst 82.5", + marketEn: "Home Total: Over 82.5", + pick: "Üst", + confidence: 83, + odds: 1.78, + }, + { + market: "Handikap: Ev Sahibi -5.5", + marketEn: "Handicap: Home -5.5", + pick: "1 (-5.5)", + confidence: 78, + odds: 1.92, + }, + ], + riskLevel: "LOW", + }; + + // Sample 2: Football — Süper Lig + const footballCard: PredictionCardDto = { + matchId: "sample-foot-001", + sport: "football", + homeTeam: "Galatasaray", + awayTeam: "Fenerbahçe", + homeLogo: "", + awayLogo: "", + leagueName: "Süper Lig", + leagueLogo: "", + countryName: "Türkiye", + countryFlag: "", + matchDate: "26 May 2026 - 20:00", + htScore: "1-0", + ftScore: "2-1", + scoreConfidence: 72, + topPicks: [ + { + market: "Maç Sonucu", + marketEn: "Match Result", + pick: "1", + confidence: 68, + odds: 2.15, + }, + { + market: "Üst 2.5 Gol", + marketEn: "Over 2.5", + pick: "Üst", + confidence: 61, + odds: 1.92, + }, + { + market: "Karşılıklı Gol", + marketEn: "Both Teams Score", + pick: "Var", + confidence: 58, + odds: 1.75, + }, + ], + riskLevel: "MEDIUM", + }; + + console.log("Rendering basketball card..."); + const basketPath = await renderer.renderCard(basketCard); + console.log(` → ${basketPath}`); + + console.log("Rendering football card..."); + const footballPath = await renderer.renderCard(footballCard); + console.log(` → ${footballPath}`); + + console.log("\nDone. Open the JPGs to see the output:"); + console.log(` ${basketPath}`); + console.log(` ${footballPath}`); +} + +main().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/src/scripts/render-social-card-v2.ts b/src/scripts/render-social-card-v2.ts new file mode 100644 index 0000000..083a279 --- /dev/null +++ b/src/scripts/render-social-card-v2.ts @@ -0,0 +1,244 @@ +/** + * V2 social card renderer — satori (HTML/CSS → SVG) → resvg (SVG → PNG). + * Modern editorial design. Uses React.createElement (h) form for satori's + * strict layout requirements (every multi-child node needs explicit display). + */ + +import satori from "satori"; +import { Resvg } from "@resvg/resvg-js"; +import * as fs from "fs"; +import * as path from "path"; + +const OUTPUT_DIR = path.join(process.cwd(), "public", "predictions"); +const ARIAL = fs.readFileSync("C:/Windows/Fonts/arial.ttf"); +const ARIAL_BOLD = fs.readFileSync("C:/Windows/Fonts/arialbd.ttf"); +const ARIAL_BLACK = fs.existsSync("C:/Windows/Fonts/ariblk.ttf") + ? fs.readFileSync("C:/Windows/Fonts/ariblk.ttf") + : ARIAL_BOLD; + +interface Pick { market: string; pick: string; confidence: number; odds: number; } +interface Card { + sport: "football" | "basketball"; + leagueName: string; + countryName: string; + matchDate: string; + homeTeam: string; + awayTeam: string; + htScore: string; + ftScore: string; + scoreConfidence: number; + picks: Pick[]; +} + +// satori expects React-element shape: { type, props: { children, style, ... } } +type N = string | { type: string; props: { style?: any; children?: any } }; +const h = (type: string, style: any, ...children: N[]): N => ({ + type, + props: { style, children: children.length === 1 ? children[0] : children }, +}); + +function buildCard(c: Card): N { + const isBasket = c.sport === "basketball"; + const accent = isBasket ? "#F59E0B" : "#22C55E"; + const accentDark = isBasket ? "#92400E" : "#14532D"; + const away = "#3B82F6"; + const awayDark = "#1E3A8A"; + const sportLabel = isBasket ? "BASKETBOL" : "FUTBOL"; + const halfLabel = isBasket ? "İLK DEVRE" : "İLK YARI"; + + const avatar = (name: string, c1: string, c2: string) => + h("div", { + display: "flex", alignItems: "center", justifyContent: "center", + width: 200, height: 200, borderRadius: 200, + background: `linear-gradient(135deg, ${c1} 0%, ${c2} 100%)`, + fontSize: 120, fontWeight: 900, color: "white", + boxShadow: "0 25px 60px rgba(0,0,0,0.55), inset 0 -8px 0 rgba(0,0,0,0.22)", + }, (name.match(/\p{L}/u)?.[0] || "?").toUpperCase()); + + const teamColumn = (name: string, c1: string, c2: string) => + h("div", { + display: "flex", flexDirection: "column", alignItems: "center", width: 300, + }, + avatar(name, c1, c2), + h("div", { + display: "flex", marginTop: 22, fontSize: 32, fontWeight: 900, + color: "white", textAlign: "center", lineHeight: 1.05, + maxWidth: 300, justifyContent: "center", + }, name), + ); + + const scoreBlock = h("div", { + display: "flex", flexDirection: "column", alignItems: "center", + }, + h("div", { + display: "flex", fontSize: 14, color: "rgba(255,255,255,0.4)", + letterSpacing: 4, fontWeight: 700, marginBottom: 8, + }, "MAÇ SONU"), + h("div", { + display: "flex", fontSize: 110, fontWeight: 900, color: "white", + lineHeight: 1, letterSpacing: -4, + }, c.ftScore), + h("div", { + display: "flex", marginTop: 16, fontSize: 18, color: accent, + fontWeight: 800, background: `${accent}22`, padding: "8px 16px", + borderRadius: 10, letterSpacing: 1, + }, `${halfLabel} ${c.htScore}`), + ); + + const pickRow = (p: Pick, idx: number) => + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + padding: "20px 26px", marginBottom: 12, + background: "rgba(255,255,255,0.045)", + borderLeft: `5px solid ${accent}`, + borderRadius: 12, + }, + h("div", { display: "flex", alignItems: "center", flexGrow: 1 }, + h("div", { + display: "flex", justifyContent: "center", alignItems: "center", + width: 44, height: 44, marginRight: 18, borderRadius: 8, + background: `${accent}22`, color: accent, fontSize: 24, fontWeight: 900, + }, String(idx + 1)), + h("div", { display: "flex", flexDirection: "column" }, + h("div", { display: "flex", fontSize: 28, fontWeight: 800, color: "white", lineHeight: 1.1 }, p.market), + h("div", { display: "flex", marginTop: 4, fontSize: 18, color: "rgba(255,255,255,0.5)" }, `Oran ${p.odds.toFixed(2)}`), + ), + ), + h("div", { + display: "flex", alignItems: "center", justifyContent: "center", + fontSize: 38, fontWeight: 900, color: accent, + background: `${accent}15`, + padding: "6px 18px", borderRadius: 10, + border: `1px solid ${accent}`, + }, `%${p.confidence}`), + ); + + return h("div", { + width: 1080, height: 1080, + display: "flex", flexDirection: "column", + padding: "50px 60px", + background: "linear-gradient(180deg, #0F172A 0%, #020617 100%)", + color: "white", + fontFamily: "Arial", + }, + // HEADER + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 36, + }, + h("div", { display: "flex", alignItems: "center" }, + h("div", { + display: "flex", width: 8, height: 44, background: accent, + marginRight: 16, borderRadius: 4, + }), + h("div", { display: "flex", flexDirection: "column" }, + h("div", { + display: "flex", fontSize: 14, color: "rgba(255,255,255,0.5)", + letterSpacing: 3, fontWeight: 700, + }, `${sportLabel} · ${c.countryName.toUpperCase()}`), + h("div", { + display: "flex", marginTop: 2, fontSize: 26, fontWeight: 900, color: "white", + }, c.leagueName), + ), + ), + h("div", { + display: "flex", fontSize: 16, color: "rgba(255,255,255,0.6)", + background: "rgba(255,255,255,0.05)", + padding: "10px 16px", borderRadius: 10, + border: "1px solid rgba(255,255,255,0.1)", fontWeight: 600, + }, c.matchDate), + ), + + // TEAMS + SCORE + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 30, paddingLeft: 10, paddingRight: 10, + }, + teamColumn(c.homeTeam, accent, accentDark), + scoreBlock, + teamColumn(c.awayTeam, away, awayDark), + ), + + // PICKS TITLE + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 16, paddingLeft: 6, paddingRight: 6, + }, + h("div", { display: "flex", fontSize: 22, fontWeight: 900, color: "white", letterSpacing: 2 }, "EN İYİ 3 TAHMİN"), + h("div", { display: "flex", alignItems: "center" }, + h("div", { display: "flex", fontSize: 14, color: "rgba(255,255,255,0.55)", fontWeight: 700, marginRight: 8 }, "SKOR GÜVENİ"), + h("div", { display: "flex", fontSize: 22, fontWeight: 900, color: accent }, `%${c.scoreConfidence}`), + ), + ), + + // PICKS LIST + h("div", { display: "flex", flexDirection: "column" }, + ...c.picks.slice(0, 3).map((p, i) => pickRow(p, i)), + ), + + // FOOTER + h("div", { + display: "flex", marginTop: "auto", alignItems: "center", justifyContent: "space-between", + paddingTop: 22, borderTop: "1px solid rgba(255,255,255,0.08)", + }, + h("div", { display: "flex", fontSize: 16, color: "rgba(255,255,255,0.45)", fontWeight: 600 }, "AI Destekli Maç Tahmini · iddaai"), + h("div", { display: "flex", fontSize: 20, color: "white", fontWeight: 900, letterSpacing: 2 }, "iddaai.com"), + ), + ); +} + +async function renderCard(c: Card, name: string) { + const svg = await satori(buildCard(c) as any, { + width: 1080, + height: 1080, + fonts: [ + { name: "Arial", data: ARIAL, weight: 400, style: "normal" }, + { name: "Arial", data: ARIAL_BOLD, weight: 700, style: "normal" }, + { name: "Arial", data: ARIAL_BLACK, weight: 900, style: "normal" }, + ], + }); + const png = new Resvg(svg).render().asPng(); + const out = path.join(OUTPUT_DIR, `v2-${name}.png`); + fs.writeFileSync(out, png); + console.log(` → ${out}`); +} + +async function main() { + if (!fs.existsSync(OUTPUT_DIR)) fs.mkdirSync(OUTPUT_DIR, { recursive: true }); + + await renderCard({ + sport: "basketball", + leagueName: "Şampiyonlar Ligi", + countryName: "Avrupa", + matchDate: "25 May 2026, 21:00", + homeTeam: "Unicaja Malaga", + awayTeam: "AEK", + htScore: "40-35", + ftScore: "88-75", + scoreConfidence: 90, + picks: [ + { market: "Toplam Sayı Üst 160.5", pick: "Üst", confidence: 85, odds: 1.85 }, + { market: "Ev Sahibi Toplam Üst 82.5", pick: "Üst", confidence: 83, odds: 1.78 }, + { market: "Handikap Ev Sahibi -5.5", pick: "1", confidence: 78, odds: 1.92 }, + ], + }, "basket-unicaja-aek"); + + await renderCard({ + sport: "football", + leagueName: "Süper Lig", + countryName: "Türkiye", + matchDate: "26 May 2026, 20:00", + homeTeam: "Galatasaray", + awayTeam: "Fenerbahçe", + htScore: "1-0", + ftScore: "2-1", + scoreConfidence: 72, + picks: [ + { market: "Maç Sonucu - Ev Sahibi", pick: "1", confidence: 68, odds: 2.15 }, + { market: "Üst 2.5 Gol", pick: "Üst", confidence: 61, odds: 1.92 }, + { market: "Karşılıklı Gol", pick: "Var", confidence: 58, odds: 1.75 }, + ], + }, "football-gs-fb"); +} + +main().catch((e) => { console.error(e); process.exit(1); }); diff --git a/src/scripts/render-social-card-v3.ts b/src/scripts/render-social-card-v3.ts new file mode 100644 index 0000000..c0c7ad9 --- /dev/null +++ b/src/scripts/render-social-card-v3.ts @@ -0,0 +1,331 @@ +/** + * V3 social card — sport icon + league badge + country flag. + * satori (HTML/CSS → SVG) → resvg (SVG → PNG). + */ + +import satori from "satori"; +import { Resvg } from "@resvg/resvg-js"; +import * as fs from "fs"; +import * as path from "path"; + +const OUTPUT_DIR = path.join(process.cwd(), "public", "predictions"); +const ASSETS_DIR = path.join(process.cwd(), "src", "modules", "social-poster", "assets"); +const ARIAL = fs.readFileSync("C:/Windows/Fonts/arial.ttf"); +const ARIAL_BOLD = fs.readFileSync("C:/Windows/Fonts/arialbd.ttf"); +const ARIAL_BLACK = fs.existsSync("C:/Windows/Fonts/ariblk.ttf") + ? fs.readFileSync("C:/Windows/Fonts/ariblk.ttf") + : ARIAL_BOLD; + +function loadAsset(name: string): string { + const p = path.join(ASSETS_DIR, name); + if (!fs.existsSync(p)) return ""; + const svg = fs.readFileSync(p, "utf-8"); + return `data:image/svg+xml;base64,${Buffer.from(svg).toString("base64")}`; +} + +interface Pick { market: string; pick: string; confidence: number; odds: number; } +interface Card { + sport: "football" | "basketball"; + leagueName: string; + leagueCode?: string; // e.g. "UCL", "SL" + countryName: string; + countryCode?: string; // "TR" | "ES" | "EU" | ... + matchDate: string; + homeTeam: string; + awayTeam: string; + htScore: string; + ftScore: string; + scoreConfidence: number; + picks: Pick[]; +} + +type N = string | { type: string; props: { style?: any; children?: any; src?: string; width?: number; height?: number } }; +const h = (type: string, style: any, ...children: N[]): N => ({ + type, + props: { style, children: children.length === 1 ? children[0] : children }, +}); + +// ── INLINE SVG GENERATORS (no network, embedded as data URIs) ──────────── + +function dataUri(svg: string): string { + return `data:image/svg+xml;base64,${Buffer.from(svg).toString("base64")}`; +} + +function ballSvg(sport: "football" | "basketball"): string { + // Use Twemoji (Twitter's MIT-licensed emoji set) — recognized everywhere. + return loadAsset(sport === "basketball" ? "basketball.svg" : "football.svg"); +} + +const FLAG_MAP: Record = { + TR: "flag-tr.svg", + EU: "flag-eu.svg", + GB: "flag-gb.svg", UK: "flag-gb.svg", EN: "flag-gb.svg", + ES: "flag-es.svg", + IT: "flag-it.svg", + DE: "flag-de.svg", + FR: "flag-fr.svg", + US: "flag-us.svg", +}; + +function flagSvg(code: string): string { + const c = (code || "").toUpperCase(); + const file = FLAG_MAP[c]; + if (!file) { + // Generic dark badge with country code + const fallback = ` + + ${c} + `; + return dataUri(fallback); + } + return loadAsset(file); +} + +function leagueBadgeSvg(code: string, color: string, size = 70): string { + // Shield/circle with league initials + return dataUri(` + + + + + + + + + ${code.slice(0, 4)} + `); +} + +// ── CARD ───────────────────────────────────────────────────────────────── + +function buildCard(c: Card): N { + const isBasket = c.sport === "basketball"; + const accent = isBasket ? "#F59E0B" : "#22C55E"; + const accentDark = isBasket ? "#92400E" : "#14532D"; + const away = "#3B82F6"; + const awayDark = "#1E3A8A"; + const sportLabel = isBasket ? "BASKETBOL TAHMİNİ" : "FUTBOL TAHMİNİ"; + const halfLabel = isBasket ? "İLK DEVRE" : "İLK YARI"; + const leagueCode = (c.leagueCode || c.leagueName.split(" ").map(w => w[0]).join("")).toUpperCase(); + const countryCode = (c.countryCode || "EU").toUpperCase(); + + const avatar = (name: string, c1: string, c2: string) => + h("div", { + display: "flex", alignItems: "center", justifyContent: "center", + width: 180, height: 180, borderRadius: 180, + background: `linear-gradient(135deg, ${c1} 0%, ${c2} 100%)`, + fontSize: 110, fontWeight: 900, color: "white", + boxShadow: "0 20px 50px rgba(0,0,0,0.55), inset 0 -6px 0 rgba(0,0,0,0.22)", + }, (name.match(/\p{L}/u)?.[0] || "?").toUpperCase()); + + const teamColumn = (name: string, c1: string, c2: string) => + h("div", { + display: "flex", flexDirection: "column", alignItems: "center", width: 280, + }, + avatar(name, c1, c2), + h("div", { + display: "flex", marginTop: 18, fontSize: 28, fontWeight: 900, + color: "white", textAlign: "center", lineHeight: 1.05, + maxWidth: 280, justifyContent: "center", + }, name), + ); + + const scoreBlock = h("div", { + display: "flex", flexDirection: "column", alignItems: "center", + }, + // Sport icon (BIG, this is the visual distinction) + h("div", { display: "flex", marginBottom: 8 }, + h("img", { width: 110, height: 110 } as any, ...[]) as any, + ), + h("div", { + display: "flex", fontSize: 12, color: "rgba(255,255,255,0.4)", + letterSpacing: 4, fontWeight: 700, marginBottom: 6, + }, "MAÇ SONU"), + h("div", { + display: "flex", fontSize: 92, fontWeight: 900, color: "white", + lineHeight: 1, letterSpacing: -3, + }, c.ftScore), + h("div", { + display: "flex", marginTop: 12, fontSize: 16, color: accent, + fontWeight: 800, background: `${accent}22`, padding: "6px 14px", + borderRadius: 10, letterSpacing: 1, + }, `${halfLabel} ${c.htScore}`), + ); + // Replace the placeholder img with actual ball image + ((scoreBlock as any).props.children[0] as any).props.children = { + type: "img", + props: { src: ballSvg(c.sport), width: 110, height: 110, style: { width: 110, height: 110 } }, + }; + + const pickRow = (p: Pick, idx: number) => + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + padding: "18px 24px", marginBottom: 11, + background: "rgba(255,255,255,0.045)", + borderLeft: `5px solid ${accent}`, + borderRadius: 12, + }, + h("div", { display: "flex", alignItems: "center", flexGrow: 1 }, + h("div", { + display: "flex", justifyContent: "center", alignItems: "center", + width: 40, height: 40, marginRight: 16, borderRadius: 8, + background: `${accent}22`, color: accent, fontSize: 22, fontWeight: 900, + }, String(idx + 1)), + h("div", { display: "flex", flexDirection: "column" }, + h("div", { display: "flex", fontSize: 26, fontWeight: 800, color: "white", lineHeight: 1.1 }, p.market), + h("div", { display: "flex", marginTop: 4, fontSize: 16, color: "rgba(255,255,255,0.5)" }, `Oran ${p.odds.toFixed(2)}`), + ), + ), + h("div", { + display: "flex", alignItems: "center", justifyContent: "center", + fontSize: 34, fontWeight: 900, color: accent, + background: `${accent}15`, + padding: "6px 16px", borderRadius: 10, + border: `1px solid ${accent}`, + }, `%${p.confidence}`), + ); + + // Helper for inline + const img = (src: string, w: number, hh: number) => ({ + type: "img", + props: { src, width: w, height: hh, style: { width: w, height: hh } }, + } as any); + + return h("div", { + width: 1080, height: 1080, + display: "flex", flexDirection: "column", + padding: "44px 56px", + background: "linear-gradient(180deg, #0F172A 0%, #020617 100%)", + color: "white", + fontFamily: "Arial", + }, + // ── HEADER: league badge + flag + name + date ── + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 28, + }, + h("div", { display: "flex", alignItems: "center" }, + img(leagueBadgeSvg(leagueCode, accent), 64, 64), + h("div", { display: "flex", flexDirection: "column", marginLeft: 16 }, + h("div", { display: "flex", alignItems: "center" }, + img(flagSvg(countryCode), 30, 20), + h("div", { + display: "flex", marginLeft: 10, fontSize: 14, color: "rgba(255,255,255,0.55)", + letterSpacing: 2, fontWeight: 700, + }, `${sportLabel} · ${c.countryName.toUpperCase()}`), + ), + h("div", { + display: "flex", marginTop: 4, fontSize: 28, fontWeight: 900, color: "white", + }, c.leagueName), + ), + ), + h("div", { + display: "flex", fontSize: 16, color: "rgba(255,255,255,0.6)", + background: "rgba(255,255,255,0.05)", + padding: "10px 16px", borderRadius: 10, + border: "1px solid rgba(255,255,255,0.1)", fontWeight: 600, + }, c.matchDate), + ), + + // ── TEAMS + SCORE ── + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 26, paddingLeft: 6, paddingRight: 6, + }, + teamColumn(c.homeTeam, accent, accentDark), + scoreBlock, + teamColumn(c.awayTeam, away, awayDark), + ), + + // ── PICKS TITLE ── + h("div", { + display: "flex", alignItems: "center", justifyContent: "space-between", + marginBottom: 14, paddingLeft: 6, paddingRight: 6, + }, + h("div", { display: "flex", fontSize: 22, fontWeight: 900, color: "white", letterSpacing: 2 }, "EN İYİ 3 TAHMİN"), + h("div", { display: "flex", alignItems: "center" }, + h("div", { display: "flex", fontSize: 13, color: "rgba(255,255,255,0.55)", fontWeight: 700, marginRight: 8 }, "SKOR GÜVENİ"), + h("div", { display: "flex", fontSize: 22, fontWeight: 900, color: accent }, `%${c.scoreConfidence}`), + ), + ), + + // ── PICKS LIST ── + h("div", { display: "flex", flexDirection: "column" }, + ...c.picks.slice(0, 3).map((p, i) => pickRow(p, i)), + ), + + // ── FOOTER ── + h("div", { + display: "flex", marginTop: "auto", alignItems: "center", justifyContent: "space-between", + paddingTop: 20, borderTop: "1px solid rgba(255,255,255,0.08)", + }, + h("div", { display: "flex", alignItems: "center" }, + img(ballSvg(c.sport), 28, 28), + h("div", { display: "flex", marginLeft: 10, fontSize: 15, color: "rgba(255,255,255,0.5)", fontWeight: 600 }, "AI Destekli Maç Tahmini"), + ), + h("div", { display: "flex", fontSize: 20, color: "white", fontWeight: 900, letterSpacing: 2 }, "iddaai.com"), + ), + ); +} + +async function renderCard(c: Card, name: string) { + const svg = await satori(buildCard(c) as any, { + width: 1080, + height: 1080, + fonts: [ + { name: "Arial", data: ARIAL, weight: 400, style: "normal" }, + { name: "Arial", data: ARIAL_BOLD, weight: 700, style: "normal" }, + { name: "Arial", data: ARIAL_BLACK, weight: 900, style: "normal" }, + ], + }); + const png = new Resvg(svg).render().asPng(); + const out = path.join(OUTPUT_DIR, `v3-${name}.png`); + fs.writeFileSync(out, png); + console.log(` → ${out}`); +} + +async function main() { + if (!fs.existsSync(OUTPUT_DIR)) fs.mkdirSync(OUTPUT_DIR, { recursive: true }); + + await renderCard({ + sport: "basketball", + leagueName: "Şampiyonlar Ligi", + leagueCode: "UCL", + countryName: "Avrupa", + countryCode: "EU", + matchDate: "25 May 2026, 21:00", + homeTeam: "Unicaja Malaga", + awayTeam: "AEK", + htScore: "40-35", + ftScore: "88-75", + scoreConfidence: 90, + picks: [ + { market: "Toplam Sayı Üst 160.5", pick: "Üst", confidence: 85, odds: 1.85 }, + { market: "Ev Sahibi Toplam Üst 82.5", pick: "Üst", confidence: 83, odds: 1.78 }, + { market: "Handikap Ev Sahibi -5.5", pick: "1", confidence: 78, odds: 1.92 }, + ], + }, "basket-unicaja-aek"); + + await renderCard({ + sport: "football", + leagueName: "Süper Lig", + leagueCode: "SL", + countryName: "Türkiye", + countryCode: "TR", + matchDate: "26 May 2026, 20:00", + homeTeam: "Galatasaray", + awayTeam: "Fenerbahçe", + htScore: "1-0", + ftScore: "2-1", + scoreConfidence: 72, + picks: [ + { market: "Maç Sonucu - Ev Sahibi", pick: "1", confidence: 68, odds: 2.15 }, + { market: "Üst 2.5 Gol", pick: "Üst", confidence: 61, odds: 1.92 }, + { market: "Karşılıklı Gol", pick: "Var", confidence: 58, odds: 1.75 }, + ], + }, "football-gs-fb"); +} + +main().catch((e) => { console.error(e); process.exit(1); });