Methodology
How these numbers are made.
Most stats sites hide this page. Here it's the point: you should be able to check our work.
What this is — and isn't
LolPerform is a readable, bot-lane-first, transparent stats tool. It optimises for three things scale doesn't buy: a UI you can scan in seconds, genuine depth on bottom lane (ADC matchups, ADC + Support synergy, counters), and honesty about every number's confidence.
It is not a full-ladder aggregator like the largest sites, which ingest millions of games per day. We sample. So treat the tiers as a well-calibrated, clearly-labelled estimate — strongest for popular champions, openly low-confidence for rare ones — not gospel.
Where the data comes from
Riot's API has no "tier list" endpoint. Like every stats site, we build it ourselves: we crawl ranked Solo/Duo ladders (the league-v4 and match-v5 APIs), then aggregate the matches. Champion art and item icons come from Riot's Data Dragon CDN.
It's a sample, and we say so
We don't claim to read every game. We sample ranked matches across eight regions — NA, EUW, EUNE, KR, JP, BR, OCE, and VN — and then weight every statistic to the ladder's real rank distribution (post-stratification: the crawl deliberately oversamples Master+ so high-elo views stay meaningful, and the published numbers correct for it). A champion that's strong in Emerald but weak in Master is graded for the rank mix that actually plays the bracket, not for whoever was easiest to crawl. The pooled view is additionally weighted by server population, so a small server never counts as much as KR or EUW, and extreme weights are trimmed to keep a few lucky games from swinging a grade. The default All Regions view pools every region into one sample (the largest and steadiest); you can also filter to any single region. We're a sampled dataset, not a full-ladder one like the largest sites — which is exactly why every statistic shows its sample size. A win rate over 40 games is not the same as one over 40,000, and the UI never lets you forget it.
Ranking: two signals, combined by rank
Champions in a lane are ranked by two signals and the tier comes from the combined ranking — the same family of method the biggest tier lists use, not fixed win-rate cutoffs:
- Wilson win rate — the win rate's lower confidence bound, so a 60% win rate over 10 games never outranks a 53% over 5,000. Reward certainty, not luck.
- Meta presence — pick rate plus ban rate. A champion contested in every draft is more meta-relevant than a pocket pick, and it is played into opponents who prepared for it, which holds its raw win rate down. Presence counts for a third as much as strength: it is a measure of how contested a champion is, not of how good it is.
Win rate is corrected before it is ranked, for who picks the champion. Within a single rank, popular blind-pick-friendly champions are picked by weaker players than niche specialist picks are, and that difference lands on the champion's win rate rather than the player's. Every crawled match carries one observation of how strong the picking player is, taken from their career ranked record, and a champion whose players are stronger than average gives that advantage back. The correction is deliberately an under-correction, and the size of it is published next to the win rate rather than hidden in the score.
Both signals then get a small skill-floor adjustment (at most ±0.4% win-rate equivalent): a mechanically simple champion's win rate is repeatable by nearly everyone who picks it, so it earns slightly more trust than the same number on a champion whose ladder record is carried by specialists. The buckets are curated — Riot's own difficulty ratings are too inconsistent to use — and deliberately small: they nudge boundary cases, never rewrite a tier.
Each champion gets a rank on both signals; a weighted sum of the two ranks orders the lane, and champions a signal cannot tell apart share a rank on it rather than being ordered arbitrarily. Some sites also factor in per-player signals such as best-player win rate or best-player Elo — those require tracking individual players across months, and this site stores no player identifiers by design, so our grading uses the signals a sampled, privacy-preserving pipeline can support.
Tiers
Grades are cut at fixed percentiles of the lane's ranking, so an S+ always means "top of this patch's meta" no matter how compressed the win rates are: roughly the top 4% of a lane's pool is S+, the top 14% reaches S−, the middle lands in B, and the bottom tail is D. The base letter sets the colour and the row; the + / − shows where the champion sits inside the band.
A grade needs 1,000 games in that lane this patch to stand fully on its own. Below that — right after a patch flips, before the new sample has filled in — a champion is graded provisional (dashed tier badge) if it has a prior-patch grade to lean on: its ranking blends the two, weighted by how much of the 1,000-game floor this patch has filled, so the blend is almost entirely last patch's data at game one and entirely this patch's data at game 1,000. The prior has to be worth leaning on: it only counts if it cleared the same 1,000-game floor last patch. Without that rule a champion almost nobody plays in a lane could enter on a handful of games, borrow a prior built from equally few, and come out with a grade — which is how an off-role pick on 144 games briefly outranked bot laners with thousands. A brand new champion or lane with no prior-patch history, and no games yet this patch, still shows NR (not rated) instead of a grade — so a lane can never read "S+" off pure guesswork. Win, pick, and ban rates always display the current patch's real numbers next to their game count, whether or not the grade above them is provisional. All numbers come from the current patch only — balance changes make older games misleading — and the sample compounds every few hours as the crawler runs.
What we know we can't see
Two limits are worth stating rather than leaving you to assume we handled them. We cannot see draft order, so a champion locked first with no information and one locked last as a counter look identical to us. And the player-pool correction leans on the one player per match whose ladder record we know; the other nine are anonymous to us by design, so the correction is a partial one — deliberately an under-correction rather than a guess at the rest.
Confidence
Sample size maps to a visible treatment on every stat:
- High (≥ 1,000 games): solid.
- Medium (≥ 200): dimmed, dashed underline.
- Low (≥ 30): heavily dimmed, ⚠ chip.
- Below 30: treated as low and often hidden — we won't show a number we don't trust.
Builds
Every champion page shows its most common build for the champion's primary role: the items players actually finish with, ranked by how often they appear across all of that champion's sampled games this patch, laid out as six item slots — seven for bot-lane roles, where the support quest item occupies a slot. Slots without a consistent pick yet render empty rather than guessing, and the build always carries its win rate and sample size. This is a frequency picture, not a curated guide: it shows what the sampled ladder builds, and it sharpens automatically as games accumulate.
How fresh it is
A crawler runs every six hours and each run adds to the sample instead of replacing it: new matches merge into an accumulated store (deduplicated by match id), so every number on the site gets steadier through the patch. When a new patch ships, the sample resets — older games reflect a different balance state, so they never bleed into the new patch's numbers. Expect thinner data for the first day of a patch and a fast climb after; no one presses a button.
Recent changes
- Ranking rebuilt around what a champion is worth — the ranking no longer multiplies a champion's distance from a 50% win rate by how often it is picked. That term meant two champions on the same win rate could sit several grades apart purely because one was popular, which pushed common picks down and pocket picks up. It is replaced by meta presence, which counts for a third as much as strength. Win rates are now also corrected for how strong a champion's players are, champions a signal cannot tell apart share a rank on it instead of being ordered arbitrarily, and a prior-patch grade only seeds a provisional grade if the prior itself was properly sampled.
- Rank-mix and region-mix correction — stats are now weighted to the ladder's real rank distribution, and the pooled view to real server populations. The crawl's high-elo oversampling and equal-per-region budget had been dragging down champions that shine below Master or on the big servers (and inflating the opposite kind); win, pick, and ban rates now describe the population that actually plays.
- Skill-floor adjustment — grading gives a small, bounded edge to mechanically simple champions (their win rate is repeatable by anyone) and a matching discount to specialist champions. A dedicated patch-day crawl also fires right after NA maintenance on Wednesdays, so new patches appear hours sooner.
- Rank-based grading — tiers now come from each lane's combined strength + presence ranking, cut at fixed percentiles, instead of fixed win-rate thresholds. S+ means "top of the meta", every patch, by construction.
- 1,000-game tier floor, everywhere — the tier list ranks only champions with 1,000+ games this patch, and no tier badge appears anywhere on the site below that floor (lanes show NR + raw win rate instead). Low-sample win rates are noise, not rankings.
- Most common build for every champion — frequency-ranked items in fixed slots (six per role, seven for bot lane), each with its win rate and sample size.
- Compounding sample — crawls every six hours across eight regions now accumulate rather than replace, so the dataset grows continuously between patches.
lolperform.com isn't endorsed by or affiliated with Riot Games. We display only aggregate statistics and never expose individual players' match histories.