{
  "date": "2026-04-30",
  "generated": "2026-04-30T05:14:48",
  "model_version": "3.0",
  "analyses": [
    {
      "match": "SC Braga vs SC Freiburg",
      "sport": "football",
      "ligue": "Europa League",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "OU 2.5 edge 5.5% < seuil 6%; DC X2 et 1X edge negatifs; BTTS Yes edge 2.8% < 6%",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_domicile": "40%",
        "nul": "27%",
        "victoire_exterieur": "33%",
        "over_25": "53%",
        "btts": "57%"
      },
      "cote_indicative": {
        "domicile": 2.43,
        "nul": 3.25,
        "exterieur": 3.15
      },
      "total_estime": "2.6 buts",
      "raisonnement": "Braga 4V/2N puis defaite Santa Clara, Estadio Municipal solide. Freiburg attaque chaude (11 buts/3 derniers Europa) mais defaites recentes Bundesliga. Suspensions: Moscardo (Braga), Osterhage out (Freiburg). Marche efficient — aucune marge >= seuil par marche.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "SC Braga",
        "equipe_2": "SC Freiburg",
        "stats": {
          "forme_5_derniers": [
            "V-V-V-N-D",
            "V-V-D-D-V"
          ],
          "absences_cles": [
            "Gabriel Moscardo (suspendu)",
            "Patrick Osterhage (OUT)"
          ]
        }
      }
    },
    {
      "match": "Nottingham Forest vs Aston Villa",
      "sport": "football",
      "ligue": "Europa League",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C: cotes ML/DC/OU non recuperees",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Pas de cotes — analyse impossible.",
      "stats_comparatives": null
    },
    {
      "match": "FC Shakhtar Donetsk vs Crystal Palace",
      "sport": "football",
      "ligue": "Conference League",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C: cotes non recuperees",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Pas de cotes — analyse impossible.",
      "stats_comparatives": null
    },
    {
      "match": "Rayo Vallecano vs Strasbourg Alsace",
      "sport": "football",
      "ligue": "Conference League",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Donnees enrichies forme/H2H absentes",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_domicile": "43%",
        "nul": "29%",
        "victoire_exterieur": "28%"
      },
      "cote_indicative": {
        "domicile": 2.24,
        "nul": 3.35,
        "exterieur": 3.4
      },
      "total_estime": null,
      "raisonnement": "Cotes presentes mais aucune donnee de forme/H2H — pas d'angle quantifiable.",
      "stats_comparatives": null
    },
    {
      "match": "Ren, Yufei vs Hercog, Polona",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "03:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1: Hercog 1.24 < 1.30; Ren 3.65 outsider hors scope (>3.50)",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET 1: Hercog 1.24 < 1.30; Ren 3.65 outsider hors scope (>3.50)",
      "stats_comparatives": null
    },
    {
      "match": "Wang, Xiyu vs Yuan, Chengyiyi",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "04:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1: Wang 1.02 < 1.30; Yuan 10.00 outsider hors scope",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET 1: Wang 1.02 < 1.30; Yuan 10.00 outsider hors scope",
      "stats_comparatives": null
    },
    {
      "match": "Yao, Xinxin vs Zolotareva, Rada",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "04:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1: Zolotareva 1.20 < 1.30; Yao 4.10 outsider hors scope",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET 1: Zolotareva 1.20 < 1.30; Yao 4.10 outsider hors scope",
      "stats_comparatives": null
    },
    {
      "match": "Guo, Hanyu vs Cherubini, Diletta",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "05:20",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Guo 1.34 — edge calcule -0.4% apres shrinkage (p_finale 0.728 vs p_marche 0.746). NO BET CONFIANCE.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Guo 1.34 — edge calcule -0.4% apres shrinkage (p_finale 0.728 vs p_marche 0.746). NO BET CONFIANCE.",
      "stats_comparatives": null
    },
    {
      "match": "Kabbaj, Yasmine vs Ponchet, Jessika",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1: Ponchet 1.25 < 1.30; Kabbaj 3.55 outsider hors scope",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET 1: Ponchet 1.25 < 1.30; Kabbaj 3.55 outsider hors scope",
      "stats_comparatives": null
    },
    {
      "match": "Osuigwe, Whitney vs Golubic, Viktorija",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Tranche 2.00-2.50: Golubic 2.07 — edge 1.2% << seuil OBS RENFORCEE 9%. NO BET 2.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Tranche 2.00-2.50: Golubic 2.07 — edge 1.2% << seuil OBS RENFORCEE 9%. NO BET 2.",
      "stats_comparatives": null
    },
    {
      "match": "Andreescu, Bianca vs Yuan, Yue",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "11:20",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Andreescu 1.47 — retour de blessure, edge calcule -2.1% apres shrinkage. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Andreescu 1.47 — retour de blessure, edge calcule -2.1% apres shrinkage. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Naef, Celine vs Blinkova, Anna",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "12:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Coin flip 1.85/1.85 — pas de signal directionnel. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Coin flip 1.85/1.85 — pas de signal directionnel. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Pigossi, Laura vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "NO BET 1: Kasatkina 1.09 < 1.30; alerte score 3-6 7-5 6-3 trouve = match peut-etre deja joue",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "NO BET 1: Kasatkina 1.09 < 1.30; alerte score 3-6 7-5 6-3 trouve = match peut-etre deja joue",
      "stats_comparatives": null
    },
    {
      "match": "Wang, Xinyu vs Charaeva, Alina",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Wang 1.71 — edge 2.5% << seuil ML 7%. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Wang 1.71 — edge 2.5% << seuil ML 7%. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Masarova, Rebeka vs Pridankina, Elena",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Masarova 1.39 — edge negligeable 0.05% (alignement marche). NO BET CONFIANCE.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Masarova 1.39 — edge negligeable 0.05% (alignement marche). NO BET CONFIANCE.",
      "stats_comparatives": null
    },
    {
      "match": "Ruzic, Antonia vs Sorribes Tormo, Sara",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "16:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Cote serree 1.94/1.77 — edge Sorribes 1.8% < seuil ML 7%. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Cote serree 1.94/1.77 — edge Sorribes 1.8% < seuil ML 7%. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Ruud, Casper vs Blockx, Alexander",
      "sport": "tennis",
      "ligue": "ATP Madrid (M1000)",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Ruud 1.31 borderline NO BET 1; edge 1.2% < seuil CONFIANCE_STD 2%. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Ruud 1.31 borderline NO BET 1; edge 1.2% < seuil CONFIANCE_STD 2%. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Cobolli, Flavio vs Zverev, Alexander",
      "sport": "tennis",
      "ligue": "ATP Madrid (M1000)",
      "heure": "18:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Zverev 1.35 — H2H recent defavorable (Cobolli a gagne Munich SF 6-3 6-3 il y a 2 sem); edge negatif. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Zverev 1.35 — H2H recent defavorable (Cobolli a gagne Munich SF 6-3 6-3 il y a 2 sem); edge negatif. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Baptiste, Hailey vs Andreeva, Mirra",
      "sport": "tennis",
      "ligue": "WTA Madrid (1000)",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "ML Andreeva 1.38 — edge 1.1% < seuil CONFIANCE_STD 2%. NO BET.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "ML Andreeva 1.38 — edge 1.1% < seuil CONFIANCE_STD 2%. NO BET.",
      "stats_comparatives": null
    },
    {
      "match": "Kostyuk, Marta vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Madrid (1000)",
      "heure": "19:30",
      "dq_flag": "DQ-B",
      "pari_retenu": false,
      "raison_no_bet": "Alerte event_id: divergence sources publiques (selon WTA Kostyuk vs Noskova). NO BET prudence.",
      "niveau_confiance": "moyen",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Alerte event_id: divergence sources publiques (selon WTA Kostyuk vs Noskova). NO BET prudence.",
      "stats_comparatives": null
    },
    {
      "match": "Oklahoma City Thunder vs Phoenix Suns",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:30",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C cotes manquantes; doublon possible (PHX vs OKC apparait inverse a 23:00)",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C cotes manquantes; doublon possible (PHX vs OKC apparait inverse a 23:00)",
      "stats_comparatives": null
    },
    {
      "match": "Los Angeles Lakers vs Houston Rockets",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "02:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "stats_comparatives": null
    },
    {
      "match": "Atlanta Hawks vs New York Knicks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "stats_comparatives": null
    },
    {
      "match": "Portland Trail Blazers vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C cotes manquantes",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C cotes manquantes",
      "stats_comparatives": null
    },
    {
      "match": "Philadelphia 76ers vs Boston Celtics",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "stats_comparatives": null
    },
    {
      "match": "Minnesota Timberwolves vs Denver Nuggets",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "stats_comparatives": null
    },
    {
      "match": "Toronto Raptors vs Cleveland Cavaliers",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C — saison reguliere terminee, match suspect",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C — saison reguliere terminee, match suspect",
      "stats_comparatives": null
    },
    {
      "match": "Orlando Magic vs Detroit Pistons",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C — saison reguliere terminee, match suspect",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C — saison reguliere terminee, match suspect",
      "stats_comparatives": null
    },
    {
      "match": "Houston Rockets vs Los Angeles Lakers",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C cotes manquantes; doublon avec LAL vs HOU 02:00",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C cotes manquantes; doublon avec LAL vs HOU 02:00",
      "stats_comparatives": null
    },
    {
      "match": "Phoenix Suns vs Oklahoma City Thunder",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "pari_retenu": false,
      "raison_no_bet": "DQ-C cotes manquantes; doublon avec OKC vs PHX 01:30",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": null,
      "total_estime": null,
      "raisonnement": "DQ-C cotes manquantes; doublon avec OKC vs PHX 01:30",
      "stats_comparatives": null
    }
  ],
  "paris": [],
  "no_bet": [
    {
      "match": "SC Braga vs SC Freiburg",
      "sport": "football",
      "ligue": "Europa League",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Edges tous insuffisants: OU2.5 +5.5% (<6%), DC X2/1X negatifs, BTTS +2.8% (<6%)",
      "raisonnement": "Marche efficient sur QF UEL — aucune marge atteint le seuil v3."
    },
    {
      "match": "Nottingham Forest vs Aston Villa",
      "sport": "football",
      "ligue": "Europa League",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes — pas de cotes ML/DC/OU/BTTS recuperees",
      "raisonnement": "Marche absent — analyse impossible."
    },
    {
      "match": "FC Shakhtar Donetsk vs Crystal Palace",
      "sport": "football",
      "ligue": "Conference League",
      "heure": "19:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes — pas de cotes recuperees",
      "raisonnement": "Marche absent — analyse impossible."
    },
    {
      "match": "Rayo Vallecano vs Strasbourg Alsace",
      "sport": "football",
      "ligue": "Conference League",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Donnees enrichies (forme/positions/H2H) absentes — pas de base pour edge",
      "raisonnement": "Cotes presentes mais aucune donnee de forme/H2H — refus de spec sans angle."
    },
    {
      "match": "Ren, Yufei vs Hercog, Polona",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "03:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1: Hercog 1.24 < 1.30; Ren 3.65 outsider hors scope (>3.50)",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Wang, Xiyu vs Yuan, Chengyiyi",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "04:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1: Wang 1.02 < 1.30; Yuan 10.00 outsider hors scope",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Yao, Xinxin vs Zolotareva, Rada",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "04:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1: Zolotareva 1.20 < 1.30; Yao 4.10 outsider hors scope",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Guo, Hanyu vs Cherubini, Diletta",
      "sport": "tennis",
      "ligue": "WTA 125K Huzhou",
      "heure": "05:20",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Guo 1.34 — edge calcule -0.4% apres shrinkage (p_finale 0.728 vs p_marche 0.746). NO BET CONFIANCE.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Kabbaj, Yasmine vs Ponchet, Jessika",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1: Ponchet 1.25 < 1.30; Kabbaj 3.55 outsider hors scope",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Osuigwe, Whitney vs Golubic, Viktorija",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tranche 2.00-2.50: Golubic 2.07 — edge 1.2% << seuil OBS RENFORCEE 9%. NO BET 2.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Andreescu, Bianca vs Yuan, Yue",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "11:20",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Andreescu 1.47 — retour de blessure, edge calcule -2.1% apres shrinkage. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Naef, Celine vs Blinkova, Anna",
      "sport": "tennis",
      "ligue": "WTA 125K Saint-Malo",
      "heure": "12:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Coin flip 1.85/1.85 — pas de signal directionnel. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Pigossi, Laura vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "NO BET 1: Kasatkina 1.09 < 1.30; alerte score 3-6 7-5 6-3 trouve = match peut-etre deja joue",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Wang, Xinyu vs Charaeva, Alina",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Wang 1.71 — edge 2.5% << seuil ML 7%. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Masarova, Rebeka vs Pridankina, Elena",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Masarova 1.39 — edge negligeable 0.05% (alignement marche). NO BET CONFIANCE.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Ruzic, Antonia vs Sorribes Tormo, Sara",
      "sport": "tennis",
      "ligue": "WTA 125K La Bisbal",
      "heure": "16:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Cote serree 1.94/1.77 — edge Sorribes 1.8% < seuil ML 7%. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Ruud, Casper vs Blockx, Alexander",
      "sport": "tennis",
      "ligue": "ATP Madrid (M1000)",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Ruud 1.31 borderline NO BET 1; edge 1.2% < seuil CONFIANCE_STD 2%. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Cobolli, Flavio vs Zverev, Alexander",
      "sport": "tennis",
      "ligue": "ATP Madrid (M1000)",
      "heure": "18:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Zverev 1.35 — H2H recent defavorable (Cobolli a gagne Munich SF 6-3 6-3 il y a 2 sem); edge negatif. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Baptiste, Hailey vs Andreeva, Mirra",
      "sport": "tennis",
      "ligue": "WTA Madrid (1000)",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Andreeva 1.38 — edge 1.1% < seuil CONFIANCE_STD 2%. NO BET.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Kostyuk, Marta vs Potapova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Madrid (1000)",
      "heure": "19:30",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Alerte event_id: divergence sources publiques (selon WTA Kostyuk vs Noskova). NO BET prudence.",
      "raisonnement": "Examen v3 protocole — voir raison."
    },
    {
      "match": "Oklahoma City Thunder vs Phoenix Suns",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes; doublon possible (PHX vs OKC apparait inverse a 23:00)",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Los Angeles Lakers vs Houston Rockets",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "02:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Atlanta Hawks vs New York Knicks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Portland Trail Blazers vs San Antonio Spurs",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Philadelphia 76ers vs Boston Celtics",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "00:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Minnesota Timberwolves vs Denver Nuggets",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Donnees enrichies pace/PPG manquantes — impossible de chiffrer un edge >= 8% mode controle",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Toronto Raptors vs Cleveland Cavaliers",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C — saison reguliere terminee, match suspect",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Orlando Magic vs Detroit Pistons",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C — saison reguliere terminee, match suspect",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Houston Rockets vs Los Angeles Lakers",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes; doublon avec LAL vs HOU 02:00",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    },
    {
      "match": "Phoenix Suns vs Oklahoma City Thunder",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "23:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C cotes manquantes; doublon avec OKC vs PHX 01:30",
      "raisonnement": "Mode controle NBA v3 — seuil edge >= 8% non atteignable sans donnees pace/PPG."
    }
  ],
  "resume": {
    "total_paris": 0,
    "exposition_totale_euros": 0,
    "exposition_totale_unites": "0u",
    "quota_atteint": "0/8",
    "quota_value": "0/6",
    "quota_confiance": "0/3",
    "gain_potentiel_si_tous_gagnants": {
      "profit_net_euros": 0,
      "ROI_potentiel": "+0%"
    },
    "matchs_examines": 30,
    "no_bet_count": 30,
    "verdict": "Marches efficients — aucun edge significatif sur tennis/foot/NBA. Discipline > volume."
  }
}