Where the data comes from
Every number on brains.gg starts as a real ranked Teamfight Tactics game. A background crawler continuously reads competitive ladders and full match histories from the official Riot Games API. For each match we ingest, we parse every one of the eight boards: the champions played, their star levels, the items on each unit, the active traits, and the augments chosen. We do not scrape third-party sites or copy other trackers' data — the raw input is Riot's own match record.
Turning boards into comps
A single TFT board is messy: two players running the same strategy rarely field an identical set of nine units. To produce a comp tier list, we group boards that share the same core identity — their defining traits and carry units — into a single named composition. A comp's statistics are then the aggregate of every board we classified into it. This is why a comp page can show a "typical board": it's the most-played configuration among the boards that make up that comp.
The four metrics
Nearly every ranking is built from four figures, each computed over the games that match your current filters:
- Average placement — the mean finishing position (1st–8th). Lower is better; below 4.5 means the comp or unit is beating the lobby on average. This is the most reliable single measure of strength.
- Top-4 rate — the share of games finishing 1st–4th. In an eight-player lobby, finishing top four is a "win" for LP purposes, so this is the stat most players should optimize for while climbing.
- Win rate — the share of games finishing 1st. It rewards high-ceiling lines and helps distinguish comps that only ever get 4th from those that can close out a lobby.
- Pick rate — how often the comp, unit or item appears. High pick rate means it's contested: even a strong comp is hard to hit if the whole lobby is forcing it.
Sample sizes and why some pages are empty
A stat computed from ten games is noise. We only publish a row once it clears a minimum sample-size floor, and we surface the game count next to every figure so you can judge how much to trust it. Units, items and comps that haven't been played enough on the current patch are held back rather than shown with misleading numbers — so if a page looks sparse early in a patch, it will fill in as more games are recorded.
Filters: region, rank, and time window
Most pages can be sliced by region, by rank bracket, by queue, and by a recent time window (for example, the last 24 hours or last few days). Changing a filter recomputes the stats over exactly that slice of games, letting you see the meta as it looks in your region and at your elo rather than a blended global average.
Patches and sets
TFT changes constantly, and a comp that dominated one patch can be gutted the next. Our aggregations use a rolling window and are scoped to the live set and patch — currently Set 17, patch 17.7. When Riot ships a new patch or set, the rankings begin reflecting the new games rather than carrying stale history forward.
Limitations
We're transparent about what the data can and can't tell you. Statistics describe how games were played, not a guarantee of how they'll go for you — execution, positioning and lobby context still decide games. Sampling leans toward the ranks and regions with the most crawlable games, and very fresh patches carry more uncertainty until enough matches accumulate. Read placement, pick rate and sample size together, and treat the tier list as a strong starting point rather than gospel. Spot something that looks wrong? Tell us via the contact details on our About page.