567 911 matchs de tennis, résultats et cotes.
Grands Chelems, Masters, tournois ATP/WTA, Challengers et ITF. Résultat, score, surface, tour de tableau, cotes avant match de deux bookmakers de référence, meilleure cote et probabilité consensus sans marge.
Choisissez votre formule
Un seul achat, un seul téléchargement : CSV + Parquet et un README qui décrit chaque colonne.
2021 → 2026
Les saisons récentes.
- 377 784 matchs, 01/01/2021 → 05/09/2026
Lien de téléchargement valable 72 h, 5 téléchargements
Acheter — 19 €Historique complet
01/01/2015 → 05/09/2026 (2026 figé).
- 567 911 matchs, un fichier par saison + un fichier combiné
- Se joint au dataset Line Movements 2026 par match_id
- CSV + Parquet
Lien de téléchargement valable 72 h, 5 téléchargements
Acheter — 29 €Les favoris gagnent-ils autant que les cotes le disent ?
Matchs de simple, regroupés selon la probabilité du favori (consensus sans marge), et le résultat réel.
Graphique descriptif, à titre d'illustration : il ne constitue pas une stratégie.
| PROBA FAVORI | MATCHS | Le favori gagne | Surprise | Implicite |
|---|---|---|---|---|
| 50-60 % | 151 750 | 55,5 % | 44,5 % | 55,0 % |
| 60-70 % | 138 202 | 66,4 % | 33,6 % | 64,8 % |
| 70-80 % | 116 939 | 77,4 % | 22,6 % | 74,8 % |
| 80-90 % | 87 573 | 89,0 % | 11,0 % | 85,0 % |
| ≥ 90 % | 19 741 | 96,5 % | 3,5 % | 91,6 % |
Pensé pour ceux qui modélisent
p1 est toujours le joueur à l'identifiant le plus petit, jamais le vainqueur : aucune fuite du résultat dans la structure du fichier.
Calibrer un modèle
Probabilité consensus sans marge contre résultat réel.
t = pd.read_parquet("tennis_results_odds_2015_2026.parquet")
s = t[t.is_doubles == 0]
s.groupby(pd.cut(s.consensus_prob_p1, 10)).result
.apply(lambda r: (r == "P1").mean())Par surface
Terre, dur, gazon : comparez la réussite des favoris.
s.groupby("surface").result.value_counts(normalize=True)Meilleure cote
Le meilleur des deux prix, choisi après coup : il surestime ce qu'un parieur aurait réellement obtenu.
s[["best_odds_p1", "a_odds_p1", "b_odds_p1"]].describe()Deux bookmakers, étiquetés a et b. Nous ne devinons pas.
La source ne documente pas l'identité des deux bookmakers : nous les appelons a et b plutôt que d'inventer un nom. b est celui dont la marge mesurée est la plus basse. Ce sont des cotes relevées avant le match, ni ouverture ni clôture, sans horodatage.
Totaux et handicaps : le bookmaker a cote en jeux ; le bookmaker b en jeux jusqu'à mi-septembre 2022, puis en sets (total de sets, handicap de sets) — les colonnes b_total_unit et b_handicap_unit le disent ligne par ligne. Ils ne sont présents que quand le bookmaker les cotait : le taux de remplissage de chaque colonne est affiché plus bas.
Corrigé le 22/10/2026 : dans l'édition précédente, les cotes over et under étaient inversées et les marchés en sets du bookmaker b décrits comme des jeux. Vérifié depuis contre les scores finaux, saison par saison ; le détail est dans le README.
Corrigé le 28/10/2026 : depuis mars 2022, sur les tournois ATP/WTA, la ligne de total du bookmaker a ne correspondait plus à ses cotes (défaut de la source) ; ces totaux sont vidés (22 982 matchs), le reste est vérifié contre les scores.
Ce qui est dans le fichier — et ce qui n'y est pas
Inclus
- Résultat, score, abandons et forfaits
- Tournoi, niveau, surface, tour, format
- Cotes avant match de deux bookmakers
- Meilleure cote et probabilité consensus (ProbWin)
Pas inclus
- Cote de clôture
- Horodatage des cotes (→ Line Movements 2026)
- Nom des deux bookmakers
Toutes les colonnes, avec leur taux de remplissage
Mesuré sur le fichier livré. 100 % = aucune valeur manquante.
Match
Identité, circuit, date, tournoi, niveau, surface, tour, format
Joueurs
Identifiants et noms (p1 = plus petit identifiant), double
Résultat
Vainqueur P1/P2, score, abandon, forfait
Cotes
Cotes des bookmakers a et b, meilleure cote, probabilité consensus
Totaux et handicaps
Total et handicap, quand cotés : a en jeux, b en jeux puis en sets depuis sept. 2022 (b_total_unit, b_handicap_unit)
Le fichier, tel que vous le recevrez
Six lignes réelles, colonnes principales. Téléchargez 50 lignes gratuites avec toutes les colonnes pour vérifier que tout colle à votre pipeline.
| match_date | tour | tournament_name | surface | round_name | p1_name | p2_name | result | score | a_odds_p1 | a_odds_p2 | best_odds_p1 | best_odds_p2 | consensus_prob_p1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2025-01-05 | atp | M15 Kingston | hard | q-First | Evan Sharygin | Elias Shokry | P1 | w/o | 2.09 | 1.66 | 2.09 | 1.66 | 0.4427 |
| 2025-03-09 | wta | W75 Targu Mures | indoor_hard | q-First | Oana Georgeta Simion | Patricia Georgiana Goina | P1 | 6-2 6-1 | 1.28 | 3.32 | 1.28 | 3.32 | 0.7217 |
| 2025-04-23 | wta | W15 Wuning | hard | First | Feier Hu | Zhirui Liu | P2 | 6-4 6-2 | 1.5 | 2.41 | 1.5 | 2.57 | 0.6286 |
| 2025-05-29 | atp | M25 Bol | clay | Second | Dan Added | Admir Kalender | P1 | 6-4 6-1 | 1.168 | 4.45 | 1.168 | 4.98 | 0.8032 |
| 2025-07-09 | atp | M15 Monastir | hard | First | Amr Elsayed | Oscar Lacides | P2 | 7-6(1) 6-4 | 2.17 | 1.61 | 2.17 | 2.04 | 0.4864 |
| 2025-10-31 | wta | Hong Kong Tennis Open - Hong Kong | hard | QF | Sorana Cirstea | Leylah Annie Fernandez | P2 | 6-4 6-4 | 2.375 | 1.58 | 2.48 | 1.588 | 0.3949 |
Avant d'acheter
Quelle différence entre les deux offres ?
Mêmes colonnes, un fichier par saison dans les deux cas : 2021 → 2026, ou tout l'historique depuis 2015. La saison 2026 est figée au 05/09/2026.
Dans quel sens est écrit le score ?
Toujours vainqueur en premier, pas du point de vue de p1. La colonne result (P1/P2) donne le vainqueur : pour lire le score côté p1, inversez chaque set quand result = P2.
Que signifie la colonne tournament_level ?
Un code de niveau : 0 = ITF d'entrée (Futures jusqu'en 2018, M15/W15 depuis 2019, et M25 masculins), 1 = Challengers, WTA 125 et ITF féminins W25 à W100, 2 = tournois ATP/WTA 250 et 500, 3 = Masters 1000 / WTA 1000, 4 = Grand Chelem (qualifications comprises), 5 = compétitions par équipes (Coupe Davis, Billie Jean King Cup), 6 = divers (juniors, exhibitions, matchs de wild-card).
Avez-vous les saisons avant 2015 ?
Oui, de 2004 à 2014 : à la saison, en lot ou dans l'intégrale 2004 → 2026, sur la page Résultats & Cotes 2004–2014 (/data-shop/tennis-results-odds-2004-2014/).
Y a-t-il plusieurs lignes de total ou de handicap par match ?
Non : une ligne de total et une ligne de handicap par bookmaker et par match, sans échelle de lignes alternatives.
Comment sont traités les forfaits et les abandons ?
Le fichier donne le vainqueur officiel, y compris sur forfait (colonne walkover) ou abandon (colonne retirement). Les bookmakers annulent en général les paris sur un forfait et leurs règles varient sur les abandons : filtrez ces deux colonnes avant de calculer un rendement.
Comment je reçois le fichier ?
Juste après le paiement, un lien de téléchargement s'affiche et vous est envoyé par email. L'archive contient les fichiers en CSV et en Parquet, plus un README qui décrit chaque colonne.
Puis-je l'utiliser dans un produit commercial ?
Oui pour vos modèles, analyses et outils, y compris commerciaux. La revente ou la redistribution des fichiers eux-mêmes n'est pas autorisée.
Une question avant d'acheter ?
Écrivez à [email protected] — c'est le fondateur qui répond, en général dans la journée.