Three open sources cover most needs: tennis-data.co.uk for results with odds from several bookmakers since 2000, Jeff Sackmann's repositories for the full history since 1968 with match statistics, and Valuebetennis for matches since 2021 imported live, with opening and closing odds, regenerated nightly. Guide published on 05/09/2026.
| tennis-data.co.uk | Jeff Sackmann (GitHub) | Valuebetennis | |
|---|---|---|---|
| Period | ATP since 2000, WTA since 2007 | ATP since 1968, WTA, Challengers, ITF, qualifying | ATP and WTA since 2021 |
| Format | One Excel or CSV file per season | One CSV per season and per tour, Git repositories | One CSV per season |
| Odds | Yes, several bookmakers, opening and sometimes closing | No | Yes, opening and last odds before the match (Pinnacle) |
| Match statistics | Score by set | Yes: aces, double faults, break points, duration | Final score, duration |
| Freshness | Updated regularly in season | Updated periodically, with a delay | Nightly, matches imported live |
| Licence | Site terms | CC BY-NC-SA 4.0 | CC BY 4.0 |
| Best suited to | Comparing bookmakers, backtests with odds since 2000 | Research, playing statistics, long history | Recent odds models, closing odds, commercial use |
The three complement rather than compete with each other: history and playing statistics from Sackmann, odds from several bookmakers from tennis-data, freshness and closing odds from us. A serious model often ends up combining two of them.
0 settled ATP and WTA singles matches since 1 January 2021, imported live as they are scheduled and then played: no doubles, no match before 2021, no unknown result. For each match: date and time, tournament and its category, surface, round, both players and their identifiers, the opening odds and the last odds recorded before the match for each, the winner, the score and the duration. Download the files and read the column descriptions.
Its limits, stated plainly: no playing statistics (aces, breaks), a single source of odds, and nothing before 2021. Earlier matches exist in our database but come from a retrospective import whose reliability is not guaranteed; they are not published.
Market favourite's win rate and average margin over a season, with pandas:
import pandas as pd
m = pd.read_csv("valuebetennis-matchs-2025.csv", sep=";")
m = m.dropna(subset=["cote1_ouverture", "cote2_ouverture"])
favori_gagne = ((m.cote1_ouverture < m.cote2_ouverture) == (m.vainqueur_id == m.joueur1_id)).mean()
marge = (1 / m.cote1_ouverture + 1 / m.cote2_ouverture - 1).mean()
print(f"favori : {favori_gagne:.1%}, marge : {marge:.2%}")
On the whole corpus since 2021, these two figures are 68.8% and 6.15%. If your model does no better than the first on the same matches, it is copying the market. How to measure the accuracy of a prediction.
Three open sources: tennis-data.co.uk (Excel per season, ATP since 2000, WTA since 2007, odds from several bookmakers), Jeff Sackmann's GitHub repositories (CSV since 1968, match statistics), and Valuebetennis (CSV per season since 2021, opening and closing odds, regenerated nightly).
Yes, all three. Licences differ: Creative Commons BY-NC-SA for Jeff Sackmann's data (no commercial use), CC BY 4.0 for Valuebetennis (commercial use allowed with attribution), site terms for tennis-data.co.uk.
tennis-data.co.uk and Valuebetennis do; Jeff Sackmann's data does not. Valuebetennis gives the opening odds and the last odds recorded before the match, for each player.
0 settled ATP and WTA singles matches since 1 January 2021, imported live. No doubles, no match before 2021, no unknown result.
See also: reading odds, the full methodology.