Live Demo — runs in your browser
Tennis Match Predictor
Pick two players and a surface. The trained XGBoost model does the rest.
// 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.