Inspiration
I've always been fascinated by the "Moneyball" revolution in traditional sports—using data to find insights that human observation misses. But in esports coaching, there's a gap: we have incredible granular data from matches (every death, every objective, every decision), yet coaches still spend hours manually reviewing VODs and building spreadsheets.
What if we could bridge that gap? What if a player dying at 22:15 could automatically connect to the Baron lost at 23:00, which connects to a 15% win probability drop? That's the micro-macro bridge that inspired C9 Strategos.
What it does
C9 Strategos is a comprehensive assistant coach platform that transforms raw GRID API match data into actionable coaching intelligence. It covers all three Category 1 requirements:
Personalized Player Insights - Analyzes individual performance across matches with data-backed observations like "Chovy maintains 5.67 KDA indicating strong positioning" or "Focus on reducing deaths from 2.1/game"
Automated Macro Game Review - Generates coaching agendas that identify players needing review, death analysis, and recommendations—no more scrubbing through VODs
What-If Oracle - ML-powered simulation that answers "What if we didn't contest Baron?" with actual win probability deltas (+32% improvement by conceding in a 2v5 scenario)
It supports both League of Legends and VALORANT with game-specific logic—LoL uses continuous game time while Valorant uses cumulative round timing for death impact.
How I built it
The architecture is a React + TypeScript frontend talking to a FastAPI backend:
Frontend: React with TailwindCSS, Framer Motion for animations, React Query for data fetching. The Command Center dashboard has multi-layered filtering (team, series, insight type, severity).
Backend: FastAPI serving RESTful endpoints. Real-time data ingestion from GRID's Series State API and File Download API.
ML Models: XGBoost ensemble trained on 128 real professional matches (LCK, LCS, LEC, LPL). SHAP TreeExplainer for feature importance. 96% cross-validation accuracy.
Guardrails: Game theory axioms that prevent ML hallucinations (e.g., 4+ player advantage = minimum 85% win probability).
All data is real GRID data—no mocks, no synthetic generation.
Challenges I ran into
Game-specific logic was tricky. LoL has a continuous clock, so a death at minute 25 means something different than one at minute 5. Valorant resets each round, so death timing is relative to round start, not match start. I had to build separate impact scoring functions for each game.
Cross-series analysis required careful filtering. When you import multiple series with overlapping teams (like Gen.G in two playoff matches), the dashboard needs to let coaches filter by team across series OR drill into a single match. Getting the filter combinations right took iteration.
SHAP explainability with real-time performance. Computing SHAP values on every simulation request was too slow. I pre-computed the explainer and optimized the feature extraction to keep response times under 500ms.
Accomplishments that I'm proud of
- 100% real data pipeline: Every insight, every simulation, every review comes from actual GRID professional match data
- Dual-game support: Same platform, different game logic—switching between LoL and Valorant is seamless
- The What-If Oracle: Seeing a +32% win probability improvement from a single decision change feels like actual coaching value
- Sub-second insights: Import a 4-game series and get 200+ actionable insights in under 3 seconds
What I learned
- GRID's API is incredibly rich. The Series State API gives you game state snapshots that are perfect for ML training. I barely scratched the surface of what's possible.
- Coaches need filters, not dashboards. Early versions showed everything. Real coaching needs "show me just Gen.G's deaths in game 3 with HIGH severity." Filtering is the feature.
- Explainability matters more than accuracy. A 96% accurate model that says "concede Baron" is useless without explaining WHY (gold diff: 0, player count: 2v5, objective: BARON).
What's next for C9 Strategos
- Live game integration: Connect to live match feeds for real-time coaching suggestions during scrims
- Pattern detection across seasons: "This team always contests Baron when behind—and loses 73% of the time"
- Agent recommendation system: Suggest optimal agent compositions in Valorant based on map and opponent tendencies
- Integration with team workflows: Export review agendas to Notion, Slack alerts for critical patterns
Built With
- fastapi
- framer-motion
- grid-esports-data-api
- numpy
- pandas
- pydantic
- python
- react
- react-query
- scikit-learn
- shap
- tailwindcss
- typescript
- vite
- xgboost
Log in or sign up for Devpost to join the conversation.