A replay and analytics engine for SwingVision tennis exports. Shot-by-shot match replay, a head-to-head stats dashboard built like broadcast/tournament analytics, and shot-placement court diagrams — all recomputed from raw shot data through a pipeline designed to stay honest about damaged or incomplete tracking rather than silently guessing.
SwingVision's own AI tracking is good but not perfect — serves get mislabeled, rallies get cut short, points lose their final shot. This app builds the replay and stats on top of a pipeline that catches and corrects those gaps, and clearly flags the cases it can't.
Full court visualization with shot trajectories, speed, spin, and stroke detail, synced to a scoreboard that only advances once each point's own shots have actually played out.
Head-to-head dashboards in the style of ATP/WTA and tournament broadcast graphics — serve performance, winners/errors, break points, rally-length win rates — computed fresh from the corrected shot data, not a stale summary sheet.
Court-graphic scatter charts for groundstroke placement, serve placement (wide/body/T), and contact-point position, normalized so both players plot on a consistent orientation.
Which shot sequences precede the points you actually win or lose, ranked against ground-truth point outcomes — plain counting against real data, not a black-box model.
Filter the match library by player, score, date, or duration, and filter replay navigation by rally length — jump straight to the points that matter.
When a file is too damaged for automatic detection to be trustworthy, override the match format or a specific point's winner directly — with every override clearly marked in the UI.
Every correction below is conservative by design: it only fires when the raw, recorded data actually supports it. Where the data genuinely doesn't, the point is left as-is rather than filled in with a guess.
Drops feed/warm-up shots, relabels let-serves, and resolves illegal same-side repeats — distinguishing a genuinely missing shot (gap-insertion) from simple misattribution (skip).
Recovers a rally's real final shot when SwingVision's own point segmentation cuts the boundary in the wrong place and mislabels it as a pre-point "feed" — using only the shot that's actually there, never fabricated.
Trims phantom trailing shots recorded after a point had already conclusively ended — but only when the official Point Winner and Detail positively corroborate the call.
For exports with missing Points/Sets sheets, rebuilds a best-effort replay straight from raw shot data, with sides clearly marked as inferred placeholders pending video verification.
Upload an .xlsx match or rally export and get a corrected, shot-by-shot replay with full match stats in seconds.
Launch Tennis Match Analytics →