Tier List - Gidntsquia/deadlock-street-brawl-helper GitHub Wiki
Tier List
The app's second tab grades every hero and every draftable item S, A, B or C from the Street Brawl matches since the
City Never Sleeps update (2026-09-29). The code is src/brawl/tierlist.ts, reading public/data/analytics/brawl/tier-list.json.
How a grade is worked out
Each subject has two numbers, both shown under its entry in the app:
- Win rate — wins over matches, pulled toward the population win rate by a 500-match prior. Every row in the snapshot has thousands of games, so the prior changes nothing today; it keeps a thin sample from grading S off a lucky streak.
- Usage — the share of hero-games the subject appeared in. Usage spans an order of magnitude between the most and least drafted, so the log of it is what gets standardised.
Both are turned into standard scores across the population and mixed, win rate at 70 % and usage at 30 %. Win rate is the outcome and carries most of the weight. Usage is what the population thinks, which catches subjects whose win rate is flattered or punished by who plays them.
The mix is standardised once more and cut into grades at 1.15 (S), 0.35 (A) and -0.6 (B); everything below that is C. Over a roughly normal population those cuts land about 13 % S, 25 % A and 35 % B.
Heroes are graded against the rest of the roster. Items are graded against the other items of their own draft tier, since the tier decides which round a card can be offered in.
Rebuilding the snapshot
npm run fetch-data -- --brawl-tierlist rebuilds analytics/brawl/tier-list.json on its own: one hero-stats
request plus a sum over the per-hero files already on disk, instead of the ~1400 requests a full --brawl
run costs.
The rebuild reuses the window those per-hero files were fetched with, so usage stays the share of the same
games the item counts came from. To move the window forward, run the full npm run fetch-data. See
Data Pipeline for why both ends of the window are pinned.