The problem
A single cosmetic variant family is sometimes split across several base_item groups, so a consumer asking "what other colours does this come in" gets a subset, with nothing to indicate the rest exist.
ADP-mk4 Core Righteous and ADP-mk4 Core Woodland are the same torso piece in different skins — same set_name, manufacturer, type and size — but land in different groups:
ADP-mk4 Core Righteous cds_armor_heavy_core_02_03_xenothreat base_item: ADP-mk4 Core (Modified)
ADP-mk4 Core Woodland cds_armor_heavy_core_01_01_01 base_item: itself
Counting conservatively — armor and clothing only, and only (set_name, type) pairs where every base item's name contains the set name, so groups contaminated by an unrelated product are excluded — 11 families are split this way, covering 144 items. The ADP-mk4 example above isn't in that count, because its group is also contaminated (see #202).
Two causes
1. The model index. The split tracks the first numeric group in class_name:
Morozov-SH Helmet rrs_specialist_heavy_helmet_01_01_* 13 items
Morozov-SH Helmet Redshift rrs_specialist_heavy_helmet_03_01_* 9 items
2. Token order in class_name. This one looks unambiguous — the same product, with two tokens transposed, lands in a different group:
Inquisitor Legs Base outlaw_legacy_armor_medium_legs_01_01_01 22 items
Inquisitor Legs Icefall outlaw_legacy_medium_armor_legs_01_02_01 7 items
Inquisitor Legs Neon Pink outlaw_legacy_medium_armor_legs_02_01_01 3 items
armor_medium versus medium_armor. The same transposition splits Inquisitor Arms into three groups too, and between them those two families are 62 of the 144 items.
Deriving the grouping key from something stable, or at minimum normalising token order, would fix case 2 outright.
Method
Full sweep on 18 September 2026:
GET /api/v2/items?limit=200&page=N&include=related_items&locale=en_EN
62 pages, 12,331 items. Counted (set_name, type) pairs in Char_* types spanning more than one base_item, keeping only those where every base item's name contains the set name, so groups contaminated by an unrelated product are excluded.
Also excluded: the seven items carrying _dmg in class_name, six of which are the Venture set and five of which share a display name with a pristine item. Those five split three further families on their own; including them the count would be 14 families and 228 items.
The problem
A single cosmetic variant family is sometimes split across several
base_itemgroups, so a consumer asking "what other colours does this come in" gets a subset, with nothing to indicate the rest exist.ADP-mk4 Core RighteousandADP-mk4 Core Woodlandare the same torso piece in different skins — sameset_name, manufacturer, type and size — but land in different groups:Counting conservatively — armor and clothing only, and only
(set_name, type)pairs where every base item's name contains the set name, so groups contaminated by an unrelated product are excluded — 11 families are split this way, covering 144 items. TheADP-mk4example above isn't in that count, because its group is also contaminated (see #202).Two causes
1. The model index. The split tracks the first numeric group in
class_name:2. Token order in
class_name. This one looks unambiguous — the same product, with two tokens transposed, lands in a different group:armor_mediumversusmedium_armor. The same transposition splitsInquisitor Armsinto three groups too, and between them those two families are 62 of the 144 items.Deriving the grouping key from something stable, or at minimum normalising token order, would fix case 2 outright.
Method
Full sweep on 18 September 2026:
62 pages, 12,331 items. Counted
(set_name, type)pairs inChar_*types spanning more than onebase_item, keeping only those where every base item's name contains the set name, so groups contaminated by an unrelated product are excluded.Also excluded: the seven items carrying
_dmginclass_name, six of which are the Venture set and five of which share a display name with a pristine item. Those five split three further families on their own; including them the count would be 14 families and 228 items.