Projects
Sports Analytics · Published Research · Interactive Dashboard
Elo-based rating system for international rugby union. Processes 9,000+ international matches from 1890 to present with adaptive K-factors, home advantage corrections, and recency weighting. Produces pre-match win probabilities calibrated against market odds.
Extended into a Streamlit dashboard with six analytical views: current rankings, historical ELO trajectories, era dominance across five periods (pre-WW1 through modern), greatest upsets by upset probability, a live match predictor, and expected vs actual wins. Notable finding: New Zealand 2013 outperformed expected wins by 6.7.
The methodology was published on the Northwestern MSIA blog in January 2019 and has since been referenced by analysts in the rugby analytics community — including the team at RugbyHawk ↗. Read the full write-up →
Current Top 10 — EloR Rankings Loading…
Current Top 10 — World Rugby Official Rankings Loading…
Python Elo Ratings Statistical Modeling Streamlit Plotly Published Research
Computer Vision · Reinforcement Learning
Six-stage pipeline processing match footage into structured game data. YOLOv8 detects players and ball frame-by-frame; K-means clusters jersey colors to auto-assign team membership; homography calibration maps pixel positions to field coordinates. Persistent player IDs are tracked across frames with velocity and possession computed between detections.
Labeled events — passes, carries, kicks, tries, turnovers — are used to assign rewards and train a PyTorch actor network for in-game decision classification.
Python YOLOv8 PyTorch Computer Vision Reinforcement Learning OpenCV