{
  "date": "2026-05-30",
  "generated": "2026-05-30T07:15:00",
  "model_version": "4.0",
  "protocol_version": "4.0",
  "analyses": [
    {
      "match": "Paris Saint-Germain vs Arsenal FC",
      "sport": "football",
      "ligue": "Champions League",
      "heure": "16:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "finale UCL — edge négatif sur tous marchés disponibles (ML PSG 2.40, Under 2.75 @1.52, Hcp +0.75 Arsenal @1.43)",
      "niveau_confiance_v4": null,
      "probabilites": {"victoire_psg": "40%", "nul": "30%", "victoire_arsenal": "30%"},
      "stats_comparatives": {"context": "finale UCL Budapest", "psg_status": "champion en titre", "arsenal_status": "1er PL title 22 ans", "dembele_fit": "oui", "timber_fit": "oui"},
      "raisonnement": "Finale UCL à Budapest, compos confirmées. PSG cherche back-to-back. Marché juge ouvert (PSG 40%/Draw 30%/Arsenal 30% normalisé). p_estimee_under 0.60-0.63 vs p_marche 0.66 → edge négatif. Hcp +0.75 Arsenal idem. Finale = chaos 1 minimum, variance élevée, pas de spot probabilité ≥0.62 avec edge ≥0 sur les marchés disponibles."
    },
    {
      "match": "Berrettini, Matteo vs Comesana, Francisco",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance_v4": "CONFIANT",
      "probabilites": {"victoire_berrettini": "70.3%", "victoire_comesana": "29.7%"},
      "stats_comparatives": {"berrettini_clay_2026": "10-9", "comesana_clay_2026": "11-11", "berrettini_r2": "dominant vs Rinderknech 6-4 6-4 6-4 85% 1ere balle", "comesana_r2": "5 sets vs Darderi (fatigue)", "h2h": "premier affrontement", "modele_externe_statsinsider": "Berrettini 68%"},
      "raisonnement": "Berrettini (env. #30, gros serveur) face Comesana (#80, grinder). Service Berrettini avantage net sur clay, Comesana sort d'un 5-sets épuisant vs Darderi (fatigue physique). p_estimée 0.71 (modèle externe 0.68 + ajustement fatigue +3pts). Shrinkage 70/30 → p_finale 0.703. Edge +1.8% positif, cote 1.46 dans zone autorisée [1.30, 1.50). CONFIANT validé."
    },
    {
      "match": "Shnaider, Diana vs Oliynykova, Oleksandra",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance_v4": "CERTAIN",
      "probabilites": {"victoire_shnaider": "75.4%", "victoire_oliynykova": "24.6%"},
      "stats_comparatives": {"shnaider_rank": "WTA #23", "oliynykova_rank": "WTA #65", "h2h": "premier affrontement", "clay_success_rate": "68.9% pour les deux", "marche_us": "Shnaider -325", "context": "1er 3T GC carrière pour Oliynykova", "chaos": "tension politique RUS vs UKR"},
      "raisonnement": "Shnaider classée 42 places au-dessus, gauchère = arme sur terre, dominante R1/R2. Oliynykova première troisième tour GC de sa carrière (pression). Tension politique = chaos +1 (mais pas 2). p_estimée 0.76 (avantage style + ranking + experience), shrinkage 70/30 → p_finale 0.754 ≥ 0.75. CERTAIN validé (chaos 1 ≤ 1, DQ-A). Cote 1.35 dans zone [1.30, 1.50)."
    },
    {
      "match": "Kouame, Moise vs Tabilo, Alejandro",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Tabilo @1.21 < 1.30 hors range, Kouame @4.70 > 3.00 hors range",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés. Pas d'analyse approfondie."
    },
    {
      "match": "Cerundolo, Francisco vs Svajda, Zachary",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Cerundolo @1.08 < 1.30, Svajda @8.60 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Cobolli, Flavio vs Tien, Learner",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Cobolli @1.55, zone non rentable n=90",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori Cobolli @1.55 ≥ 1.50 → NO BET 10 systématique. Marchés OU jeux non éligibles par défaut (NO BET 3 non vérifiable)."
    },
    {
      "match": "Cerundolo, Juan Manuel vs Landaluce, Martin",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Cerundolo JM @1.74, zone non rentable n=90",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori @1.74 ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Arnaldi, Matteo vs Collignon, Raphael",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "11:50",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Collignon @1.50, zone non rentable n=90",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori @1.50 = seuil NO BET 10."
    },
    {
      "match": "Faria, Jaime vs Tiafoe, Frances",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Tiafoe @1.54",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori Tiafoe @1.54 ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Jovic, Iva vs Osaka, Naomi",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Jovic @1.99 et Osaka @1.86",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Match équilibré, les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Parry, Diane vs Anisimova, Amanda",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Anisimova @1.21 < 1.30, Parry @4.70 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Sakkari, Maria vs Chwalinska, Maja",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Chwalinska @1.76 et Sakkari @2.13",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Les deux cotes ML ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Sabalenka, Aryna vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Sabalenka @1.08 < 1.30, Kasatkina @8.80 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Kalinskaya, Anna vs Osorio, Camila",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "10:40",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Kalinskaya @1.85 et Osorio @2.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Les deux cotes ML ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Mboko, Victoria vs Keys, Madison",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "12:40",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Mboko @1.81 et Keys @2.01",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Les deux cotes ML ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Gauff, Coco vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Gauff @1.26 < 1.30, Potapova @3.90 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Ishii, Sayaka vs Valdmannova, Vendula",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "edge négatif (-2.7% < 0) — marché juge la cote trop haute",
      "niveau_confiance_v4": null,
      "probabilites": {"victoire_valdmannova": "74.2% (p_finale)", "marche_implicite": "76.9%"},
      "stats_comparatives": {"data_quality": "DQ-B 1 source", "context": "WTA 125K gazon Birmingham"},
      "raisonnement": "Valdmannova @1.30 (= seuil NO BET 1). p_marche 76.9%, p_estimée 73% (info limitée WTA 125K), p_finale 74.2%. Edge négatif → NO BET garde universelle."
    },
    {
      "match": "Xu, Mingge vs Cross, Kayla",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Xu @1.82 et Cross @1.89",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Match équilibré, les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Masarova, Rebeka vs Appleton, Emily",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Masarova @1.19 < 1.30, Appleton @4.20 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Krueger, Ashlyn vs Klugman, Hannah",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Krueger @1.18 < 1.30, Klugman @4.20 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Hibino, Nao vs Bolkvadze, Mariam",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Hibino @1.56",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori @1.56 ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Klimovicova, Linda vs Martincova, Tereza",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Martincova @1.59",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori @1.59 ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Minnen, Greet vs Burrage, Jodie",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Minnen @1.17 < 1.30, Burrage @4.50 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Watson, Heather vs Hruncakova, Viktoria",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "edge négatif (-2.8% < 0) — marché juge la cote trop haute",
      "niveau_confiance_v4": null,
      "probabilites": {"victoire_watson": "66.2% (p_finale)", "marche_implicite": "69.0%"},
      "stats_comparatives": {"watson_rank": "WTA #327", "hruncakova_rank": "WTA #228", "context": "qualif WTA 125K Birmingham gazon — Watson home"},
      "raisonnement": "Watson @1.45 favorite malgré ranking inférieur (avantage gazon + home). p_estimée 65% raisonnable mais marché 69%. Edge -2.8% → NO BET garde universelle."
    },
    {
      "match": "Rajecki, Amelia vs Ito, Aoi",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:50",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "tennis ML cote ≥ 1.50 (NO BET 10) — Ito @1.56",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Favori @1.56 ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Zhao, Carol vs Naef, Celine",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:50",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1 — Naef @1.07 < 1.30, Zhao @7.00 > 3.00",
      "niveau_confiance_v4": null,
      "probabilites": null,
      "stats_comparatives": null,
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Oklahoma City Thunder vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:00",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Game 7 WCF NBA — ML interdit en playoffs (OU + ATS uniquement), OU 212.5 p_finale 0.543 < 0.55, ATS Spurs +5.5 edge négatif (-0.8%)",
      "niveau_confiance_v4": null,
      "probabilites": {"okc_ml_marche": "58.5%", "ou_under_marche": "49.6%", "spurs_plus_5_5_marche": "55.9%"},
      "stats_comparatives": {"context": "Game 7 Western Conference Finals à OKC", "okc_injuries": "Jalen Williams + Ajay Mitchell out", "spurs_g6": "Wembanyama 28pts/10reb, victoire 118-91", "g7_home_advantage": "historique 75% home win rate"},
      "raisonnement": "Game 7 WCF historique : OKC home advantage (champion défendant) mais blessures backcourt + Wembanyama monstrueux. ML OKC interdit en mode playoffs NBA v4 (OU/ATS uniquement). OU 212.5 : p_estimée Under 0.55, p_finale 0.543 — sous seuil PROBABLE. ATS Spurs +5.5 : p_estimée 0.58 vs p_marche 0.592 — edge -0.8%. Aucun spot ne passe les seuils v4."
    }
  ],
  "paris": [
    {
      "sport": "tennis",
      "ligue_canonique": "ATP_GS",
      "ligue": "ATP - French Open Men Singles",
      "match": "Berrettini, Matteo vs Comesana, Francisco",
      "heure": "11:00",
      "marche_canonique": "ML",
      "marche": "Match Winner",
      "selection": "Berrettini, Matteo",
      "cote": 1.46,
      "cote_plancher": 1.46,
      "dq_flag": "DQ-A",
      "chaos": 1,
      "p_estimee": 0.71,
      "probabilite_marche": "68.5%",
      "p_marche_num": 0.685,
      "p_finale_num": 0.7025,
      "edge_num": 0.0175,
      "niveau_confiance_v4": "CONFIANT",
      "mise_unites": "1.5u",
      "mise_euros": 6,
      "model_version": "4.0",
      "protocol_version": "4.0",
      "raisonnement": "Berrettini (env. #30, gros serveur) face Comesana (#80, grinder). Service Berrettini avantage net sur clay, Comesana sort d'un 5-sets épuisant vs Darderi (fatigue physique). Modèle externe Statsinsider 68%, ajustement fatigue +3pts → p_estimée 0.71. Shrinkage 70/30 → p_finale 0.7025. Edge +1.75% positif, cote 1.46 dans zone autorisée [1.30, 1.50). CONFIANT validé."
    },
    {
      "sport": "tennis",
      "ligue_canonique": "WTA_GS",
      "ligue": "WTA - French Open Women Singles",
      "match": "Shnaider, Diana vs Oliynykova, Oleksandra",
      "heure": "10:00",
      "marche_canonique": "ML",
      "marche": "Match Winner",
      "selection": "Shnaider, Diana",
      "cote": 1.35,
      "cote_plancher": 1.362,
      "dq_flag": "DQ-A",
      "chaos": 1,
      "p_estimee": 0.76,
      "probabilite_marche": "74.1%",
      "p_marche_num": 0.7407,
      "p_finale_num": 0.7542,
      "edge_num": 0.0135,
      "niveau_confiance_v4": "CERTAIN",
      "mise_unites": "2u",
      "mise_euros": 8,
      "model_version": "4.0",
      "protocol_version": "4.0",
      "raisonnement": "Shnaider WTA #23 face Oliynykova #65 (1er 3T GC carrière, pression). Shnaider gauchère = arme sur terre, dominante R1/R2. Tension politique RUS/UKR = chaos 1. p_estimée 0.76 (ranking + style + experience), shrinkage 70/30 → p_finale 0.7542 ≥ 0.75. CERTAIN validé (chaos 1 ≤ 1, DQ-A). Cote 1.35 dans zone [1.30, 1.50)."
    }
  ],
  "no_bet": [
    {
      "match": "Paris Saint-Germain vs Arsenal FC",
      "sport": "football",
      "ligue": "Champions League",
      "heure": "16:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "finale UCL — edge négatif tous marchés (ML PSG, Under 2.75, Hcp +0.75 Arsenal)",
      "raisonnement": "Finale UCL à Budapest. Marché ouvert (PSG 40%/Draw 30%/Arsenal 30%). Under 2.75 @1.52 : p_finale 0.638 < p_marche 0.658, edge -2%. Hcp +0.75 Arsenal @1.43 : edge -4.8%. Pas de spot edge ≥0 sur les marchés disponibles."
    },
    {
      "match": "Kouame, Moise vs Tabilo, Alejandro",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1 — Tabilo @1.21 < 1.30, Kouame @4.70 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00] des deux côtés."
    },
    {
      "match": "Cerundolo, Francisco vs Svajda, Zachary",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — Cerundolo @1.08 < 1.30, Svajda @8.60 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Cobolli, Flavio vs Tien, Learner",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Cobolli @1.55, zone non rentable n=90",
      "raisonnement": "Favori Cobolli ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Cerundolo, Juan Manuel vs Landaluce, Martin",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Cerundolo JM @1.74",
      "raisonnement": "Favori ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Arnaldi, Matteo vs Collignon, Raphael",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "11:50",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Collignon @1.50",
      "raisonnement": "Favori = seuil NO BET 10."
    },
    {
      "match": "Faria, Jaime vs Tiafoe, Frances",
      "sport": "tennis",
      "ligue": "ATP - French Open Men Singles",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Tiafoe @1.54",
      "raisonnement": "Favori ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Jovic, Iva vs Osaka, Naomi",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Jovic @1.99 et Osaka @1.86",
      "raisonnement": "Les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Parry, Diane vs Anisimova, Amanda",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — Anisimova @1.21 < 1.30, Parry @4.70 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Sakkari, Maria vs Chwalinska, Maja",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Chwalinska @1.76 et Sakkari @2.13",
      "raisonnement": "Les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Sabalenka, Aryna vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — Sabalenka @1.08 < 1.30, Kasatkina @8.80 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Kalinskaya, Anna vs Osorio, Camila",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "10:40",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Kalinskaya @1.85 et Osorio @2.00",
      "raisonnement": "Les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Mboko, Victoria vs Keys, Madison",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "12:40",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Mboko @1.81 et Keys @2.01",
      "raisonnement": "Les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Gauff, Coco vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA - French Open Women Singles",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "chaos": 0,
      "raison": "NO BET 1 — Gauff @1.26 < 1.30, Potapova @3.90 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Ishii, Sayaka vs Valdmannova, Vendula",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "edge négatif (-2.7% < 0) — marché juge la cote trop haute",
      "raisonnement": "p_marche 76.9%, p_finale 74.2%. Edge négatif → NO BET garde universelle."
    },
    {
      "match": "Xu, Mingge vs Cross, Kayla",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Xu @1.82 et Cross @1.89",
      "raisonnement": "Les deux cotes ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Masarova, Rebeka vs Appleton, Emily",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "NO BET 1 — Masarova @1.19 < 1.30, Appleton @4.20 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Krueger, Ashlyn vs Klugman, Hannah",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "09:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "NO BET 1 — Krueger @1.18 < 1.30, Klugman @4.20 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Hibino, Nao vs Bolkvadze, Mariam",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Hibino @1.56",
      "raisonnement": "Favori ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Klimovicova, Linda vs Martincova, Tereza",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Martincova @1.59",
      "raisonnement": "Favori ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Minnen, Greet vs Burrage, Jodie",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "10:40",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "NO BET 1 — Minnen @1.17 < 1.30, Burrage @4.50 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Watson, Heather vs Hruncakova, Viktoria",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "edge négatif (-2.8% < 0) — marché juge la cote trop haute",
      "raisonnement": "Watson @1.45 favorite malgré ranking inférieur (avantage gazon + home). p_finale 66.2% vs p_marche 69.0%. Edge négatif → NO BET garde universelle."
    },
    {
      "match": "Rajecki, Amelia vs Ito, Aoi",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:50",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "tennis ML cote ≥ 1.50 (NO BET 10) — Ito @1.56",
      "raisonnement": "Favori ≥ 1.50 → NO BET 10."
    },
    {
      "match": "Zhao, Carol vs Naef, Celine",
      "sport": "tennis",
      "ligue": "WTA 125K - Birmingham",
      "heure": "11:50",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "NO BET 1 — Naef @1.07 < 1.30, Zhao @7.00 > 3.00",
      "raisonnement": "Hors range [1.30, 3.00]."
    },
    {
      "match": "Oklahoma City Thunder vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:00",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Game 7 WCF — ML interdit playoffs (OU + ATS uniquement), OU 212.5 p_finale 0.543 < 0.55, ATS Spurs +5.5 edge négatif (-0.8%)",
      "raisonnement": "Game 7 WCF à OKC. ML OKC @1.63 interdit en mode playoffs NBA v4. OU 212.5 sous seuil PROBABLE. ATS Spurs +5.5 edge négatif. Aucun spot ne passe les seuils v4."
    }
  ],
  "resume": {
    "total_paris": 2,
    "repartition_niveaux": {
      "CERTAIN": 1,
      "CONFIANT": 1,
      "PROBABLE": 0
    },
    "exposition_totale_euros": 14,
    "exposition_totale_unites": "3.5u",
    "gain_potentiel_si_tous_gagnants": {
      "profit_net_euros": 5.56,
      "ROI_potentiel": "+39.7%"
    },
    "calibration_attendue": {
      "win_rate_attendu_si_calibration_parfaite": "72.8%",
      "details": "1×CERTAIN(0.754) + 1×CONFIANT(0.703) → moyenne pondérée par mise (2u×0.754 + 1.5u×0.703)/3.5u = 0.732"
    }
  }
}
