Ratings
Every professional player carries an Elo rating, updated after each completed match.
Probabilities
The rating gap becomes a win probability through a logistic curve fitted on real results.
One endpoint
Any two players against any other two, live in a single request.
Try it
The model is exposed throughPOST /api/matches/simulate. You send four player IDs (or two, for a 1v1) and you get the matchup back with its probabilities.
How the model works
1. Every player has a rating
Each player carries a single number, their Elo rating. Beating a stronger opponent moves it up more than beating a weaker one, and every result is weighted by the margin of victory: a 6-0 6-1 win says more about the gap between two pairs than a 7-6 in the third. Ratings are updated after every completed match, in chronological order, and each change is stored in the player’s history. That detail matters for the validation below: the rating used to predict a match was built only from matches played before it.2. A pair is the average of its two players
Padel is a doubles sport, so the model rates players and averages the two ratings of each side. A pair that has never played a single match together still has a rating from day one, which is exactly the case the endpoint is built for. This is a deliberate simplification. It captures individual level, not chemistry (see what the model does not know).3. The rating gap becomes a probability
The gap between the two averages goes through a logistic curve:Why the divisor is 200 and not 400
Chess Elo uses 400. Padel does not behave like chess: averaging two players compresses the differences between sides, so the same 400 that works for individuals is far too flat here. And the original implementation was flatter still, splitting the ratings linearly (a / (a + b)), which mathematically could never move far from 50%.
We fitted the divisor by maximum likelihood over more than 7,500 completed professional matches using each player’s pre-match rating. The optimum came out at 198, rounded to 200 in production. Here is what each option predicts against what actually happened:
Read the third column against the last one. Where reality says the favourite wins 88.7% of the time, the linear method answered 53% and the chess divisor answered 72%. The calibrated curve answers 86.6%.
This is what “calibrated” means, and it is a stronger claim than “accurate”. A model can pick winners well and still be useless as a probability: saying 55% for every match it gets right tells you nothing about which matches are close.
How good is it
Over that same set of matches, with pre-match ratings only:
Two notes on how to read this.
Accuracy is the least interesting number. It only measures who ended up above 50%, and a padel favourite is a favourite under any monotonic transformation. Brier score and log loss are the ones that punish saying 60% when the true answer was 85%, and they are the ones the calibration work improved.
Elite matches are more predictable than the average. The 71.8% covers everything in the database, including qualifying rounds and first rounds where two unrated newcomers meet. Restricted to matches between top ranked players, the same model reaches 87.9% accuracy and a Brier score of 0.097. Upsets are rarer at the top than the overall figure suggests.
The band we could not fix
Every calibration curve has a weak point. Ours sits in the 55–60% band: across roughly 1,400 matches the model predicts 57.4% and observes 53.9%, a gap of about 3.5 points, while the neighbouring bands (50–55, 60–65) and the confident zone above 65% all sit within a point of the diagonal. The obvious move is to bend the curve there. We tried, three different ways, each validated with a 70/30 temporal split (fit on the older matches, evaluate on the newer ones):Refit the divisor
Refit the divisor
Maximum likelihood returns 197.5, essentially the 200 already in production. There is no slack in the parameter to spend on that band.
Use a more flexible curve
Use a more flexible curve
We fitted a family with an extra shape parameter,
P = 1 / (1 + 10^-(|d|/A)^γ). It converges to γ = 1.04 and A = 194, which is the current model again. The dip barely moves.Isotonic recalibration
Isotonic recalibration
The canonical tool for exactly this problem. Trained on the first 70% of the history, it makes the band worse on the final 30%, flipping it from −3.4 to +5.1. The correction does not transfer between periods, which is the classic signature of fitting noise.
Methodology. Ratings are strictly pre-match: each prediction uses only matches played before it. The divisor is a single global parameter fitted over the full history, so the headline calibration is an in-sample backtest of one degree of freedom. The band analysis above is the out-of-sample part, run on a temporal split.
What the model does not know
A rating gap is a strong prior, not a forecast of the specific evening. The model has no visibility into:- Injuries and physical condition. A player who retired mid-match last week carries the same rating into tomorrow.
- Pair chemistry. Ratings are individual and averaged. A pair playing its first tournament together gets the same treatment as one with two seasons of joint titles.
- Conditions. Altitude, indoor or outdoor, heat, ball speed, night sessions. All invisible to the model.
- Form and context. Motivation, schedule, a marathon quarter-final the night before, a home crowd.
- Newcomers. Players with few completed matches sit near the base rating, so their probabilities are the least informative in the database.
What people build with it
Draw projections
Simulate a bracket round by round to get each pair’s odds of reaching the final.
Match previews
A probability and a rating gap turn a fixture list into publishable content, automatically.
Fantasy and games
Price players, set line-up expectations, or score picks against a calibrated baseline.
Model benchmarking
Use it as the reference line your own model has to beat.
Frequently asked questions
Can padel matches actually be predicted?
Can padel matches actually be predicted?
Individual matches, no. Distributions of matches, yes. That is what a calibrated model gives you: over thousands of matches the stated percentages match observed frequencies, which is enough to price a bracket or benchmark a strategy, and never enough to be sure about one match.
What is an Elo rating in padel?
What is an Elo rating in padel?
A single number per player that moves up or down after every completed match, based on the opponent’s rating and the margin of victory. Unlike the official ranking, which is a rolling sum of tournament points, Elo measures strength relative to the field and updates immediately after each result. Both are available in the API:
ranking, points and elo. The Padel Elo Rating guide covers how to read the scale and how it compares to the ranking.Does it work for women's padel?
Does it work for women's padel?
Yes. Ratings are computed the same way for both categories, and the endpoint accepts any player IDs. The calibration above was fitted across the full match history.
Can I predict a match between players who never faced each other?
Can I predict a match between players who never faced each other?
Yes, and that is the point. The model only needs both sides to have ratings, so any of the possible pair combinations is a valid simulation.
How often do the ratings change?
How often do the ratings change?
After every completed match, as results are ingested. A simulation run before and after a tournament day will return different numbers.
Next steps
Simulate endpoint
Full reference: parameters, response schema and errors.
Your first API call
Get a token and make your first request in a couple of minutes.
Padel Elo rating
The rating system the model is built on: how to read it and where to get it.
Padel statistics
Match, player and pair statistics to build on top of the model.