Same MPN, Different Pack Sizes: When Two Supplier SKUs Must Not Be Merged
Two supplier SKUs can share one manufacturer part number and still be different trade items. How pack hierarchy, GTIN, unit of measure and supplier offers decide merge, keep separate, or review.
A shared manufacturer part number proves the part is the same. It does not prove the sellable unit is the same. When two supplier SKUs share an MPN but differ in pack quantity, link them (SAME_UNDERLYING_PART in editorial terms, PACK_OF in the Claro vocabulary) and keep them as separate records. Merge only when manufacturer, MPN, pack level and unit of measure all agree.
Deduplication rules that key on manufacturer plus MPN are fast and usually right. They are wrong in one common case: the supplier sells the same part as a single unit, a box and a case, all quoted under one MPN. A rule that treats MPN equality as identity collapses three different things you can buy into one record.
This guide is about that single decision. For the surrounding process (candidates, confidence bands, review queues) see the deduplication playbook; it is not repeated here.
Three layers that one SKU mixes together
| Layer | Question it answers | Typical fields |
|---|---|---|
| Manufacturer part identity | Which part does the maker call this? | Manufacturer, MPN, revision |
| Trade item | Which packaged thing is bought and sold? | GTIN, pack level, quantity per pack, unit of measure |
| Supplier offer | What does this supplier charge, stock and ship? | Supplier SKU, price, price basis, lead time, minimum order |
A supplier SKU is a key in the third layer. Matching on MPN reaches the first layer. The error comes from letting a first-layer match decide a second-layer question.
What GS1 says about pack levels
GS1 assigns the GTIN to the trade item, and a trade item exists at each packaging level. Two statements from GS1’s published rules matter here:
- The GTIN Management Standard says a unique GTIN is assigned at every level of the packaging hierarchy above the retail consumer trade item / base unit level.
- Its pack/case quantity rule says a change to the number of trade items in a case, or to the number of cases in a predefined pallet configuration, requires a new GTIN.
Sources: GS1 GTIN Management Standard and GS1 pack/case quantity rule.
What this does and does not tell you:
- If both records carry correct, distinct GTINs, the pack difference is already encoded and the GTINs are strong evidence to keep separate.
- GS1 rules bind the GTIN holder, not every supplier SKU. A supplier can sell a case under a SKU with no GTIN, or reuse the single-unit GTIN on the case row. That is a data defect to review, not evidence of identity.
- Never infer “same trade item” from “same MPN”. Read the GTIN, MPN and SKU comparison for what each identifier proves.
Three illustrative records
Manufacturer “Acme Fluid Co” and part number AF-1042 are fictional.
| Field | Record A (Supplier 1) | Record B (Supplier 1) | Record C (Supplier 2) |
|---|---|---|---|
| Supplier SKU | S1-1042 | S1-1042-C10 | S2-AF1042 |
| Manufacturer | Acme Fluid Co | Acme Fluid Co | Acme Fluid Co |
| MPN | AF-1042 | AF-1042 | AF 1042 |
| GTIN | (synthetic) 04000000000011 | (synthetic) 14000000000018 | (missing) |
| Pack level | each | case | each |
| Quantity per pack | 1 | 10 | 1 |
| Unit of measure | EA | CS | EA |
| Price | 12.40 per EA | 112.00 per CS | 11.90 per EA |
Pairwise:
- A vs B: same part, different trade item. Keep separate, relate as pack and base unit.
- A vs C: same part, same pack level and unit of measure. C has no GTIN, but manufacturer, normalized MPN and pack agree. Merge as the same trade item and keep two supplier offers.
- B vs C: same part, different pack level. Keep separate.
Editorial labels mapped to the repo vocabulary
| Editorial label | Claro relationship | Applies to |
|---|---|---|
| SAME_TRADE_ITEM | SAME_AS | A and C (merge, two offers) |
| SAME_UNDERLYING_PART | PACK_OF (with quantity), not SAME_AS | B to A, B to C |
| OFFER / PACKAGING_RELATIONSHIP | SUPPLIED_BY and PACK_OF | Price and stock per supplier and pack level |
| UNKNOWN | Unresolved, send to review | Any pair where pack evidence is missing or conflicting |
The labels on the left are conceptual. The edges on the right are the ones defined in Product Relationship Types.
Before and after
Input, as three supplier rows (illustrative / synthetic):
supplier,supplier_sku,manufacturer,mpn,gtin,pack_level,qty_per_pack,uom,price,price_basis
Supplier 1,S1-1042,Acme Fluid Co,AF-1042,04000000000011,each,1,EA,12.40,per EA
Supplier 1,S1-1042-C10,Acme Fluid Co,AF-1042,14000000000018,case,10,CS,112.00,per CS
Supplier 2,S2-AF1042,Acme Fluid Co,AF 1042,,each,1,EA,11.90,per EA
Naive MPN-only merge (wrong): all three rows collapse into one product, and the case price of 112.00 is read as a unit price or averaged with 12.40.
After a pack-aware decision (illustrative / synthetic):
canonical_id,trade_item_level,qty_per_pack,source_skus,relationship,decision
CP-AF1042-EA,each,1,"S1-1042;S2-AF1042",SAME_AS,MERGE
CP-AF1042-CS10,case,10,"S1-1042-C10",PACK_OF CP-AF1042-EA x10,KEEP_SEPARATE
Both original supplier rows survive as source records, and each keeps its own price and unit of measure. Price per unit for the case is derived (112.00 / 10 = 11.20 per EA) and shown as a derived value, not stored as the supplier’s price.
Decision matrix
| Manufacturer + MPN | Pack level and qty | GTIN | Unit of measure | Decision |
|---|---|---|---|---|
| Match | Match | Match or one missing | Match | MERGE (same trade item, keep both offers) |
| Match | Differ | Differ or one missing | Differ or implied | KEEP_SEPARATE, link with PACK_OF and quantity |
| Match | Differ | Identical GTIN on both | Any | REVIEW (a GTIN should not repeat across pack levels; one record is wrong) |
| Match | One side missing or unparseable | Any | Unknown | REVIEW (read the description and supplier price basis first) |
| Match | Match | Differ | Match | REVIEW (same pack on paper but different GTINs; check revision, region or packaging change) |
| Differ | Any | Any | Any | Not decided by this guide; use the normal matching process |
Descriptions often hide the pack: “box of 10”, “10/CS”, “pkg 10”, “per 100”. Extract these into explicit fields first, and treat a price basis you cannot read as a reason for review rather than a guess. Unit of measure covers the code conventions.
What a false merge costs
- Price: a case price read as a unit price makes a supplier look ten times more expensive, or a unit price applied to a case makes it look cheap. Supplier comparisons and margin reports turn unreliable.
- Fulfilment: an order for one can ship as ten, or the reverse. Stock counts mix eaches and cases.
- Downstream: one wrong merged record is copied into webshop, ERP and marketplace feeds.
- Recovery: unmerging after orders reference the merged identity is slower than keeping the records apart.
Checking a pair in practice
- Run the two rows through the product record diff and look for pack, quantity and unit-of-measure differences, not just MPN.
- Use the duplicate SKU finder to surface candidate pairs, then apply the matrix above to each.
- Write the decision with its evidence, including the negative one (“different pack level, quantity 1 vs 10”), so the pair is not re-reviewed.
Source and evidence
- GTIN rules: GS1 GTIN Management Standard and pack/case quantity rule (links above). See the Needs review note.
- Relationship vocabulary: Product Relationship Types and Variant vs Duplicate vs Replacement.
- All example records are illustrative / synthetic and make no claim about any real product, supplier or price.
Related
Playbook
Deduplicate a Product Catalog
The full matching and review process.
Guide
Product Relationship Types
SAME_AS, PACK_OF and the rest.
Glossary
Unit of Measure
EA, CS and price basis.
Tool
Product Record Diff
Compare two records field by field.
Tool
Duplicate SKU Finder
Surface candidate pairs.
Comparison
6205-2RS vs 6205-2Z
A different near-miss: same size, different specification.
FAQ
Can two SKUs have the same MPN and still be different products?
Does a different pack size always need a different GTIN?
How should a pack record be linked to its single unit?
What happens if a case and a single unit are merged by mistake?
Claro
See where your catalog breaks — free
Claro runs this automatically: resolve identity, fill missing attributes, validate updates, and write clean records back into your PIM/ERP. Upload a sample supplier file for a free catalog audit.
Get a free catalog audit