Skip to content
PoGoBattler

Game data quality

Everything PoGoBattler simulates comes from one committed snapshot of the Pokemon GO Game Master. This page is the readout of that snapshot: what is in it, the checks it has to pass, and the hand-curated corrections applied on top.

Built 2026-10-03 from https://raw.githubusercontent.com/PokeMiners/game_masters/master/latest/latest.json by npm run data:build.

All 42 checks pass

What is in the snapshot

Forms
1,269
1,024 species
Alternate forms
173
56 regional
Megas and Primals
94
Moves
344
81 fast
Dynamax capable
160
18 Gigantamax
Released
1214
55 placeholder-only
Curated corrections
115
+108 movepool supplements
Cosmetic forms collapsed
167
1023 stale templates dropped
Evolutions
506
479 forms evolve into something
Evolutions with a condition
70
42 need an item, 28 a task

Costume and cosmetic variants are collapsed into the base form because they are identical in battle, and the Game Master's form-less template is dropped whenever a species has real form templates — that stale template is what used to make Genesect and Zacian appear twice.

Evolution lines are read from each form's own evolutionBranch, so they are form-accurate: Galarian Slowpoke points at Galarian Slowbro, and the Alolan forms that merely name a Kanto parent are left unlinked because the game does not let you evolve into them. 2 edges (Stantler → Wyrdeer, Girafarig → Farigiraf) exist only as a child's parentPokemonId with no branch and no cost, and the pages say so rather than printing a candy number nobody sourced.

Movepool cross-check against Pokebattler

Not our own dataset marking its own homework: every form diffed move by move against the table Pokebattler's simulator runs on.

Forms compared
1,269
0 unmapped
Identical
666
stats, typing and movepool
Move differences
1,083
612 charged
Unexplained
0
every rule has to fire
  • 557 return (purified only) — across 557 forms
  • 416 hidden power, typed — across 26 forms
  • 88 unreleased, both placeholders — across 22 forms
  • 12 pokebattler placeholder — across 3 forms

Gholdengo, the form wave 6 flagged: four charged moves on both sides, Power Gem included. Every difference anywhere in the dex, with the rule that explains it, is on the movepool cross-check page, together with 17 of their Pokemon pages opened and transcribed by hand on 2026-09-11: 17/17 headers and 8/8 move-table rows now identical, after fixing a headline Max CP that was the level-50 number under a level-51 caption.

Integrity checks

Re-computed from data/*.json on every request; all of them also run in the vitest suite.

CheckFoundExpectedResultWhat it means
Duplicate Pokemon ids00passevery form appears exactly once
Duplicate species + form00passno two entries share a Game Master form token
Non-slug ids00passids are url-safe lower-case slugs
Unresolved move references00passevery movepool entry resolves in moves.json
Released forms with an empty movepool00passa released form always has a fast and a charged move
Non-positive base stats00passattack, defense and stamina are all positive
Moves missing PvE stats00passevery move can be simulated in raids
Forms with no artwork00passevery form has a picture resolved against a live file listing
Artwork from an unexpected host00passpictures come only from the PokeMiners asset dump or PokeAPI
Unresolved evolution references00passevery evolution points at a form that exists
One-way evolution links00passevery pre-evolution lists the form that names it
Evolution cycles00passwalking back up a family always reaches a root
Megas inside the candy evolution graph00passa Mega costs Mega Energy and reverts, so it is not an evolution
GO-only Megas missing a release signal00passall 11 Megas with no mainline counterpart carry shipped client artwork, a Mega Energy cost, per-species Mega Level tuning and their own exclusive move
Held-back forms with shipped client artwork00passthe control group: a form the Game Master only gives a placeholder moveset has no in-game icon either
Mega-exclusive moves missing combat stats00passevery Mega-exclusive move resolves with both raid and PvP numbers
Mainline Mega forms missing from the snapshot00passall 48 mainline Mega Evolutions and both Primal Reversions are present
Trainer Battle numbers that differ from the raw template00passall 337 moves with a COMBAT_ template were re-derived from that template by a second, independently written pass at build time
Hand-written Trainer Battle answers that no longer match00pass17 moves whose power / energy / turns and stat effect are written down as literals below and re-compared against moves.json on every request
Learnable moves missing Trainer Battle numbers00passthe 4 raid-only moves in the snapshot (Crush Claw, Fissure, Horn Drill, Leech Life) are retired moves no released form can learn
Fast moves with an illegal turn length00passevery fast move lasts 1 to 5 turns once the Game Master's zero-based count is made one-based
Charged moves carrying a turn count00passa charged move resolves inside a turn, so it has no duration of its own
Damaging fast moves that bank no energy00passa fast move that deals damage always gains energy (Ditto's Transform deals none and is excluded)
Learnable charged moves that cost no energy00passevery charged move a released form can learn spends energy
Stat changes outside the game's own stage range00passthe Game Master allows -4 to +4 stages and ships the ladder 0.5, 0.5714286, 0.6666667, 0.8, 1, 1.25, 1.5, 1.75, 2
Buff effects with no activation chance00passeach of the 104 moves with a stat change carries a chance between 0 and 1
Signature moves missing Trainer Battle numbers00passevery signature move the checklist names is complete in both halves of the dataset

Signature moves that the raw Game Master leaves out

Fusion, Crowned, Origin and Drive forms lose their signature move in some Game Master snapshots. data/overrides.json puts each one back, with the source recorded.

FormSignature movePresentWhy it needs checking
Necrozma (Dawn Wings)Necrozma (Dawn Wings)Moongeist Beamyesfusion signature, added by overrides
Necrozma (Dusk Mane)Necrozma (Dusk Mane)Sunsteel Strikeyesfusion signature, added by overrides
EternatusEternatusDynamax Cannonyesnumeric Game Master move id 482
Kyurem (Black)Kyurem (Black)Freeze ShockyesElite / legacy charged move
Kyurem (White)Kyurem (White)Ice BurnyesElite / legacy charged move
Zacian (Crowned Sword)Zacian (Crowned Sword)Behemoth BladeyesCrowned Sword signature
Zamazenta (Crowned Shield)Zamazenta (Crowned Shield)Behemoth BashyesCrowned Shield signature
Genesect (Burn)Genesect (Burn)Techno Blast (Fire)yesper-Drive signature, not shared
Genesect (Chill)Genesect (Chill)Techno Blast (Ice)yesper-Drive signature, not shared
Genesect (Douse)Genesect (Douse)Techno Blast (Water)yesper-Drive signature, not shared
Genesect (Shock)Genesect (Shock)Techno Blast (Electric)yesper-Drive signature, not shared
Mega RayquazaMega RayquazaDragon Ascentyesexclusive move the Game Master omits
Dialga (Origin)Dialga (Origin)Roar of TimeyesOrigin-forme exclusive
Palkia (Origin)Palkia (Origin)Spacial RendyesOrigin-forme exclusive
KeldeoKeldeoSecret Swordyessignature charged move

Forms held back as unreleased (146)

These are excluded from rankings instead of being simulated with fake moves.

Mega ClefableMega MeganiumMega FeraligatrMega ChimechoMega Absol ZMega Garchomp ZMega Lucario ZMega FroslassMega HeatranPhioneManaphyMega DarkraiArceusArceus (Bug)Arceus (Dark)Arceus (Dragon)Arceus (Electric)Arceus (Fairy)Arceus (Fighting)Arceus (Fire)Arceus (Flying)Arceus (Ghost)Arceus (Grass)Arceus (Ground)Arceus (Ice)Arceus (Poison)Arceus (Psychic)Arceus (Rock)Arceus (Steel)Arceus (Water)Mega EmboarMega ExcadrillMega ScolipedeGalarian Darmanitan (Zen)Darmanitan (Zen)Mega ScraftyMega EelektrossMega ChandelureMega GolurkMeloetta (Pirouette)Mega PyroarMega Floette (Eternal Flower)Mega MeowsticAegislash (Blade)Mega BarbaracleMega DragalgeMega HawluchaMega Zygarde CompleteMega CrabominableWishiwashi (School)Wishiwashi (Solo)Mega GolisopodPyukumukuType: NullSilvallySilvally (Bug)Silvally (Dark)Silvally (Dragon)Silvally (Electric)Silvally (Fairy)Silvally (Fighting)Silvally (Fire)Silvally (Flying)Silvally (Ghost)Silvally (Grass)Silvally (Ground)Silvally (Ice)Silvally (Poison)Silvally (Psychic)Silvally (Rock)Silvally (Steel)Silvally (Water)Minior (Blue)Mega DrampaNecrozma (Ultra)MagearnaMega ZeraoraChewtleDrednawMilceryAlcremiePincurchinEiscue (Ice)Eiscue (Noice)Morpeko (Hangry)CufantCopperajahDracozoltArctozoltDracovishArctovishEternatus (Eternamax)GlastrierSpectrierCalyrexCalyrex (Ice Rider)Calyrex (Shadow Rider)BramblinBrambleghastCapsakidScovillainMega ScovillainRellorRabscaFinizenPalafinPalafin (Hero)CyclizarMega GlimmoraVeluzaMega TatsugiriFarigirafGreat TuskScream TailBrute BonnetFlutter ManeSlither WingSandy ShocksIron TreadsIron BundleIron HandsIron JugulisIron MothIron ThornsMega BaxcaliburWo-ChienChien-PaoTing-LuChi-YuRoaring MoonIron ValiantKoraidonMiraidonWalking WakeIron LeavesOkidogiMunkidoriFezandipitiOgerponArchaludonGouging FireRaging BoltIron BoulderIron CrownTerapagosPecharunt

A form is held back only when the Game Master gives it nothing but the placeholder moveset (Splash + Struggle) — never on a guess about the release calendar. Pokebattler's own dataset fills the same set with its Pound / Body Slam placeholder, so both sites agree these forms have no real moves yet. Species with genuinely tiny movepools (Magikarp, Cosmog, Cosmoem, Smeargle) stay released.

Are the 11 GO-only Mega forms live?

Megas with no counterpart in the mainline Pokemon games look fabricated at a glance. This is the evidence, recomputed from the snapshot on every request.

Yes — live content11 of 11 carry all four release signals; the 23 forms held back as unreleased carry the decisive one 0 times.

Niantic only publishes a form's addressable art bundle when the live client needs to draw it, so a shipped in-game icon is the strongest release signal a datamined snapshot can carry. Every one of these eleven has one — and so does every mainline Mega (50 of 50). None of the 23 placeholder-only forms does. On top of that each GO-only Mega has a Mega Energy cost, its own per-species Mega Level tuning, and a Mega-exclusive charged move with full raid and PvP numbers — strictly more evidence than Mega Charizard X, which carries two of the four signals and has been in the game since 2020.

Two outside sources agree, checked 2026-09-07. Pokebattler's own dataset (fight.pokebattler.com/pokemon) carries all eleven — DRAGONITE_MEGA, FALINKS_MEGA, RAICHU_MEGA_X and the rest — with the same base stats and the same exclusive moves this page lists, and its home page currently reads “Mega + Charged Attacks are live — Real stats, Mega Level scaling, and many Mega Raids are now soloable”, which is the Mega Level tuning and the exclusive moves in the table below, live.

What this still cannot prove: a snapshot is not a running client. The falsifiable claim is the one the table makes — nothing in this Game Master separates these eleven from Megas nobody doubts, and the placeholder-only control group is separated by every signal at once.

GO-only MegaIn-game icon shippedMega EnergyMega Level templatesExclusive moveSignals
Mega Chesnaughtyes300 / 605Seed Bomb+4 / 4
Mega Delphoxyes300 / 605Mystical Fire+4 / 4
Mega Dragoniteyes300 / 605Outrage+4 / 4
Mega Falinksyes300 / 605Brick Break+4 / 4
Mega Greninjayes300 / 605Surf+4 / 4
Mega Malamaryes300 / 605Psybeam+4 / 4
Mega Raichu Xyes300 / 605Volt Tackle+4 / 4
Mega Raichu Yyes300 / 605Zap Cannon+4 / 4
Mega Skarmoryyes300 / 605Drill Peck+4 / 4
Mega Starmieyes300 / 605Liquidation+4 / 4
Mega Victreebelyes300 / 605Acid Spray+4 / 4
50 mainline Megas and Primals50 / 50100–4000–5Mewtwo X / Y only2–4
Control: 23 forms held back as unreleased0 / 23n/an/anone0 / 4

Control group, in full: Necrozma (Ultra), Magearna, Great Tusk, Scream Tail, Brute Bonnet, Flutter Mane, Slither Wing, Sandy Shocks, Iron Treads, Iron Bundle, Iron Hands, Iron Jugulis, Iron Moth, Iron Thorns, Roaring Moon, Iron Valiant, Walking Wake, Iron Leaves, Gouging Fire, Raging Bolt, Iron Boulder, Iron Crown, Terapagos — every one of them has only Splash and Struggle in the Game Master and no in-game icon, so they are excluded from rankings rather than simulated with fake moves.

Megas only in Pokebattler's data (33)

The Game Master snapshot (PokeMiners, last updated 2026-08-29) has no temp-evolution template for these, so they cannot be audited with the four signals above. Their stats, types and movepools are Pokebattler's, copied as published; the Mega Energy cost is unknown and left blank. 1 of them is out in Pokemon GO (Mega Staraptor, since 2026-09-19); the rest are Legends Z-A Megas with no GO release date yet, so they are held out of rankings, counters and pickers until the game catches up.

Mega-exclusive moves (13)

The Game Master carries a charged move that only one Mega can use, under VM_MOVE_TEMP_EVOLUTION_<FORM>_V####_POKEMON_<SPECIES>. It ships raid numbers, PvP numbers and the same isLocked flag that marks Behemoth Blade, Behemoth Bash, Dynamax Cannon and Secret Sword — but no name, only the animation key it reuses. No learnset entry points at it either, so scripts/build-data.ts attaches it to the Mega that owns the template. Pokebattler names all thirteen after the same animation (brick_break → Brick Break+) and prints the same power, duration, energy and damage window for every one, so those names are used here.

FormMoveMove id
Mega ChesnaughtSeed Bomb+SEED_BOMB_PLUS
Mega DelphoxMystical Fire+MYSTICAL_FIRE_PLUS
Mega DragoniteOutrage+OUTRAGE_PLUS
Mega FalinksBrick Break+BRICK_BREAK_PLUS
Mega GreninjaSurf+SURF_PLUS
Mega MalamarPsybeam+PSYBEAM_PLUS
Mega Mewtwo XDynamic Punch+DYNAMIC_PUNCH_PLUS
Mega Mewtwo YFuture Sight+FUTURE_SIGHT_PLUS
Mega Raichu XVolt Tackle+VOLT_TACKLE_PLUS
Mega Raichu YZap Cannon+ZAP_CANNON_PLUS
Mega SkarmoryDrill Peck+DRILL_PECK_PLUS
Mega StarmieLiquidation+LIQUIDATION_PLUS
Mega VictreebelAcid Spray+ACID_SPRAY_PLUS

Trainer Battle numbers

Every move carries two unrelated sets of numbers. The raid set comes from V####_MOVE_*; this one comes from a separate COMBAT_V####_MOVE_* template with its own power, its own energy, a turn count instead of a duration, and a stat-change block with no raid equivalent.

Moves with combat numbers
340
4 raid-only
Re-derived from the raw template
337
of 337 COMBAT_ templates
Mismatches
0
expected 0
Moves with a stat change
104
no raid equivalent
Turn length
0.5s
GM combatSettings
Stat stages
-4 to +4
GM combatStatStageSettings

npm run data:build makes a second pass over the raw Game Master, written independently of the pass that builds moves.json, and re-derives every move's power, energy, turn count and stat-change block from its own COMBAT_ template. That sweep covered 337 of 337 templates — including the ones with a numeric id instead of a name (Dynamax Cannon is uniqueId 482) and the thirteen Mega-exclusive moves that have no id at all — and found 0 disagreements. So nothing in the override, movepool-supplement or Mega-exclusive machinery downstream is quietly rewriting a Trainer Battle number.

Seventeen answers written down by hand, re-checked on this request

The build-time sweep above would not catch a bug in the sweep itself. These expected values were transcribed from the raw COMBAT_V####_MOVE_* templates by hand and are stored as literals in src/lib/data-fidelity/pokedex.ts; the page reads the same moves back out of moves.json and compares the strings. 17 / 17 match

MoveKindExpectedIn the snapshotStat changeResult
Counterfast8 / 6 / 2t8 / 6 / 2t-match
Mud Shotfast3 / 9 / 2t3 / 9 / 2t-match
Shadow Clawfast6 / 8 / 2t6 / 8 / 2t-match
Psycho Cutfast4 / 9 / 2t4 / 9 / 2t-match
Dragon Breathfast3 / 4 / 1t3 / 4 / 1t-match
Lock-Onfast1 / 5 / 1t1 / 5 / 1t-match
Moongeist Beamcharged135 / 65135 / 65-match
Sunsteel Strikecharged135 / 65135 / 65-match
Behemoth Bladecharged100 / 55100 / 55-match
Behemoth Bashcharged80 / 4580 / 45-match
Dynamax Cannoncharged80 / 4580 / 45-match
Techno Blast (Fire)charged120 / 55120 / 55-match
Power-Up Punchcharged20 / 3520 / 35Raises its own Attack by 1 stagematch
Wild Chargecharged100 / 45100 / 45Lowers its own Defense by 2 stagesmatch
Icy Windcharged60 / 4560 / 45Lowers the opponent's Attack by 1 stagematch
Acid Spraycharged20 / 4520 / 45Lowers the opponent's Defense by 2 stagesmatch
Aeroblastcharged170 / 75170 / 75Raises its own Attack by 2 stages (12.5% chance)match

Stat changes, by activation chance

104 moves raise or lower a stat, on either side of the battle. Each stage moves the stat along the ladder the Game Master ships — 0.50, 0.57, 0.67, 0.80, 1.00, 1.25, 1.50, 1.75, 2.00 for stages -4 to +4 — and every one carries an activation chance.

ChanceMovesFor example
100%62Acid Spray, Acid Spray+, Aqua Step, Aura Wheel (Dark)
50%10Bulldoze, Leaf Tornado, Luster Purge, Mist Ball
40%1Seed Flare
33%2Spirit Shackle, Zap Cannon
30%10Air Cutter, Bug Buzz, Freeze Shock, Ice Burn
20%3Crunch, Shadow Bone, Signal Beam
12.5%7Aeroblast, Aeroblast+, Aeroblast++, Crabhammer
10%9Ancient Power, Earth Power, Energy Ball, High Jump Kick

Two oddities in the source, left as the game ships them

  • 4 moves have no Trainer Battle template at all — CRUSH_CLAW, FISSURE, HORN_DRILL, LEECH_LIFE. All four are retired; the integrity list above checks that no released form can learn any of them, which is what makes the gap harmless rather than a hole.
  • Secret Sword ships an empty stat-change block ("buffs": {} with nothing in it). It is kept verbatim rather than deleted or turned into a phantom effect, and reads as "no stat change" everywhere on the site.

Spot check

Fifteen forms sampled evenly across the dex, so anyone can compare them with Pokebattler or GamePress in a minute.

#FormTypesAtk / Def / StaMax CPMoves
0006Mega Charizard XMega Charizard Xfire / dragon273 / 213 / 1864,3535f / 6c
0068MachampMachampfighting234 / 159 / 2073,4553f / 8c
0128Paldean Tauros (Blaze)Paldean Tauros (Blaze)fighting / fire210 / 193 / 1813,2073f / 4c
0198MurkrowMurkrowdark / flying175 / 87 / 1551,7662f / 3c
0267BeautiflyBeautiflybug / flying189 / 98 / 1551,9962f / 3c
0342CrawdauntCrawdauntwater / dark224 / 142 / 1602,7972f / 6c
0407RoseradeRoseradegrass / poison243 / 185 / 1553,3595f / 6c
0479Rotom (Fan)Rotom (Fan)electric / flying204 / 219 / 1372,9163f / 3c
0532TimburrTimburrfighting134 / 87 / 1811,4872f / 3c
0605ElgyemElgyempsychic148 / 100 / 1461,5662f / 3c
0670Mega Floette (Eternal Flower)Mega Floette (Eternal Flower)fairy309 / 264 / 1795,3222f / 3c
0734YungoosYungoosnormal122 / 56 / 1349942f / 3c
0792LunalaLunalapsychic / ghost255 / 191 / 2644,5703f / 4c
0871PincurchinPincurchinelectric176 / 161 / 1342,1833f / 3c
0945GrafaiaiGrafaiaipoison / normal199 / 149 / 1602,5593f / 4c

Artwork coverage

Every form carries a picture. The URL is resolved at build time against a live listing of the files that exist, so a page never renders a broken image.

1,155In-game icon for this exact form
1In-game icon for the species (form has none)
94Official artwork for this exact form
19Official artwork for the species
0No picture

First choice is Niantic's own in-game icon from the PokeMiners asset dump — the same picture Pokebattler renders. Species the dump has not published yet fall back to PokeAPI official artwork, and the detail page says which one it is showing.

Browse it yourself