{
  "date": "2026-04-08",
  "generated": "2026-04-08T07:15:00",
  "model_version": "2.5",
  "analyses": [
    {
      "match": "Rublev, Andrey vs Bergs, Zizou",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Rublev": "74%",
        "victoire_Bergs": "26%",
        "over_jeux": "52%",
        "set_Rublev": "93%",
        "set_Bergs": "63%"
      },
      "cote_indicative": {
        "Rublev": 1.39,
        "Bergs": 2.8
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Rublev possède un bilan remarquable sur terre battue (93-49 career). Premier match sur terre en 2026 après victoire solide sur Borges 6-4 1-6 6-1 au R1. H2H 1-1 mais jamais sur clay — Bergs l'avait battu à Miami 7-5 6-4 sur dur. Bergs 7-7 en 2026, a bien joué en battant Mannarino 6-4 6-3 mais la terre battue n'est pas sa surface de prédilection. L'avantage structurel de Rublev sur cette surface, combiné à son expérience en Masters 1000, justifie un CONFIANT.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Rublev",
        "joueur_2": "Bergs",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            6,
            52
          ],
          "bilan_saison": [
            "11-6",
            "7-7"
          ],
          "bilan_surface": [
            "93-49 (career)",
            "N/A"
          ],
          "forme_5_derniers": [
            "V-D-V-V-D",
            "V-V-D-V-D"
          ],
          "h2h": "1-1",
          "h2h_surface": "0-0"
        }
      }
    },
    {
      "match": "Ruud, Casper vs Moutet, Corentin",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "13:20",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Ruud": "75%",
        "victoire_Moutet": "25%",
        "over_jeux": "53%",
        "set_Ruud": "94%",
        "set_Moutet": "60%"
      },
      "cote_indicative": {
        "Ruud": 1.37,
        "Moutet": 2.88
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Ruud est l'un des meilleurs joueurs du circuit sur terre battue (251-107 career clay). Finaliste Monte Carlo 2024, il a atteint au minimum le 3e tour lors de ses 5 dernières participations. H2H 1-0 contre Moutet, jamais sur terre. Moutet 7-7 en 2026, 2-1 sur clay, peut poser des problèmes avec son jeu atypique mais manque de régularité au niveau Masters 1000. L'avantage structurel de Ruud sur terre, combiné à son historique exceptionnel ici, justifie un CONFIANT.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Ruud",
        "joueur_2": "Moutet",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            7,
            68
          ],
          "bilan_saison": [
            "8-7",
            "7-7"
          ],
          "bilan_surface": [
            "251-107 (career)",
            "191-108 (career)"
          ],
          "forme_5_derniers": [
            "V-D-D-V-V",
            "V-V-D-V-D"
          ],
          "h2h": "1-0",
          "h2h_surface": "0-0"
        }
      }
    },
    {
      "match": "Musetti, Lorenzo vs Vacherot, Valentin",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "14:30",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Musetti": "74%",
        "victoire_Vacherot": "26%",
        "over_jeux": "53%",
        "set_Musetti": "93%",
        "set_Vacherot": "63%"
      },
      "cote_indicative": {
        "Musetti": 1.45,
        "Vacherot": 2.58
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Musetti est un artiste de la terre battue, ex-demi-finaliste Roland Garros, top 15 mondial. Vacherot est classé au-delà du top 100, c'est sa première confrontation contre un joueur de ce calibre en Masters 1000 sur terre. La cote de 1.45 sous-évalue légèrement Musetti dont le style toucher/variation excelle sur cette surface lente. Le marché semble accorder trop de crédit à l'outsider compte tenu de l'écart de niveau structurel.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Musetti",
        "joueur_2": "Vacherot",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            14,
            120
          ],
          "bilan_saison": [
            "12-8",
            "N/A"
          ],
          "forme_5_derniers": [
            "V-D-V-V-D",
            "N/A"
          ],
          "h2h": "0-0",
          "h2h_surface": "0-0"
        }
      }
    },
    {
      "match": "Kalinina, Anhelina vs Udvardy, Panna",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "13:00",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Kalinina": "83%",
        "victoire_Udvardy": "17%",
        "over_jeux": "42%",
        "set_Kalinina": "97%",
        "set_Udvardy": "47%"
      },
      "cote_indicative": {
        "Kalinina": 1.24,
        "Udvardy": 3.75
      },
      "total_estime": "19.5 jeux",
      "raisonnement": "Kalinina mène 2-0 en H2H, 2-0 sur terre battue, dont une victoire récente 7-6(3) 7-5 en quart à Antalya en mars 2026. Udvardy arrive de Bogota où elle était finaliste — fatigue probable après un enchaînement intense. Kalinina est une joueuse de fond solide dont le profil baseline-first s'épanouit sur terre. L'avantage mental du H2H + la fatigue de l'adversaire + la surface favorite = ELITE.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Kalinina",
        "joueur_2": "Udvardy",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            32,
            55
          ],
          "bilan_saison": [
            "N/A",
            "N/A"
          ],
          "forme_5_derniers": [
            "N/A",
            "N/A"
          ],
          "h2h": "2-0",
          "h2h_surface": "2-0"
        }
      }
    },
    {
      "match": "Paris Saint-Germain vs Liverpool FC",
      "sport": "football",
      "ligue": "Champions League",
      "heure": "21:00",
      "dq_flag": "DQ-A",
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_domicile": "62%",
        "nul": "20%",
        "victoire_exterieur": "18%",
        "over_25": "65%",
        "btts": "55%"
      },
      "cote_indicative": {
        "domicile": 1.76,
        "nul": 4.1,
        "exterieur": 4.1
      },
      "total_estime": "2.8 buts",
      "raisonnement": "PSG en pleine forme : leader Ligue 1, 4 victoires consécutives, 15 matchs de suite en marquant, destruction de Chelsea 8-2 en agg. au tour précédent. Liverpool est en crise : 5e en PL, 2V-1N-4D sur les 7 derniers matchs, humilié 4-0 par Man City. Absences lourdes Liverpool : Alisson (gardien titulaire), Bradley, Endo. PSG au Parc des Princes est un lieu hostile pour toute équipe. Le différentiel de forme actuel est massif.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "Paris Saint-Germain",
        "equipe_2": "Liverpool FC",
        "stats": {
          "position_classement": [
            1,
            5
          ],
          "forme_5_derniers": [
            "V-V-V-V-V",
            "D-D-V-D-N"
          ],
          "buts_marques_par_match": [
            2.5,
            1.4
          ],
          "buts_encaisses_par_match": [
            0.8,
            1.8
          ],
          "xg_pour": [
            2.3,
            1.5
          ],
          "xg_contre": [
            0.9,
            1.6
          ],
          "possession_pct": [
            62,
            55
          ],
          "tirs_cadres_par_match": [
            6.5,
            4.2
          ],
          "clean_sheets_pct": [
            40,
            15
          ],
          "btts_pct_saison": [
            50,
            65
          ],
          "over_25_pct_saison": [
            65,
            55
          ],
          "h2h_5_derniers": "N/A",
          "absences_cles": [
            "Barcola (doute), Ruiz (blessé)",
            "Alisson (blessé), Endo (blessé), Bradley (blessé)"
          ]
        }
      }
    },
    {
      "match": "FC Barcelona vs Atletico Madrid",
      "sport": "football",
      "ligue": "Champions League",
      "heure": "21:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Cote Barca ML 1.52 insuffisante pour edge SOLIDE. DC non disponible via bookmaker. Atletico reste dangereux défensivement malgré mauvaise forme.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_domicile": "67%",
        "nul": "18%",
        "victoire_exterieur": "15%",
        "over_25": "68%",
        "btts": "52%"
      },
      "cote_indicative": {
        "domicile": 1.52,
        "nul": 4.9,
        "exterieur": 5.2
      },
      "total_estime": "2.9 buts",
      "raisonnement": "Barca leader La Liga, 7 pts d'avance, vient de battre Atletico 2-1 à l'extérieur. 5 victoires sur 6 dernières confrontations. Atacante machine : 2.67 buts/match en Liga, 3/match en UCL. Mais a encaissé dans ses 10 matchs UCL. Absences : Raphinha, De Jong, Christensen. Atletico 4e Liga, 3 défaites de suite, mais Simeone en UCL knockout est toujours dangereux.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "FC Barcelona",
        "equipe_2": "Atletico Madrid",
        "stats": {
          "position_classement": [
            1,
            4
          ],
          "forme_5_derniers": [
            "V-V-V-V-N",
            "D-D-D-V-V"
          ],
          "buts_marques_par_match": [
            2.7,
            1.5
          ],
          "buts_encaisses_par_match": [
            1.1,
            1.2
          ],
          "xg_pour": [
            2.5,
            1.4
          ],
          "xg_contre": [
            1.0,
            1.1
          ],
          "possession_pct": [
            65,
            48
          ],
          "tirs_cadres_par_match": [
            7.0,
            4.0
          ],
          "clean_sheets_pct": [
            30,
            35
          ],
          "btts_pct_saison": [
            55,
            50
          ],
          "over_25_pct_saison": [
            72,
            48
          ],
          "h2h_5_derniers": "4-0-1",
          "absences_cles": [
            "Raphinha, De Jong, Christensen, Bernal",
            "Barrios, Oblak (doute), Gimenez (doute)"
          ]
        }
      }
    },
    {
      "match": "SC Braga vs Real Betis Seville",
      "sport": "football",
      "ligue": "Europa League",
      "heure": "18:45",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match équilibré, aucun favori clair. Edge insuffisant sur tout marché autorisé.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "42%",
        "nul": "27%",
        "victoire_exterieur": "31%",
        "over_25": "50%",
        "btts": "48%"
      },
      "cote_indicative": {
        "domicile": 2.52,
        "nul": 3.3,
        "exterieur": 2.84
      },
      "total_estime": "2.2 buts",
      "raisonnement": "Braga solide à domicile (7 clean sheets en 10 matchs UEL), a réussi une remontada 4-0 vs Ferencvaros. Betis 5e Liga mais forme catastrophique : 1 victoire en 8 matchs, absent Isco et Lo Celso. Match ouvert mais aucun favori clair. Les cotes reflètent bien l'équilibre. Pas d'edge suffisant.",
      "stats_comparatives": {
        "type": "football",
        "equipe_1": "SC Braga",
        "equipe_2": "Real Betis",
        "stats": {
          "position_classement": [
            4,
            5
          ],
          "forme_5_derniers": [
            "V-V-N-V-D",
            "N-D-D-V-D"
          ],
          "buts_marques_par_match": [
            1.4,
            1.3
          ],
          "buts_encaisses_par_match": [
            0.8,
            1.1
          ],
          "xg_pour": [
            1.3,
            1.5
          ],
          "xg_contre": [
            0.9,
            1.2
          ],
          "possession_pct": [
            52,
            58
          ],
          "tirs_cadres_par_match": [
            4.5,
            5.0
          ],
          "clean_sheets_pct": [
            45,
            20
          ],
          "btts_pct_saison": [
            45,
            55
          ],
          "over_25_pct_saison": [
            45,
            50
          ],
          "h2h_5_derniers": "N/A",
          "absences_cles": [
            "Barisic (doute), Carvalho (blessé)",
            "Isco (blessé), Lo Celso (blessé), Ortiz (blessé)"
          ]
        }
      }
    },
    {
      "match": "Garin, Cristian vs Zverev, Alexander",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "12:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Zverev ML @1.11 : cote trop courte, edge négatif après shrinkage. Marché surévalue légèrement Zverev pour son premier match sur terre de la saison.",
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Zverev": "88%",
        "victoire_Garin": "12%",
        "over_jeux": "45%",
        "set_Zverev": "96%",
        "set_Garin": "50%"
      },
      "cote_indicative": {
        "Garin": 5.8,
        "Zverev": 1.11
      },
      "total_estime": "19.5 jeux",
      "raisonnement": "Zverev #3 mondial, 15-5 en 2026 mais 0-0 sur terre (premier match clay saison). Garin a un H2H surprenant de 2-1 sur terre contre Zverev. Garin vient de battre Arnaldi 6-2 6-4. Malgré cela, la différence de niveau actuel est trop grande. Mais la cote @1.11 ne paie pas — aucun edge.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Garin",
        "joueur_2": "Zverev",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            85,
            3
          ],
          "bilan_saison": [
            "4-7",
            "15-5"
          ],
          "bilan_surface": [
            "4-2",
            "0-0"
          ],
          "forme_5_derniers": [
            "V-D-D-V-V",
            "V-V-V-D-V"
          ],
          "h2h": "2-1",
          "h2h_surface": "2-1"
        }
      }
    },
    {
      "match": "Fonseca, Joao vs Rinderknech, Arthur",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "12:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Fonseca ML @1.27 : cote trop courte pour l'edge disponible (-2.0% après shrinkage). Marché justement pricing.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Fonseca": "76%",
        "victoire_Rinderknech": "24%",
        "over_jeux": "52%",
        "set_Fonseca": "94%",
        "set_Rinderknech": "59%"
      },
      "cote_indicative": {
        "Fonseca": 1.27,
        "Rinderknech": 3.45
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Fonseca est un talent en pleine éclosion, 18 ans, bonne adaptation sur terre. Rinderknech a battu Khachanov 7-5 6-2 avec un excellent service (79% pts 1er service). Premier affrontement entre les deux. La cote à 1.27 est correctement calibrée — pas d'avantage informationnel.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Fonseca",
        "joueur_2": "Rinderknech",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            20,
            60
          ],
          "bilan_saison": [
            "12-5",
            "N/A"
          ],
          "forme_5_derniers": [
            "V-V-V-D-V",
            "V-V-D-V-D"
          ],
          "pct_1er_service": [
            68,
            66
          ],
          "h2h": "0-0",
          "h2h_surface": "0-0"
        }
      }
    },
    {
      "match": "Cerundolo, Francisco vs Machac, Tomas",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "12:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Edge négatif après shrinkage (-0.9%). Marché bien calibré.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Cerundolo": "74%",
        "victoire_Machac": "26%",
        "over_jeux": "48%",
        "set_Cerundolo": "93%",
        "set_Machac": "63%"
      },
      "cote_indicative": {
        "Cerundolo": 1.33,
        "Machac": 3.1
      },
      "total_estime": "21.0 jeux",
      "raisonnement": "Cerundolo est un spécialiste terre battue argentin, favori logique. Machac plus à l'aise sur dur. Mais la cote de 1.33 est correctement calibrée pour l'écart de niveau sur cette surface.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Cerundolo",
        "joueur_2": "Machac",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            16,
            25
          ],
          "bilan_saison": [
            "N/A",
            "N/A"
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Medvedev, Daniil vs Berrettini, Matteo",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "11:00",
      "dq_flag": "DQ-B",
      "pari_retenu": false,
      "raison_no_bet": "DQ-B limite l'analyse. Edge négatif sur Medvedev ML. Clay est le point faible de Medvedev, Berrettini dangereux sur cette surface. Match volatil.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Medvedev": "60%",
        "victoire_Berrettini": "40%",
        "over_jeux": "55%",
        "set_Medvedev": "86%",
        "set_Berrettini": "72%"
      },
      "cote_indicative": {
        "Medvedev": 1.39,
        "Berrettini": 2.8
      },
      "total_estime": "23.0 jeux",
      "raisonnement": "H2H 3-0 Medvedev mais jamais sur terre. Medvedev 19-5 en 2026, excellent sur dur, mais terre reste sa surface la plus faible. Berrettini est un joueur de terre battue naturel avec un service puissant (7.7 aces/match). Le passage dur→terre pour Medvedev + les conditions météo incertaines à Monaco ajoutent du chaos. DQ-B (1 source cotes) empêche tout pari.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Medvedev",
        "joueur_2": "Berrettini",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            4,
            35
          ],
          "bilan_saison": [
            "19-5",
            "N/A"
          ],
          "aces_par_match": [
            5.5,
            7.7
          ],
          "h2h": "3-0",
          "h2h_surface": "0-0"
        }
      }
    },
    {
      "match": "Lehecka, Jiri vs Tabilo, Alejandro",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "11:00",
      "dq_flag": "DQ-B",
      "pari_retenu": false,
      "raison_no_bet": "DQ-B. Match serré, edge insuffisant.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Lehecka": "55%",
        "victoire_Tabilo": "45%",
        "over_jeux": "55%"
      },
      "cote_indicative": {
        "Lehecka": 1.72,
        "Tabilo": 2.02
      },
      "total_estime": "22.5 jeux",
      "raisonnement": "Match équilibré entre deux joueurs de niveau similaire. Lehecka léger favori mais DQ-B et cotes serrées ne permettent pas de dégager un edge.",
      "stats_comparatives": null
    },
    {
      "match": "Etcheverry, Tomas Martin vs Atmane, Terence",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "13:20",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Edge insuffisant après shrinkage (-0.8%). Cote 1.35 trop courte.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Etcheverry": "73%",
        "victoire_Atmane": "27%",
        "over_jeux": "53%",
        "set_Etcheverry": "93%",
        "set_Atmane": "64%"
      },
      "cote_indicative": {
        "Etcheverry": 1.35,
        "Atmane": 2.98
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Etcheverry est un terrien argentin solide, favori logique. Mais la cote 1.35 est correctement pricing, pas d'avantage informationnel sur ce match.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Etcheverry",
        "joueur_2": "Atmane",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            28,
            110
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Auger-Aliassime, Felix vs Cilic, Marin",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "13:20",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Edge insuffisant (+0.4%). FAA favori mais pas assez d'écart pour CONFIANT.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_FAA": "73%",
        "victoire_Cilic": "27%",
        "over_jeux": "50%",
        "set_FAA": "93%",
        "set_Cilic": "63%"
      },
      "cote_indicative": {
        "FAA": 1.38,
        "Cilic": 2.86
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "FAA progresse sur terre mais Cilic, malgré son âge, reste un compétiteur redoutable avec un gros service. L'edge marginal ne justifie pas un pari.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Auger-Aliassime",
        "joueur_2": "Cilic",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            18,
            90
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Cobolli, Flavio vs Blockx, Alexander",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "14:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "p_finale 69.5% — juste sous le seuil CONFIANT de 70%.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Cobolli": "70%",
        "victoire_Blockx": "30%",
        "over_jeux": "52%",
        "set_Cobolli": "91%",
        "set_Blockx": "67%"
      },
      "cote_indicative": {
        "Cobolli": 1.47,
        "Blockx": 2.54
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Cobolli est un jeune Italien en progression, bon sur terre. Blockx est belge, moins expérimenté à ce niveau. Mais la p_finale manque de peu le seuil CONFIANT.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Cobolli",
        "joueur_2": "Blockx",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            30,
            95
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Marozsan, Fabian vs Hurkacz, Hubert",
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "heure": "14:30",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match serré, Hurkacz faible sur terre, Marozsan léger favori mais edge insuffisant. Trop volatil.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_Marozsan": "58%",
        "victoire_Hurkacz": "42%",
        "over_jeux": "48%"
      },
      "cote_indicative": {
        "Marozsan": 1.66,
        "Hurkacz": 2.12
      },
      "total_estime": "22.0 jeux",
      "raisonnement": "Match équilibré. Marozsan léger favori selon le marché mais les deux joueurs ont des profils différents sur terre. Hurkacz serveur puissant mais peu adapté à la terre. Trop de volatilité pour dégager un edge clair.",
      "stats_comparatives": null
    },
    {
      "match": "Andreeva, Mirra vs Stephens, Sloane",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "18:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Cote ML Andreeva @1.04 beaucoup trop courte. Edge négatif (-2.4%). Aucune valeur malgré probabilité très élevée.",
      "niveau_confiance": "eleve",
      "probabilites": {
        "victoire_Andreeva": "93%",
        "victoire_Stephens": "7%",
        "over_jeux": "30%",
        "set_Andreeva": "98%",
        "set_Stephens": "45%"
      },
      "cote_indicative": {
        "Andreeva": 1.04,
        "Stephens": 8.6
      },
      "total_estime": "17.0 jeux",
      "raisonnement": "Andreeva WTA #10 vs Stephens #554. L'écart est gigantesque mais la cote @1.04 ne laisse aucune marge. Même avec 93% de probabilité estimée, le marché est déjà à 96%. H2H 0-1 (Stephens avait gagné en 2023 quand Andreeva avait 16 ans).",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Andreeva",
        "joueur_2": "Stephens",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            10,
            554
          ],
          "h2h": "0-1",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Ostapenko, Jelena vs Eala, Alexandra",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "13:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Ostapenko trop volatile. Prédictions contradictoires (62% Osta vs 68% Eala selon les modèles). Chaos élevé, pas d'edge clair.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_Ostapenko": "60%",
        "victoire_Eala": "40%",
        "over_jeux": "56%"
      },
      "cote_indicative": {
        "Ostapenko": 1.46,
        "Eala": 2.54
      },
      "total_estime": "21.5 jeux",
      "raisonnement": "Ostapenko est une joueuse de feast-or-famine : coup droit dévastateur mais erreurs directes en série. Eala progresse et a des qualités de contreur qui exploitent l'irrégularité d'Ostapenko. Les prédictions sont contradictoires entre les modèles. Trop de volatilité.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Ostapenko",
        "joueur_2": "Eala",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            15,
            70
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Potapova, Anastasia vs Zhang, Shuai",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "16:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Potapova ML @1.35 : edge insuffisant (-0.1%). Marché correctement pricing malgré déclin de Zhang.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Potapova": "74%",
        "victoire_Zhang": "26%",
        "over_jeux": "45%",
        "set_Potapova": "93%",
        "set_Zhang": "63%"
      },
      "cote_indicative": {
        "Potapova": 1.35,
        "Zhang": 2.96
      },
      "total_estime": "20.0 jeux",
      "raisonnement": "Potapova est favorite logique contre Zhang Shuai (37 ans, en déclin). Mais la cote @1.35 intègre déjà ce différentiel. Pas d'edge.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Potapova",
        "joueur_2": "Zhang",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            42,
            180
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Ruse, Elena-Gabriela vs Yastremska, Dayana",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "12:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Match serré, cotes proches. Yastremska légère favorite mais edge insuffisant.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_Ruse": "45%",
        "victoire_Yastremska": "55%",
        "over_jeux": "52%"
      },
      "cote_indicative": {
        "Ruse": 2.02,
        "Yastremska": 1.73
      },
      "total_estime": "21.5 jeux",
      "raisonnement": "Match équilibré. Yastremska légère favorite selon le marché. Pas de signal clair pour dégager un edge sur un marché autorisé.",
      "stats_comparatives": null
    },
    {
      "match": "Galfi, Dalma vs Cirstea, Sorana",
      "sport": "tennis",
      "ligue": "WTA Linz",
      "heure": "19:10",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Cirstea ML @1.31 : edge insuffisant après shrinkage (-0.2%). Marché correctement pricing.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Cirstea": "76%",
        "victoire_Galfi": "24%",
        "over_jeux": "48%"
      },
      "cote_indicative": {
        "Galfi": 3.25,
        "Cirstea": 1.31
      },
      "total_estime": "20.0 jeux",
      "raisonnement": "Cirstea est favorite logique, expérimentée sur terre. Mais la cote @1.31 est correctement calibrée.",
      "stats_comparatives": {
        "type": "tennis",
        "joueur_1": "Galfi",
        "joueur_2": "Cirstea",
        "surface": "Clay",
        "stats": {
          "classement_atp_wta": [
            65,
            28
          ],
          "h2h": "N/A",
          "h2h_surface": "N/A"
        }
      }
    },
    {
      "match": "Ponchet, Jessika vs Kudermetova, Polina",
      "sport": "tennis",
      "ligue": "WTA 125K Madrid",
      "heure": "11:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Kudermetova ML @1.31 : edge modeste (+1.3%) mais WTA 125K ajoute de l'incertitude. Juste sous le seuil pour justifier un pari dans un tournoi secondaire.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_Kudermetova": "78%",
        "victoire_Ponchet": "22%",
        "over_jeux": "45%"
      },
      "cote_indicative": {
        "Ponchet": 3.15,
        "Kudermetova": 1.31
      },
      "total_estime": "20.0 jeux",
      "raisonnement": "Kudermetova favorite solide mais WTA 125K est un niveau où les surprises arrivent. L'edge de 1.3% est modeste et ne justifie pas une prise de risque dans un tournoi secondaire.",
      "stats_comparatives": null
    },
    {
      "match": "Detroit Pistons vs Milwaukee Bucks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Ligne anormale (Pistons -18.5). Probable repos de joueurs clés Bucks en fin de saison. Injury report non vérifié <2h avant tip-off. NO BET automatique.",
      "niveau_confiance": "faible",
      "probabilites": {
        "victoire_domicile": "95%",
        "victoire_exterieur": "5%",
        "over_total": "50%"
      },
      "cote_indicative": {
        "domicile": 1.04,
        "exterieur": 11.0
      },
      "total_estime": "221.5 pts",
      "raisonnement": "Ligne absurde : Pistons -18.5 à domicile contre les Bucks. Probable repos massif de Milwaukee (Giannis, Lillard, etc.) en fin de saison. Impossible d'évaluer correctement sans injury report confirmé. NO BET automatique par protocole.",
      "stats_comparatives": null
    },
    {
      "match": "Cleveland Cavaliers vs Atlanta Hawks",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Injury report non vérifié <2h avant tip-off. Match en soirée, analyse matinale. NO BET automatique.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_domicile": "58%",
        "victoire_exterieur": "42%",
        "over_total": "52%"
      },
      "cote_indicative": {
        "domicile": 1.81,
        "exterieur": 2.0
      },
      "total_estime": "236.5 pts",
      "raisonnement": "Match relativement serré. Cavaliers légers favoris à domicile mais les Hawks ont un roster compétitif. Impossible de vérifier les injury reports cette tôt — NO BET auto par protocole NBA.",
      "stats_comparatives": null
    },
    {
      "match": "Orlando Magic vs Minnesota Timberwolves",
      "sport": "basketball",
      "ligue": "NBA",
      "heure": "01:00",
      "dq_flag": "DQ-A",
      "pari_retenu": false,
      "raison_no_bet": "Injury report non vérifié <2h avant tip-off. NO BET automatique NBA.",
      "niveau_confiance": "moyen",
      "probabilites": {
        "victoire_domicile": "62%",
        "victoire_exterieur": "38%",
        "over_total": "48%"
      },
      "cote_indicative": {
        "domicile": 1.44,
        "exterieur": 2.8
      },
      "total_estime": "227.5 pts",
      "raisonnement": "Magic favoris à domicile, style défensif. Wolves en difficulté sur la route. Mais sans vérification des injury reports, le protocole NBA exige un NO BET automatique.",
      "stats_comparatives": null
    }
  ],
  "paris": [
    {
      "sport": "tennis",
      "ligue": "WTA Linz",
      "match": "Kalinina, Anhelina vs Udvardy, Panna",
      "heure": "13:00",
      "marche": "ML",
      "selection": "Kalinina ML",
      "cote": 1.24,
      "cote_plancher": 1.2,
      "dq_flag": "DQ-A",
      "mise_unites": "3u",
      "mise_euros": 30,
      "kelly_calcul": "p_finale=82.4%, f_full=(0.824*0.24-0.176)/0.24=26.5%, qk=6.6%, mise_brute=33€ -> 3u (ELITE)",
      "edge_estime": "+1.8%",
      "probabilite_estimee": "83%",
      "probabilite_marche": "80.6%",
      "probabilite_finale": "82.4%",
      "palier": "ELITE",
      "robustesse": "Si p_finale -3% (79.4%) : edge = -1.2% → fragile mais H2H 2-0 et fatigue Udvardy soutiennent. Acceptable.",
      "raisonnement": "ELITE : H2H 2-0 (2-0 sur terre), victoire récente 7-6 7-5 en mars. Udvardy fatiguée (finaliste Bogota semaine dernière). Kalinina excelle en baseline sur terre. Surface + H2H + fatigue = triple signal convergent.",
      "categorie": "CONFIANCE",
      "statut": "ELITE",
      "chaos": 0,
      "tier": "tier1"
    },
    {
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "match": "Rublev, Andrey vs Bergs, Zizou",
      "heure": "11:00",
      "marche": "ML",
      "selection": "Rublev ML",
      "cote": 1.39,
      "cote_plancher": 1.33,
      "dq_flag": "DQ-A",
      "mise_unites": "2u",
      "mise_euros": 20,
      "kelly_calcul": "p_finale=73.5%, f_full=(0.735*0.39-0.265)/0.39=6.6%, qk=1.7%, mise_brute=8.3€ -> 2u (CONFIANT fixe)",
      "edge_estime": "+1.6%",
      "probabilite_estimee": "74%",
      "probabilite_marche": "71.9%",
      "probabilite_finale": "73.5%",
      "palier": "CONFIANT",
      "robustesse": "Si p_finale -3% (70.5%) : edge = -1.4% → fragile. Mais bilan clay 93-49 rassure. H2H 1-1 mais surface inédite avantage Rublev.",
      "raisonnement": "CONFIANT : Rublev possède un bilan exceptionnel sur terre battue (93-49 career). Premier affrontement sur clay avec Bergs dont le profil est plus adapté au dur. Bergs a battu Rublev à Miami mais les conditions à Monte Carlo sont radicalement différentes.",
      "categorie": "CONFIANCE",
      "statut": "CONFIANT",
      "chaos": 1,
      "tier": "tier1"
    },
    {
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "match": "Ruud, Casper vs Moutet, Corentin",
      "heure": "13:20",
      "marche": "ML",
      "selection": "Ruud ML",
      "cote": 1.37,
      "cote_plancher": 1.32,
      "dq_flag": "DQ-A",
      "mise_unites": "2u",
      "mise_euros": 20,
      "kelly_calcul": "p_finale=74.5%, f_full=(0.745*0.37-0.255)/0.37=5.6%, qk=1.4%, mise_brute=7€ -> 2u (CONFIANT fixe)",
      "edge_estime": "+1.5%",
      "probabilite_estimee": "75%",
      "probabilite_marche": "73.0%",
      "probabilite_finale": "74.5%",
      "palier": "CONFIANT",
      "robustesse": "Si p_finale -3% (71.5%) : edge = -1.5% → fragile. Mais 251-107 career clay et historique MC exceptionnel sécurisent.",
      "raisonnement": "CONFIANT : Ruud est un monstre de terre battue (251-107 career). Finaliste MC 2024, toujours au minimum R3 ici sur 5 ans. Moutet est un joueur atypique qui peut gêner mais manque de constance au niveau Masters 1000. L'avantage structurel de Ruud sur terre est massif.",
      "categorie": "CONFIANCE",
      "statut": "CONFIANT",
      "chaos": 1,
      "tier": "tier1"
    },
    {
      "sport": "tennis",
      "ligue": "ATP Monte Carlo Masters 1000",
      "match": "Musetti, Lorenzo vs Vacherot, Valentin",
      "heure": "14:30",
      "marche": "ML",
      "selection": "Musetti ML",
      "cote": 1.45,
      "cote_plancher": 1.35,
      "dq_flag": "DQ-A",
      "mise_unites": "2u",
      "mise_euros": 20,
      "kelly_calcul": "p_finale=72.8%, f_full=(0.728*0.45-0.272)/0.45=12.4%, qk=3.1%, mise_brute=15.5€ -> 2u (CONFIANT fixe)",
      "edge_estime": "+3.8%",
      "probabilite_estimee": "74%",
      "probabilite_marche": "69.0%",
      "probabilite_finale": "72.8%",
      "palier": "CONFIANT",
      "robustesse": "Si p_finale -3% (69.8%) : edge = +0.8% → reste positif. Meilleure robustesse du portefeuille.",
      "raisonnement": "CONFIANT avec le meilleur edge du jour : Musetti est un artiste de la terre battue, top 15, ex-demi-finaliste Roland-Garros. Vacherot est un joueur au-delà du top 100 qui n'a pas le niveau pour rivaliser en Masters 1000 sur clay. La cote de 1.45 semble sous-évaluer le différentiel de niveau.",
      "categorie": "CONFIANCE",
      "statut": "CONFIANT",
      "chaos": 0,
      "tier": "tier1"
    },
    {
      "sport": "football",
      "ligue": "Champions League",
      "match": "Paris Saint-Germain vs Liverpool FC",
      "heure": "21:00",
      "marche": "ML",
      "selection": "PSG ML",
      "cote": 1.76,
      "cote_plancher": 1.6,
      "dq_flag": "DQ-A",
      "mise_unites": "1u",
      "mise_euros": 10,
      "kelly_calcul": "p_finale=60.2%, f_full=(0.602*0.76-0.398)/0.76=7.8%, qk=1.95%, mise_brute=9.8€ -> 1u (SOLIDE)",
      "edge_estime": "+3.4%",
      "probabilite_estimee": "62%",
      "probabilite_marche": "56.8%",
      "probabilite_finale": "60.2%",
      "palier": "SOLIDE",
      "robustesse": "Si p_finale -3% (57.2%) : edge = +0.4% → reste marginalement positif. Liverpool en crise profonde protège ce pari.",
      "raisonnement": "SOLIDE : PSG en pleine forme (leader L1, 4 victoires de suite, 15 matchs en marquant, 8-2 agg. vs Chelsea). Liverpool en crise historique : 5e PL, 2V-1N-4D récemment, humilié 4-0 par City. Sans Alisson (gardien #1). Le différentiel de forme est le plus marqué de la soirée UCL.",
      "categorie": "VALUE",
      "statut": "SOLIDE",
      "chaos": 1,
      "tier": "tier1"
    }
  ],
  "no_bet": [
    {
      "match": "FC Barcelona vs Atletico Madrid",
      "raison": "Edge insuffisant sur ML @1.52. DC non disponible. Atletico dangereux en knockout UCL."
    },
    {
      "match": "SC Braga vs Real Betis Seville",
      "raison": "Match équilibré, aucun favori clair, edge insuffisant."
    },
    {
      "match": "Garin vs Zverev",
      "raison": "Zverev ML @1.11 trop court, edge négatif."
    },
    {
      "match": "Fonseca vs Rinderknech",
      "raison": "ML @1.27 correctement pricé, edge -2.0%."
    },
    {
      "match": "Cerundolo vs Machac",
      "raison": "ML @1.33 correctement pricé, edge -0.9%."
    },
    {
      "match": "Medvedev vs Berrettini",
      "raison": "DQ-B + clay weakness Medvedev. Trop volatil."
    },
    {
      "match": "Lehecka vs Tabilo",
      "raison": "DQ-B, match serré, edge insuffisant."
    },
    {
      "match": "Etcheverry vs Atmane",
      "raison": "ML @1.35 correctement pricé."
    },
    {
      "match": "FAA vs Cilic",
      "raison": "Edge +0.4% insuffisant pour CONFIANT (seuil 1%)."
    },
    {
      "match": "Cobolli vs Blockx",
      "raison": "p_finale 69.5%, juste sous seuil CONFIANT 70%."
    },
    {
      "match": "Marozsan vs Hurkacz",
      "raison": "Match serré, trop volatil."
    },
    {
      "match": "Andreeva vs Stephens",
      "raison": "ML @1.04 aucune valeur malgré 93% probabilité."
    },
    {
      "match": "Ostapenko vs Eala",
      "raison": "Prédictions contradictoires, Ostapenko trop volatile."
    },
    {
      "match": "Potapova vs Zhang",
      "raison": "ML @1.35 correctement pricé, edge -0.1%."
    },
    {
      "match": "Ruse vs Yastremska",
      "raison": "Match serré, pas d'edge."
    },
    {
      "match": "Galfi vs Cirstea",
      "raison": "ML @1.31 correctement pricé, edge -0.2%."
    },
    {
      "match": "Kudermetova vs Ponchet",
      "raison": "Edge modeste (+1.3%) mais WTA 125K ajoute incertitude."
    },
    {
      "match": "Detroit Pistons vs Milwaukee Bucks",
      "raison": "NBA NO BET auto — injury report non vérifié, ligne anormale."
    },
    {
      "match": "Cleveland Cavaliers vs Atlanta Hawks",
      "raison": "NBA NO BET auto — injury report non vérifié <2h."
    },
    {
      "match": "Orlando Magic vs Minnesota Timberwolves",
      "raison": "NBA NO BET auto — injury report non vérifié <2h."
    }
  ],
  "resume": {
    "total_paris": 5,
    "exposition_totale_euros": 100,
    "exposition_totale_unites": 10,
    "repartition": {
      "ELITE": 1,
      "CONFIANT": 3,
      "SOLIDE": 1,
      "VALUE": 0
    },
    "par_sport": {
      "tennis": 4,
      "football": 1,
      "basketball": 0
    },
    "gain_potentiel_si_tous_gagnants": 26.1
  }
}