Why we use Bayesian shrinkage (and Blizzard's rates page doesn't)
The community win rates on Counterwatch and the ones on Blizzard's official rates page use different math. Counterwatch applies Bayesian shrinkage before ranking heroes. Blizzard publishes the raw numbers as-is. This post explains what that difference means, why it matters for low-sample heroes, and which question each approach actually answers.
Two sources, two purposes
Since Blizzard published their official rates page in late 2025, Overwatch players have had two ways to look at community hero performance:
- Blizzard's rates page: raw, unmirrored win rates and global pickrates across 6V6 matches. The numbers are exactly what Blizzard's servers recorded, no smoothing applied. A scatter plot with filters.
- Counterwatch: shrunk win rates across 5V5, 6V6, Stadium, and Marvel Rivals. Every tier list row applies Bayesian shrinkage before ranking.
Both are correct numbers. They answer different questions. If you want the honest aggregate of "how often did this hero win, across all the matches we recorded," Blizzard is the answer. If you want "given what we know, how strong is this hero actually, and should I pick them," shrinkage is the answer.
The small-sample problem
Raw win rates break on small samples. Imagine a hero with five tracked matches this week at a 100% win rate. Their raw number is 100%, and any ranking that sorts by raw win rate will put them at the top. But five matches is nothing. Eleven matches in, they are almost certainly not at 100% anymore: regression to the mean will eat that number the second the sample grows.
This is not an Overwatch-specific problem. It shows up in any domain where sample sizes vary across entities: baseball batters, product reviews, restaurant ratings, hero win rates. The core issue is that a 100% win rate over 5 games is not the same claim as a 55% win rate over 10,000 games, even though the first number is higher.
If you rank by the first number, you get a tier list where the top S-tier hero is whoever got lucky in their last five matches. Useless for climbing decisions.
What shrinkage does
Bayesian shrinkage fixes the small-sample problem by blending each hero's raw win rate with a neutral 50% baseline, weighted by how many matches feed the sample. Low-sample heroes get pulled most of the way back to 50%. High-sample heroes barely move.
Concretely, we add 400 imaginary 50/50 matches to every hero's record before computing the displayed win rate:
shrunk = (rawWinRate × matches + 0.5 × 400) / (matches + 400)
Two worked examples:
- 5 games at 100% raw → (5 × 1.0 + 400 × 0.5) / (5 + 400) = 50.6%. The five-game fluke collapses to near-baseline. No S-tier.
- 10,000 games at 55% raw → (10,000 × 0.55 + 400 × 0.5) / 10,400 = 54.8%. Real signal barely moves.
A hero sitting at 60% across 20 matches reads identically to a hero at 50.9% after shrinkage runs. That is what "honest ranking" looks like.
Why Blizzard likely doesn't shrink
There is a defensible reason to report raw numbers unmodified. When you are Blizzard, and you are publishing official stats from your own servers, the principle "report what happened, don't filter what happened" matters. If a hero has a 60% win rate across the community, that is a fact about the game, and players should be able to see it plainly without a third party deciding what to smooth out.
Blizzard's rates page also partitions by rank tier, which already provides some sample-size containment. Masters-only data is a cleaner slice than an "all ranks" aggregate. The implicit assumption is that each filter gives you enough matches that shrinkage is unnecessary for most queries.
This is a reasonable design choice. It is just a different choice than ours.
Why we shrink
Counterwatch's tier list has a different job. It answers "given current community data, which heroes are worth picking right now?" That is a ranking question, and ranking questions care about sample confidence in a way "what happened on the servers" does not.
A ranking that says "hero X is S-tier with 15 tracked matches" is worse than useless. It actively misleads readers into thinking X is strong when the underlying number is a fluke. Shrinkage lets us display every hero on the tier list, including low-sample ones, without promoting random outliers into S-tier. The list stays honest even when some heroes are rarely picked.
Shrinkage also plays well with per-rank filters. On a lower-population rank like Bronze, some heroes have small samples. Shrinkage pulls those heroes toward 50% until the sample grows, instead of letting them float to S-tier or F-tier on noise alone.
Practical implication for readers
Where the two sources disagree on hero strength, it is almost always because of sample size. If Blizzard's rates page shows a hero at 58% and Counterwatch shows them at 52%, the gap is shrinkage: we are telling you "the 58% is based on a small-enough sample that we don't fully trust it yet." If the two agree within a percentage point, the sample is large and the number is solid signal.
A practical workflow for players using both:
- Use the Counterwatch tier list as your climbing list. The shrunk numbers are what you should pick on.
- If a hero looks surprisingly high or low, click through to their hero page and check the sample size. That tells you how confident the placement is.
- Cross-reference Blizzard's rates page when you want to sanity-check against the raw number. Big gaps mean low sample; tight agreement means the edge is real.
Both data sources have value. Neither is wrong. They are just answering slightly different questions about the same underlying matches.
For the full write-up on our methodology: the formula, the 400-match prior, sample thresholds, and refresh cadence: see the methodology page. If you want to use the live tier list with shrinkage applied, the Counterwatch app runs the same numbers live in your match so you can act on them mid-queue.
Ready for the live version?
Counterwatch runs inside Overwatch and Marvel Rivals. Live counter picks, win chance, and hero swaps without typing or tabbing out.
- Deeper stats - personal win rates, hero grades, and match history beyond what's shown here
- Live match data - real-time counter suggestions and win chance as heroes are picked
- Performance tracking - session grades, hero grades, and trends over time compared to your averages
- In-game overlay - match roster, hero swaps, and counter picks right on your screen