{
  "date": "2026-04-21",
  "generated": "2026-04-21T10:38:56",
  "model_version": "3.0",
  "analyses": [
    {
      "match": "Blinkova, Anna vs Kalieva, Elvina",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "10:25",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué avant relance analyse. Blinkova 2.14 (47%)/Kalieva 1.65 (61%) — marché équilibré, edge estimé < 5% dans les deux sens.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Kalieva": "74%",
        "set_Blinkova": "65%"
      },
      "cote_indicative": {
        "home": 2.14,
        "away": 1.65
      },
      "total_estime": null,
      "raisonnement": "Match joué à l'heure de la relance. Kalieva favorisée (1.65, 60.6% impl.) — classement/forme inconnue sans stats complètes. p_estimee Kalieva 62% → p_finale 0.607, edge +0.7% insuffisant.",
      "stats_comparatives": null
    },
    {
      "match": "Haddad Maia, Beatriz vs Bouzas Maneiro, Jessica",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué avant relance. Haddad Maia 2.62 (38.2%)/Bouzas 1.44 (69.4%). Haddad Maia outsider mais clairement sous-cotée si en forme. Cote 2.62 zone 2.00-2.50 — validation renforcée requise. Analyse: Haddad Maia top 15 WTA, retour après blessure. p_estimee Haddad Maia 45% → p_finale 0.429, edge +4.7% < 9% seuil zone 2.00-2.50. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Bouzas": "80%",
        "set_HaddadMaia": "66%"
      },
      "cote_indicative": {
        "home": 2.62,
        "away": 1.44
      },
      "total_estime": null,
      "raisonnement": "Match joué. Bouzas favorite (1.44). Haddad Maia top-20 WTA mais données 2026 incomplètes. Edge insuffisant pour zone 2.00-2.50.",
      "stats_comparatives": null
    },
    {
      "match": "Udvardy, Panna vs Grant, Tyra Caterina",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Udvardy 1.58 (63.3%)/Grant 2.26. p_estimee Udvardy 65% → p_finale 0.644, edge +1.1% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Udvardy": "77%",
        "set_Grant": "61%"
      },
      "cote_indicative": {
        "home": 1.58,
        "away": 2.26
      },
      "total_estime": null,
      "raisonnement": "Match joué. Udvardy légèrement favorite — marché bien calibré.",
      "stats_comparatives": null
    },
    {
      "match": "Volynets, Katie vs Korpatsch, Tamara",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "PARI PLACÉ lors de l'analyse 07h20 (VALUE_SAFE Korpatsch 2.62). Match joué — résultat à saisir dans le ROI tracker.",
      "niveau_confiance": "eleve",
      "probabilites": {
        "set_Korpatsch": "74%",
        "set_Volynets": "65%"
      },
      "cote_indicative": {
        "home": 1.44,
        "away": 2.62
      },
      "total_estime": null,
      "raisonnement": "Korpatsch VALUE_SAFE identifié dès 07h20 (cote 2.62, p_finale 58.4%, edge +8.4%, DQ-A). Pari déjà documenté dans la base — ne pas re-placer.",
      "stats_comparatives": null
    },
    {
      "match": "Siegemund, Laura vs Begu, Irina-Camelia",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "10:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Siegemund 1.44 (69.4%)/Begu 2.62. p_estimee Siegemund 72% → p_finale 0.707, edge +1.3% insuffisant. CONFIANCE_STD non atteint (p_finale < 0.72).",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Siegemund": "82%",
        "set_Begu": "60%"
      },
      "cote_indicative": {
        "home": 1.44,
        "away": 2.62
      },
      "total_estime": null,
      "raisonnement": "Match joué. Très proche du seuil CONFIANCE (0.707 vs 0.720 requis). NO BET justifié.",
      "stats_comparatives": null
    },
    {
      "match": "Starodubtseva, Yuliia vs Pavlyuchenkova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "11:35",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Starodubtseva 1.30 (76.9%)/Pavlyuchenkova 3.30. Starodubtseva à 1.30 = limite absolue NO BET (seuil < 1.30). Cote exacte à 1.30 mais règle = interdit strictement.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Starodubtseva": "87%",
        "set_Pavlyuchenkova": "54%"
      },
      "cote_indicative": {
        "home": 1.3,
        "away": 3.3
      },
      "total_estime": null,
      "raisonnement": "Match joué. Starodubtseva 1.30 = NO BET absolu (règle cote < 1.30 — la valeur exacte 1.30 est incluse dans l'interdiction).",
      "stats_comparatives": null
    },
    {
      "match": "Vandewinkel, Hanne vs Snigur, Daria",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Vandewinkel 1.54 (64.9%)/Snigur 2.34. p_estimee Vandewinkel 67% → p_finale 0.659, edge +1.0% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Vandewinkel": "78%",
        "set_Snigur": "60%"
      },
      "cote_indicative": {
        "home": 1.54,
        "away": 2.34
      },
      "total_estime": null,
      "raisonnement": "Match joué. Marché calibré — aucun angle identifié.",
      "stats_comparatives": null
    },
    {
      "match": "Bondar, Anna vs Golubic, Viktorija",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Bondar 1.19 < 1.30 — NO BET absolu. Golubic 4.30 — edge insuffisant (p_estimee ~22%, p_finale 0.280, edge -4.3%).",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.19,
        "away": 4.3
      },
      "total_estime": null,
      "raisonnement": "Cote Bondar 1.19 < 1.30 = NO BET absolu.",
      "stats_comparatives": null
    },
    {
      "match": "Badosa, Paula vs Grabher, Julia",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Badosa 1.16 < 1.30 — NO BET absolu. Grabher 4.70 insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.16,
        "away": 4.7
      },
      "total_estime": null,
      "raisonnement": "Cote Badosa 1.16 = NO BET absolu (<<1.30).",
      "stats_comparatives": null
    },
    {
      "match": "Stephens, Sloane vs Kalinina, Anhelina",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Kalinina 1.17 < 1.30 — NO BET absolu.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 4.6,
        "away": 1.17
      },
      "total_estime": null,
      "raisonnement": "Cote Kalinina (away) 1.17 < 1.30 = NO BET absolu. Stephens 4.60 insuffisant.",
      "stats_comparatives": null
    },
    {
      "match": "Dedura-Palomero, Diego vs Bonzi, Benjamin",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué avant relance. Signal: Bonzi VALUE/CONFIANCE_STD identifié (cote 1.54, p_finale 0.727, edge +7.8% > 7%). Impossible d'exécuter — match en cours ou terminé à l'heure de l'analyse.",
      "niveau_confiance": "eleve",
      "probabilites": {
        "set_Bonzi": "85%",
        "set_Dedura-Palomero": "56%"
      },
      "cote_indicative": {
        "home": 2.34,
        "away": 1.54
      },
      "total_estime": null,
      "raisonnement": "Bonzi (ATP ~75) vs Dedura-Palomero (Espagnol qualifying). Bonzi clairement supérieur sur clay. p_estimee Bonzi 0.76 → p_finale 0.727 > 0.72 CONFIANCE_STD. edge +7.8%. Match joué — signal à retenir si Bonzi joue en suite de tournoi.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Bonzi, Benjamin",
        "joueur_2": "Dedura-Palomero, Diego",
        "surface": "Clay",
        "classement_atp_wta": [
          "~75",
          "Qualif"
        ],
        "forme_5_derniers": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "bilan_surface": [
          "Bon clay player, français",
          "[NON VÉRIFIÉ]"
        ]
      }
    },
    {
      "match": "Galfi, Dalma vs Vidmanova, Darja",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "12:45",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué/en cours. Galfi 1.52 (65.8%)/Vidmanova 2.40. p_estimee Galfi 68% → p_finale 0.668, edge +1.0% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Galfi": "78%",
        "set_Vidmanova": "60%"
      },
      "cote_indicative": {
        "home": 1.52,
        "away": 2.4
      },
      "total_estime": null,
      "raisonnement": "Match joué. Marché calibré.",
      "stats_comparatives": null
    },
    {
      "match": "Montgomery, Robin vs Linette, Magda",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match en cours/joué. Montgomery 2.30 (43.5%)/Linette 1.56 (64.1%). p_estimee Linette 67% → p_finale 0.659, edge +1.8% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Linette": "79%",
        "set_Montgomery": "59%"
      },
      "cote_indicative": {
        "home": 2.3,
        "away": 1.56
      },
      "total_estime": null,
      "raisonnement": "Match en cours. Linette légèrement favorite — edge insuffisant.",
      "stats_comparatives": null
    },
    {
      "match": "Potapova, Anastasia vs Kraus, Sinja",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match en cours. Potapova 1.31 (juste au-dessus 1.30)/Kraus 3.25. Potapova cote proche limite — même si analysé: p_estimee 0.76, p_finale 0.723, edge +0.3% négligeable. Trop faible.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.31,
        "away": 3.25
      },
      "total_estime": null,
      "raisonnement": "Cote limite 1.31, edge quasi nul après shrinkage.",
      "stats_comparatives": null
    },
    {
      "match": "Parks, Alycia vs Efremova, Ksenia",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Parks 1.24 < 1.30 — NO BET absolu.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.24,
        "away": 3.7
      },
      "total_estime": null,
      "raisonnement": "NO BET absolu cote < 1.30.",
      "stats_comparatives": null
    },
    {
      "match": "Quevedo, Kaitlin vs Williams, Venus",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Quevedo 1.19 < 1.30 — NO BET absolu. Williams 4.30 (23.3% impl.) : p_estimee Williams 12% (45 ans, 6 mois sans jouer en 2025-26) → p_finale 0.212, edge -2.1%. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Venus": "50%",
        "set_Quevedo": "84%"
      },
      "cote_indicative": {
        "home": 1.19,
        "away": 4.3
      },
      "total_estime": null,
      "raisonnement": "Venus Williams (45 ans) vs Quevedo. Quevedo 1.19 < 1.30 NO BET. Venus edge négatif.",
      "stats_comparatives": null
    },
    {
      "match": "Zakharova, Anastasia vs Osorio, Maria Camila",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "14:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Osorio meilleure forme 2026 (14-8, titre Manila), mais cote 1.37 surévalue sa probabilité. p_estimee Osorio 68% → p_finale 0.695, edge -3.5%. NO BET. Zakharova (#79, sortie R1 Charleston 7-5 6-2) vs Osorio (#83).",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Osorio": "81%",
        "set_Zakharova": "57%"
      },
      "cote_indicative": {
        "home": 2.9,
        "away": 1.37
      },
      "total_estime": null,
      "raisonnement": "Osorio en meilleure forme mais marché l'a déjà intégré (72.9% impl.). p_finale 0.695 < p_marche 0.730. NO BET.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Zakharova, Anastasia",
        "joueur_2": "Osorio, Camila",
        "surface": "Clay",
        "classement_atp_wta": [
          "#79",
          "#83"
        ],
        "bilan_saison": [
          "[NON VÉRIFIÉ]",
          "14-8, titre Manila"
        ],
        "forme_5_derniers": [
          "Sortie R1 Charleston 7-5 6-2 vs Yastremska",
          "Gagnante titre récent"
        ],
        "h2h": "[NON VÉRIFIÉ]"
      }
    },
    {
      "match": "Stearns, Peyton vs Boisson, Lois",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "15:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Boisson absente depuis 29 septembre 2025 (6 mois+). Stearns #43 (12W-9L en 2026, perdu R16 Charleston). Stearns cote 1.34 : p_marche 74.6%, p_estimee 72% (rust Boisson bien intégré par marché). p_finale 0.728, edge -1.8%. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": {
        "set_Stearns": "84%",
        "set_Boisson": "55%"
      },
      "cote_indicative": {
        "home": 1.34,
        "away": 3.0
      },
      "total_estime": null,
      "raisonnement": "Marché a correctement intégré l'absence longue de Boisson. Stearns légèrement sous-côtée par le marché mais pas assez pour edge. NO BET.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Stearns, Peyton",
        "joueur_2": "Boisson, Lois",
        "surface": "Clay",
        "classement_atp_wta": [
          "#43 WTA",
          "#44 WTA"
        ],
        "bilan_saison": [
          "12W-9L 2026",
          "Retour après 6 mois absence"
        ],
        "h2h": "Première confrontation"
      }
    },
    {
      "match": "Faria, Jaime vs Harris, Lloyd",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Faria 1.54 (64.9%)/Harris 2.34. p_estimee Faria 63% → p_finale 0.636, edge -1.3%. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.54,
        "away": 2.34
      },
      "total_estime": null,
      "raisonnement": "Match joué. Marché calibré.",
      "stats_comparatives": null
    },
    {
      "match": "Wu, Yibing vs Droguet, Titouan",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Wu 1.76 (56.8%)/Droguet 1.98. Très équilibré sur clay. p_estimee Wu 50% → p_finale 0.520, edge -4.8%. Droguet p_finale 0.504, edge -0.1%. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.76,
        "away": 1.98
      },
      "total_estime": null,
      "raisonnement": "Match joué. Marché efficace sur duel équilibré.",
      "stats_comparatives": null
    },
    {
      "match": "Trungelliti, Marco vs Merida, Daniel",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "10:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Merida 1.72 (58.1%)/Trungelliti 2.04. Clay espagnol avantage Merida. p_estimee Merida 60% → p_finale 0.594, edge +1.3% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 2.04,
        "away": 1.72
      },
      "total_estime": null,
      "raisonnement": "Match joué. Edge marginal.",
      "stats_comparatives": null
    },
    {
      "match": "Rodesch, Chris vs Lajovic, Dusan",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Rodesch 1.99 (50.3%)/Lajovic 1.75 (57.1%). Lajovic veteran clay pro, Rodesch challenger. p_estimee Lajovic 60% → p_finale 0.592, edge +3.5% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.99,
        "away": 1.75
      },
      "total_estime": null,
      "raisonnement": "Match joué. Lajovic légèrement favorable mais edge < 7% seuil.",
      "stats_comparatives": null
    },
    {
      "match": "Vallejo, Adolfo Daniel vs Rocha, Henrique",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "11:40",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match joué. Vallejo 1.39 (71.9%)/Rocha 2.84. Vallejo home qualifying, Rocha Brésilien. p_estimee Vallejo 73% → p_finale 0.729, edge +1.0% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.39,
        "away": 2.84
      },
      "total_estime": null,
      "raisonnement": "Match joué. Edge négligeable.",
      "stats_comparatives": null
    },
    {
      "match": "Kypson, Patrick vs Basilashvili, Nikoloz",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match en cours. Kypson 1.82 (54.9%)/Basilashvili 1.90 (52.6%). Marché très équilibré. p_estimee 50/50 → edge négatif dans les deux sens. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.82,
        "away": 1.9
      },
      "total_estime": null,
      "raisonnement": "Match en cours. Duel très incertain, marché calibré à 50/50 avec vig.",
      "stats_comparatives": null
    },
    {
      "match": "Echargui, Moez vs Budkov Kjaer, Nicolai",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Budkov Kjaer 1.27 < 1.30 — NO BET absolu. Echargui 3.50 : p_marche 28.6%, p_estimee ~24% → edge -4.6%. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 3.5,
        "away": 1.27
      },
      "total_estime": null,
      "raisonnement": "Budkov Kjaer cote < 1.30 NO BET absolu.",
      "stats_comparatives": null
    },
    {
      "match": "Prizmic, Dino vs Piros, Zsombor",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "12:50",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match en cours. Prizmic 1.45 (68.9%)/Piros 2.58. Prizmic jeune pro croate, Piros Hongrois. p_estimee Prizmic 70% → p_finale 0.693, edge +0.4% insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.45,
        "away": 2.58
      },
      "total_estime": null,
      "raisonnement": "Match en cours. Edge quasi nul.",
      "stats_comparatives": null
    },
    {
      "match": "Athletic Bilbao vs CA Osasuna",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Deux équipes en mauvaise forme. Bilbao 1W-4L sur 5, Osasuna 1W-5L sur 6. Under 2.5 = 1.82 (edge +5.0%) en-dessous du seuil 6%. BTTS No = 1.89 (edge +1.5%). Aucun marché avec edge suffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "55%",
        "nul": "27%",
        "victoire_exterieur": "22%",
        "over_25": "40%",
        "btts": "50%"
      },
      "cote_indicative": {
        "domicile": 1.82,
        "nul": 3.45,
        "exterieur": 4.5
      },
      "total_estime": "1.9 buts",
      "raisonnement": "Bilbao en crise (4L/5) malgré avantage domicile H2H. Osasuna défensif. Under 2.5 tentant mais edge +5.0% < 6% requis.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "Athletic Bilbao",
        "equipe_2": "CA Osasuna",
        "position_classement": [
          11,
          9
        ],
        "forme_5_derniers": [
          "V-D-D-D-D",
          "N-D-D-V-D"
        ],
        "buts_marques_par_match": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "buts_encaisses_par_match": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "xg_pour": [
          "Sous-performance xG",
          "[NON VÉRIFIÉ]"
        ],
        "xg_contre": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "h2h_5_derniers": "Bilbao unbeaten in 5 of last 6 H2H",
        "absences_cles": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ]
      }
    },
    {
      "match": "RCD Mallorca vs Valencia CF",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Under 2.5 = 1.70 (p_marche 58.8%, p_estimee 58%) → edge -0.6% négatif. Mallorca défensif mais marché l'a intégré. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "39%",
        "nul": "32%",
        "victoire_exterieur": "35%",
        "over_25": "40%",
        "btts": "52%"
      },
      "cote_indicative": {
        "domicile": 2.54,
        "nul": 3.1,
        "exterieur": 2.88
      },
      "total_estime": "2.2 buts",
      "raisonnement": "Match équilibré entre équipes mid-table. Marché efficient, aucun angle trouvé.",
      "stats_comparatives": null
    },
    {
      "match": "Real Madrid vs Deportivo Alaves",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Real Madrid ML 1.23 < 1.30 — NO BET absolu. Over 2.5 = 1.40 (edge +4.6% < 6%). BTTS No = 1.87 (edge +4.6% < 6%). Marchés trop serrés pour trouver edge.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "79%",
        "nul": "14%",
        "victoire_exterieur": "9%",
        "over_25": "70%",
        "btts": "42%"
      },
      "cote_indicative": {
        "domicile": 1.23,
        "nul": 6.4,
        "exterieur": 11.0
      },
      "total_estime": "2.8 buts",
      "raisonnement": "Real Madrid massif favori (1.23). ML NO BET absolu. Over probable mais edge insuffisant post-shrinkage.",
      "stats_comparatives": null
    },
    {
      "match": "Girona FC vs Real Betis Seville",
      "sport": "football",
      "ligue": "La Liga",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Over 2.5 = 1.86 (edge +0.8%). BTTS Yes = 1.62 (edge +2.3%). Marchés très efficients sur ce match équilibré. NO BET.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "42%",
        "nul": "30%",
        "victoire_exterieur": "34%",
        "over_25": "54%",
        "btts": "63%"
      },
      "cote_indicative": {
        "domicile": 2.38,
        "nul": 3.3,
        "exterieur": 2.92
      },
      "total_estime": "2.4 buts",
      "raisonnement": "Match équilibré. Aucun marché avec edge >= 6% seuil.",
      "stats_comparatives": null
    },
    {
      "match": "Brighton & Hove Albion vs Chelsea FC",
      "sport": "football",
      "ligue": "Premier League",
      "heure": "19:00",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_domicile": "44%",
        "nul": "26%",
        "victoire_exterieur": "38%",
        "over_25": "48%",
        "btts": "24%"
      },
      "cote_indicative": {
        "domicile": 2.44,
        "nul": 3.65,
        "exterieur": 2.64
      },
      "total_estime": "2.1 buts",
      "raisonnement": "Chelsea en crise totale : 0 but en 4 matchs consécutifs, 4 défaites de suite. Absences offensives majeures : Mudryk suspendu, Estevao (hamstring), Gittens (blessé), Jorgensen (GK blessé). Away contre Brighton en forme (3 victoires consécutives, xG > 1.68). p(Chelsea marque) estimée à 35% — BTTS No offre edge +16.1% sur cote 2.38.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "Brighton",
        "equipe_2": "Chelsea",
        "position_classement": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "forme_5_derniers": [
          "V(Sunderland)-V(Liverpool)-V(Burnley)-N(Spurs)-?",
          "D-D-D-D-D (4 défaites, 0 but marqué)"
        ],
        "buts_marques_par_match": [
          "[NON VÉRIFIÉ]",
          "0 buts sur 4 matchs"
        ],
        "buts_encaisses_par_match": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "xg_pour": [
          "1.68+ sur 3 victoires",
          "1.57 vs Man United (mais 0 but)"
        ],
        "xg_contre": [
          "[NON VÉRIFIÉ]",
          "2.29 xG concédé vs Man City"
        ],
        "btts_pct_saison": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "over_25_pct_saison": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "h2h_5_derniers": "[NON VÉRIFIÉ]",
        "absences_cles": [
          "Gomez (incertain)",
          "Mudryk (suspendu), Estevao (hamstring), Colwill (blessé), Reece James (blessé), Gittens (blessé), Jorgensen (blessé)"
        ]
      }
    },
    {
      "match": "Boston Celtics vs Philadelphia 76ers",
      "sport": "basketball",
      "ligue": "NBA Playoffs G2",
      "heure": "23:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Total O/U absent de Betify/Stake (seulement ML 1.10/7.00 + Spread ATS banni). Ligne externe 216.5 identifiée mais DQ-B (1 source externe). Even avec edge Playoffs autorisé: Under p_estimee 0.55, p_finale 0.525, edge +2.5% << 8% seuil NBA. Game 1: 214 total (Under 216.5). Embiid OUT (appendicite). Celtics -13.5.",
      "niveau_confiance": "faible",
      "probabilites": null,
      "cote_indicative": {
        "home": 1.1,
        "away": 7.0
      },
      "total_estime": "216 pts (Under marginal)",
      "raisonnement": "Embiid OUT pour G2. Game 1 fini 123-91 (214 total). Celtics Under 63.4% saison. Ligne 216.5 bien calibrée — edge insuffisant même avec protocole Playoffs. ML Celtics 1.10 = NO BET absolu.",
      "stats_comparatives": {
        "type": "basketball",
        "equipe_1": "Boston Celtics",
        "equipe_2": "Philadelphia 76ers",
        "bilan_saison": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "forme_5_derniers": [
          "[NON VÉRIFIÉ]",
          "[NON VÉRIFIÉ]"
        ],
        "pts_par_match": [
          "~118",
          "~105 (sans Embiid)"
        ],
        "pts_encaisses_par_match": [
          "~108",
          "[NON VÉRIFIÉ]"
        ],
        "pace": [
          "Modéré-élevé",
          "[NON VÉRIFIÉ]"
        ],
        "back_to_back": [
          false,
          false
        ],
        "absences_cles": [
          "Harper Jr. DTD (cheville)",
          "Embiid OUT (appendicite)"
        ]
      }
    }
  ],
  "paris": [
    {
      "sport": "football",
      "ligue": "Premier League",
      "ligue_canonique": "PL",
      "match": "Brighton & Hove Albion vs Chelsea FC",
      "heure": "19:00",
      "marche": "Both Teams To Score - Non",
      "marche_canonique": "BTTS",
      "selection": "BTTS Non",
      "cote": 2.38,
      "cote_plancher": 1.92,
      "dq_flag": "DQ-A",
      "mise_unites": "2u",
      "mise_euros": 20,
      "kelly_calcul": "p_finale=58.1%, f_full=27.8%, qk=6.94%, chaos*1.0, mise_brute=34.7€ -> 3.5u -> cap 2u = 20€",
      "edge_estime": "+16.1%",
      "edge_num": 0.161,
      "probabilite_estimee": "65%",
      "p_estimee": 0.65,
      "probabilite_marche": "42.0%",
      "probabilite_finale": "58.1%",
      "p_finale_num": 0.581,
      "robustesse": "Edge tient à p_estimee=0.57 (edge +9.0%). Seuil critique: p_estimee doit descendre à 0.53 avant de passer sous 9%. Chelsea génère 1.57 xG/m mais ne convertit plus depuis 4 matchs. Risque régression à la moyenne Chelsea existe — intégré dans p_estimee conservatrice de 65%.",
      "raisonnement": "OBSERVATION RENFORCEE — tranche 2.00-2.50, historique 20% TR sur n=15, ROI -58%. Conditions satisfaites: edge +16.1% >= 9% (a) ✓, DQ-A (b) ✓, chaos 1 (c) ✓. Chelsea: 0 but en 4 matchs consécutifs avec Mudryk suspendu, Estevao/Gittens/Jorgensen blessés. Away à Brighton en grande forme (3V consécutives, xG >1.68). p(Chelsea marque) max 35%. Signal fort BTTS No.",
      "moteur": "VALUE",
      "statut_v3": "VALUE_SAFE",
      "protocol_version": "3.0",
      "chaos": 1,
      "tier": "tier1"
    }
  ],
  "no_bet": [
    {
      "match": "Llamas Ruiz, Pablo vs Moller, Elmer",
      "raison": "DQ-C — pas de cotes disponibles. ATP Madrid Qualifying.",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Sakamoto, Rei vs Gaubas, Vilius",
      "raison": "DQ-C — pas de cotes disponibles. ATP Madrid Qualifying.",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Garin, Cristian vs Damm Jr, Martin",
      "raison": "DQ-C — pas de cotes disponibles. ATP Madrid Qualifying.",
      "sport": "tennis",
      "ligue": "ATP Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Tjen, Janice vs Sakkari, Maria",
      "raison": "DQ-C — pas de cotes disponibles. WTA Madrid R1.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "08:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Maria, Tatjana vs Samson, Laura",
      "raison": "DQ-C — pas de cotes disponibles. WTA Madrid R1.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Waltert, Simona vs Salkova, Dominika",
      "raison": "DQ-C — pas de cotes disponibles.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Jeanjean, Leolia vs Masarova, Rebeka",
      "raison": "DQ-C — pas de cotes disponibles.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Bartunkova, Nikola vs Charaeva, Alina",
      "raison": "DQ-C — pas de cotes disponibles.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Marcinko, Petra vs Jimenez Kasintseva, Victoria",
      "raison": "DQ-C — pas de cotes disponibles.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "09:00",
      "dq_flag": "DQ-C"
    },
    {
      "match": "Stearns, Peyton vs Boisson, Lois",
      "raison": "Edge insuffisant: Stearns 1.34 → p_finale 0.728, edge -1.8%. Marché a bien intégré l'absence 6 mois de Boisson.",
      "sport": "tennis",
      "ligue": "WTA Madrid",
      "heure": "15:10",
      "dq_flag": "DQ-A"
    },
    {
      "match": "Leicester City vs Hull City",
      "raison": "Championship DQ-B tier2 — NO BET automatique (règle tier2 DQ-B).",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Coventry City vs Portsmouth FC",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Norwich City vs Derby County",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Oxford United vs Wrexham AFC",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Queens Park Rangers vs Swansea City",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Southampton FC vs Bristol City",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "Stoke City vs Millwall FC",
      "raison": "Championship DQ-B tier2 — NO BET.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-B"
    },
    {
      "match": "West Bromwich Albion vs Watford FC",
      "raison": "Championship DQ-A mais tier2. DC cotes: 1X=1.21, 12=1.29 — toutes < 1.30, NO BET absolu.",
      "sport": "football",
      "ligue": "Championship",
      "heure": "18:45",
      "dq_flag": "DQ-A"
    },
    {
      "match": "WTA 125K Oeiras — matchs DQ-C (4)",
      "raison": "DQ-C — pas de cotes disponibles. WTA 125K hors scope analyse complète.",
      "sport": "tennis",
      "ligue": "WTA 125K Oeiras",
      "heure": "various",
      "dq_flag": "DQ-C"
    },
    {
      "match": "WTA 125K Oeiras — matchs DQ-A (7)",
      "raison": "WTA 125K tier inférieur. Edge non identifié sans stats joueurs disponibles. No bet par principe de prudence.",
      "sport": "tennis",
      "ligue": "WTA 125K Oeiras",
      "heure": "various",
      "dq_flag": "DQ-A"
    },
    {
      "match": "WTA 125K Oeiras Doubles (5)",
      "raison": "Doubles — hors scope analyse. DQ mixtes.",
      "sport": "tennis",
      "ligue": "WTA 125K Oeiras Doubles",
      "heure": "various",
      "dq_flag": "DQ-C"
    },
    {
      "match": "ITF matchs (97 matchs divers)",
      "raison": "ITF hors scope protocole Doggy Analysis v3. DQ-B/C majoritaire.",
      "sport": "tennis",
      "ligue": "ITF divers",
      "heure": "various",
      "dq_flag": "DQ-C"
    }
  ],
  "resume": {
    "total_paris": 1,
    "exposition_totale_euros": 20,
    "exposition_totale_unites": 2.0,
    "quota_atteint": "2/8",
    "commentaire": "1 pari VALUE_SAFE retenu (Brighton BTTS No 2.38). Compte double en quota car cote 2.00-2.50. 6 paris VALUE restants disponibles si autre signal. Korpatsch VALUE_SAFE run 07h20 déjà documenté.",
    "gain_potentiel_si_tous_gagnants": 27.6
  }
}