Solo Queue Analytics
Next predicted pick Lillia
Models backing this pick 2 of 5
Best model · 34% correct Logistic argmax → Lillia
Worst model · 4% correct Uniform random → Udyr
J

Jackson Angell

A platform built on my own League of Legends match history: a Riot API pipeline into Snowflake, five from-scratch models predicting my next ranked champion, and this site to show it all. This page covers the "why".

What this is

A pipeline that pulls every match I play from the Riot Games API into Snowflake, then layers models and a dashboard on top. Prediction guesses my next champion (ranked games only); Statistics and Playstyle cover the social and stylistic side across every game.

Why the "fun" model is on the front page

All five models train on ranked games only. That's where I actually try to pick my best champion, so it's the only history worth predicting from; normals and ARAMs are just me messing around.

The front page runs the two-step sampler. Instead of always naming my most likely champion (my main, most days), it draws a pick from its odds, so it changes game to game and sometimes lands on a pocket pick. It's less accurate than just naming the favourite, and measuring that trade-off is the interesting bit: four other models run alongside it for exactly that reason. The Models page has the numbers.

How it fits together

Every run polls Riot for new match IDs into a match_ids discovery log (so re-runs are idempotent), fetches anything new into Snowflake, then predicts, scores, and publishes. The Pipeline page walks through all seven stages in order.

Stack

LayerChoice
WarehouseSnowflake, key-pair authenticated
PipelinePython, scheduled on GitHub Actions (requests, pandas, scikit-learn, XGBoost)
WebsiteFlask + gunicorn
DeploymentDocker container (slim Python base, non-root), deployed on Render
AssetsChampion art pre-fetched from Data Dragon, served as static files
AI summariesClaude API, called on demand and rate-limited per visitor

Contact

Happy to talk about the pipeline, the models, or anything else here.