← Back to Case Study

Live Demo — runs in your browser

Tennis Match Predictor

Pick two players and a surface. The trained XGBoost model does the rest.

VS

// How This Works

This page runs the actual trained XGBoost model from the tennis-match-predictor repo — 400 gradient-boosted trees per tour, exported to JSON and scored in JavaScript, no server involved. Ratings come from replaying every tour-level match since 1991 (Jeff Sackmann's open data, through mid-2026) through the repo's chronological Elo engine, keeping separate ratings per surface.

Fine print: like the repo's own live predictor, hypothetical matchups are scored from the players' current overall and surface Elo (recent-form and head-to-head features apply only to historical matches). Players shown are those active since 2024 with 30+ tour-level matches. And tennis is genuinely hard to predict — the model's honest ceiling is about 65% accuracy, so treat a 55/45 call as the coin-flip it nearly is.