From 00ed0a1cbde87041fe574ddd54e125e73dd0ed86 Mon Sep 17 00:00:00 2001 From: Julian Tabel Date: Sat, 14 Feb 2026 22:15:01 +0100 Subject: [PATCH] Remove erroneous gift encounters from Sword/Shield seed data Wild Pokemon on 6 locations were incorrectly duplicated as gift encounters by the PokeDB export. Removed 39 from Sword and 40 from Shield, preserving legitimate gifts (starters, fossils, Type Null, Kubfu, etc.). Resolves beans-cdmx. Co-Authored-By: Claude Opus 4.6 --- ...ordshield-encounter-data-wild-pokemon-i.md | 19 +- backend/src/app/seeds/data/shield.json | 320 ------------------ backend/src/app/seeds/data/sword.json | 312 ----------------- 3 files changed, 12 insertions(+), 639 deletions(-) diff --git a/.beans/nuzlocke-tracker-cdmx--clean-up-swordshield-encounter-data-wild-pokemon-i.md b/.beans/nuzlocke-tracker-cdmx--clean-up-swordshield-encounter-data-wild-pokemon-i.md index 429a254..b7743a0 100644 --- a/.beans/nuzlocke-tracker-cdmx--clean-up-swordshield-encounter-data-wild-pokemon-i.md +++ b/.beans/nuzlocke-tracker-cdmx--clean-up-swordshield-encounter-data-wild-pokemon-i.md @@ -1,10 +1,11 @@ --- # nuzlocke-tracker-cdmx title: 'Clean up Sword/Shield encounter data: wild Pokemon incorrectly listed as gifts' -status: todo +status: in-progress type: bug +priority: normal created_at: 2026-02-14T19:56:12Z -updated_at: 2026-02-14T19:56:12Z +updated_at: 2026-02-14T21:14:38Z --- ## Problem @@ -15,10 +16,14 @@ In the Sword and Shield seed data, wild Pokemon on almost all encounter location Investigate why the PokeDB export produced duplicate gift entries for wild encounters, then clean up the data so that only genuine gifts are listed as gifts. +## Findings + +The PokeDB export duplicated walk encounters as gift encounters on 6 locations in each game. The affected locations were: Route 1 (Galar), Galar Mine, Motostoke Outskirts, Route 6 (Galar), Glimwood Tangle, and Route 7 (Galar). Route 6 also had legitimate fossil gifts (Arctovish, Arctozolt, Dracovish, Dracozolt) which were preserved. + ## Checklist -- [ ] Investigate the PokeDB export logic to understand why wild Pokemon are being duplicated as gifts -- [ ] Identify which encounters are legitimately gifts vs incorrectly tagged -- [ ] Remove erroneous gift entries from Sword seed data -- [ ] Remove erroneous gift entries from Shield seed data -- [ ] Verify remaining gift encounters are accurate \ No newline at end of file +- [x] Investigate the PokeDB export logic to understand why wild Pokemon are being duplicated as gifts +- [x] Identify which encounters are legitimately gifts vs incorrectly tagged +- [x] Remove erroneous gift entries from Sword seed data (39 removed) +- [x] Remove erroneous gift entries from Shield seed data (40 removed) +- [x] Verify remaining gift encounters are accurate \ No newline at end of file diff --git a/backend/src/app/seeds/data/shield.json b/backend/src/app/seeds/data/shield.json index ae3778d..cda32f2 100644 --- a/backend/src/app/seeds/data/shield.json +++ b/backend/src/app/seeds/data/shield.json @@ -57,38 +57,6 @@ "min_level": 3, "max_level": 6 }, - { - "pokeapi_id": 163, - "pokemon_name": "Hoothoot", - "method": "gift", - "encounter_rate": 28, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 736, - "pokemon_name": "Grubbin", - "method": "gift", - "encounter_rate": 25, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 10, - "pokemon_name": "Caterpie", - "method": "gift", - "encounter_rate": 22, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 824, - "pokemon_name": "Blipbug", - "method": "gift", - "encounter_rate": 15, - "min_level": 2, - "max_level": 5 - }, { "pokeapi_id": 10, "pokemon_name": "Caterpie", @@ -105,14 +73,6 @@ "min_level": 3, "max_level": 6 }, - { - "pokeapi_id": 819, - "pokemon_name": "Skwovet", - "method": "gift", - "encounter_rate": 11, - "min_level": 2, - "max_level": 5 - }, { "pokeapi_id": 736, "pokemon_name": "Grubbin", @@ -5491,54 +5451,6 @@ "min_level": 11, "max_level": 14 }, - { - "pokeapi_id": 532, - "pokemon_name": "Timburr", - "method": "gift", - "encounter_rate": 22, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 529, - "pokemon_name": "Drilbur", - "method": "gift", - "encounter_rate": 19, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 527, - "pokemon_name": "Woobat", - "method": "gift", - "encounter_rate": 19, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 50, - "pokemon_name": "Diglett", - "method": "gift", - "encounter_rate": 17, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 524, - "pokemon_name": "Roggenrola", - "method": "gift", - "encounter_rate": 11, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 837, - "pokemon_name": "Rolycoly", - "method": "gift", - "encounter_rate": 11, - "min_level": 11, - "max_level": 15 - }, { "pokeapi_id": 50, "pokemon_name": "Diglett", @@ -6390,22 +6302,6 @@ "min_level": 22, "max_level": 26 }, - { - "pokeapi_id": 859, - "pokemon_name": "Impidimp", - "method": "gift", - "encounter_rate": 28, - "min_level": 21, - "max_level": 24 - }, - { - "pokeapi_id": 833, - "pokemon_name": "Chewtle", - "method": "gift", - "encounter_rate": 25, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 624, "pokemon_name": "Pawniard", @@ -6414,14 +6310,6 @@ "min_level": 21, "max_level": 24 }, - { - "pokeapi_id": 624, - "pokemon_name": "Pawniard", - "method": "gift", - "encounter_rate": 20, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 109, "pokemon_name": "Koffing", @@ -6430,22 +6318,6 @@ "min_level": 22, "max_level": 26 }, - { - "pokeapi_id": 524, - "pokemon_name": "Roggenrola", - "method": "gift", - "encounter_rate": 15, - "min_level": 21, - "max_level": 24 - }, - { - "pokeapi_id": 453, - "pokemon_name": "Croagunk", - "method": "gift", - "encounter_rate": 13, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 833, "pokemon_name": "Chewtle", @@ -11326,54 +11198,6 @@ "min_level": 28, "max_level": 30 }, - { - "pokeapi_id": 701, - "pokemon_name": "Hawlucha", - "method": "gift", - "encounter_rate": 16, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 632, - "pokemon_name": "Durant", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 449, - "pokemon_name": "Hippopotas", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 324, - "pokemon_name": "Torkoal", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 451, - "pokemon_name": "Skorupi", - "method": "gift", - "encounter_rate": 13, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 355, - "pokemon_name": "Duskull", - "method": "gift", - "encounter_rate": 11, - "min_level": 28, - "max_level": 30 - }, { "pokeapi_id": 118, "pokemon_name": "Goldeen", @@ -11382,14 +11206,6 @@ "min_level": 28, "max_level": 30 }, - { - "pokeapi_id": 631, - "pokemon_name": "Heatmor", - "method": "gift", - "encounter_rate": 10, - "min_level": 28, - "max_level": 30 - }, { "pokeapi_id": 449, "pokemon_name": "Hippopotas", @@ -11414,14 +11230,6 @@ "min_level": 28, "max_level": 30 }, - { - "pokeapi_id": 843, - "pokemon_name": "Silicobra", - "method": "gift", - "encounter_rate": 8, - "min_level": 28, - "max_level": 30 - }, { "pokeapi_id": 632, "pokemon_name": "Durant", @@ -11482,14 +11290,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 854, - "pokemon_name": "Sinistea", - "method": "gift", - "encounter_rate": 22, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 860, "pokemon_name": "Morgrem", @@ -11506,14 +11306,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 10186, - "pokemon_name": "Indeedee (Female)", - "method": "gift", - "encounter_rate": 11, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 857, "pokemon_name": "Hattrem", @@ -11522,22 +11314,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 857, - "pokemon_name": "Hattrem", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 765, - "pokemon_name": "Oranguru", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 708, "pokemon_name": "Phantump", @@ -11546,14 +11322,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 708, - "pokemon_name": "Phantump", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 10162, "pokemon_name": "Ponyta (Galar)", @@ -11562,14 +11330,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 10162, - "pokemon_name": "Ponyta (Galar)", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 682, "pokemon_name": "Spritzee", @@ -11578,14 +11338,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 682, - "pokemon_name": "Spritzee", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 765, "pokemon_name": "Oranguru", @@ -11594,22 +11346,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 756, - "pokemon_name": "Shiinotic", - "method": "gift", - "encounter_rate": 9, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 860, - "pokemon_name": "Morgrem", - "method": "gift", - "encounter_rate": 8, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 10186, "pokemon_name": "Indeedee (Female)", @@ -11748,62 +11484,6 @@ "min_level": 37, "max_level": 41 }, - { - "pokeapi_id": 588, - "pokemon_name": "Karrablast", - "method": "gift", - "encounter_rate": 17, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 537, - "pokemon_name": "Seismitoad", - "method": "gift", - "encounter_rate": 17, - "min_level": 28, - "max_level": 40 - }, - { - "pokeapi_id": 510, - "pokemon_name": "Liepard", - "method": "gift", - "encounter_rate": 16, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 10025, - "pokemon_name": "Meowstic (Female)", - "method": "gift", - "encounter_rate": 16, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 823, - "pokemon_name": "Corviknight", - "method": "gift", - "encounter_rate": 12, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 616, - "pokemon_name": "Shelmet", - "method": "gift", - "encounter_rate": 11, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 848, - "pokemon_name": "Toxel", - "method": "gift", - "encounter_rate": 11, - "min_level": 36, - "max_level": 40 - }, { "pokeapi_id": 686, "pokemon_name": "Inkay", diff --git a/backend/src/app/seeds/data/sword.json b/backend/src/app/seeds/data/sword.json index ce1c7a7..cc66a60 100644 --- a/backend/src/app/seeds/data/sword.json +++ b/backend/src/app/seeds/data/sword.json @@ -65,38 +65,6 @@ "min_level": 3, "max_level": 6 }, - { - "pokeapi_id": 163, - "pokemon_name": "Hoothoot", - "method": "gift", - "encounter_rate": 28, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 736, - "pokemon_name": "Grubbin", - "method": "gift", - "encounter_rate": 25, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 10, - "pokemon_name": "Caterpie", - "method": "gift", - "encounter_rate": 22, - "min_level": 2, - "max_level": 5 - }, - { - "pokeapi_id": 824, - "pokemon_name": "Blipbug", - "method": "gift", - "encounter_rate": 15, - "min_level": 2, - "max_level": 5 - }, { "pokeapi_id": 10, "pokemon_name": "Caterpie", @@ -113,14 +81,6 @@ "min_level": 3, "max_level": 6 }, - { - "pokeapi_id": 819, - "pokemon_name": "Skwovet", - "method": "gift", - "encounter_rate": 11, - "min_level": 2, - "max_level": 5 - }, { "pokeapi_id": 736, "pokemon_name": "Grubbin", @@ -5499,54 +5459,6 @@ "min_level": 11, "max_level": 14 }, - { - "pokeapi_id": 524, - "pokemon_name": "Roggenrola", - "method": "gift", - "encounter_rate": 22, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 529, - "pokemon_name": "Drilbur", - "method": "gift", - "encounter_rate": 19, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 527, - "pokemon_name": "Woobat", - "method": "gift", - "encounter_rate": 19, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 50, - "pokemon_name": "Diglett", - "method": "gift", - "encounter_rate": 17, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 837, - "pokemon_name": "Rolycoly", - "method": "gift", - "encounter_rate": 11, - "min_level": 11, - "max_level": 15 - }, - { - "pokeapi_id": 532, - "pokemon_name": "Timburr", - "method": "gift", - "encounter_rate": 11, - "min_level": 11, - "max_level": 15 - }, { "pokeapi_id": 50, "pokemon_name": "Diglett", @@ -6414,22 +6326,6 @@ "min_level": 22, "max_level": 26 }, - { - "pokeapi_id": 859, - "pokemon_name": "Impidimp", - "method": "gift", - "encounter_rate": 28, - "min_level": 21, - "max_level": 24 - }, - { - "pokeapi_id": 833, - "pokemon_name": "Chewtle", - "method": "gift", - "encounter_rate": 25, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 624, "pokemon_name": "Pawniard", @@ -6438,14 +6334,6 @@ "min_level": 21, "max_level": 24 }, - { - "pokeapi_id": 624, - "pokemon_name": "Pawniard", - "method": "gift", - "encounter_rate": 20, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 109, "pokemon_name": "Koffing", @@ -6454,22 +6342,6 @@ "min_level": 22, "max_level": 26 }, - { - "pokeapi_id": 524, - "pokemon_name": "Roggenrola", - "method": "gift", - "encounter_rate": 15, - "min_level": 21, - "max_level": 24 - }, - { - "pokeapi_id": 559, - "pokemon_name": "Scraggy", - "method": "gift", - "encounter_rate": 13, - "min_level": 21, - "max_level": 24 - }, { "pokeapi_id": 833, "pokemon_name": "Chewtle", @@ -11342,62 +11214,6 @@ "min_level": 28, "max_level": 30 }, - { - "pokeapi_id": 701, - "pokemon_name": "Hawlucha", - "method": "gift", - "encounter_rate": 16, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 631, - "pokemon_name": "Heatmor", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 449, - "pokemon_name": "Hippopotas", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 324, - "pokemon_name": "Torkoal", - "method": "gift", - "encounter_rate": 15, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 451, - "pokemon_name": "Skorupi", - "method": "gift", - "encounter_rate": 13, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 355, - "pokemon_name": "Duskull", - "method": "gift", - "encounter_rate": 11, - "min_level": 28, - "max_level": 30 - }, - { - "pokeapi_id": 632, - "pokemon_name": "Durant", - "method": "gift", - "encounter_rate": 10, - "min_level": 28, - "max_level": 30 - }, { "pokeapi_id": 118, "pokemon_name": "Goldeen", @@ -11430,14 +11246,6 @@ "min_level": 28, "max_level": 30 }, - { - "pokeapi_id": 843, - "pokemon_name": "Silicobra", - "method": "gift", - "encounter_rate": 8, - "min_level": 28, - "max_level": 30 - }, { "pokeapi_id": 610, "pokemon_name": "Axew", @@ -11498,14 +11306,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 854, - "pokemon_name": "Sinistea", - "method": "gift", - "encounter_rate": 25, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 860, "pokemon_name": "Morgrem", @@ -11530,46 +11330,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 876, - "pokemon_name": "Indeedee Male", - "method": "gift", - "encounter_rate": 13, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 766, - "pokemon_name": "Passimian", - "method": "gift", - "encounter_rate": 12, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 708, - "pokemon_name": "Phantump", - "method": "gift", - "encounter_rate": 11, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 684, - "pokemon_name": "Swirlix", - "method": "gift", - "encounter_rate": 11, - "min_level": 34, - "max_level": 36 - }, - { - "pokeapi_id": 857, - "pokemon_name": "Hattrem", - "method": "gift", - "encounter_rate": 10, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 708, "pokemon_name": "Phantump", @@ -11586,14 +11346,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 860, - "pokemon_name": "Morgrem", - "method": "gift", - "encounter_rate": 9, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 766, "pokemon_name": "Passimian", @@ -11602,14 +11354,6 @@ "min_level": 34, "max_level": 36 }, - { - "pokeapi_id": 756, - "pokemon_name": "Shiinotic", - "method": "gift", - "encounter_rate": 9, - "min_level": 34, - "max_level": 36 - }, { "pokeapi_id": 876, "pokemon_name": "Indeedee Male", @@ -11748,62 +11492,6 @@ "min_level": 37, "max_level": 41 }, - { - "pokeapi_id": 537, - "pokemon_name": "Seismitoad", - "method": "gift", - "encounter_rate": 17, - "min_level": 28, - "max_level": 40 - }, - { - "pokeapi_id": 616, - "pokemon_name": "Shelmet", - "method": "gift", - "encounter_rate": 17, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 510, - "pokemon_name": "Liepard", - "method": "gift", - "encounter_rate": 16, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 678, - "pokemon_name": "Meowstic Male", - "method": "gift", - "encounter_rate": 16, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 823, - "pokemon_name": "Corviknight", - "method": "gift", - "encounter_rate": 12, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 588, - "pokemon_name": "Karrablast", - "method": "gift", - "encounter_rate": 11, - "min_level": 36, - "max_level": 40 - }, - { - "pokeapi_id": 848, - "pokemon_name": "Toxel", - "method": "gift", - "encounter_rate": 11, - "min_level": 36, - "max_level": 40 - }, { "pokeapi_id": 686, "pokemon_name": "Inkay",