Skip to content

issue: Cardmarket idProduct shared across unrelated cards — systematic report (commons inherit Shiny prices, promo blocks, ex2/ex4 mirror) #2201

Description

@marcelfmm-dotcom

Hi! First of all, thanks for TCGdex — it powers the pricing layer of a Brazilian collection site and works great overall.

While validating prices across the full catalog (~23,400 cards), I found that many unrelated cards share a single Cardmarket idProduct, producing absurd prices. This seems to be the systematic version of what #906, #1939 and #1941 report for individual cards. I verified the shared ids directly through the API:

Card A Card B Shared idProduct avg30
pl4-72 Ponyta (Common) pl4-SH11 Ponyta (Shiny) 278869 €60.34
sm12-66 Pikachu (Common) sm12-241 Pikachu (Secret) 398534 €137.12
xyp-XY101 Mewtwo xyp-XY107 Mewtwo EX 554275 €4,675
xyp-XY125 Mewtwo EX xyp-XY192 Mew 554275 €4,675
ex2-5 Flareon ex4-5 Team Aqua's Sharpedo 275782 €52.23

The patterns I could isolate:

1. Commons inheriting the set's Shiny/Secret product. The Platinum-era SH shinies and SM-era secret rares share their product with a regular common of the same Pokémon: pl4-72/74/52pl4-SH11/SH12/SH10, pl1-81/97/102pl1-SH4/SH5/SH6, pl3-7/8/9pl3-SH7/SH8/SH9, dp7-58/59/60/80/81dp7-SH1/SH2/SH3, sm12-54/66/68/76/96sm12-239/241/242/243/245, sm1-162≡168, sm1-163≡171. Result: bulk commons priced €25–€140.

2. One set mirrored onto another, number by number. ex2-N and ex4-N share products for 25+ numbers (2, 5–14, 16, 20, 24, 25, 31, 63, 72, 73, 94, 95, …) — completely different cards (see the Flareon/Sharpedo row above).

3. Promo sets: many cards → one product. Besides the xyp quartet above (all at €4,675!): xyp-XY203XY210 (7 cards, one price), xyp-XY64≡XY66≡XY73, and in swshp a 10-card cluster (SWSH020/039/063/143/145/153/198/234/285/286) plus several 4–5 card blocks (SWSH139–142, SWSH155–158, SWSH159–162+223).

4. Single cards mapped to an unrelated product. me02-014 Moltres (Phantasmal Flames, plain Rare) carries idProduct: 858503 at avg30 €17.46 with no TCGPlayer block — that places a bulk Rare above most Special Illustration Rares of its own set (the rest of me02 looks perfectly sane). Cross-set identical-price pairs suggest the same class: me01-163≡neo4-33, me01-136≡swsh12tg-TG07, me03-099≡ecard3-65, me04-104≡col1-27, me04-105≡sv06-225, me04-098≡swsh5-182. (#1939's swsh1-140 Snorlax also showed up in my sweep.)

How I found these: daily full-catalog collection through the API, then (a) clustering cards with byte-identical (trend, avg30) pairs and (b) flagging cards ≥15× the median of their own set+rarity group with no TCGPlayer price to corroborate — then confirming the shared idProduct via the API for the examples above. I have a machine-generated list of ~243 suspects (most falling into the patterns above) and I'm happy to share it or help test a fix.

Thanks again for the project!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions