The Match Charting Project: Quick Start Guide

Italian translation at

You’ve heard about the Match Charting Project, you’ve seen the amazingly detailed stats it generates, and you’ve decided it’s time to contribute. Here’s the simplest way to get started.

1. Choose a match. Check the list of charted matches (by date, or by player) and the Google doc of matches in progress. Once you’ve decided to chart a match, feel free to add yourself (along with the match) to the Google doc so that no one else will work on the same one.

Try to choose a relatively short match, and unless you really like Rafa, I’d suggest you avoid lefties for your first couple of attempts. It makes things a lot easier.

You can find full matches in many ways. There are plenty (though few very recent ones) on YouTube, many more on Asian video sites such as Soku and Mgoon, and lots more if you have access to something like ESPN 3, TennisTV, WTA TV, or Tennis Channel Plus. There are also hundreds of archived ATP Challenger matches. We also maintain a list of video sources in the aforementioned Google doc.

TennisTV and TC Plus are great because their players have buttons to skip forward or backward 10 seconds. Another alternative is to download videos to your local machine and then use a media player like SMPlayer or VLC, which allow you to move forward and backward through the match with quick keyboard shortcuts. Of course, DVRs work great for this, too.

2. Download the Match Charting Project spreadsheet and read through the “Instructions” tab. Charting a match involves a lot of details, but try not to get too bogged down. The most important things for beginners are:

  • serve direction (4 = wide, 5 = body, 6 = down the t)
  • the most common shot codes (f = forehand, b = backhand, s = backhand slice, r = forehand slice)
  • codes to indicate how the point ended (@ = unforced error, # = forced error, and * = winner)
  • codes to indicate the type of error (n = net, w = wide, d = deep, x = wide and deep).

The instructions cover several optional parts of the charting process, like shot direction and return depth. Including those makes things a lot more difficult, so for your first match, ignore them!

3. Start climbing the learning curve. I won’t deny it: It can be a bit frustrating to get started. The codes are a lot to remember, but trust me, it gets easier, especially if you stick to the basics. Many points look something like this:


That means: serve out wide, forehand return, forehand, backhand, backhand, forehand winner. That’s all!

It gets more complex when players approach the net or use less common tactics like dropshots. For your first match or two, you’ll probably consult the instructions frequently. Here’s another sample point:


Translated: Serve down the t (6), slice return (s), forehand volley (v), lob (l), overhead/smash (o) into the net (n) for an unforced error (@).

4. Be patient! After a few dozen points, you’ll start to get the hang of it. There will be plenty of rewinding, re-watching, and checking the instructions, but it will get considerably faster.

That’s it!

Once you’ve finished charting every point of the match, send me the spreadsheet and I’ll add it to the database.

After a match or two…

Of course, more data is more valuable, so once you’ve gotten the hang of the basics, it’s time to track more details of the match. But again–don’t rush into this! Adding these additional levels of complexity before you’re comfortable with the above will be very frustrating.

5. Shot direction. For every shot after the serve, use the number 1, 2, or 3 to indicate direction. 1 = to a right-hander’s forehand (or a lefty’s backhand), 2 = down the middle, or 3 = to a right-hander’s backhand. For example:


Translated: Serve to the body (5), forehand return down the middle (f2), forehand to (a righty’s) backhand side (f3), backhand crosscourt (b3), backhand down the line (b1) that missed wide (w) for a forced error (#).

When you’re comfortable with that:

6. Return depth. For service returns only, use an additional numeral for depth. 9 = very deep (the backmost quarter of the court), 8 = moderately deep (the next quarter, still behind the service line), and 7 = shallow (in the service boxes). For instance:


Meaning: Serve down the T (6), shallow slice return to (a righty’s) forehand side (s17), cross-court forehand winner (f1*).

Again, I have to ask you be patient with return depth: It’s the hardest step to add. In a very short period of time, you need to note the serve direction, return shot type, return direction, and return depth. It takes a bit of practice, but I’m convinced that recording return depth is worth it.

Finally, when you’re comfortable with all that, there’s one more thing to add:

7. Court position. A few symbols are used to record where players were when they hit certain shots. Most of the time they aren’t needed — a volley is almost always hit at net, while a backhand is almost always hit from the baseline. Use these codes for exceptions only:

  • The plus sign (+) is used for approach shots, including serves when a player serve-and-volleys.
  • The dash (-) indicates that a shot is hit at the net. Again, you don’t need to use it for “obvious” net shots like volleys, half-volleys, and smashes. It’s also unnecessary for the shot after a dropshot.
  • The (=) indicates that the shot was hit at the baseline. This is the least common, and usually is used for smashes hit from the baseline.

A couple more examples:


Translated: Server came in behind a serve out wide (4+), moderately deep slice return down the middle (s28), volley to (a righty’s) forehand side (v1), forehand winner hit from near the net (f-3*).

One more, which is just about as messy as it gets:


Meaning: Body serve (5), shallow forehand slice/chip return to (a righty’s) backhand side (r37), backhand crosscourt approach shot (b+3), backhand lob down the middle (m2), forehand lob to (a righty’s) forehand side (l1), crosscourt overhead/smash from the baseline (o=1), forehand slice/chip forced error (r#).

Happy charting! If you have any questions, please email me.