New at Tennis Abstract: Point-by-Point Stats

Yesterday, I announced the new ATP doubles results on Tennis Abstract. Today, I want to show you something else I rolled out over the offseason: sequential point-by-point stats for more than 100,000 matches.

Traditional match stats can do no more than summarize the action. Point-by-point stats are so much more revealing: They show us how matches unfold and allow us to look much deeper into topics such as momentum and situational skill. These are subjects that remain mysteries–or, at the very least, poorly quantified–in tennis.

As an example, let’s take a look at the new data available for one memorable contest, the World Tour Finals semifinal between Andy Murray and Milos Raonic:

The centerpiece of each page is a win probability graph, which shows the odds that one player would win the match after each point. These graphs do not take player skill into account, though they are adjusted for gender and surface. The red line shows one player’s win probability, while the grey line indicates “volatility”–a measure of how much each point matters. You can see exact win probability and volatility numbers by moving your cursor over the graph. Most match graphs aren’t nearly as dramatic as this one; of course, most matches aren’t nearly as dramatic as this one was.

(I’ve written a lot about win probability in the past, and I’ve also published the code I use to calculate in-match win probability.)

Next comes a table with situational serving stats for both players. In the screenshot above, you can see deuce/ad splits; the page continues, with tiebreak-specific totals and tallies for break points, set points, and match points. After that is an exhaustive, point-by-point text recap of the match, which displays the sequence of every point played.

I’ve tried to make these point-by-point match pages as easy to find as possible. Whenever you see a link on a match score, just click that link for the point-by-point page. For instance, here is part of Andy Murray’s page, showing where to click to find the Murray-Raonic example shown above:

As you can see from all the blue scores in this screenshot, most 2016 ATP tour-level matches have point-by-point data available. The same is true for the last few seasons, as well as top-level WTA matches. The lower the level, the fewer matches are available, but you might be surprised by the breadth and depth of the coverage. The site now contains point-by-point data for almost half of 2016 main-draw men’s Futures matches. For instance, here’s the graph for a Futures final last May between Stefanos Tsitsipas and Casper Ruud.

I’ll keep these as up-to-date as I can, but with my current setup, you can expect to wait 1-4 weeks after a match before the point-by-point page becomes available. I’m hoping to further automate the process and shorten the wait over the course of this season.

Enjoy!

New at Tennis Abstract: ATP Doubles!

At last, I’ve added ATP doubles results to player pages at Tennis Abstract. Doubles has long been relegated to second-class status by tennis analytics, largely because the data just isn’t there. Now, much more is readily available.

Tennis Abstract now has career doubles results (including Challengers, Futures, and Satellites) for thousands of ATP players, and they’ll be updated throughout each day’s play, just like singles results. Match times and traditional match stats are included for most 2016 ATP and Challenger tournaments, and I hope that will continue to be the case in 2017 and beyond.

Let me give you a brief tour of what you’ll find, using doubles legend Jack Sock as a starting point:

The big red “1” shows where to click to switch over to doubles results. For full-time doubles specialists, you won’t have to click–the site will automatically show you doubles results.

The “2” indicates three new doubles-specific filters: by partner, by opponent, and by opposing team. For instance, you can see Sock’s results with Vasek Pospisil, his eight matches against Daniel Nestor, or his twelve meetings with the Bryan Brothers. You may always combine multiple filters, so for example, you can look at Sock’s record against the Bryans only when partnering Pospisil.

There are three more new filters, marked by the big “3” toward the bottom. The “vs Hands” filter allows you to select matches against righty-righty, righty-lefty, or lefty-lefty teams. “Partner Hand” and “Partner Rank” make it possible to limit matches to those in which the partner had certain characteristics.

Finally, the “4” shows you where to access more detailed stats. Doubles results take a lot more room to display than singles results, so on the default view, the only “stats” on offer are match time and Dominance Ratio. Click on “Serve,” “Return,” or “Raw” to get the other traditional numbers, such as ace rate, first-serve points won, or break points converted. All of these numbers are totals for each team; individual player stats are almost never available for doubles matches.

I hope you enjoy this new resource. It’s something I’ve wanted for a long time, so I’m excited to be able to use it myself. There are still some minor gaps in the record, as well as some kinks in the functionality, so please be patient as I try to work all of that out.

For those of you who’d like to see WTA doubles results, as well: Me too! I can’t promise any particular deadline, but I’ve already done much of the work to build the dataset, so I’m hoping to add them to women’s player pages early this year. Stay tuned!

New at TennisAbstract: Weekly Elo Reports

Starting today, you can find weekly Elo ranking reports on the home page of Tennis Abstract. Here are the men’s ratings, and here are the women’s ratings.

Elo is a rating system originally designed for chess, and now used across a wide range of sports. It awards points based on who you beat, not when you beat them. That’s in direct contrast to the official ATP and WTA ranking systems, which award points based on tournament and round, regardless of whether you play a qualifier or the number one player in the world.

As such, there are some notable differences between Elo-based rankings and the official lists. In addition to some rearrangement in the top ten, ATP Elo ratings place last week’s champion Roberto Bautista Agut up at #12 (compared to #17 in the official ranking) and Jack Sock at #13 (instead of #23).

The shuffling is even more dramatic on the women’s side. Belinda Bencic, still outside the top ten in the official WTA ranking, is up to #5 by Elo. After her Fed Cup heroics last weekend, Bencic is a single Elo point away from drawing equal with #4 Angelique Kerber.

These new Elo reports also show peaks for every player. That way, you can see how close each player is to his or her career best. You can also spot which players–like Bencic and Bautista Agut–are currently at their peak.

Like any rating system, Elo isn’t perfect. In this simple form, it doesn’t consider surface at all. I haven’t factored Challenger, ITF, or qualifying results into these calculations, either. Elo also doesn’t make any adjustments when a player misses considerable time to injury; a player just re-assumes his or her old rating when they return.

That said, Elo is a more reliable way of comparing players and predicting match outcomes than the official ranking system. And now, you can check in on each player’s rating every week.

New “Event Records” View at TennisAbstract.com

TennisAbstract.com now offers another way to look at stats for every player on the ATP tour.

The new “Event Records” view shows–you guessed it–records by event, summarizing a player’s performance at a given tournament, including his career record, career tiebreak record, years played, best result, and the usual complement of aggregate statistics such as return points won and break points saved.

To access a player’s event records, click here, in the upper left corner, right next to the link to the head-to-head view I introduced recently:

er1

Then you’ll see something like this:

er2

 

The events names are links, so you can click on any of those to see the full list of matches the player contested at that tournament.

Three columns in the middle of the table–“First” (the player’s first year at the event), “Last,” and “Best” (his best result at the tournament)–are loaded with additional information. Mouseover the data in those columns to see a description of the player’s last match (for “First” and “Last”) and the years in which he achieved his best result:

er3

 

er4

 

If you’re interested in particular subsets of matches, most of the filters in the left-hand column function as they normally do. For instance, let’s say you’re interested in Stan Wawrinka’s performance at various events as a top-ten player:

er5

 

You can also use the filters to reduce the number of tournaments on view. Use the “Level” filter to show only Grand Slams or Masters. Use the “Surface” filter to show only events on a particular surface. I also added a “Minimum Years” filter so that you could limit the list to tournaments that the player entered a certain number of times.

In the context of event records, some of the filters are more useful than others (would anyone ever have a use for tournament-by-tournament records in matches with bagel sets?), but at the very least, there are a ton of tools here to play around with.

Enjoy!

New “Head-to-Head View” at TennisAbstract.com

I’m really excited to announce some new features on Tennis Abstract — I hope you like them as much as I do.

Let’s start with the Head-to-Head view, which you can access by clicking near the upper left corner of any ATP player’s page. Marin Cilic, for example:

h2h1

Click on the “Head-to-Head beta” link, and you get this:

h2h2

 

As you can tell, there is a huge amount of data available here. What you’re looking at is a statistical summary of every single one of this player’s H2H records at the professional level. (As you’ll see on the page itself, the screenshot doesn’t show it all–there are ten more statistical categories for each H2H, including things like service points won and break point conversion rate.)

By default, the H2H table is sorted by number of matches. But like the standard “Match Results” table on Tennis Abstract, you can sort by most other columns simply by clicking on the column header, like TB (“tiebreaks”) here:

h2h3

 

Thanks to the power of Tennis Abstract’s filters, there’s a lot more you can do with this view. As you’ve seen, the H2H view defaults to a player’s career results. Let’s say, though, that you want to see Cilic’s H2H records only on clay. Use the filters in the left-hand column as you normally would, and select clay courts:

h2h4

 

As usual, you can apply as many filters as you want, so you could look at a player’s head-to-heads in a single seasonat the Challenger level, in deciding sets, or even show a summary of a player’s head-to-heads against all opponents from a single country.

Specifically for head-to-head purposes, I added a new filter: “Minimum matches.” This way, if you’re comparing a player’s H2H stats against several opponents, you can filter out matchups that haven’t occurred very much. Here’s an example, which shows Cilic’s highest H2H winning percentages, minimum five matches:

h2h5

 

I also added another new filter that will come in handy on the standard results tab as well: “Vs Current Rank.” (The separate “Vs Rank” filter, which has always been on the page, filters by opponent rank at the time of the match; the new filter uses the most current rankings.) For instance, here are Cilic’s H2Hs against the current top 10:

h2h6

 

Another neat aspect of the “Vs Curr Rank” filter is the ability to select “Active” or “Inactive” players. (These are determined solely by whether a player is in this week’s ATP rankings.) You could display all H2Hs against active players, or in the traditional Match Results view, quickly identify matches against retired/inactive players.

All of this is available for every ATP player, past and present.

In the process of working on the new features, I made a few other improvements that I hope powerusers will recognize and enjoy. For many statistical columns in both the match results and head-to-head views, I customized the sorting behavior, so matches without stats would automatically go to the bottom. I also made a bit of progress toward making the browser back button work as expected. There’s still some work to do there, but it’s much better than it was a few days ago.

Enjoy!

Event History Pages at Tennis Abstract

If you like tennis records and trivia, you’d better clear your calendar. I knew I was on to something when I kept getting distracted from my own project by all the cool stats it was spitting out.

The project: Event history pages at TennisAbstract.com. Think of them as almanacs for every stop on the ATP tour. For each tournament, you’ll find a chronological list of winners, finalists, and final scores. Then come the leaderboards–132 of them per tournament, at last count. That’s where the fun really begins.

In addition to the basics, like most matches won, most quarterfinal appearances, and the like, you’ll find tiebreak records, bagel records, the youngest titlists (and finalists, and more), the oldest titlists (and finalists, and more), and the lowest ranked titlists, finalists, and semifinalists.

Then come the match-level stats records (all links head to the Washington event’s page as an example). These are broken down into four categories:

  • Single-match records (combined): Longest and shortest matches, most aces, most breaks of serve, longest tiebreaks, and much more.
  • Single-match player records: Most aces by a single player, highest and lowest first-serve percentage, highest and lowest first-serve winning percentage, most break points earned and saved, and lots more.
  • Single-tournament player records: Marks set by players at a single year’s event, including most time spent on court, most points won, highest rate of points won, aces, double faults … you get the idea.
  • Event player records: Best all-time performances at the tournament over multiple years, including most of the same stat categories from the other sections.

Player names are linked to each guy’s own page, and years are linked to a page with each individual tournament’s results.

The links above all go to the Washington tournament’s page. Here are links to this week’s ATP events:

(I’d love to have equivalent WTA pages, and I hope to add them soon. It’ll take quite a bit more work, however, and without the 24-year history of matchstats that is available for ATP events, the resulting pages will be much less thorough.)

While I’ve put a ton of work into these this week, you’ll still probably some bugs. That’s one of the downsides of leaderboards–they have a knack for uncovering mistakes in the database. I’ve been able to add several checks to the process to avoid matches with obviously incorrect stats (e.g. impossibly short match durations), but I’m sure we’ll keep discovering more.

Enjoy!

Custom Filters and Head-to-Heads on TennisAbstract.com

There are a couple of cool new features on TennisAbstract.com that I’d like to share with you. I’ve added another way to search for player head-to-head records, and I’ve also added even more filtering functionality to WTA pages.

Let’s start with the H2H. There have always been a variety of ways to find head-to-head records on the site, and now I’ve made it easier than ever, right on the front page:

521-1

Start typing, and you’ll get a drop-down menu of possible players. Choose one, select another player in the field to the right, and you’ll go straight to a list of career matches between the pair.

For quite some time, there have been other ways of getting H2H results, and sometimes those methods are quicker still. First, for any upcoming match at a current tournament:

521-2

The record shown for each matchup is the career H2H record. Click on it for the list of matches.

Next, there’s a one-click route from player pages. For any listed match on a player page, the “d.” (for “defeated”) is a link. Click on that link and you get the career head-to-head record of the two players involved in that match:

521-3

Finally, you can use the “Head-to-Head” filter in the left-hand column.

521-4

It takes a few more keystrokes than the other methods outlined here, but it’s a quick way to get any H2H with a particular player. Also, for power users, you can use that filter to generate a list of matches with multiple opponents:

521-5

 

Custom filters

Also new today is the addition of custom date and rank filters for WTA pages. These custom filters have been available on ATP pages for several months, though I suspect many of you have yet to discover them. They work exactly the same way for men’s and women’s pages.

Let’s say, for instance, you wanted to look at Serena Williams‘s record and results since she returned to the #1 ranking last February. Click on “Time Span” in the left hand column. You’ll see a long list of years. At the bottom of the list, click on “Custom” and use the drop-down menus to select specific start and end dates:

521-6

As an added bonus, the URL changes every time you use one of these custom filters, so once you’ve generated your list showing Serena’s 89-6 record since her return to the #1 spot, you can easily share it.

You can also get custom results for opponent ranking (the “vs Rank” filter). Let’s say you wanted to know Tomas Berdych’s record in the last year against players ranked inside the top 50, but outside the top 10:

521-7

Enjoy!