Usage Stats Tournaments Insights Teams Calc Replays Tools
About

Spread Solver

Work backwards from a battle. Enter the teams you know, log what each attack actually did and who moved first, and the solver keeps only the EV spreads that could have produced every number you saw — ranked by how likely the damage rolls were and how often real players run that spread.

How this works
  1. Add every team involved — paste the teamsheets. Open Team Sheets give you species, item, ability, Tera and nature but no EVs, which is exactly the gap this fills. Leave an EV box blank to mark it unknown; type a number to pin it.
  2. Log the interactions. Every attack you saw is a constraint: "this move took Dragonite from 100% to 35%" rules out every spread that could not land in that window.
  3. Log speed order too. Who moved first is often the sharpest constraint on a Speed EV, and it costs nothing to record.
  4. Hit Solve. Damage is calculated in your browser with the same @smogon/calc engine the site's calculator uses; the priors come from ladder usage and published team pastes.

Reading the results. Fit is the chance a spread produces every number you logged (a spread that needs the maximum roll four times running scores badly). Prior is how often that spread actually shows up in ladder usage and in published EV spreads for this format. The headline spread is the best combination of the two — when two spreads fit equally well, the one players actually run wins.

Damage rolls. A single observation rarely pins a stat down; several overlapping ones do. Log spread moves, hits on your own ally, resisted hits and chip damage — every one of them narrows the range.

Accuracy. Enter exact HP numbers when you have them. Percentages carry a tolerance (default ±1%) because Showdown rounds what it shows you; loosen it if you are reading a number off a stream.

Everything is stored in this browser only — nothing is uploaded. Use Export JSON to move a case between devices.

1

Teams

Paste each teamsheet. Blank EV boxes are what the solver goes looking for.
2

Interactions

Every damage roll and every speed order you can remember.
3

Solved spreads

4

Team output

A complete, legal set for every Pokémon — solved where the rolls settled it, inferred everywhere else.

Damage is calculated locally with @smogon/calc. Ladder spread usage comes from Smogon monthly stats; published EV spreads come from Team data from the VGCPastes Repository. Estimates are only as good as the interactions you log — treat a spread with one supporting roll as a guess, not a read.