Inspiration
We wanted a practical tool that cuts through the noise around NBA games — something that helps fans and analysts get quick, data-driven answers about who’s likely to win and why.
What it does
The NBA Predictor pulls box scores, lineup and injury info, and recent team form to produce game win probabilities, projected margins, and player performance forecasts. It surfaces why a prediction was made (key features) and updates as new info arrives.
How we built it
Data pipeline ingests official play-by-play and box score feeds plus injury/lineup updates. Features are engineered for lineup context and recent momentum; models use gradient-boosted trees with probability calibration. Backend is Python (FastAPI) serving predictions, frontend is a lightweight React app with visual explanations. Deployed with CI and simple monitoring.
Challenges we ran into
Data is messy and fast-changing — handling late scratches, minute redistribution, and small-sample variance was hard. Calibrating probabilities so outputs feel intuitive and avoiding overfitting to recency were other big pain points.
Accomplishments that we're proud of
We built a live pipeline that updates predictions within seconds of lineup/injury changes, achieved consistent improvement over naive baselines, and added explainability (feature importance per game) so users can trust the outputs.
What we learned
High-quality features and clean ingestion beat fancy models. Calibrated probabilities and simple visualization make predictions useful. Rapid feedback loops (deploy → observe → tweak) were essential for improving real-world accuracy.
What's next for Yuno Ball
Add live-odds comparison and backtesting tools, expand player-level and minute-level forecasts, improve model ensembles, and add alerts and a mobile-friendly UI for on-the-go updates.
Built With
- fastapi
- gemini
- nba-api
- pandas
- polymarket
- python
- pytorch
- react
- scikit-learn
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.