How everything on this site is actually calculated, in full, nothing hidden. If a number looks off, the answer is probably here.
Everything comes from Riot Games' official API (Match-V1): real ranked games, collected automatically across all 4 regions (EUW, NA, BR, KR) and every rank bracket. No stat is estimated, extrapolated, or invented -- every number shown comes directly from at least one real match. The total match count is shown at the top of the homepage and updates with every data refresh.
Not every composition seen in game gets published -- a comp has to clear a quality bar before it earns its own /compo/ page:
Among comps with at least 5 games, they're ranked by top 4 rate (highest first), then average placement as a tiebreaker. That sorted list is split into cumulative slices: S = the top 12%, A = the next 28% (40% cumulative), B = the next 35% (75% cumulative), C = the remaining 25%.
A real anomaly was caught live on the site: a rare reroll comp with only 149 observed games showed a 1.95 average placement and 93% top 4 rate -- statistically impossible in TFT, where the population mean is always exactly 4.50 (8 players, one 1st place). Even the single best comp on record almost never drops below a real 4.00 average, thanks to TFT's combat RNG.
Root cause: on a small sample, the rare players who manage to hit a hard-to-execute comp completely dominate the numbers. The fix uses empirical-Bayes shrinkage (the same idea behind Reddit's "best" comment sorting or IMDB ratings): the score used for ranking is pulled toward the real average across all comps, by an amount that grows as the sample shrinks. Important: the numbers shown (average placement, top 4) are never modified -- only the ranking order and assigned tier are. What you see on a comp's page is always the real, raw number.
Percentile ranking alone has a flaw: "S" only ever means "least-bad of this cycle's pool," even if the whole sample that cycle is weak. To fix that, every tier also has an absolute placement ceiling (post-shrinkage): S ≤ 4.30, A ≤ 4.50, B ≤ 4.80. A comp that earns its percentile slot but doesn't clear that ceiling gets bumped down a tier, and again, until it actually earns its spot (Tier C has no ceiling, so nothing is ever left without one). These thresholds are anchored to TFT's fixed theoretical mean of 4.50 and checked live against the biggest tracker in the market's own real tier boundaries (MetaTFT: their S tier tops out at 4.25, A at 4.50).
Our Riot developer API key expires every 24h, so every data refresh draws on a fresh sample, never the full history at once. A comp that cleared the quality bar in a previous refresh can, purely by sampling luck, fall below it next time -- that doesn't mean it stopped being good. Instead of deleting its page (and breaking an already-shared or Google-indexed link), it moves to a dedicated Hors Meta category: still viewable, with a distinct badge and a note stating its last known tier and the date it last appeared in the active calculation.
Augments currently aren't exposed by Riot's public API for this Set (checked directly: the field is entirely absent across 23,000+ analyzed participants) -- that's why no real-data augment tier list exists on the site yet. That section activates automatically the moment Riot republishes the field.