Momentum has been described as an "invisible" or "hidden force" in tennis. (See "The Hidden Force" and the NYT article "The Importance of Momentum in Tennis"). Whether momentum actually exists at all in Tennis or any other sport has long been debated, but it is a certainly that momentum is something that many players and even the crowd "feels" when watching a match.
In "Analyzing Wimbledon", Professors Klaassen and Magnus conclude via statistical analysis that some limited momentum exists for weaker players, but not for top players.
While it is impossible to fully capture the emotional and physical dynamics that contribute to changes in momentum, whether it exists or not, it is possible to create a representation of the progression of points throughout a match which includes details relevant to the outcome of each point.
The following graphic captures the outcome of first and second serves, the return of serve, the Key Shot which determines a point winner, as well as the length of the rally, if any, while a point is being played. The centerline which runs down the middle of the graphic represents an even point score and the line moves left or right depending on which player has won the most points; a standard score-matrix is overlaid to give an understanding of the outcome of each game.
For a full explanation of how to read this graphic, please see my post on the GameFish, which was derived from the Momentum Chart.
Winning the most points does not, however, insure that a player will win a match. Psychological factors aside, in certain cases when a point is won is more important than the fact that a point was won, at least with respect to the match outcome. I will discuss this in a future post and hopefully have some visuals which can facilitate better understanding this point. At the moment I'm working on a graphic that merges the basis of the Momentum Chart (difference in total points) with idea of the "Points-to-Set" graph (number of points required to win, at any given moment) and I'm hoping it will provide some insight.
The Momentum Chart in TAVA was inspired by the excellent Momentum Chart in the ProTracker Tennis App (for iPhones/iPads). ProTracker Tennis has a few features which I didn't incorporate in my Proof-of-Concept version. The score-matrix overlay is original to my implementation.
Version 2 of TAVA will increase the use of the Momentum Chart as a control structure and seek to overlay visualizations which provide additional analysis into factors which may be seen to have an influence on changes in momentum. At the moment the Momentum Chart drives the Court View (post forthcoming) which displays shots for matches captured with ProTracker Tennis.
There is an excellent discussion of Momentum for Players and Coaches on the Turbo Tennis blog at The Tennis Server. Please see the articles "Momentum... Swing it in your favor", "Momentum Revisited" and "The Big MO!".
Of course, Momentum can also be interpreted in the context of a series of matches. The cross-match visualizations I'm doing for the next version of TAVA will look at this aspect of Momentum in depth.
This blog exists to document the on-going development of Tennis AiP and Visualizations based on data captured by Tennis AiP.
Tennis AiP (Analytics integration Platform) is envisioned as both a repository for crowdsourced data capturing point-play during tennis matches as well as a platform for the integration of a diverse range of data sources which can be related to the game of tennis.
Thursday, August 6, 2015
Monday, August 3, 2015
Points-To-Set
The "Points-to-Set" graph was inspired by the work of Francis X. Diebold, Glenn Rudebusch and Professor Diebold's students at the University of Pennsylvania. In December, 2014, Professor Diebold published "A Tennis Match Graphic" on his blog No Hesitations, and in February when I was just discovering D3 I decided to attempt to recreate his work for the data I had just learned to parse from ProTracker Tennis. Here is the result of that effort, taken from the 2015 Wimbledon semifinal match between Roger Federer and Andy Murray, where you can view these charts "live":
And here is the latest version:
And here is the latest version:
We can think of the "Points-to-Set" number as the minimum distance from the current number of points won until the end of the Set; it always assumes your opponent wins no additional points. In TAVA this number is expressed graphically for each player to indicate at any given moment in a Set which player is closer to winning.
To win a standard Set in a tennis match a player must, at a minimum, win six games and be ahead by two games. Giving no more than two points away, there is a minimum of four points which must be won in each game. That means that at the beginning of a Set each player needs twenty-four points to win the Set. The Y-axis of the graph below ranges from 24 up to 0, which is where the Set concludes. The X-axis shows the total number of points within the Set. In the match depicted in these "Points-to-Set" visualizations you can see the varying number of points which had to be played for Roger Federer to close out each Set.
Every point won brings a player closer to the end of the Set, obviously. Some games, when they are lost, increase the "Points-to-Set" number. For instance, at the beginning of a Game when the score is 5-4 in the Set, the first player needs only four points to win, while the second requires twelve. If the first player loses the game and the score becomes tied at 5-5, each player is then eight points from winning the Set. In fact this scenario occurred twice in this match, in both the first and second Sets which were won by Federer 7-5. You may also notice that in the first game of both the second and third Sets there was a moment when Andy Murray needed 25 points to win the Set. This actually occurs quite frequently when the first few games are won by one player. When a player leads 5-0, the opponent actually needs 28 points to win the set.
In the second Set the game which Federer lost there were seven deuces; you can see this in the "Points-to-Set" graphic below where the lines for both players become jagged. You can also see that Federer failed to convert on six breakpoints before winning the set by finally converting a breakpoint.
As I work on the re-write of TAVA I'm developing a gallery of re-usable visualization components and adding configurable features. In addition to the "orientation highlighting" demonstrated above, I'm adding "game highlighting", which you can see in the chart for the third set below:
When using the "Points-to-Set" component in TAVA, the corresponding moments of the match are highlighted on the Sunburst and you can see the longest game of the match occurred in the second set and was won by Andy Murray (purple) when Federer failed to convert two breakpoints.
In the second Set the game which Federer lost there were seven deuces; you can see this in the "Points-to-Set" graphic below where the lines for both players become jagged. You can also see that Federer failed to convert on six breakpoints before winning the set by finally converting a breakpoint.
In a recent post, Professor Diebold has updated his Tennis Graphic to include elements which indicate where breakpoints occurred and highlight when tiebreaks take place. Here is the site where his team has collected the visualizations they've created. I've taken some of these ideas on board and in the re-write of TAVA I'm going to try to push the features and usefulness of the "Points-to-Set" graphic further. I am intrigued by the idea of producing some variation of a Points-to-Match graphic as a slider/filter for generating dynamic statistics for a range of points within a match...
Sunday, August 2, 2015
GameFish: Point Progression, Key Shots, Rallies
The GameFish visualization provides a single-glance overview of one game from a tennis match. It is an enhancement of the standard score-matrix for tennis matches.
The GameFish above is an example from the 2015 Finals at Roland Garros between Stan Wawrinka and Novak Djokovic (the preceding link takes you to the TAVA visualization of the match).
The boxes on the left of the graphic indicate that the server was Stan Wawrinka, as well as the outcomes for all first and second serves. Light Green dots represent Service Winners; Yellow dots represent Serves that were "In"; Red dots represent faults. In this game there were no Aces (darker Green dots). On the right of the graphic the dots represent Novak Djokovic's Return of Serve.
The Game Grid in the center of the graphic indicates the winner of the point by cell color (blue for Wawrinka; purple for Djokovic) as well as the final "Key Shot" which determined the point winner. In this game there were only three points won with Winners; the majority of points were won due to opponent error.
Rally lengths are depicted with bluish-grey bars which appear "behind" the GameFish. These rally-bars turn yellow when the mouse hovers over the point, and the number of shots and point-score appear at the top of the graphic.
The GameFish also triggers orientation highlighting in the Sunburst visualization which is the primary control structure for TAVA and which is used to "drive" the GameFish visualizations.
I have seen a fish-like view used in a number of tennis betting applications (example), and it bears some resemblance to the very cool "Game Tree" which appeared on GameSetMap.com in February of 2014. (An interactive version can be found here).
I also recently discovered the "The Tennis Notebook" blog on Medium.com. Nikita Taparia created an attractive score-matrix to visualize Point Outcomes for entire matches (point distributions) in Tennis Note # - Rafa in Paris: The Numbers.
The boxes on the left of the graphic indicate that the server was Stan Wawrinka, as well as the outcomes for all first and second serves. Light Green dots represent Service Winners; Yellow dots represent Serves that were "In"; Red dots represent faults. In this game there were no Aces (darker Green dots). On the right of the graphic the dots represent Novak Djokovic's Return of Serve.
The Game Grid in the center of the graphic indicates the winner of the point by cell color (blue for Wawrinka; purple for Djokovic) as well as the final "Key Shot" which determined the point winner. In this game there were only three points won with Winners; the majority of points were won due to opponent error.
Rally lengths are depicted with bluish-grey bars which appear "behind" the GameFish. These rally-bars turn yellow when the mouse hovers over the point, and the number of shots and point-score appear at the top of the graphic.
The GameFish also triggers orientation highlighting in the Sunburst visualization which is the primary control structure for TAVA and which is used to "drive" the GameFish visualizations.
I have seen a fish-like view used in a number of tennis betting applications (example), and it bears some resemblance to the very cool "Game Tree" which appeared on GameSetMap.com in February of 2014. (An interactive version can be found here).
I also recently discovered the "The Tennis Notebook" blog on Medium.com. Nikita Taparia created an attractive score-matrix to visualize Point Outcomes for entire matches (point distributions) in Tennis Note # - Rafa in Paris: The Numbers.
There is an IEEE research paper from 2014 which references a "TennisVis" application (apparently a research project) which uses a *very* similar "Fish Grid" to depict point progression.
[update 2015-08-08: found this link on the IEEE contest website to a graphic from "TennisVis"].
The GameFish was derived from and is the basis for the Momentum Chart which strings together all games from a match showing the relative point-score for each player; it is also a control structure within TAVA that provides additional drill-down capabilities for matches which include detailed information about points within games.
A future post will cover the Court view and the visualization of shots within points.
Thursday, July 30, 2015
Sunburst: Match at a Glance
The goal of the Sunburst Visualization is to provide an information-rich view of a match in a single graphic. The layout for the Sunburst is like a clock. The match begins at 12:00 and proceeds clockwise.
The Sunburst Visualization above depicts the Quarterfinals match between Novak Djokovic and Kei Nishikori at the 2015 Rome Masters.
The Sets, Games and Points won by each player are colored: Djokovic is blue, Nishikori is purple. The circle at the center of the visualization indicates the outcome of the match. In this case it is blue, indicating that Djokovic won the match.
The first ring around the center represents Sets. Djokovic won the first Set, Nishikori the second Set, and Djokovic the third Set. The length of each ring segment indicates the length of each Set relative to every other Set. The second ring from the center represents Games. The darker the color, the more intense the game (in terms of length of rallies). The third ring from the center represents Points. The darker the color, the longer the rally for the point.
The final and outermost ring represents significant Shots: First and Second Serves, Return of Serve, and the final, Key Shot. Shots colored Green are Winners. Light green represents a Shot which forced the opponent to make an error ("forcing shots"). Red represents Errors. Shots that are "In" are colored to indicate who made the Shot.
Comparing Sunburst visualizations of different matches you can quickly get a gut feel for whether one or both players achieved a significant Aggressive Margin (see also here).
At the moment I spend most of my time tracking U12 and U10 matches, so the outer ring is mostly Red and the Aggressive Margins are usually negative. Compare the Djokovic/Nishikori match on the left to the Semifinals match between Roger Federer and Andy Murray at Wimbledon (2015):
In the match between Djokovic and Nishikori the relative Aggressive Margins were 5% and -9% whereas in the Federer/Murray match the relative Aggressive Margins were 29% and 23%.
TAVA
[UPDATE: The role of the Sunburst Visualization has been diminished in the latest update to TAVA. It is still used for orientation highlighting and some navigation. Sunburst will make a more forceful return at a later date when new functionality is added.]
The Tennis AiP visualization application (TAVA) uses the Sunburst as a control structure to aid in the exploration of various aspects of a match. Clicking on a Set segment reveals a Points-to-Set visualization; clicking a Game segment reveals a GameFish visualization; clicking a Point reveals the GameFish where that point occurred.
The Sunburst Visualization is zoomable. Double clicking a Set segment transitions to a view of a single Set, while double clicking a Game segment transitions to a view of a single Game:
In TAVA, clicking the center of the Sunburst initiates a zoom transition to the enclosing Set or to the initial Match view. From the initial Match view, clicking the center of the Sunburst transitions the display to a Momentum Chart.
The Sunburst also provides "Orientation Highlighting" while using other components of TAVA to indicate where Shots and Points occurred:
The Sunburst also provides "Orientation Highlighting" while using other components of TAVA to indicate where Shots and Points occurred:
Finally, TAVA uses the Sunburst to indicate where Breakpoints occurred during a match:
In the visualization above Djokovic (Blue) had a breakpoint opportunity in the second game; he successfully converted (Green). In the sixth game Djokovic had three breakpoints, but Nishikori saved the breakpoints and Djokovic failed to convert (Red). In the final Game of the first Set, Nishikori (purple) had two breakpoints which he failed to convert (Red).
Wednesday, July 29, 2015
Origins and raison d'ĂȘtre
The Tennis Visuals blog exists to document the on-going development of Tennis AiP and the Tennis AiP visualization application (TAVA).
Tennis AiP (Analytics integration Platform) is envisioned as both a repository for crowdsourced data capturing point-play during tennis matches as well as a platform for the integration of a diverse range of data sources which can be related to the game of tennis.
As a parent of young players, I was inspired to begin this project as a way of better understanding the game. I have found that tracking matches is a great way to lessen the stress that many parents feel watching their children on the court.
I am also intrigued by the use of technology in Sport. Tennis is behind the curve relative to other sports, but it is clear that more technology is coming to the court and that there will be ever larger quantities of data available over time. I wanted to be "early in the game" to understand what benefits are to be derived from these technologies and how they might be applied to the coaching of younger players who don't have access to systems such as Hawkeye.
There are other, lower-cost systems emerging, such as PlaySight, but these systems have a large footprint, are not generally portable, and can't be used to regularly capture data from tournament play at the Junior or Youth level where players must travel to a different venue each week.
As a parent of young players, I was inspired to begin this project as a way of better understanding the game. I have found that tracking matches is a great way to lessen the stress that many parents feel watching their children on the court.
I am also intrigued by the use of technology in Sport. Tennis is behind the curve relative to other sports, but it is clear that more technology is coming to the court and that there will be ever larger quantities of data available over time. I wanted to be "early in the game" to understand what benefits are to be derived from these technologies and how they might be applied to the coaching of younger players who don't have access to systems such as Hawkeye.
There are other, lower-cost systems emerging, such as PlaySight, but these systems have a large footprint, are not generally portable, and can't be used to regularly capture data from tournament play at the Junior or Youth level where players must travel to a different venue each week.
At the time of this post TAVA is capable of presenting visualizations of match data which originates from ProTracker Tennis, an app for iPhones and iPads, as well as match data compiled by The Match Charting Project, which was created by Jeff Sackmann and which can be found at Tennis Abstract.
The TAVA interface is fairly crude at this point. When I began this project I had no experience with either Javascript or the D3 libraries which make the visualizations possible. Phase One is entirely a hack, assembled by deconstructing, rejigging and pasting together some of the great examples available from sites such as Christophe Viau's D3 Gallery and Mike Bostock's D3 Blocks.
In the development of Phase One I was primarily focused on making my first visualizations and spent very little time on documentation and usability. At present only Chrome and Safari browsers support all of the functionality. This will be remedied with Phase Two of the web interface design.
I am currently working on development of a Node.js server with a Mongo database to store match data (in JSON format). Once the server is completed I will completely re-write the TAVA interface (with proper Javascript closures), beginning with the visualization of cross-match statistics.
The next stage will explore the integration of data that is available from a number of sensors either worn by players, or attached to racquets. I already have a good dataset of matches tracked with ProTracker Tennis where sensor data was also captured.
One of the long term goals is to add tracking of player training sessions so that match outcomes can be correlated with training goals. I have not yet found an app suitable for capturing this data.
The next stage will explore the integration of data that is available from a number of sensors either worn by players, or attached to racquets. I already have a good dataset of matches tracked with ProTracker Tennis where sensor data was also captured.
One of the long term goals is to add tracking of player training sessions so that match outcomes can be correlated with training goals. I have not yet found an app suitable for capturing this data.
The list of future functionality is large and growing. I welcome conversations and collaboration.
Subscribe to:
Posts (Atom)


















