{
  "date": "2026-05-16",
  "generated": "2026-05-16T07:18:05",
  "model_version": "4.0",
  "protocol_version": "4.0",
  "analyses": [
    {
      "match": "FC Porto vs Santa Clara Azores",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "14:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance_v4": "CONFIANT",
      "probabilites": {
        "p_estimee": "73%",
        "p_marche": "74.6%",
        "p_finale": "73.5%"
      },
      "stats_comparatives": {
        "selection": "FC Porto",
        "cote": 1.34,
        "marche": "ML"
      },
      "raisonnement": "FC Porto largement champion virtuel (85 pts, 1er) reçoit Santa Clara (12e, 1V sur 5 derniers) pour la dernière au Dragão. Quatre absents (Pérez, Luuk de Jong, Tomas Pérez, Sanusi) atténuent la marge mais la supériorité globale reste écrasante. Dernier match festif + écart de classement majeur."
    },
    {
      "match": "SC Braga vs Estrela Amadora",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance_v4": "PROBABLE",
      "probabilites": {
        "p_estimee": "57%",
        "p_marche": "60.6%",
        "p_finale": "58.8%"
      },
      "stats_comparatives": {
        "selection": "SC Braga",
        "cote": 1.65,
        "marche": "ML"
      },
      "raisonnement": "Braga 4e (16V-10N-7D, top scorer Zalazar 16 buts) reçoit Estrela 15e (6V-11N-16D). H2H 3-0-2 favorable Braga. Six absents Braga (Barisic, Arrey-Mbi, Niakaté, D.Rodrigues, Grillitsch + Carvalho susp) pèsent — chaos 2. Mais l'écart de qualité top4 vs avant-dernier reste structurel."
    },
    {
      "match": "Parry, Diane vs Charaeva, Alina",
      "sport": "tennis",
      "ligue": "WTA 125K Paris",
      "heure": "13:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": true,
      "raison_no_bet": null,
      "niveau_confiance_v4": "PROBABLE",
      "probabilites": {
        "p_estimee": "55%",
        "p_marche": "62.9%",
        "p_finale": "57.4%"
      },
      "stats_comparatives": {
        "selection": "Charaeva, Alina",
        "cote": 1.59,
        "marche": "ML"
      },
      "raisonnement": "Charaeva sort d'un combat 7-5 au 3e set vs Korpatsch en R16 — rythme et forme acquis. Parry locale française mais bénéficie d'un walkover Putintseva en QF — pas de match dans les jambes, peut manquer de timing. Pas d'H2H notable. WTA 125K — chaos 1 (niveau imprévisible)."
    },
    {
      "match": "Bayern Munich vs 1. FC Cologne",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "ML hors range [1.30,3.00] (1.15/14.00) — rotation possible avant finale DFB Pokal",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Bayern champion (35e titre acquis), focus DFB Pokal à venir. Rotation 4-2-3-1 attendue. ML hors range absolus + DC 1X/12 < 1.30. Spread -1.75 @ 1.42 fragile car rotation."
    },
    {
      "match": "Bayer Leverkusen vs Hamburger SV",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "ML home 1.30 ultra-court — Leverkusen défaite récente 1-3 vs Stuttgart + 3 absents",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Leverkusen DOIT gagner pour C1 (pression max). Terrier/Tella/Kofane out. HSV invaincu 2 matchs, fin de saison sereine. p_estimee 60% vs p_marche 76.9% — désaccord majeur, je passe."
    },
    {
      "match": "Eintracht Frankfurt vs VfB Stuttgart",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "p_finale_num 0.51 (Stuttgart ML) < 0.55 seuil PROBABLE",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Stuttgart vise C1 directe, en forme (3V/5, 69 buts). Frankfurt 4 matchs sans victoire mais à domicile, enjeu UECL. Marché aligné (Stuttgart 1.94). Pas d'angle propre."
    },
    {
      "match": "SC Freiburg vs RB Leipzig",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Leipzig C1 acquise = rotation. Freiburg 3 absents défensifs",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Leipzig détendu (3e sécurisé) → rotation 8-9 joueurs probable. Freiburg invaincu 4 à domicile mais Rosenfelder/Osterhage/Suzuki out. Spread +0.75 Freiburg @ 1.43 borderline mais incertain."
    },
    {
      "match": "Werder Bremen vs Borussia Dortmund",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Aucun enjeu Dortmund (2e sécurisé), rotation possible — p_finale Dortmund ML 0.53",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Bremen 15e méforme (1V/6). Dortmund 2e sécurisé → rotation. Pas d'angle clair — p_finale ML 0.53, Over 3.75 0.52."
    },
    {
      "match": "Borussia Monchengladbach vs TSG Hoffenheim",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "p_finale Hoffenheim 0.53 < 0.55 — Gladbach invaincu 6 à domicile",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Hoffenheim 5e en forme (invaincu 5) mais Gladbach invaincu 6 à domicile. Cote 1.66 reflète la motivation Hoffenheim. P_estimee 50%, p_finale 0.53 — sous seuil PROBABLE."
    },
    {
      "match": "Union Berlin vs FC Augsburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match d'égalité fin de saison sans enjeu — aucun angle propre",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes proches (2.65/3.95/2.44). Union 5 absents incluant suspension. Augsburg invaincu mars mais 3 absents. Aucun favori convaincant."
    },
    {
      "match": "FC St. Pauli vs VFL Wolfsburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 3,
      "pari_retenu": false,
      "raison_no_bet": "CHAOS 3 — match pour la survie (3 équipes à 26 pts) + gros absents Wolfsburg",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Survie directe — vainqueur sauvé. St Pauli 9 matchs sans victoire. Wolfsburg gros absents (Amoura/Arnold/Wimmer). Chaos 3 — règle v4.0 NO BET automatique."
    },
    {
      "match": "1. FC Heidenheim vs FSV Mainz",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "p_finale Heidenheim ML 0.54 < 0.55 — Mainz a battu Heid 2-1 à l'aller",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Heidenheim doit gagner pour chance barrage. Invaincu 6/7. Mainz détendu mais a battu Heid en janvier. P_estimee 55%, p_finale 0.54 — sous seuil."
    },
    {
      "match": "Willem II Tilburg vs Almere City FC",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "18:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Barrage promotion — Willem mène 1-0 aller, match piège, p_finale ML 0.49",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Retour SF barrage Eredivisie. Willem II avantage minime 1-0 aller. Cotes équilibrées (2.21/3.70/2.95). Match ouvert sans angle solide."
    },
    {
      "match": "Moreirense FC vs AVS Futebol SAD",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "14:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Data insuffisante (milieu de tableau, pas d'enrichissement)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Match milieu/bas de tableau Liga Portugal MD34. Aucune donnée détaillée. p_estimee non fiable."
    },
    {
      "match": "Nacional da Madeira vs Vitoria SC Guimaraes",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Data insuffisante — Vitoria vise Europa Conf mais p_finale non fiable",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Milieu de tableau, Vitoria motivé pour C2 mais cotes équilibrées (2.06/3.50/3.50). Pas de stats détaillées."
    },
    {
      "match": "Casa Pia Lisbon vs Rio Ave FC",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Data insuffisante — milieu/bas de tableau sans enrichissement",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cote home 1.66 mais aucune statistique. NO BET prudent."
    },
    {
      "match": "FC Arouca vs CD Tondela",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Tondela motivation barrage mais p_finale 0.45 < 0.55",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Tondela favori (motivation barrage), Arouca milieu de tableau. Cotes 3.10/3.50/2.22. P_estimee Tondela 45% — sous seuil."
    },
    {
      "match": "FC Famalicao vs FC Alverca SAD",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Data insuffisante — pas d'enrichissement WebSearch",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Famalicão milieu, Alverca relégation. Aucune stat détaillée fournie."
    },
    {
      "match": "Sporting CP vs Gil Vicente Barcelos",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "ML Sporting 1.22 hors range — pas d'alternative DC/OU disponible",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Sporting favori dominant (1.22). Gil Vicente méforme. Mais cote ML hors range et marchés alternatifs non listés dans data."
    },
    {
      "match": "Estoril Praia vs SL Benfica",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "DQ-C — cotes non publiées dans dataset",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Benfica MUST WIN pour titre (invaincu 22V 11N). Mais DQ-C = cotes absentes. Pas de pari possible."
    },
    {
      "match": "Haddad Maia, Beatriz vs Zhang, Shuai",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "08:30",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualifications — data WebSearch absente, match équilibré sans angle",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 1.79/1.95 — match très équilibré. Qualif WTA Strasbourg, main draw le 17 mai. Aucune donnée stats récente."
    },
    {
      "match": "Selekhmeteva, Oksana vs Kenin, Sofia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "08:30",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Statut joueuse incertain (note pipeline: Kenin pas en qualifs)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Source pipeline indique que Kenin ne joue normalement pas en qualifs — match suspect. Statut event normal mais incertitude joueuse."
    },
    {
      "match": "Gibson, Talia vs Lys, Eva",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif WTA — data insuffisante sur Gibson",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Lys (allemande top 100) favorite vs Gibson (australienne top 200). Sans data WS sur forme récente. NO BET prudent."
    },
    {
      "match": "Efremova, Ksenia vs Oliynykova, Oleksandra",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range [1.30,3.00] (4.50/1.18)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cote favori 1.18 < 1.30 — règle NO BET 1."
    },
    {
      "match": "Ruzic, Antonia vs Putintseva, Yulia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Statut Putintseva incertain (note pipeline: pas en qualifs) — home 3.25 hors range",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 3.25/1.31. Pipeline indique Putintseva ne joue pas qualifs habituellement. Home hors range."
    },
    {
      "match": "Steiner, Valentina vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "10:50",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (12.00/1.01) + statut Kasatkina incertain",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cote 1.01 < 1.30 — NO BET 1. + Kasatkina pas en qualifs normalement."
    },
    {
      "match": "Jacquemot, Elsa vs Zakharova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "12:00",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif WTA — data insuffisante, marché tendu",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 2.19/1.63. Jacquemot française, Zakharova favorite. Sans data précise."
    },
    {
      "match": "Squire, Henri vs Garin, Cristian",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Cote favori Garin 1.22 < 1.30 — hors range",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Garin ex-top 30 mais cote 1.22 < 1.30. NO BET 1."
    },
    {
      "match": "Schoenhaus, Max vs Van Assche, Luca",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data insuffisante sur Schoenhaus",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Van Assche (français top 150) favori 1.34. Schoenhaus joueur peu visible. Sans data fiable."
    },
    {
      "match": "Hijikata, Rinky vs Daniel, Taro",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data partielle, p_finale 0.61 borderline PROBABLE",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Hijikata top 70 vs Daniel top 150. P_estimee 58%, p_finale 0.61 — juste sous seuil CONFIANT 0.62. Qualif terre battue Hamburg = incertitude conditions."
    },
    {
      "match": "Buse, Ignacio vs McDonald, Niels",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (1.07/6.20)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Favori 1.07 < 1.30 — NO BET 1."
    },
    {
      "match": "Giron, Marcos vs Nagal, Sumit",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data partielle, DQ-B avec cote 1.37 marge mince",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Giron top 60 sur terre battue, Nagal top 100. P_estimee 60%, p_finale 0.64. DQ-B + qualif + cote courte = risque corrélé évité."
    },
    {
      "match": "Kovacevic, Aleksandar vs Zhang, Zhizhen",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data partielle, p_finale 0.58 PROBABLE limite",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Zhang Zhizhen top 50 (1.57) vs Kovacevic. P_estimee 55%, p_finale 0.58. DQ-B qualif — discipline prudente."
    },
    {
      "match": "ToPo, Marko vs Gaston, Hugo",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:20",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data limitée sur Topo, conditions incertaines",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Gaston joueur de terre battue (1.41). Topo wildcard local moins connu. DQ-B."
    },
    {
      "match": "Petkovic, Mika vs Gea, Arthur",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:40",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — joueurs peu connus, data absente",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Petkovic et Gea joueurs peu visibles ATP. Aucune donnée fiable. NO BET."
    },
    {
      "match": "Ofner, Sebastian vs Feldbausch, Kilian",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — cote 1.32 marge ultra-mince, DQ-B",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Ofner ex-top 60 vs Feldbausch jeune Suisse wildcard. P_estimee 65%, p_finale 0.68. Cote 1.32 à la limite range, qualif = NO BET prudent."
    },
    {
      "match": "Butvilas, Edas vs Muller, Alexandre",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — data partielle",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Muller français top 60 (1.49). Butvilas top 150. P_estimee 60%, p_finale 0.62 — limite CONFIANT. NO BET prudent."
    },
    {
      "match": "Duckworth, James vs Damas, Miguel",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — Damas joueur peu visible, data absente",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Duckworth (1.53) vétéran australien. Damas non documenté. NO BET."
    },
    {
      "match": "Brancaccio, Raul vs Zink, Tyler",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — Zink américain peu documenté",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Brancaccio (1.54) italien. Zink peu visible. Data insuffisante."
    },
    {
      "match": "Bernet, Henry vs Comesana, Francisco",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — cote 1.32 marge mince + DQ-B",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Comesana argentin top 50-70 terre battue, Bernet Suisse local. P_estimee 65%, p_finale 0.68. Mais cote limite + qualif = NO BET prudent."
    },
    {
      "match": "Galan, Daniel Elahi vs Basavareddy, Nishesh",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "p_finale 0.53 < 0.55 — match équilibré sans angle",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 1.93/1.72. Match très équilibré. Galan top 80 terre. P_estimee 50%."
    },
    {
      "match": "Svajda, Zachary vs Rehberg, Max Hans",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "11:20",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif ATP — joueurs peu documentés",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 1.67/2.00. Sans data fiable sur les deux joueurs."
    },
    {
      "match": "Spiteri, Dalila vs Garcia Perez, Georgina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "10:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif WTA — joueuses peu documentées",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Spiteri italienne, Garcia Perez espagnole. Aucune data WS. NO BET."
    },
    {
      "match": "Cherubini, Diletta vs Zvonareva, Vera",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (3.30/1.29)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Zvonareva 1.29 < 1.30 — NO BET 1."
    },
    {
      "match": "Alves, Carolina vs Zaar, Lisa",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (3.30/1.28)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Zaar 1.28 < 1.30 — NO BET 1."
    },
    {
      "match": "Teixido Garcia, Aran vs Hennemann, Caijsa Wilda",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (3.45/1.27)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Hennemann 1.27 < 1.30 — NO BET 1."
    },
    {
      "match": "Ferro, Fiona vs Kazionova, Ekaterina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (1.08/6.60)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Ferro 1.08 < 1.30 — NO BET 1."
    },
    {
      "match": "Smith, Alana vs Bosio, Victoria",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif WTA — joueuses peu documentées",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Bosio (1.50) légère favorite. Aucune data WS sur Smith."
    },
    {
      "match": "Zolotareva, Anastasia vs Kulambayeva, Zhibek",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Qualif WTA — joueuses peu documentées",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Cotes 1.64/2.13. Pas de stats."
    },
    {
      "match": "Hesse, Amandine vs Avanesyan, Elina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cotes hors range (5.80/1.10)",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Avanesyan 1.10 < 1.30 — NO BET 1."
    },
    {
      "match": "Keys, Madison vs Starodubtseva, Yuliia",
      "sport": "tennis",
      "ligue": "WTA 125K Paris",
      "heure": "12:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "pari_retenu": false,
      "raison_no_bet": "Cote Keys 1.29 < 1.30 — NO BET 1",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "Keys wildcard, mais Starodubtseva l'a battue en SF Charleston il y a un mois (3.25 outsider trop élevée pour conviction). Cote favorite hors range."
    },
    {
      "match": "Gauff, Coco vs Svitolina, Elina",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "15:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "pari_retenu": false,
      "raison_no_bet": "Match trop équilibré — p_finale Gauff 0.53, Svitolina 0.48",
      "niveau_confiance_v4": null,
      "probabilites": {},
      "stats_comparatives": {},
      "raisonnement": "FINALE WTA 1000 Rome. Svitolina mène 3-2 H2H et a gagné les 2 confrontations 2026 (AO 6-1 6-2, Dubai 6-4 6-7 6-4) + vise triplé Rome. Gauff parcours dominant ce tournoi. Le marché favorise Gauff (1.63) mais le H2H favorise Svitolina. Pas de conviction claire."
    }
  ],
  "paris": [
    {
      "sport": "football",
      "ligue_canonique": "LP",
      "ligue": "Liga Portugal",
      "match": "FC Porto vs Santa Clara Azores",
      "heure": "14:30",
      "marche_canonique": "ML",
      "marche": "Match Winner",
      "selection": "FC Porto",
      "cote": 1.34,
      "cote_plancher": 1.399,
      "dq_flag": "DQ-A",
      "chaos": 1,
      "p_estimee": 0.73,
      "probabilite_marche": "74.6%",
      "p_marche_num": 0.7463,
      "p_finale_num": 0.7349,
      "edge_num": -0.0114,
      "niveau_confiance_v4": "CONFIANT",
      "mise_unites": "1u",
      "mise_euros": 10,
      "model_version": "4.0",
      "protocol_version": "4.0",
      "raisonnement": "FC Porto largement champion virtuel (85 pts, 1er) reçoit Santa Clara (12e, 1V sur 5 derniers) pour la dernière au Dragão. Quatre absents (Pérez, Luuk de Jong, Tomas Pérez, Sanusi) atténuent la marge mais la supériorité globale reste écrasante. Dernier match festif + écart de classement majeur."
    },
    {
      "sport": "football",
      "ligue_canonique": "LP",
      "ligue": "Liga Portugal",
      "match": "SC Braga vs Estrela Amadora",
      "heure": "17:00",
      "marche_canonique": "ML",
      "marche": "Match Winner",
      "selection": "SC Braga",
      "cote": 1.65,
      "cote_plancher": 1.761,
      "dq_flag": "DQ-A",
      "chaos": 2,
      "p_estimee": 0.58,
      "probabilite_marche": "60.6%",
      "p_marche_num": 0.6061,
      "p_finale_num": 0.5878,
      "edge_num": -0.0183,
      "niveau_confiance_v4": "PROBABLE",
      "mise_unites": "1u",
      "mise_euros": 10,
      "model_version": "4.0",
      "protocol_version": "4.0",
      "raisonnement": "Braga 4e (16V-10N-7D, top scorer Zalazar 16 buts) reçoit Estrela 15e (6V-11N-16D). H2H 3-0-2 favorable Braga. Six absents Braga (Barisic, Arrey-Mbi, Niakaté, D.Rodrigues, Grillitsch + Carvalho susp) pèsent — chaos 2. Mais l'écart de qualité top4 vs avant-dernier reste structurel."
    },
    {
      "sport": "tennis",
      "ligue_canonique": "WTA_125K",
      "ligue": "WTA 125K Paris",
      "match": "Parry, Diane vs Charaeva, Alina",
      "heure": "13:10",
      "marche_canonique": "ML",
      "marche": "Match Winner",
      "selection": "Charaeva, Alina",
      "cote": 1.59,
      "cote_plancher": 1.806,
      "dq_flag": "DQ-A",
      "chaos": 1,
      "p_estimee": 0.55,
      "probabilite_marche": "62.9%",
      "p_marche_num": 0.6289,
      "p_finale_num": 0.5737,
      "edge_num": -0.0552,
      "niveau_confiance_v4": "PROBABLE",
      "mise_unites": "1u",
      "mise_euros": 10,
      "model_version": "4.0",
      "protocol_version": "4.0",
      "raisonnement": "Charaeva sort d'un combat 7-5 au 3e set vs Korpatsch en R16 — rythme et forme acquis. Parry locale française mais bénéficie d'un walkover Putintseva en QF — pas de match dans les jambes, peut manquer de timing. Pas d'H2H notable. WTA 125K — chaos 1 (niveau imprévisible)."
    }
  ],
  "no_bet": [
    {
      "match": "Bayern Munich vs 1. FC Cologne",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "ML hors range [1.30,3.00] (1.15/14.00) — rotation possible avant finale DFB Pokal",
      "raisonnement": "Bayern champion (35e titre acquis), focus DFB Pokal à venir. Rotation 4-2-3-1 attendue. ML hors range absolus + DC 1X/12 < 1.30. Spread -1.75 @ 1.42 fragile car rotation."
    },
    {
      "match": "Bayer Leverkusen vs Hamburger SV",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "ML home 1.30 ultra-court — Leverkusen défaite récente 1-3 vs Stuttgart + 3 absents",
      "raisonnement": "Leverkusen DOIT gagner pour C1 (pression max). Terrier/Tella/Kofane out. HSV invaincu 2 matchs, fin de saison sereine. p_estimee 60% vs p_marche 76.9% — désaccord majeur, je passe."
    },
    {
      "match": "Eintracht Frankfurt vs VfB Stuttgart",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "p_finale_num 0.51 (Stuttgart ML) < 0.55 seuil PROBABLE",
      "raisonnement": "Stuttgart vise C1 directe, en forme (3V/5, 69 buts). Frankfurt 4 matchs sans victoire mais à domicile, enjeu UECL. Marché aligné (Stuttgart 1.94). Pas d'angle propre."
    },
    {
      "match": "SC Freiburg vs RB Leipzig",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Leipzig C1 acquise = rotation. Freiburg 3 absents défensifs",
      "raisonnement": "Leipzig détendu (3e sécurisé) → rotation 8-9 joueurs probable. Freiburg invaincu 4 à domicile mais Rosenfelder/Osterhage/Suzuki out. Spread +0.75 Freiburg @ 1.43 borderline mais incertain."
    },
    {
      "match": "Werder Bremen vs Borussia Dortmund",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Aucun enjeu Dortmund (2e sécurisé), rotation possible — p_finale Dortmund ML 0.53",
      "raisonnement": "Bremen 15e méforme (1V/6). Dortmund 2e sécurisé → rotation. Pas d'angle clair — p_finale ML 0.53, Over 3.75 0.52."
    },
    {
      "match": "Borussia Monchengladbach vs TSG Hoffenheim",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "p_finale Hoffenheim 0.53 < 0.55 — Gladbach invaincu 6 à domicile",
      "raisonnement": "Hoffenheim 5e en forme (invaincu 5) mais Gladbach invaincu 6 à domicile. Cote 1.66 reflète la motivation Hoffenheim. P_estimee 50%, p_finale 0.53 — sous seuil PROBABLE."
    },
    {
      "match": "Union Berlin vs FC Augsburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match d'égalité fin de saison sans enjeu — aucun angle propre",
      "raisonnement": "Cotes proches (2.65/3.95/2.44). Union 5 absents incluant suspension. Augsburg invaincu mars mais 3 absents. Aucun favori convaincant."
    },
    {
      "match": "FC St. Pauli vs VFL Wolfsburg",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 3,
      "raison": "CHAOS 3 — match pour la survie (3 équipes à 26 pts) + gros absents Wolfsburg",
      "raisonnement": "Survie directe — vainqueur sauvé. St Pauli 9 matchs sans victoire. Wolfsburg gros absents (Amoura/Arnold/Wimmer). Chaos 3 — règle v4.0 NO BET automatique."
    },
    {
      "match": "1. FC Heidenheim vs FSV Mainz",
      "sport": "football",
      "ligue": "Bundesliga",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "p_finale Heidenheim ML 0.54 < 0.55 — Mainz a battu Heid 2-1 à l'aller",
      "raisonnement": "Heidenheim doit gagner pour chance barrage. Invaincu 6/7. Mainz détendu mais a battu Heid en janvier. P_estimee 55%, p_finale 0.54 — sous seuil."
    },
    {
      "match": "Willem II Tilburg vs Almere City FC",
      "sport": "football",
      "ligue": "Eredivisie",
      "heure": "18:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Barrage promotion — Willem mène 1-0 aller, match piège, p_finale ML 0.49",
      "raisonnement": "Retour SF barrage Eredivisie. Willem II avantage minime 1-0 aller. Cotes équilibrées (2.21/3.70/2.95). Match ouvert sans angle solide."
    },
    {
      "match": "Moreirense FC vs AVS Futebol SAD",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "14:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Data insuffisante (milieu de tableau, pas d'enrichissement)",
      "raisonnement": "Match milieu/bas de tableau Liga Portugal MD34. Aucune donnée détaillée. p_estimee non fiable."
    },
    {
      "match": "Nacional da Madeira vs Vitoria SC Guimaraes",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Data insuffisante — Vitoria vise Europa Conf mais p_finale non fiable",
      "raisonnement": "Milieu de tableau, Vitoria motivé pour C2 mais cotes équilibrées (2.06/3.50/3.50). Pas de stats détaillées."
    },
    {
      "match": "Casa Pia Lisbon vs Rio Ave FC",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Data insuffisante — milieu/bas de tableau sans enrichissement",
      "raisonnement": "Cote home 1.66 mais aucune statistique. NO BET prudent."
    },
    {
      "match": "FC Arouca vs CD Tondela",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "17:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Tondela motivation barrage mais p_finale 0.45 < 0.55",
      "raisonnement": "Tondela favori (motivation barrage), Arouca milieu de tableau. Cotes 3.10/3.50/2.22. P_estimee Tondela 45% — sous seuil."
    },
    {
      "match": "FC Famalicao vs FC Alverca SAD",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Data insuffisante — pas d'enrichissement WebSearch",
      "raisonnement": "Famalicão milieu, Alverca relégation. Aucune stat détaillée fournie."
    },
    {
      "match": "Sporting CP vs Gil Vicente Barcelos",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "ML Sporting 1.22 hors range — pas d'alternative DC/OU disponible",
      "raisonnement": "Sporting favori dominant (1.22). Gil Vicente méforme. Mais cote ML hors range et marchés alternatifs non listés dans data."
    },
    {
      "match": "Estoril Praia vs SL Benfica",
      "sport": "football",
      "ligue": "Liga Portugal",
      "heure": "19:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "DQ-C — cotes non publiées dans dataset",
      "raisonnement": "Benfica MUST WIN pour titre (invaincu 22V 11N). Mais DQ-C = cotes absentes. Pas de pari possible."
    },
    {
      "match": "Haddad Maia, Beatriz vs Zhang, Shuai",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "08:30",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Qualifications — data WebSearch absente, match équilibré sans angle",
      "raisonnement": "Cotes 1.79/1.95 — match très équilibré. Qualif WTA Strasbourg, main draw le 17 mai. Aucune donnée stats récente."
    },
    {
      "match": "Selekhmeteva, Oksana vs Kenin, Sofia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "08:30",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Statut joueuse incertain (note pipeline: Kenin pas en qualifs)",
      "raisonnement": "Source pipeline indique que Kenin ne joue normalement pas en qualifs — match suspect. Statut event normal mais incertitude joueuse."
    },
    {
      "match": "Gibson, Talia vs Lys, Eva",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Qualif WTA — data insuffisante sur Gibson",
      "raisonnement": "Lys (allemande top 100) favorite vs Gibson (australienne top 200). Sans data WS sur forme récente. NO BET prudent."
    },
    {
      "match": "Efremova, Ksenia vs Oliynykova, Oleksandra",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range [1.30,3.00] (4.50/1.18)",
      "raisonnement": "Cote favori 1.18 < 1.30 — règle NO BET 1."
    },
    {
      "match": "Ruzic, Antonia vs Putintseva, Yulia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "09:40",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Statut Putintseva incertain (note pipeline: pas en qualifs) — home 3.25 hors range",
      "raisonnement": "Cotes 3.25/1.31. Pipeline indique Putintseva ne joue pas qualifs habituellement. Home hors range."
    },
    {
      "match": "Steiner, Valentina vs Kasatkina, Daria",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "10:50",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (12.00/1.01) + statut Kasatkina incertain",
      "raisonnement": "Cote 1.01 < 1.30 — NO BET 1. + Kasatkina pas en qualifs normalement."
    },
    {
      "match": "Jacquemot, Elsa vs Zakharova, Anastasia",
      "sport": "tennis",
      "ligue": "WTA Strasbourg Q",
      "heure": "12:00",
      "dq_flag": "DQ-B",
      "chaos": 2,
      "raison": "Qualif WTA — data insuffisante, marché tendu",
      "raisonnement": "Cotes 2.19/1.63. Jacquemot française, Zakharova favorite. Sans data précise."
    },
    {
      "match": "Squire, Henri vs Garin, Cristian",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "09:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Cote favori Garin 1.22 < 1.30 — hors range",
      "raisonnement": "Garin ex-top 30 mais cote 1.22 < 1.30. NO BET 1."
    },
    {
      "match": "Schoenhaus, Max vs Van Assche, Luca",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data insuffisante sur Schoenhaus",
      "raisonnement": "Van Assche (français top 150) favori 1.34. Schoenhaus joueur peu visible. Sans data fiable."
    },
    {
      "match": "Hijikata, Rinky vs Daniel, Taro",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data partielle, p_finale 0.61 borderline PROBABLE",
      "raisonnement": "Hijikata top 70 vs Daniel top 150. P_estimee 58%, p_finale 0.61 — juste sous seuil CONFIANT 0.62. Qualif terre battue Hamburg = incertitude conditions."
    },
    {
      "match": "Buse, Ignacio vs McDonald, Niels",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:10",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Cotes hors range (1.07/6.20)",
      "raisonnement": "Favori 1.07 < 1.30 — NO BET 1."
    },
    {
      "match": "Giron, Marcos vs Nagal, Sumit",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "10:30",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data partielle, DQ-B avec cote 1.37 marge mince",
      "raisonnement": "Giron top 60 sur terre battue, Nagal top 100. P_estimee 60%, p_finale 0.64. DQ-B + qualif + cote courte = risque corrélé évité."
    },
    {
      "match": "Kovacevic, Aleksandar vs Zhang, Zhizhen",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data partielle, p_finale 0.58 PROBABLE limite",
      "raisonnement": "Zhang Zhizhen top 50 (1.57) vs Kovacevic. P_estimee 55%, p_finale 0.58. DQ-B qualif — discipline prudente."
    },
    {
      "match": "ToPo, Marko vs Gaston, Hugo",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:20",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data limitée sur Topo, conditions incertaines",
      "raisonnement": "Gaston joueur de terre battue (1.41). Topo wildcard local moins connu. DQ-B."
    },
    {
      "match": "Petkovic, Mika vs Gea, Arthur",
      "sport": "tennis",
      "ligue": "ATP Hambourg Q",
      "heure": "11:40",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif ATP — joueurs peu connus, data absente",
      "raisonnement": "Petkovic et Gea joueurs peu visibles ATP. Aucune donnée fiable. NO BET."
    },
    {
      "match": "Ofner, Sebastian vs Feldbausch, Kilian",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — cote 1.32 marge ultra-mince, DQ-B",
      "raisonnement": "Ofner ex-top 60 vs Feldbausch jeune Suisse wildcard. P_estimee 65%, p_finale 0.68. Cote 1.32 à la limite range, qualif = NO BET prudent."
    },
    {
      "match": "Butvilas, Edas vs Muller, Alexandre",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — data partielle",
      "raisonnement": "Muller français top 60 (1.49). Butvilas top 150. P_estimee 60%, p_finale 0.62 — limite CONFIANT. NO BET prudent."
    },
    {
      "match": "Duckworth, James vs Damas, Miguel",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "09:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif ATP — Damas joueur peu visible, data absente",
      "raisonnement": "Duckworth (1.53) vétéran australien. Damas non documenté. NO BET."
    },
    {
      "match": "Brancaccio, Raul vs Zink, Tyler",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif ATP — Zink américain peu documenté",
      "raisonnement": "Brancaccio (1.54) italien. Zink peu visible. Data insuffisante."
    },
    {
      "match": "Bernet, Henry vs Comesana, Francisco",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "Qualif ATP — cote 1.32 marge mince + DQ-B",
      "raisonnement": "Comesana argentin top 50-70 terre battue, Bernet Suisse local. P_estimee 65%, p_finale 0.68. Mais cote limite + qualif = NO BET prudent."
    },
    {
      "match": "Galan, Daniel Elahi vs Basavareddy, Nishesh",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "10:10",
      "dq_flag": "DQ-B",
      "chaos": 1,
      "raison": "p_finale 0.53 < 0.55 — match équilibré sans angle",
      "raisonnement": "Cotes 1.93/1.72. Match très équilibré. Galan top 80 terre. P_estimee 50%."
    },
    {
      "match": "Svajda, Zachary vs Rehberg, Max Hans",
      "sport": "tennis",
      "ligue": "ATP Geneva Q",
      "heure": "11:20",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif ATP — joueurs peu documentés",
      "raisonnement": "Cotes 1.67/2.00. Sans data fiable sur les deux joueurs."
    },
    {
      "match": "Spiteri, Dalila vs Garcia Perez, Georgina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "10:00",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif WTA — joueuses peu documentées",
      "raisonnement": "Spiteri italienne, Garcia Perez espagnole. Aucune data WS. NO BET."
    },
    {
      "match": "Cherubini, Diletta vs Zvonareva, Vera",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "10:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (3.30/1.29)",
      "raisonnement": "Zvonareva 1.29 < 1.30 — NO BET 1."
    },
    {
      "match": "Alves, Carolina vs Zaar, Lisa",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (3.30/1.28)",
      "raisonnement": "Zaar 1.28 < 1.30 — NO BET 1."
    },
    {
      "match": "Teixido Garcia, Aran vs Hennemann, Caijsa Wilda",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (3.45/1.27)",
      "raisonnement": "Hennemann 1.27 < 1.30 — NO BET 1."
    },
    {
      "match": "Ferro, Fiona vs Kazionova, Ekaterina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "11:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (1.08/6.60)",
      "raisonnement": "Ferro 1.08 < 1.30 — NO BET 1."
    },
    {
      "match": "Smith, Alana vs Bosio, Victoria",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif WTA — joueuses peu documentées",
      "raisonnement": "Bosio (1.50) légère favorite. Aucune data WS sur Smith."
    },
    {
      "match": "Zolotareva, Anastasia vs Kulambayeva, Zhibek",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-C",
      "chaos": 2,
      "raison": "Qualif WTA — joueuses peu documentées",
      "raisonnement": "Cotes 1.64/2.13. Pas de stats."
    },
    {
      "match": "Hesse, Amandine vs Avanesyan, Elina",
      "sport": "tennis",
      "ligue": "WTA Rabat Q",
      "heure": "13:30",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cotes hors range (5.80/1.10)",
      "raisonnement": "Avanesyan 1.10 < 1.30 — NO BET 1."
    },
    {
      "match": "Keys, Madison vs Starodubtseva, Yuliia",
      "sport": "tennis",
      "ligue": "WTA 125K Paris",
      "heure": "12:00",
      "dq_flag": "DQ-A",
      "chaos": 2,
      "raison": "Cote Keys 1.29 < 1.30 — NO BET 1",
      "raisonnement": "Keys wildcard, mais Starodubtseva l'a battue en SF Charleston il y a un mois (3.25 outsider trop élevée pour conviction). Cote favorite hors range."
    },
    {
      "match": "Gauff, Coco vs Svitolina, Elina",
      "sport": "tennis",
      "ligue": "WTA Rome",
      "heure": "15:00",
      "dq_flag": "DQ-A",
      "chaos": 1,
      "raison": "Match trop équilibré — p_finale Gauff 0.53, Svitolina 0.48",
      "raisonnement": "FINALE WTA 1000 Rome. Svitolina mène 3-2 H2H et a gagné les 2 confrontations 2026 (AO 6-1 6-2, Dubai 6-4 6-7 6-4) + vise triplé Rome. Gauff parcours dominant ce tournoi. Le marché favorise Gauff (1.63) mais le H2H favorise Svitolina. Pas de conviction claire."
    }
  ],
  "resume": {
    "total_paris": 3,
    "repartition_niveaux": {
      "CERTAIN": 0,
      "CONFIANT": 1,
      "PROBABLE": 2
    },
    "exposition_totale_euros": 30,
    "exposition_totale_unites": "3u",
    "gain_potentiel_si_tous_gagnants": {
      "profit_net_euros": 15.8,
      "ROI_potentiel": "+52.7%"
    },
    "calibration_attendue": {
      "win_rate_attendu_si_calibration_parfaite": "63.2%",
      "details": "1 CONFIANT (Porto 0.71) + 2 PROBABLE (Braga 0.57, Charaeva 0.57) → moyenne 0.63"
    }
  }
}