Skip to content

Shot dictionary ​

A taxonomy of terms in match.json and player_stats.

Shot types ​

TypeMeaningCounted in
serveThe shot that starts a rally.serve_shots
driveA groundstroke, hit after the ball bounces.drive_shots
volleyA ball hit before it bounces.volley_shots
lobA high ball played over the opponents.lob_shots
overheadA ball hit above the head. A drive, volley or lob hit with the arm raised also counts as an overhead.overhead_shots

Every shot is also a forehand or a backhand (fh_count, bh_count). dominant_hand is left or right, whichever hand played more of the player's shots.

Subtypes ​

An overhead gets its subtype from the ball, not from the stroke. The speed thresholds are percentiles of the same match's overhead speeds, leaving out bajadas, so they adapt to the level of play. With fewer than three measured overheads the thresholds are 55 and 80 km/h.

SubtypeOfRuleCounted in
bajadaoverheadThe ball came off the glass behind the hitter before the shot.bajada_shots
smashoverheadThe fastest possible overhead shot. At or above 80th percentile of the match's overhead speeds.smash_shots
viboraoverheadThe most common overhead shot. A fast shot but with some control, between the 60th and 80th percentiles.vibora_shots
bandejaoverheadA slower defensive overhead shot.bandeja_shots
(none)overheadCould not be categorized.overhead_shots only
chiquitadriveA tight drive landing within 3.5 m of the net.chiquita_shots

Subtype counts are part of their type's count: the four overhead subtypes are included in overhead_shots, and chiquita_shots is included in drive_shots.

Outcomes ​

At most one shot per rally carries the deciding label. An assist can sit on the shot before it.

LabelMeaningPoint goes toCounted in
winnerThe ball's first bounce landed in the opponents' court and they did not return it.The hitterwinner_shots
errorThe shot lost the point: into the net, out, onto the glass before bouncing on the other side, bouncing on the hitter's own side, or the hitter was close enough to make a return but did not.The opponentserror_shots
bad_serveA fault: the serve missed the diagonal service box, or hit the side fence after bouncing.The receiving pair if it’s the second serve. Re-serve otherwise.bad_serve_shots

A trained model picks each rally's deciding shot and labels it winner, error or bad_serve, using the ball's bounces, its wall and net contacts, and where the players stand.

match.json counters ​

Volume and outcomes ​

FieldCounts
n_shotsEvery detected stroke by the player.
winner_shots, error_shots, assist_shots, bad_serve_shotsShots with that outcome label.
short_rally_wonwinner or assist on shots 1 to 5 of a rally.
long_rally_wonwinner or assist on shot 10 or later.

Per shot type ​

FieldCounts
drive_shots, volley_shots, lob_shots, overhead_shotsShots of that type.
vibora_shots, bandeja_shots, smash_shots, bajada_shots, chiquita_shotsShots with that subtype.
drive_winner_shots, volley_winner_shots, overhead_winner_shots, vibora_winner_shots, bandeja_winner_shots, smash_winner_shots, bajada_winner_shotsShots of that kind labelled winner or ****assist. assist is an internal debugging label not meant to be used for statistics.
drive_error_shots, volley_error_shots, overhead_error_shots, vibora_error_shots, bandeja_error_shots, smash_error_shots, bajada_error_shotsShots of that kind labelled error.
lob_points_lost_afterLobs that were an error, or that the opponents won the point with on the next shot.

Serve and return ​

The serve is the first shot of a rally and the return is the second.

FieldCounts
serve_shotsRallies the player started.
serve_valid_first_serve_shotsFirst serves that were not a fault.
serve_double_faultsA fault on the serve right after a fault from the same side.
serve_winner_shotsRallies the server's pair won, credited to the server. This is points won on serve, not aces.
serve_error_shotsRallies the server's pair lost.
serve_second_serve_winner_shotsRallies won on a second serve.
return_shotsReturns played.
return_winner_shots, return_error_shotsRallies the returner's pair won or lost.
serve_first_in_percentageLegal first serves divided by first attempts, as a percentage.
serve_first_speed_avg_kmh, serve_second_speed_avg_kmhMean speed of first and second attempts.
serve_acesLegal serve winners with no return.

Attack and defence ​

A pair is attacking while the AI places it in the attacking zone near the net.

FieldCounts
attack_threat_success, attack_threat_failureVolleys and overheads followed, within the next two shots, by a winner or assist while the same pair still held the attacking position, or not.
volley_attack_retained, volley_attack_lost, and the same for vibora and bandejaShots of that kind hit while attacking, after which the pair kept, or lost, the attacking position over the next two shots.
lob_counter_attack_success, lob_counter_attack_failure, and the same for drive and chiquitaShots of that kind hit while defending, after which the pair took the attacking position within the next two shots, or did not.
attack_possession_pair_shots, defence_possession_pair_shotsShots hit while the player's pair was attacking or defending.
attack_possession_winners, attack_possession_errors, defence_possession_winners, defence_possession_errorsWinners (including assists) and errors hit while attacking or defending.
attack_possession_segmentsTimes the player's pair took the attacking position, credited to the player whose shot started it.
attack_possession_converted_segmentsOf those, the ones the pair turned into a won point within two shots.
counter_attack_opportunities, counter_attack_successCredited to a defending player when the opponents take the attacking position; a success when the player's pair takes it back within three shots.
net_points_wonPoints won when the player finished in the attacking zone. null when no point outcome was resolved.
net_approach_success_percentageApproaches to the attacking zone that won the point, as a percentage.

Speed, depth and movement ​

FieldMeaning
avg_speed_kmh, max_speed_kmh, p95_speed_kmhSpeed of the player's shots with a measured speed, in km/h.
overhead_speed_avg, overhead_speed_max, volley_speed_avg, drive_speed_avg, drive_speed_maxThe same for one shot type.
vibora_speed_avg, bandeja_speed_avg, smash_speed_avg, bajada_speed_avg, chiquita_speed_avg, smash_speed_maxThe same for one subtype.
lob_depthMean distance in metres from the net to where the player's lobs first bounced, leaving out lobs that lost the point.
lob_height_avg_mMean highest point of the player's lobs, in metres.
chiquita_depthMean distance in metres from the net to where the player's chiquitas first bounced.
shots_with_opponent_movement, shots_forcing_movementShots after which the opponents' movement was measured, and those after which an opponent moved 4 m or more.
offensive_seconds, defensive_seconds, neutral_secondsTime in rallies spent attacking, defending or in neither position.
left_seconds, right_seconds, total_secondsTime in rallies on the left and right side of the court, and in total.
distance_run_metersDistance covered during rallies, modelled from video rather than measured by a wearable.

Fields set to -1, such as consistency, shot_quality, attack, physicality, court_coverage and clutch_score, are placeholders; ignore them. Missing or null values are not zero, and older recordings may omit newer fields.

Clutch Partner API · v1