Inspiration

I used to skate as a kid, and I've watched figure skating at every Olympics since. Every four years, commentators and fans have this instant gut sense of who's going to medal but nobody puts a number on it. At the same time, I kept noticing that India has never sent a singles skater to the Winter Olympics, and I wanted to know what that gap actually looks like in hard numbers rather than as a vague feeling. Those two curiosities turned into one question: what does it actually, measurably take to win?

What it does:

Break the Ice is an interactive dashboard and predictive model built on 20 years of ISU figure skating data every Olympic singles skater since 2006, plus two decades of World Championship scores. It shows exactly what separates medalists from the rest (short program weight, technical score share, the post-2014 quad shift), lets you compare any two nations head to head, and includes a live medal predictor where you plug in a skater's scores and get a real-time medal probability. It also translates those findings into a four-tier development framework concrete score targets a federation would need to hit to go from zero Olympic history to medal contention applied to India as a worked example, alongside Kazakhstan's real 2026 gold as a proof point that it's achievable.

How I built it:

Three datasets from Kaggle (Olympic singles aggregate and long-format scores, 2006-2026; World Championship scores, 2005-2024) cleaned and merged with pandas standardizing schemas, dropping incomplete performances, engineering features like SP FS score momentum and a pre/post-2014 quad-era flag. I trained and compared a Random Forest and Logistic Regression on medal prediction using stratified cross-validation with balanced class weights to handle the heavy class imbalance (medals are rare). The whole thing is wrapped in a six-page Streamlit dashboard built with Plotly for interactivity, deployed on Streamlit Community Cloud.

Challenges faced:

The biggest one was data scarcity for the exact question I originally wanted to ask India has zero rows in international-level skating data, so I couldn't do a direct comparison and had to reframe the whole India piece as a benchmark model applied to a real case, not a head-to-head. Handling class imbalance for medal prediction (roughly 9:1 non-medal to medal) took some iteration to get right without the model just learning to always predict "no medal." And merging three differently structured datasets aggregate scores, segment-level long format, and element-level Worlds data meant a fair amount of schema wrangling before any real analysis could start.

Accomplishments:

Getting a 0.983 ROC-AUC medal predictor that's genuinely interpretable, not a black box the feature importances (SP rank at ~54%) actually tell a coach something useful. I'm also proud of the reframe on the India section: instead of overstating what a small, mostly-absent dataset could support, I built something honest and still actionable real score thresholds tied to real outcomes.

Learnings:

That the "free skate is where champions are made" narrative doesn't really hold up short program rank is doing most of the predictive work. And more broadly, that the way you frame a data gap matters as much as the data itself turning "we don't have India's numbers" into "here's a benchmark model any emerging program can apply" made the project stronger, not weaker.

What's next :

Extending the model to pairs skating and ice dance, bringing in real infrastructure data (rink density, federation funding) instead of relying on Kazakhstan as the only real-world reference point, and testing the four-tier development framework against a few other emerging skating nations to see how well it generalizes beyond a single case.

Share this project:

Updates

Submission history