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.
Could not load rankings data.
Could not load World Rugby data.
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