-
Notifications
You must be signed in to change notification settings - Fork 0
IV Calculator
The IV Calculator at /iv finds every possible individual value (IV) spread for a Pokémon given its CP, HP, stardust upgrade cost, and optionally its appraisal rating. Guests can use the Manual tab freely; logged-in users also get a Screenshot tab (OCR scan) and a saved Pokémon box.
- Search for a Pokémon by name with the sprite picker.
- Enter the CP and HP shown on the Pokémon's summary screen.
- Select the Stardust Cost shown on the Power Up button.
- Set your Trainer Level. This caps the maximum level the Pokémon can be at (wild catches are capped at trainer level + 2). For logged-in users this is pre-filled from your profile.
- Optionally pick the Top Stat shown in the appraisal screen (Attack / Defense / Stamina) and the Appraisal Rating (0--3 stars). Both narrow the candidate pool; leaving either on "Unknown / Skip" keeps all possibilities.
- Hit Find IVs.
The results table lists every matching spread sorted by IV percentage (descending), then level (ascending). If only one spread matches the row is highlighted and labelled "Definitive". Each row shows ATK / DEF / STA / Level / IV% / CP / HP.
Logged-in users see a Save to Box button per row. Clicking it saves that specific spread (including the full candidate set) to your Pokémon box for later reference.
Upload a JPEG or PNG screenshot of the Pokémon's stats screen. The backend runs OCR via Tesseract to extract CP, HP, stardust cost, and the Pokémon name, then returns the same candidates table as the Manual tab. You can still save to box from the results.
OCR accuracy depends on screenshot quality; the screenshot should be taken directly from the game (not a photo of the screen). If no match is found, switch to the Manual tab and enter the values manually.
A paginated list of every Pokémon you have saved (most recent first). Displays name, form, level, IV percentage, and CP. Each entry has a Delete button; deletion is immediate and permanent. The box header shows your current count against the 3000-entry limit.
Each account can store up to 3000 Pokémon. Attempting to save a 3001st returns HTTP 409 with {"error": "box is full (3000 Pokémon limit)"}. Delete old entries to free up space.
The page is ts/iv.ts; the calculation logic lives entirely on the server in internal/handlers/iv.go.
How candidates are found. enumerateIVs walks all 4096 IV combinations (ATK 0--15, DEF 0--15, STA 0--15) and every half-level from the dust bracket's minimum to min(dust_bracket_max, trainer_level + 2). For each combination it computes:
CP = max(10, floor((baseAtk + atkIV) * sqrt(baseDef + defIV) * sqrt(baseSta + staIV) * cpm^2 / 10))
HP = max(10, floor((baseSta + staIV) * cpm))
A combination is kept when both CP and HP match the input exactly AND the IV sum falls in the appraisal star range AND the top-stat constraint holds. Results are sorted by IV% descending then level ascending.
Dust brackets. Each bracket maps to a level range; a Pokémon's stardust upgrade cost tells you which range it falls in. 10 000 dust covers two adjacent ranges; the enumerator tests both. Levels go up in 0.5 steps from 1.0 to 50.0.
Base stats and CP multipliers. Pulled from the PoGoAPI game data blob that is refreshed in the background (see Data Sources). The same data powers the DPS Calculator and the counter rankings on Raids and Counters.
Authentication. The POST /api/iv/calculate endpoint accepts unauthenticated requests so the Manual tab works for guests. OCR (POST /api/iv/ocr) and box operations require a session cookie or Bearer token. See API Reference for the full endpoint list.
Repository | Live site | hailsDotGO is a fan-made project, not affiliated with, endorsed by, or connected to Niantic or The Pokémon Company. Game data comes from community sources credited on the Data Sources page.
Start Here
Features
- Raids and Counters
- DPS Calculator
- IV Calculator
- PvP IV Ranker
- Events
- Shiny Tracking
- Trainer Directory
- Raid Finder
- Social Features
- Trust and Awards
- Bug Reports
- Player Reports
- Store
- Accounts and Roles
- Admin Guide
Self-Hosting
Development
Translations