Inspiration

The 2017 NBA season, specifically the dominance of the Golden State Warriors showed us that basketball is as much a psychological game as it is a physical one. When stars like Curry, Klay, and Durant hit three-pointers in rapid succession, the "morale" of the opposing team visibly evaporates. We realized that half of all NBA timeouts are statistically wasted. We wanted to move past "gut feeling" coaching and build a tool that quantifies the invisible: momentum.

How we built it

We developed the platform through a rigorous six-stage pipeline. We processed 564,696 rows of raw play-by-play data using the nba_api. We converted raw plays into game-state snapshots, looking backward to see the cause and forward to measure the effect. We trained an XGBoost ensemble with 200 decision trees to learn patterns from 12,244 historical timeouts. We designed a high-contrast terminal-style interface for zero-distraction use under high pressure.

Challenges we ran into

We had to mathematically define a "good" timeout, which varies on each model's interpretation. We also faced challenges relating on how we can deduce whether or not pattern or point difference matters after a stretch of plays.

Accomplishments that we're proud of

Statistically Significant Findings: We proved that timeouts after a 5+ point opponent run are successful 57% of the time, while calling one during your own run drops success to 39%. Our model independently discovered that the opponent's run is the #1 signal for a reset, assigning it a 33% feature importance. Additionally, the program is able react to new plays live and calculate decisions before the next play arrives.

What we learned

We learned that data cleaning is 90% of the battle in sports analytics. While developing, we discovered the limitations of machine learning. We also realized the importance of "mean regression" understanding that some runs stop naturally without intervention, and a model must be smart enough to differentiate between a lucky streak and a genuine momentum shift.

What's next for Timeout!

  • Moving from static play-by-play data to sub-second broadcast integration.
  • Incorporating player stamina and substitution patterns into the momentum algorithm.
  • Enhancing the feedback loop so the AI can perfectly mirror a specific head coach's aggressive or conservative calling style.

Built With

Share this project:

Updates

Submission history