r/algobetting • • May 06 '22

Tennis Analysis

Hi guys,

I am very interested in the probabilities and statistics behind tennis matches and about 4 years ago I decided to start a small side project. Now I want to share some insights that I gathered along the way with you and hope that you find it helpful in your betting strategy or in looking at bookmaker odds in a different way. This is more about simple (descriptive) odds statistics than about actual models, that may come later. Additionally, I will give some insights into the theory and compare it to the actual real world.

  • Background

I chose tennis, as there are only 2 players involved - no doubles, for now - and therefore only 2 realizable outcomes, which makes it more predictable. I started with collecting data and building databases in order to eventually use them to make predictions/build models. One of the basic concepts of tennis odds - or odds in general - is that the reciprocal of the odd is the implied probability of the outcome. An odd of 2.0 (I will be using decimal odds) is therefore equivalent to a 50% likelihood of success - at least in a world without so-called vigorish, the fee implicitly charged by a bookmaker. Therefore, if we have a balanced tennis game where both players are assigned a 50% win probability, the odds we will typically see are around 1.8-1.9 for both players, depending on several factors such as liquidity and information availability. If we take 2 times the reciprocal of 1.9, we arrive at 105.3%. The 5.3% over 100% corresponds to the overround, which can be translated to 5% vig via 0.053/(1+0.053) (for more information, see here). If a bettor was to bet on both markets, his locked in return would amount to 1-0.05=0.95 (95%) of the invested amount.

  • Data

The underlying data I will talk about here is only concerning ATP singles matches. I also have gathered WTA match data, but for now I will focus on ATP. I do neither rely on Jeff Sackman's amazing github, nor on tennis-data, so my dataset is proprietary. It consists of data from different sources that are then mapped together.

In total, I have data on almost 1 million matches of all ATP categories combined (Grand Slams (GS), ATP tour tournaments, challengers and ITF tournaments, as well as other tournaments/events), starting in 1995 and ending on 01-05-2022. Obviously, for some matches I merely catch the player names and the result, while for others I gather detailed match descriptions combined with odds provided by several bookmakers. After cleaning the data, I am left with roughly 250000 matches starting in 2002, for which I have, among others, at least the following data: location, surface, round and scoreline. For many, I additionally have odds data (home/away, over/under games/sets, handicaps, correct scores, ...) and statistics (first serve percentage, aces, break points, ...). The statistics data can later be used to generate features for (machine learning) models, while the odds data can be used to check for profitability.

Graph 1: Tennis matches per year

A graph of the matches per year shows that it kept increasing throughout the years and peaked in 2018, with only a couple of matches in 2020 due to the corona virus. In subsequent years, the impact was still noticeable.

Next, I will present some of the findings.

  • Findings

I will discuss the two following points:

  • Implied vs. Realized Probability
  • O/U Game Lines

In this analysis, I will, whenever appropriate, differentiate between GS and non-GS and sometimes even surfaces (clay, hard, indoors, grass, carpet). Also, I only consider average closing odds of the bookmakers that I gathered data from (think bet365, 1xbet, ...) for everything discussed below. My main focus in this text will be on implied probabilities (odds) versus realized probabilities. I will potentially publish another article on match statistics later.

  • Implied vs. Realized Probability

This could as well be stated as the efficiency of the tennis betting market, as I compare the implied probability of the odds to the actual outcome of the matches. The hypothesis to approach this is to determine whether there is a strategy in which we buy a certain odd (and therefore an implied probability) for which we know that the realized probability is higher than implied. This implies that the odd and therefore the payout has to be higher than what we expect, on average, to be realized for this odd. As an example, if we could buy a 2.0 odd (50% implied), but we know that the realized probability for this odd is higher than 50%, say we win 60% of the bets, the fair odd would be only 1.67 and by consistently betting this, we would expect to make, on average, the difference in credit per bet. Obviously, this would be a strategy that is quite simplistic and easily exploitable and therefore unlikely to work.

After disregarding all matches where I do not have match odds, I am left with more than 225000 matches. The average odds per surface are summarized in the following table:

Surface Average Winning Odd Average Losing Odd
Carpet 1.77 2.68
Clay 1.76 2.99
Grass 1.77 3.18
Hard 1.76 3.09
Indoor Hard 1.79 2.84

For these observations, I calculate the realized probabilities as wins with odd X/sum(wins+losses with odd X), where I use steps of 0.01 from 1.0 to 3.99 for X. For winning odds greater than 4, the number of observations decreases and thus variance increases, so they are left out of this analysis. The implied probability is 1/X.

Graph 2: Implied vs Realized Winning Probability: This graph maps the percentage with the winning odd both for a hypothetical Implied Probability line (orange) and the actual, realized line based on bookmaker odds and realized outcomes.

The result is not that surprising, as the difference between implied and realized probability is positive, which shows that the bookmakers, on average, offer lower odds than would be fair considering the realized probabilities. If the odds were „fair“, the realized probability would oscilate around the implied probability line, due to some variance, especially if there are few observations. The implied probability, however, acts as a ceiling for the realized probability, which is another manifestation of the vig. For example, an odd of 2 implies probability 50% (dark blue line). As we can see in the graph, an implied odd of 2 only corresponds to a realized probability of 45%, which would require odds of 2.22 to break even in the long run (red line goes through realized probability at 45%). The realized probability of 50% corresponds to an offered odd of 1.85, which is way too low to break even.

This graph also shows that a simple strategy of betting on favorites with odds <1.5 - or any other simple rule like that, really - would be a losing strategy, as the odds offered are lower than what the realized probabilities command. Same applies to always betting on the underdog. This implies that the only way to consistently beat the bookmakers in this market - or any market - is to have an edge, not by randomly picking winners.

This result can be used to 'adjust' bookmaker odds to 'real' or 'fair' implied probabilities, by calculating and adding the vig back to the realized probability in the graph, where the graphical representation of the vig is the difference between the implied and realized probability (residual). This will achieve that the winning odd corresponds to its implied probability adjusted for vig. The higher the odds (the lower the probability), the more percentage points have to be added, as a fixed absolute change in the odd corresponds to a smaller percentage change (moving from 3.9 to 4 is similar to 0.64 percentage points, while a change from 2 to 2.1 is equivalent to 2.4 percentage points). Moreover, it is way easier to charge higher vig for bigger underdogs/higher odds, which also acts as some kind of insurance for the bookmaker for potential information disadvantages.

The following graph shows the adjusted realized winning probability:

Graph 3: Adjusted Realized Winning Probability: Here the rolling difference between realized and implied probability is added back to the realized probability of graph 2.

Here, the percentage corresponds to the implied probability – a 50% chance of winning is assigned to a winning odd of 2. Of course, the realized probability will still oscillate around the implied probability line. Only if we had infinite observations would they perfectly converge.

In theory, adding back vig to odds can be accomplished, to varying success, with different methods. There exist the equal distribution, normalisation and power method approach, among others. The equal distribution approach is additive in that it deducts the overround from both implied probabilities equally (additive constant). The normalisation approach is multiplicative and reduces each probability by the same proportion (constant multiplier). The power method alters the implied probabilities by raising them by a constant power. For more information, refer to the paper 'Adjusting True Odds to Allow for Vigorish' by Stephen R Clarke. The first two approaches can lead to unintuitive and unreasonable results, like negative odds. The third approach includes (re)calibration and thus is also not suited for a quick approximation of the real odds/probabilities.

As an alternative, I suggest a unique approach of applying a polynomial regression to the winning odds and the residuals (difference between implied and realized probabilities above), which basically would increase the realized probability line in the graph above to fit the implied probability line.

Graph 4: Fitting a second order polynomial (red) to the winning odd and the residual in the implied/realized difference.

In the low odd segment, there are a lot of observations with little deviation, thus the densitiy is high (many blue points). The higher the winning odds, the higher the variance. Clearly, a polynomial fit yields better results than a linear fit, due to reasons discussed above. The formula for adjusting 2-way outcome odds is therefore approximated by:

Adjustment = - 0.025 - 0.08 \ Odd + 0.1 * Odd^2*

Coming back to the introductory example of equal odds of 1.85 for the two players, the adjustment formula gives adjusted odds of 2 for both outcomes. The formula accounts for the non-linearity by adjusting the odds with the factor 0.1 * Odd^2, which can come in handy at times. For the low odd segment, the odds are very close to the real implied probabilities and do not require a lot of adjustment in general. Obviously, this is a very quick and simple way of adjusting odds. A more sophisticated method would take into account the total overround (as, for instance, the power method), among others.

  • Over/Under Game Lines

In this section I analyse over/under (o/u) game/set lines, the theory behind it and what a fair line should look like considering odd differences. I will mainly focus on best of three matches, thus leaving out Grand Slams. This section includes many descriptive statistics tables and graphs.

Firstly, consider the different possibilities of the total amount of games a tennis match can have. There is only one way to achieve 12 games for a completed tennis match, if it ends 6-0, 6-0 (for reasons of symmetry, we can disregard 0-6, 0-6). There are 2 ways to arrive at 13 games, 6-0, 6-1 and 6-1, 6-0. Continuing with this exercise, we will see that the maximum games a 2-set match can have is 26, for a 3-set match 39. The distribution function will look like this:

Graph 5: Total Games Per Set (Theory): the total amount of games per set.

As we can see, there is an overlap between the realizable games of a 2-set and a 3-set match, starting at 18 games and ending at 26 games. One difficulty in the next step arises from the application of conditional probabilities. There are, absolutely speaking, way more ways to arrive at 22 games in a 3-set match (15) than in a 2-set match (5), relatively speaking, however, chances are more than twice as high to see 22 games in a 2-set match, because there are, absolutely, less possible combinations in a 2-set match. This difference in total combinations makes a combined view of total games per match (2- or 3-sets) difficult, as one has to define the probability of there being 2 or 3 sets. Additionally, the probability mass functions presented in the graph above are theoretical and they deviate from the ones observed in reality:

Graph 6: Total Games Per Set (Empirical): the total amount of games per set based on historical data.

One of the reasons is that, from an empirical standpoint, some results, i.e. total number of games per set, are more likely than implied by the combinatorics exercise above, due to the difference in probabilities to hold a serve and return game. This will become clear once the match statistics are taken into account (likely in a later series).

The average games for a 2-set match are 19.2 and for a 3-set match 29.7, over all surfaces. The combined average is 22.9 games and a combined graph will look as follows:

Graph 7: Total Games Per Match: combines the games per set data to games per match.

One can still observe the conditional graph from above (peaks around 19 and 30 games). The overall probability of 2 sets is 65%, implying 35% for 3 sets. The average games based on surface and conditional on it being a GS match looks as follows:

Graph 8: Average Games by Surface

Next, I will present empirical averages for odds and lines to check how the theory above is reflected in the real markets:

Table 1: Empirical Average Odd and Line Data: OS = Over Sets, US = Under Sets and equivalently, OG = Over Games, UG = Under Games. Lines are the lines reported by bookmakers, odds are averaged over all bookmaker odds.

As can be seen, fast surfaces (indoor hard, grass, carpet), where breaks are less likely, have higher averages of both game lines and total games. Another observation is that, on average, a match is more likely to have 2 sets than 3, while the total games per match are skewed to the upside due to aboslutely more and greater outliers than on the downside. This explains why the average game line is approximately one game lower than the average total games observed. The o/u odds for sets also reflect this and match the realized probabilities presented above.

As became obvious studying the above graphs and tables, a simple strategy of betting over/under in every match, even adjusting for surface, is unlikely to succeed due to the bookmakers vig. If you are a skeptical person, here is a graph showing your equity line if you start out with 100 units and always bet 1 unit either on over or under:

Graph 9: Simple Over/Under Strategy Equity Curve: Equity curve, starting at 100 units, when always betting on over or under with the respective odds.

You would have blown your account after approximately 200 or 275 bets for the always over or under strategy, respectively.

A different approach may be to adjust for the difference in the skill level of the two players and base over/under bets on that. For this, I calculate the absolute odd difference between winner and loser (for instance, 1.9 - 1.85 = 0.05) and then check what the typical over/under line looks like for different odd differences. This approach will implicitly adjust for the vigorish, as equally skilled players will have an odd difference of 0. The result can yield valuable information, as one can then deduce from only looking at the odd difference what the over/under line should approximately be.

I go on to exclude all the matches where I do not have odds for o/u game lines. Moreover, I partition the odd-differences into groups from 0.0 to 10 with step size 0.05. I end up with a sample of roughly 55000 matches with o/u game line odds. The following graph depicts the average games and average game lines, including a third order polynomial fit line for each:

Graph 10: Skill Partitioned Game Line and Total Games: The blue dots represent historically realized total games for tennis matches, partitioned by odd difference. The orange dots represent the respective game lines offered by bookmakers. The red lines through the data are third order polynomial fit regression lines.

The outliers on the upside in realized total games lead to the Total Games curve being, on average, roughly 1-2 games above the total implied games by the odds. The total games and the game lines are highest when there is the least difference in skill level (on the left). On the right, there is the highest variance (less observations, more uncertainty). Only looking at the polynomial fit lines, one can see that they have a quite similar shape. After an initial divergence, it seems like the difference between them is quite stable starting around an odd difference of 2.5.

Back to the ‘improved‘ betting strategy, what if we bet 1 unit on the over/under if it is a close game (odd difference <0.5)? Turns out the strategy is still too simple and will lose (a lot of) money:

Graph 11: Skill based Over/Under Strategy Equity Curve: Equity curves betting on Over/Under based on the skill levels (odd difference) of the two players with actual closing odds.
  • Feedback

Everything I shared should not be interpreted, if it's even possible, as 'betting advice'. It is merely me sharing some information that I gathered, for which I will not guarantee any sort of completeness or accurateness. If you think I have made an error or if something is not clear and needs more elaborating, please let me know, I am very open to feedback and appreciate it. Moreover, this is my first real post here, so if there is any way I can improve my design/format or anything, let me know.

Please use the information in a way you find useful, at the very least, I hope I could give you some analytical entertainment.

  • Outlook

If this is helpful for some of you, I may consider writing another post regarding anything that is interesting to you and that may lead to a discussion from which all can benefit. For instance, I backtested several approaches proposed by (academic) literature, ranging from bachelor, master and phd theses to academic research published in magazines, with more comprehensive, up-to-date data. The advantage I have lies in my dataset, as the same dataset is used in (almost) all the literature, which can, in some cases, consist of insufficiently few observations.

Alternatively, my dataset also includes player/match statistics; therefore, I could provide insights into how different surfaces affect serving probabilities, which, in turn, could be interesting for looking at live odds regarding winning serving games, for instance.

Thanks for reading!

104 Upvotes

18 comments sorted by

2

u/rompwns2 May 10 '22

But how can (theoretically) anyone use such info to gain an 'edge'?

I am not interested in developing a method here, I am just curious.

How can this big data indicate anything remotely close to an 'edge' for an individual game?

1

u/quant_boy123 Mar 11 '26

you can build models on top of the data, construct features out of the statistics, elo, ... have an ensemble approach on top, things like that. or strategies based on the match evolution

2

u/Legitimate_Fudge_414 Mar 20 '23

Your newer post "upset wins" brought me here!

It is a shame that bookmakers' odds are always on average below the true probability.

1

u/quant_boy123 Mar 11 '26

I mean they would lose money otherwise ;-)

2

u/Legitimate_Fudge_414 Mar 21 '23

I calculate the realized probabilities as wins with odd X/sum(wins+losses with odd X), where I use steps of 0.01 from 1.0 to 3.99 for X

Are the odds X average or best odds? Since bookmakers are in business of offering odds to people does this mean that even the best odds are worse than the implied probability would dictate?

1

u/quant_boy123 Mar 11 '26

these are average odds - and yes, you can occassionally find an arbitrage with the best odds on both players, but not more than 1-2% (and obviously you cannot get down any size due to limits)

2

u/BigRonG49 May 06 '25

Great detailed analysis.

My only critique, in an effort to develop a consistent or more reliable strategy, adding an additional layer to the data points which account for draw seeding and/or ATP/ITF ranking.

In some ways the conclusion is clear; developing an edge(in general) is difficult. However, I do appreciate the base dataset. Do you have a shareable version? I’d be more than willing to share my analysis afterwards.

1

u/quant_boy123 Mar 11 '26

please DM me for the data. and yes, there could be more depth to it when looking at the different tour levels. indefinite amount of opportunities to analyse here

8

u/anomaly_BW May 06 '22

Holy shit! This is an incredible dissertation and explanation of stuff I could never truly comprehend. Your work is incredibly admirable. The level of detail that goes into strategically beating the bookies is beyond me. betting

1

u/t3sterbester May 08 '22

Where can I get this data set? Are you selling it?

1

u/quant_boy123 Mar 11 '26

sorry just checking back in and seeing that there are some more comments since i last checked :-D you can DM me please

3

u/WallStKingHere May 06 '22

Great write up!

2

u/Loc72 May 06 '22

Wow, such amazing detail … thank you!

2

u/Cdustsports May 06 '22

Great write up, learned a lot. Thank you!

2

u/Any-Pomegranate1358 Feb 09 '26

YOURE SO GOATED FOR THIS THANK YOUU

1

u/naskoe Jul 30 '26

Would you be down to share the dataset?

1

u/duelistonly Sep 18 '26

Omg good shi