Calculate final stats
calculate_statsCompute a Pokémon's final six stats at any level from nature, IVs, and EVs, returning the full stat table, base stats, and BST.
Instructions
Compute one Pokémon’s final six stats at a level from its nature, IVs, and EVs, returning the stat table plus base stats and BST. Stats only, never a battle: use calculate_damage or calculate_matchups for damage rolls, check_speed to place the Speed stat against a regulation roster, and optimize_evs when the spread must be derived from a goal. EVs are 0-252 per stat with a 510 total cap, IVs 0-31, level defaults to 50 and nature to Serious. Read-only and offline; unknown species or nature names return an isError.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| evs | No | EVs keyed by stat id (hp, atk, def, spa, spd, spe), each 0-252 in steps of 4; omitted stats are 0, and a total above 510 is rejected. | |
| ivs | No | IVs keyed by stat id (hp, atk, def, spa, spd, spe), each 0-31; omitted stats default to 31. | |
| level | No | Level 1-100; default 50. | |
| nature | No | Nature name, e.g. "Jolly", "Modest"; default Serious (raises and lowers nothing). | |
| species | Yes | Species or form name, e.g. "Garchomp", "Ogerpon-Wellspring". | |
| championsPoints | No | Pokémon Champions stat points keyed by stat id (hp, atk, def, spa, spd, spe): whole numbers, each 0-32, totalling at most 66. This is the spread the game’s training screen takes, and an alternative to `evs` — give one or the other, not both. One point is worth 8 EVs, so a converted spread is trimmed from its largest stats to fit the 510 EV cap the calculator enforces. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bst | Yes | Base stat total: the sum of the six base stats, a rough measure of the species’ overall power. | |
| evs | Yes | The EVs actually used per stat; all six keys are present, 0 for stats the call left uninvested. | |
| ivs | Yes | The IVs actually used per stat; all six keys are present, defaulting to 31. | |
| level | Yes | Level the stats were computed at, 1-100. | |
| stats | Yes | The six in-game stats this species reaches at this level, nature, IVs, and EVs; `hp` is the full HP stat, not a percentage. | |
| nature | Yes | Nature applied to the non-HP stats, e.g. "Jolly"; Serious when the call omitted one. | |
| species | Yes | Canonical species name the stats belong to, e.g. "Garchomp". | |
| baseStats | Yes | The species’ unmodified base stats, the same for every set of that species. | |
| championsPoints | Yes | The spread as Pokémon Champions stat points (whole numbers, at most 32 in a stat, 66 total) — what the game’s training screen takes; stats left uninvested are omitted and a maxed stat reads 32. The two systems budget differently (510 EVs against 66 points), so a spread trimmed to fit the EV cap reads back a point or two under what was asked: this is the nearest point spread for the stats actually computed, not a copy of the input. |