Fan Participation Platform

Charles Allen
5 min readFeb 7, 2016


NOTE: This article pertains to Version 1 of CourtHive. Version 2 differs substantially. If you attempt to access CourtHive Desktop from a mobile device you will be redirected to the new CourtHive Mobile (supports Chrome on Android and Safari on iOS > 9).

CourtHive is a web application for charting tennis matches. It was inspired by the Match Charting Project and is intended to support the growth of an open-source repository of matches which will aid statisticians in advancing the state of the art with respect to tennis.

Anyone can use CourtHive. If you’re a beginner and have never charted a match before, there is a Point Progression Mode with a grand total of six buttons.

CourtHive keeps track of which player is serving and generates a visualization of the match and statistical charts in real time. The Ace and Dbl (Double Fault) buttons are only available for the current server, so you can’t make a mistake. Rally lengths are optional, but nice to have.*

Point Progression Mode

On the far left are icons for Settings, Undo and Save. In the settings view you can add other details about the match as well as decide which interactive visualization you’d like to see updating as you enter points:

More advanced users, or those who want to learn to code matches using shot sequence codes, can use MCP Mode. In MCP Mode Rally lengths are calculated automatically:

MCP Mode

Don’t worry, there’s a full cheatsheet (the ? icon) one click away! Shot codes are interpreted in real-time so you can ensure that what you entered is what you intended.

CourtHive also does real-time validation of shot sequences as they are entered and provides feedback to clarify what portion of the sequence is invalid:

Validation. Sequence can’t indicate both Netted (n) and Winner (*).
Validation. Sequences must end in Winner (*), Unforced Error (@), or Forced Error (#).

Just below the Help icon is a Reset icon. It will, as the name suggests, take you back to a clean slate. So be sure to save your work. This is a stand-alone client application and no data is saved on the server. I’ll be introducing some publishing options, including live broadcast, in the near future.

The visualization just below the point entry box is called a “Points-to-Set” chart. It both provides orientation (showing the current point in the match) and enables interactive review of the points which have been charted. You can edit a point by clicking on it:

Point Editing Mode

Once you press Return/Enter the change will take effect. If you want to delete a point somewhere in the middle of the match, just empty the entry field.

Several new features have been added to the “Points-to-Set” chart for the CourtHive application. Hovering the mouse over the first point in a set shows a “Rally” view. The yellow portion of each point bar represents the length of the rally for that point (relative to the longest rally in the set). Whether a point was finished by an error or a winner is indicated by the red/green portion of the point bar.

Rally View. Rally length (yellow), Winners (green), and Errors (red).

Hovering the mouse over the last point of the set shows a “Game” view where it’s possible to see the order in which games were won by each player. The dots on the “Points-to-Set” lines for each player indicate breakpoints. If the line continues upward after a breakpoint it indicates the breakpoint was converted.

Game View. Colors represent the winner of each game.

Some of the benefits of the web-based charting for the Match Charting Project are:

  • Validation of shot sequences
  • Real-time translation as shot sequences are entered
  • Real time statistics and data visualizations
  • Database lookup for player name validation (ATP/WTA)
  • Integrated help

CourtHive saves matches to your local device in a format that can be used to “auto-fill” the MCP spreadsheet, making it easy to submit files for inclusion in the growing public dataset. It also supports loading both existing MCP spreadsheets (.xlsm format) and CSV files from the MCP GitHub repository (just be sure to load a single match and not 1000…)

Here are some example files which you can download to experiment with. Save them to your computer then load them into CourtHive:


  1. Rally Lengths for PP Mode may be modified to properly reflect when a server or receiver would play a finishing shot. If the point is ended by the server then the rally length is always even; if ended by the receiver it is always odd. Don’t be confused if you enter a number and see it change in the Point History.



Charles Allen

Tennis Parent, Ecological History, #dataviz, #DataVisualization, #sportsanalytics, #d3js