Method
Most days, nothing happened. We'll say so.
Every Deadlock stats site has a “biggest movers today” panel. It is always full, because a list sorted by size is never empty — something is always at the top. That doesn't make it news. This site runs a test first, and prints the empty result when the empty result is the true one.
The short version
We look at each hero's win rate over the last 7 days versus the 7 before. We only call a shift real if a swing that big would show up by luck less than about 1 in 800 times. Most weeks, nothing clears that bar — and we'll tell you that instead of inventing a headline. The details below are how we know.
Why don't you show today's biggest movers?
Because on a single day there aren't any. We ran the test: across 38 heroes, day-over-day win-rate changes produced zero results that could be told apart from random variation. The strongest one came out at p = 0.185, against a threshold of 0.0013. At roughly 10,000 matches per hero per day, a half-point wobble is about one standard error — the statistical equivalent of a coin landing heads twice.
So what's different about seven days?
Sample size. Stretch the window to a week and each hero has 50,000–110,000 matches behind it, and real shifts of 1–2.5 points separate cleanly from the noise. On the day we built this, 8 of 38 heroes cleared p < 0.0001. Same data, same heroes — the only thing that changed is that we waited until the number meant something.
What is a p-value, without the jargon?
Assume nothing actually changed about a hero, and the only thing moving its win rate is which players happened to queue up. The p-value is how often a swing at least as big as the one we measured would turn up anyway. p = 0.2 means one week in five. p = 0.00001 means one week in a hundred thousand — at that point "nothing changed" stops being a believable explanation.
Why is your threshold so much stricter than 0.05?
Because we test every hero at once. Run 38 tests at the usual 1-in-20 bar and roughly two heroes will clear it every single week by luck alone — which is how a meta digest quietly turns into a random number generator. Dividing the bar by the number of tests (the Bonferroni correction) keeps the chance of even one false alarm at 5% across the whole page. It's conservative, and we'd rather miss a real shift than invent one.
What's the range next to each win rate?
A 95% Wilson interval — the honest error bar. A hero at 52.4% with an interval of 52.0–52.8 is genuinely above average. A hero at 52.4% with an interval of 49.1–55.7 has been played 400 times and we know almost nothing. Same headline number, completely different claim, and only one of them belongs in a tier list.
Why does a 53% hero show up as B tier?
Tiers come from the bottom of the interval, not the point estimate. If a hero's interval reaches down into B-tier territory, we call it B. It might really be S — we just can't show it yet. That gap is the most useful thing on the tier-list page.
What could still be wrong here?
Plenty. Win rate ignores who's playing a hero and at what rank, so a hero that's brutal in the top bracket can look mediocre overall. A patch mid-window blends two different games together. And a significance test says a change is unlikely to be luck — it never says why it happened. We're claiming something narrower than most sites, and it's still worth doubting.
The whole method in four lines
- 1 · Pull the last 7 days and the 7 before it, per hero.
- 2 · Drop any hero under 500 matches in either window.
- 3 · Two-proportion z-test on the win rates.
- 4 · Report it only if p is under 0.05 ÷ (heroes tested).
Free data
Build on our tested numbers: /api/v1/heroes.json (win rate with 95% interval, p-value and verdict per hero) and a weekly Atom feed. CC BY 4.0 — credit Deadlock Meta.