{
  "date": "2026-05-10",
  "generated": "2026-05-10T07:19:01",
  "model_version": "3.1",
  "analyses": [
    {
      "match": "Keys, Madison vs Bartunkova, Nikola",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Keys": "79%",
        "victoire_Bartunkova": "21%",
        "set_Keys": "92%",
        "set_Bartunkova": "55%"
      },
      "cote_indicative": {
        "Keys": 1.34,
        "Bartunkova": 3.4
      },
      "raisonnement": "Top 8 mondiale (vainqueure Australian Open 2025) vs jeune qualifiee tchèque ~150 ATP. Surface terre battue Rome neutralise relative l'avantage Keys (gros service) mais skill gap intrinsèque suffisant.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Keys, Madison",
        "joueur_2": "Bartunkova, Nikola",
        "surface": "Terre battue (clay)",
        "h2h": "Premiere confrontation"
      }
    },
    {
      "match": "Svitolina, Elina vs Baptiste, Hailey",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Svitolina": "75%",
        "victoire_Baptiste": "25%",
        "set_Svitolina": "90%",
        "set_Baptiste": "59%"
      },
      "cote_indicative": {
        "Svitolina": 1.45,
        "Baptiste": 2.85
      },
      "raisonnement": "Svitolina veterane top20, demi-finales en Grand Chelem multiples (Wimbledon 2023/2024, RG QF). Solide sur terre. Baptiste USA ~70 mondiale, profil dur, struggles sur surface lente. Skill+surface gap clair.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Svitolina, Elina",
        "joueur_2": "Baptiste, Hailey",
        "surface": "Terre battue (clay)",
        "h2h": "[NON VERIFIE]"
      }
    },
    {
      "match": "Burnley FC vs Aston Villa",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Villa 1.63 et OU 1 atypique; DC X2 implique = 0.835 vig-ajust 0.78, p_estimee 80% -> edge ~+2%, sub seuil DC 5%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Aston Villa fav legitime, mais cote DC X2 trop courte. Pari sec interdit. Pas d'angle clair OU sur ligne 1.0 inhabituelle.",
      "stats_comparatives": null
    },
    {
      "match": "Crystal Palace vs Everton FC",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match 3.05/2.41/3.40 equilibre; aucun edge clair sur DC ou OU 2.75 (cote Under 1.64 trop courte)",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip type, marche efficace. NO BET edge insuffisant tous marches.",
      "stats_comparatives": null
    },
    {
      "match": "Nottingham Forest vs Newcastle United",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.75/2.50/3.60; OU 4.25 ligne haute peu jouable",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Pas d'angle clair, marche efficient sur cette affiche.",
      "stats_comparatives": null
    },
    {
      "match": "West Ham United vs Arsenal FC",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "15:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Arsenal heavy fav 1.59 (>1.30 OK mais pari sec interdit), DC 1X impossible chiffrer sans angle West Ham",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Top 4 race vs equipe bas tableau. Edge DC X2 vig-ajust insuffisant.",
      "stats_comparatives": null
    },
    {
      "match": "RCD Mallorca vs Villarreal CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "12:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match 2.46/2.80/3.60 equilibre, marche tres efficient",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Aucun edge clair sur DC, OU 2.75 ou BTTS. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Athletic Bilbao vs Valencia CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "14:15",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Athletic fav 1.71 mais DC 1X cote implicite ~1.20 trop courte; edge insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Athletic solide a domicile mais marche correctement price. NO BET edge.",
      "stats_comparatives": null
    },
    {
      "match": "Real Oviedo vs Getafe CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "16:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Under 2.75 a 1.33: p_estimee 80%, p_finale 0.786, edge +3.4% sub seuil OU_BUTS 4%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Profil low-scoring evident (Getafe historiquement), mais marche price correctement. Robustesse fragile.",
      "stats_comparatives": null
    },
    {
      "match": "FC Barcelona vs Real Madrid",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "El Clasico, variance haute; DC 1X edge insuffisant, OU 4.25 angle Over edge sub seuil",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match emotionnel, bookmaker tres efficient sur Clasico. NO BET prudence.",
      "stats_comparatives": null
    },
    {
      "match": "Paris Saint-Germain vs Stade Brest 29",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML PSG 1.20 < 1.30 absolu; OU 4.5 Under 1.41 trop court",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "PSG dominant. Aucun marche jouable au-dessus du plancher 1.30.",
      "stats_comparatives": null
    },
    {
      "match": "Le Havre AC vs Olympique Marseille",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "OM fav 2.07 mais DC X2 implicite ~1.30 trop court, OU 4 Under 1.27 idem",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "OM en deplacement, motivation fin de saison incertaine. NO BET edge.",
      "stats_comparatives": null
    },
    {
      "match": "Toulouse FC vs Olympique Lyon",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Lyon fav 1.85, DC X2 implicite ~1.29 sous plancher",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Toulouse en form a domicile parfois. Edge insuffisant tous marches.",
      "stats_comparatives": null
    },
    {
      "match": "AJ Auxerre vs OGC Nice",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.44/3.00/3.40; OU 3.75 Under 1.25 trop court",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Marche price correctement. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Angers SCO vs Strasbourg Alsace",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.80/2.55/3.45; aucun edge >5% sur DC ou OU 2.75",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip type. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "FC Metz vs FC Lorient",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Lorient fav 2.22, marche equilibre, edge insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Bas de tableau. Pas d'angle exploitable.",
      "stats_comparatives": null
    },
    {
      "match": "AS Monaco vs Lille OSC",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.44/2.75/3.80; OU 3.25 Under 1.63 sub seuil edge OU_BUTS 4%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match enjeu Europe. Marche bien price. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Stade Rennais FC vs Paris FC",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Rennes fav 1.57, DC 1X implicite ~1.18 trop court; OU 2 Over 1.21 idem",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Rennes domine PFC newly promoted. Plus de marges jouables.",
      "stats_comparatives": null
    },
    {
      "match": "Hamburger SV vs SC Freiburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.75/2.48/3.65, marche efficient",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Hambourg promu, Freiburg mid-table. Coin flip. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "1. FC Cologne vs 1. FC Heidenheim",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "15:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Cologne fav 2.06 mais DC 1X ~1.40 vig-ajust, edge insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "OU 5.0 ligne haute, Under 1.15 trop court. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "FSV Mainz vs Union Berlin",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "17:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Mainz fav 1.72, DC 1X implicite ~1.22 sous plancher; ML edge ~+2% sub seuil 5%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Mainz en forme mais marche price correctement. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Hellas Verona vs Como 1907",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Como away 1.41: p_estimee 73% -> p_finale 0.724, edge +1.5% sub seuil CONFIANCE 2%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Verona relegation, Como mid-table. Skill gap reel mais cote tres serree. Motivation fin de saison incertaine. NO BET prudent.",
      "stats_comparatives": null
    },
    {
      "match": "US Cremonese vs Pisa SC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Cremonese fav 1.81, edge DC implicite et OU 3.5 sub seuil",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match relegation/promotion. Marche efficient. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "ACF Fiorentina vs Genoa CFC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Fiorentina fav 2.05 modere, edge insuffisant tous marches",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match milieu de tableau. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Parma Calcio vs AS Roma",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "16:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Roma fav 1.50, p_finale ~0.690 < 0.72 not CONFIANCE; ML edge sub seuil VALUE 5%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Roma course Europe mais Parma relegation = motivation. NO BET edge.",
      "stats_comparatives": null
    },
    {
      "match": "AC Milan vs Atalanta BC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "18:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match 2.20/3.40/3.45; OU 3.75 Under 1.29 sous plancher",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip top4 race. Marche bien price. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Excelsior Rotterdam vs FC Volendam",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — seuil edge 7% requis; aucun marche atteint",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Bas de tableau. Marche tier2 efficient. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "FC Groningen vs NEC Nijmegen",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — match equilibre, edge insuffisant tier2",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET tier2 seuil 7%.",
      "stats_comparatives": null
    },
    {
      "match": "Fortuna Sittard vs PEC Zwolle",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — Fortuna fav 2.11, edge insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET tier2.",
      "stats_comparatives": null
    },
    {
      "match": "Go Ahead Eagles vs PSV Eindhoven",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — PSV away 1.63, DC X2 implicite ~1.20 sous plancher",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "PSV champion-elect mais cote trop courte tier2.",
      "stats_comparatives": null
    },
    {
      "match": "Ajax Amsterdam vs FC Utrecht",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — Ajax 1.61, ML edge +6.9% sub seuil 7% tier2",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Domination Ajax probable mais just sub seuil tier2 ferme.",
      "stats_comparatives": null
    },
    {
      "match": "FC Twente Enschede vs Sparta Rotterdam",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — Twente fav 1.36, edge ML insuffisant pour tier2",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Twente solide mais marche price correctement. NO BET tier2.",
      "stats_comparatives": null
    },
    {
      "match": "NAC Breda vs SC Heerenveen",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — match equilibre 2.49/2.50, aucun angle",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET tier2 coin flip.",
      "stats_comparatives": null
    },
    {
      "match": "SC Telstar vs Heracles Almelo",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — Telstar 1.34, p_finale ~0.77, edge ~+2% sub seuil tier2 7%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Telstar nouveau promu, Heracles bas tableau. Donnees incertaines tier2.",
      "stats_comparatives": null
    },
    {
      "match": "Feyenoord Rotterdam vs AZ Alkmaar",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 ERED — Feyenoord fav 1.81, edge ML +6.9% sub seuil 7% tier2",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Top vs top Eredivisie, edge tier2 just sub seuil. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "AVS Futebol SAD vs FC Porto",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Porto 1.21 < 1.30 absolu; OU 4.25 Under 1.28 sous plancher",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Porto domination prevue mais aucun marche jouable au-dessus de 1.30.",
      "stats_comparatives": null
    },
    {
      "match": "FC Alverca SAD vs Estoril Praia",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tier2 LP — match equilibre 2.42/2.75/3.50",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip Liga Portugal mid-table. NO BET tier2.",
      "stats_comparatives": null
    },
    {
      "match": "Ruud, Casper vs Lehecka, Jiri",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Ruud 1.54: p_estimee 67% -> p_finale 0.66, edge +1.5% sub seuil ML VALUE 5%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Ruud specialiste terre, finaliste Rome anterieur. Lehecka top10 mais profil rapide. Edge insuffisant.",
      "stats_comparatives": null
    },
    {
      "match": "Humbert, Ugo vs Prizmic, Dino",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Prizmic 1.40: p_estimee 72% -> p_finale 0.718, edge +0.4% nul",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Prizmic clay specialist, Humbert hard-court. Marche tres efficient.",
      "stats_comparatives": null
    },
    {
      "match": "Blockx, Alexander vs Zverev, Alexander",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Zverev 1.26 < 1.30 absolu",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Zverev Top4 vs jeune wildcard. Cote sous plancher.",
      "stats_comparatives": null
    },
    {
      "match": "Khachanov, Karen vs Van de Zandschulp, Botic",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "11:20",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Khachanov 1.70: p_estimee 65% -> p_finale 0.631, edge +4.3% sub seuil ML VALUE 5% v3.1",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Khachanov solide mais cote tendue. Robustesse fragile, NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Tien, Learner vs Bublik, Alexander",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "12:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Bublik fav 1.48 erratique sur clay; pas d'angle clair Tien outsider 2.70",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Bublik unpredictable surface. Variance haute. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Musetti, Lorenzo vs Cerundolo, Francisco",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 1.86/1.95, edge ML <2% chez Musetti home",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Musetti home crowd, Cerundolo clay specialist. Coin flip. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Paul, Tommy vs Darderi, Luciano",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "15:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Paul 1.70: p_estimee 60% -> p_finale 0.596, edge +0.8% nul",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Paul top20 mais Darderi clay specialist Italian. Marche bien price.",
      "stats_comparatives": null
    },
    {
      "match": "Arnaldi, Matteo vs Jodar, Rafael",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "18:30",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Jodar 1.29 < 1.30 absolu",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Sous plancher cote.",
      "stats_comparatives": null
    },
    {
      "match": "Samsonova, Liudmila vs Potapova, Anastasia (DQ-C 09:00)",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "09:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Entree dupliquee DQ-C — match reel a 10:10 traite separement",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Doublon source. NO BET DQ-C cotes manquantes.",
      "stats_comparatives": null
    },
    {
      "match": "Pegula, Jessica vs Masarova, Rebeka",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Pegula 1.15 < 1.30 absolu",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Top5 vs ~250. Cote sous plancher.",
      "stats_comparatives": null
    },
    {
      "match": "Samsonova, Liudmila vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match equilibre 2.42/1.60, edge ML insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip type entre joueuses milieu Top50. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Osaka, Naomi vs Shnaider, Diana",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "12:10",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Match coin flip 1.98/1.83, Osaka comeback variance haute",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Osaka retour, Shnaider rising. Trop d'incertitude. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Eala, Alexandra vs Rybakina, Elena",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Rybakina 1.05 < 1.30 absolu; Eala outsider 10.00 hors scope (>3.50)",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Skill gap massif. Aucun marche jouable.",
      "stats_comparatives": null
    },
    {
      "match": "Siegemund, Laura vs Pliskova, Karolina",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match coin flip 1.95/1.86, edge insuffisant",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Veteranes face-off. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Cocciaretto, Elisabetta vs Swiatek, Iga",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — ML Swiatek 1.08 < 1.30 absolu; Cocciaretto outsider 8.20 hors scope",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Swiatek triple championne RG, Cocciaretto Top60. Cote sous plancher.",
      "stats_comparatives": null
    },
    {
      "match": "You, Xiaodi vs Liang, En-Shuo",
      "sport": "tennis",
      "ligue": "WTA 125K Jiujiang",
      "heure": "05:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "DQ-C — cotes manquantes dans data_brutes",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Cotes indisponibles. NO BET signal sizing pas applicable sans cotes.",
      "stats_comparatives": null
    },
    {
      "match": "Vekic, Donna vs Timofeeva, Maria",
      "sport": "tennis",
      "ligue": "WTA 125K Istanbul",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WTA 125K renforce: p_finale 0.743 < 0.76 seuil, edge +3.3% sub seuil 4%",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Vekic top50 fav 1.42 vs Timofeeva mid. Criteres CONFIANCE WTA 125K renforces non atteints.",
      "stats_comparatives": null
    },
    {
      "match": "Los Angeles Lakers vs Oklahoma City Thunder",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "DQ-C — cotes manquantes; injury report non publie",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match playoffs probable mais sans cotes confirmees ni injury. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Portland Fire vs Chicago Sky",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "01:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WNBA hors scope NBA + DQ-C cotes manquantes",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "WNBA pas dans le scope du protocole NBA. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Connecticut Sun vs Seattle Storm",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "17:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WNBA hors scope NBA + DQ-C",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Hors scope NBA. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Washington Mystics vs New York Liberty",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WNBA hors scope NBA + DQ-C",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Hors scope NBA. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Philadelphia 76ers vs New York Knicks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Injury report non verifiable < 2h tip-off, NO BET auto playoffs",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Match playoffs probable. Sans confirmation injury report (Embiid, Maxey, Brunson notamment), NO BET protocole NBA.",
      "stats_comparatives": null
    },
    {
      "match": "Los Angeles Sparks vs Las Vegas Aces",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "22:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WNBA hors scope NBA + DQ-C",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Hors scope NBA. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Minnesota Timberwolves vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Injury report non verifiable < 2h tip-off, NO BET auto",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Cotes Timberwolves 2.46 / Spurs 1.56 atypiques (Spurs fav vs MIN). Sans confirmation rotation/injury, NO BET protocole.",
      "stats_comparatives": null
    },
    {
      "match": "Golden State Valkyries vs Phoenix Mercury",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "00:30",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "WNBA hors scope NBA + DQ-C",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Hors scope NBA. NO BET.",
      "stats_comparatives": null
    }
  ],
  "paris": [
    {
      "sport": "tennis",
      "ligue": "WTA Rome",
      "ligue_canonique": "WTA_1000",
      "match": "Keys, Madison vs Bartunkova, Nikola",
      "heure": "09:00",
      "marche": "Match Winner (ML)",
      "marche_canonique": "ML",
      "selection": "Keys, Madison",
      "cote": 1.34,
      "cote_plancher": 1.32,
      "dq_flag": "DQ-A",
      "mise_unites": "1u",
      "mise_euros": 10,
      "kelly_calcul": "p_finale=77.7%, f_full=12.1%, qk=3.0%, chaos*1.0, mise_brute=15.05 EUR -> cap CONFIANCE_STD 1u",
      "edge_estime": "+3.1%",
      "edge_num": 0.0306,
      "probabilite_estimee": "79%",
      "p_estimee": 0.79,
      "probabilite_marche": "74.6%",
      "probabilite_finale": "77.7%",
      "p_finale_num": 0.7769,
      "robustesse": "Test +3% sur p_estimee: edge reste positif (~+1%) mais marginal. Skill gap massif Top10 vs ~150 atp; cote >=1.30 OK; chaos 0.",
      "raisonnement": "Madison Keys vainqueure Australian Open 2025, top 8 mondiale, retour de blessure compense par niveau intrinseque. Bartunkova 18 ans, niveau circuit secondaire (~ranking 150-200), engagee comme qualifiee. Skill gap massif, profil de match a sens unique sur clay rapide a Rome. Edge modere mais p_finale solide pour CONFIANCE_STD.",
      "moteur": "CONFIANCE",
      "statut_v3": "CONFIANCE_STD",
      "protocol_version": "3.1",
      "chaos": 0,
      "tier": "tier1"
    },
    {
      "sport": "tennis",
      "ligue": "WTA Rome",
      "ligue_canonique": "WTA_1000",
      "match": "Svitolina, Elina vs Baptiste, Hailey",
      "heure": "09:00",
      "marche": "Match Winner (ML)",
      "marche_canonique": "ML",
      "selection": "Svitolina, Elina",
      "cote": 1.45,
      "cote_plancher": 1.4,
      "dq_flag": "DQ-A",
      "mise_unites": "1u",
      "mise_euros": 10,
      "kelly_calcul": "p_finale=73.2%, f_full=13.6%, qk=3.4%, chaos*1.0, mise_brute=17.05 EUR -> cap CONFIANCE_STD 1u",
      "edge_estime": "+4.2%",
      "edge_num": 0.0422,
      "probabilite_estimee": "75%",
      "p_estimee": 0.75,
      "probabilite_marche": "69.0%",
      "probabilite_finale": "73.2%",
      "p_finale_num": 0.7319,
      "robustesse": "Edge solide >+4% post shrinkage, p_finale >= 0.72 = palier CONFIANCE_STD. Robustesse OK: meme avec p surestimee de 3%, edge reste ~+2%. Spread cote raisonnable.",
      "raisonnement": "Svitolina veterane Top20 confirmee, demi-finaliste Wimbledon 2023 et 2024, solide sur terre battue (QF Roland-Garros multiples). Hailey Baptiste americaine ~ranking 65-90, profil dur/rapide, transition difficile sur ocre lente de Rome. Match-up de styles defavorable a Baptiste. CONFIANCE_STD sur skill gap + surface.",
      "moteur": "CONFIANCE",
      "statut_v3": "CONFIANCE_STD",
      "protocol_version": "3.1",
      "chaos": 1,
      "tier": "tier1"
    }
  ],
  "no_bet": [
    {
      "match": "Burnley FC vs Aston Villa",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Villa 1.63 et OU 1 atypique; DC X2 implique = 0.835 vig-ajust 0.78, p_estimee 80% -> edge ~+2%, sub seuil DC 5%",
      "raisonnement": "Aston Villa fav legitime, mais cote DC X2 trop courte. Pari sec interdit. Pas d'angle clair OU sur ligne 1.0 inhabituelle."
    },
    {
      "match": "Crystal Palace vs Everton FC",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match 3.05/2.41/3.40 equilibre; aucun edge clair sur DC ou OU 2.75 (cote Under 1.64 trop courte)",
      "raisonnement": "Coin flip type, marche efficace. NO BET edge insuffisant tous marches."
    },
    {
      "match": "Nottingham Forest vs Newcastle United",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.75/2.50/3.60; OU 4.25 ligne haute peu jouable",
      "raisonnement": "Pas d'angle clair, marche efficient sur cette affiche."
    },
    {
      "match": "West Ham United vs Arsenal FC",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "15:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Arsenal heavy fav 1.59 (>1.30 OK mais pari sec interdit), DC 1X impossible chiffrer sans angle West Ham",
      "raisonnement": "Top 4 race vs equipe bas tableau. Edge DC X2 vig-ajust insuffisant."
    },
    {
      "match": "RCD Mallorca vs Villarreal CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "12:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match 2.46/2.80/3.60 equilibre, marche tres efficient",
      "raisonnement": "Aucun edge clair sur DC, OU 2.75 ou BTTS. NO BET."
    },
    {
      "match": "Athletic Bilbao vs Valencia CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "14:15",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Athletic fav 1.71 mais DC 1X cote implicite ~1.20 trop courte; edge insuffisant",
      "raisonnement": "Athletic solide a domicile mais marche correctement price. NO BET edge."
    },
    {
      "match": "Real Oviedo vs Getafe CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "16:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Under 2.75 a 1.33: p_estimee 80%, p_finale 0.786, edge +3.4% sub seuil OU_BUTS 4%",
      "raisonnement": "Profil low-scoring evident (Getafe historiquement), mais marche price correctement. Robustesse fragile."
    },
    {
      "match": "FC Barcelona vs Real Madrid",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "El Clasico, variance haute; DC 1X edge insuffisant, OU 4.25 angle Over edge sub seuil",
      "raisonnement": "Match emotionnel, bookmaker tres efficient sur Clasico. NO BET prudence."
    },
    {
      "match": "Paris Saint-Germain vs Stade Brest 29",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1 — ML PSG 1.20 < 1.30 absolu; OU 4.5 Under 1.41 trop court",
      "raisonnement": "PSG dominant. Aucun marche jouable au-dessus du plancher 1.30."
    },
    {
      "match": "Le Havre AC vs Olympique Marseille",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "OM fav 2.07 mais DC X2 implicite ~1.30 trop court, OU 4 Under 1.27 idem",
      "raisonnement": "OM en deplacement, motivation fin de saison incertaine. NO BET edge."
    },
    {
      "match": "Toulouse FC vs Olympique Lyon",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Lyon fav 1.85, DC X2 implicite ~1.29 sous plancher",
      "raisonnement": "Toulouse en form a domicile parfois. Edge insuffisant tous marches."
    },
    {
      "match": "AJ Auxerre vs OGC Nice",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.44/3.00/3.40; OU 3.75 Under 1.25 trop court",
      "raisonnement": "Marche price correctement. NO BET."
    },
    {
      "match": "Angers SCO vs Strasbourg Alsace",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.80/2.55/3.45; aucun edge >5% sur DC ou OU 2.75",
      "raisonnement": "Coin flip type. NO BET."
    },
    {
      "match": "FC Metz vs FC Lorient",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Lorient fav 2.22, marche equilibre, edge insuffisant",
      "raisonnement": "Bas de tableau. Pas d'angle exploitable."
    },
    {
      "match": "AS Monaco vs Lille OSC",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.44/2.75/3.80; OU 3.25 Under 1.63 sub seuil edge OU_BUTS 4%",
      "raisonnement": "Match enjeu Europe. Marche bien price. NO BET."
    },
    {
      "match": "Stade Rennais FC vs Paris FC",
      "sport": "football",
      "ligue": "Ligue 1",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Rennes fav 1.57, DC 1X implicite ~1.18 trop court; OU 2 Over 1.21 idem",
      "raisonnement": "Rennes domine PFC newly promoted. Plus de marges jouables."
    },
    {
      "match": "Hamburger SV vs SC Freiburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.75/2.48/3.65, marche efficient",
      "raisonnement": "Hambourg promu, Freiburg mid-table. Coin flip. NO BET."
    },
    {
      "match": "1. FC Cologne vs 1. FC Heidenheim",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "15:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Cologne fav 2.06 mais DC 1X ~1.40 vig-ajust, edge insuffisant",
      "raisonnement": "OU 5.0 ligne haute, Under 1.15 trop court. NO BET."
    },
    {
      "match": "FSV Mainz vs Union Berlin",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "17:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Mainz fav 1.72, DC 1X implicite ~1.22 sous plancher; ML edge ~+2% sub seuil 5%",
      "raisonnement": "Mainz en forme mais marche price correctement. NO BET."
    },
    {
      "match": "Hellas Verona vs Como 1907",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Como away 1.41: p_estimee 73% -> p_finale 0.724, edge +1.5% sub seuil CONFIANCE 2%",
      "raisonnement": "Verona relegation, Como mid-table. Skill gap reel mais cote tres serree. Motivation fin de saison incertaine. NO BET prudent."
    },
    {
      "match": "US Cremonese vs Pisa SC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Cremonese fav 1.81, edge DC implicite et OU 3.5 sub seuil",
      "raisonnement": "Match relegation/promotion. Marche efficient. NO BET."
    },
    {
      "match": "ACF Fiorentina vs Genoa CFC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Fiorentina fav 2.05 modere, edge insuffisant tous marches",
      "raisonnement": "Match milieu de tableau. NO BET."
    },
    {
      "match": "Parma Calcio vs AS Roma",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "16:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Roma fav 1.50, p_finale ~0.690 < 0.72 not CONFIANCE; ML edge sub seuil VALUE 5%",
      "raisonnement": "Roma course Europe mais Parma relegation = motivation. NO BET edge."
    },
    {
      "match": "AC Milan vs Atalanta BC",
      "sport": "football",
      "ligue": "Serie A",
      "heure": "18:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match 2.20/3.40/3.45; OU 3.75 Under 1.29 sous plancher",
      "raisonnement": "Coin flip top4 race. Marche bien price. NO BET."
    },
    {
      "match": "Excelsior Rotterdam vs FC Volendam",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — seuil edge 7% requis; aucun marche atteint",
      "raisonnement": "Bas de tableau. Marche tier2 efficient. NO BET."
    },
    {
      "match": "FC Groningen vs NEC Nijmegen",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — match equilibre, edge insuffisant tier2",
      "raisonnement": "NO BET tier2 seuil 7%."
    },
    {
      "match": "Fortuna Sittard vs PEC Zwolle",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — Fortuna fav 2.11, edge insuffisant",
      "raisonnement": "NO BET tier2."
    },
    {
      "match": "Go Ahead Eagles vs PSV Eindhoven",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — PSV away 1.63, DC X2 implicite ~1.20 sous plancher",
      "raisonnement": "PSV champion-elect mais cote trop courte tier2."
    },
    {
      "match": "Ajax Amsterdam vs FC Utrecht",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — Ajax 1.61, ML edge +6.9% sub seuil 7% tier2",
      "raisonnement": "Domination Ajax probable mais just sub seuil tier2 ferme."
    },
    {
      "match": "FC Twente Enschede vs Sparta Rotterdam",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — Twente fav 1.36, edge ML insuffisant pour tier2",
      "raisonnement": "Twente solide mais marche price correctement. NO BET tier2."
    },
    {
      "match": "NAC Breda vs SC Heerenveen",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — match equilibre 2.49/2.50, aucun angle",
      "raisonnement": "NO BET tier2 coin flip."
    },
    {
      "match": "SC Telstar vs Heracles Almelo",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — Telstar 1.34, p_finale ~0.77, edge ~+2% sub seuil tier2 7%",
      "raisonnement": "Telstar nouveau promu, Heracles bas tableau. Donnees incertaines tier2."
    },
    {
      "match": "Feyenoord Rotterdam vs AZ Alkmaar",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "14:45",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 ERED — Feyenoord fav 1.81, edge ML +6.9% sub seuil 7% tier2",
      "raisonnement": "Top vs top Eredivisie, edge tier2 just sub seuil. NO BET."
    },
    {
      "match": "AVS Futebol SAD vs FC Porto",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1 — ML Porto 1.21 < 1.30 absolu; OU 4.25 Under 1.28 sous plancher",
      "raisonnement": "Porto domination prevue mais aucun marche jouable au-dessus de 1.30."
    },
    {
      "match": "FC Alverca SAD vs Estoril Praia",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tier2 LP — match equilibre 2.42/2.75/3.50",
      "raisonnement": "Coin flip Liga Portugal mid-table. NO BET tier2."
    },
    {
      "match": "Ruud, Casper vs Lehecka, Jiri",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Ruud 1.54: p_estimee 67% -> p_finale 0.66, edge +1.5% sub seuil ML VALUE 5%",
      "raisonnement": "Ruud specialiste terre, finaliste Rome anterieur. Lehecka top10 mais profil rapide. Edge insuffisant."
    },
    {
      "match": "Humbert, Ugo vs Prizmic, Dino",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Prizmic 1.40: p_estimee 72% -> p_finale 0.718, edge +0.4% nul",
      "raisonnement": "Prizmic clay specialist, Humbert hard-court. Marche tres efficient."
    },
    {
      "match": "Blockx, Alexander vs Zverev, Alexander",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — ML Zverev 1.26 < 1.30 absolu",
      "raisonnement": "Zverev Top4 vs jeune wildcard. Cote sous plancher."
    },
    {
      "match": "Khachanov, Karen vs Van de Zandschulp, Botic",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "11:20",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Khachanov 1.70: p_estimee 65% -> p_finale 0.631, edge +4.3% sub seuil ML VALUE 5% v3.1",
      "raisonnement": "Khachanov solide mais cote tendue. Robustesse fragile, NO BET."
    },
    {
      "match": "Tien, Learner vs Bublik, Alexander",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "12:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Bublik fav 1.48 erratique sur clay; pas d'angle clair Tien outsider 2.70",
      "raisonnement": "Bublik unpredictable surface. Variance haute. NO BET."
    },
    {
      "match": "Musetti, Lorenzo vs Cerundolo, Francisco",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 1.86/1.95, edge ML <2% chez Musetti home",
      "raisonnement": "Musetti home crowd, Cerundolo clay specialist. Coin flip. NO BET."
    },
    {
      "match": "Paul, Tommy vs Darderi, Luciano",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "15:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Paul 1.70: p_estimee 60% -> p_finale 0.596, edge +0.8% nul",
      "raisonnement": "Paul top20 mais Darderi clay specialist Italian. Marche bien price."
    },
    {
      "match": "Arnaldi, Matteo vs Jodar, Rafael",
      "sport": "tennis",
      "ligue": "ATP Rome",
      "heure": "18:30",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — ML Jodar 1.29 < 1.30 absolu",
      "raisonnement": "Sous plancher cote."
    },
    {
      "match": "Samsonova, Liudmila vs Potapova, Anastasia (DQ-C 09:00)",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "09:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "Entree dupliquee DQ-C — match reel a 10:10 traite separement",
      "raisonnement": "Doublon source. NO BET DQ-C cotes manquantes."
    },
    {
      "match": "Pegula, Jessica vs Masarova, Rebeka",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — ML Pegula 1.15 < 1.30 absolu",
      "raisonnement": "Top5 vs ~250. Cote sous plancher."
    },
    {
      "match": "Samsonova, Liudmila vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match equilibre 2.42/1.60, edge ML insuffisant",
      "raisonnement": "Coin flip type entre joueuses milieu Top50. NO BET."
    },
    {
      "match": "Osaka, Naomi vs Shnaider, Diana",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "12:10",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Match coin flip 1.98/1.83, Osaka comeback variance haute",
      "raisonnement": "Osaka retour, Shnaider rising. Trop d'incertitude. NO BET."
    },
    {
      "match": "Eala, Alexandra vs Rybakina, Elena",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — ML Rybakina 1.05 < 1.30 absolu; Eala outsider 10.00 hors scope (>3.50)",
      "raisonnement": "Skill gap massif. Aucun marche jouable."
    },
    {
      "match": "Siegemund, Laura vs Pliskova, Karolina",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match coin flip 1.95/1.86, edge insuffisant",
      "raisonnement": "Veteranes face-off. NO BET."
    },
    {
      "match": "Cocciaretto, Elisabetta vs Swiatek, Iga",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — ML Swiatek 1.08 < 1.30 absolu; Cocciaretto outsider 8.20 hors scope",
      "raisonnement": "Swiatek triple championne RG, Cocciaretto Top60. Cote sous plancher."
    },
    {
      "match": "You, Xiaodi vs Liang, En-Shuo",
      "sport": "tennis",
      "ligue": "WTA 125K Jiujiang",
      "heure": "05:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "DQ-C — cotes manquantes dans data_brutes",
      "raisonnement": "Cotes indisponibles. NO BET signal sizing pas applicable sans cotes."
    },
    {
      "match": "Vekic, Donna vs Timofeeva, Maria",
      "sport": "tennis",
      "ligue": "WTA 125K Istanbul",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "WTA 125K renforce: p_finale 0.743 < 0.76 seuil, edge +3.3% sub seuil 4%",
      "raisonnement": "Vekic top50 fav 1.42 vs Timofeeva mid. Criteres CONFIANCE WTA 125K renforces non atteints."
    },
    {
      "match": "Los Angeles Lakers vs Oklahoma City Thunder",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C — cotes manquantes; injury report non publie",
      "raisonnement": "Match playoffs probable mais sans cotes confirmees ni injury. NO BET."
    },
    {
      "match": "Portland Fire vs Chicago Sky",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "01:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "WNBA hors scope NBA + DQ-C cotes manquantes",
      "raisonnement": "WNBA pas dans le scope du protocole NBA. NO BET."
    },
    {
      "match": "Connecticut Sun vs Seattle Storm",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "17:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "WNBA hors scope NBA + DQ-C",
      "raisonnement": "Hors scope NBA. NO BET."
    },
    {
      "match": "Washington Mystics vs New York Liberty",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "WNBA hors scope NBA + DQ-C",
      "raisonnement": "Hors scope NBA. NO BET."
    },
    {
      "match": "Philadelphia 76ers vs New York Knicks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Injury report non verifiable < 2h tip-off, NO BET auto playoffs",
      "raisonnement": "Match playoffs probable. Sans confirmation injury report (Embiid, Maxey, Brunson notamment), NO BET protocole NBA."
    },
    {
      "match": "Los Angeles Sparks vs Las Vegas Aces",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "22:00",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "WNBA hors scope NBA + DQ-C",
      "raisonnement": "Hors scope NBA. NO BET."
    },
    {
      "match": "Minnesota Timberwolves vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Injury report non verifiable < 2h tip-off, NO BET auto",
      "raisonnement": "Cotes Timberwolves 2.46 / Spurs 1.56 atypiques (Spurs fav vs MIN). Sans confirmation rotation/injury, NO BET protocole."
    },
    {
      "match": "Golden State Valkyries vs Phoenix Mercury",
      "sport": "basketball",
      "ligue": "WNBA",
      "heure": "00:30",
      "dq_flag": "DQ-C",
      "chaos": 1,
      "raison": "WNBA hors scope NBA + DQ-C",
      "raisonnement": "Hors scope NBA. NO BET."
    }
  ],
  "resume": {
    "total_paris": 2,
    "exposition_totale_euros": 20,
    "exposition_totale_unites": 2.0,
    "quota_atteint": "2/8",
    "gain_potentiel_si_tous_gagnants": 7.9,
    "matchs_analyses_total": 62,
    "no_bet_count": 60,
    "repartition": {
      "VALUE_total": 0,
      "VALUE_ULTRA": 0,
      "VALUE_SAFE": 0,
      "VALUE_LEAN": 0,
      "CONFIANCE_total": 2,
      "CONFIANCE_HIGH": 0,
      "CONFIANCE_STD": 2
    },
    "par_sport": {
      "tennis": 2,
      "football": 0,
      "basketball": 0
    },
    "gain_potentiel_si_tous_gagnants_obj": {
      "profit_net_euros": 7.9,
      "ROI_potentiel": "+39.5%"
    }
  }
}