The same EAN is not enough to pick the cheapest offer. First confirm that it designates exactly the same variant and the same commercial unit, then reduce each proposal to a landed unit cost in a comparable currency and tax basis. Add the mandatory packaging, the minimum order quantity, discounts that are actually accessible, shipping, and documented fees. Keep the price's freshness and the stock's level of proof separate. The winning supplier is not the one whose price column is lowest, but the one whose orderable offer has the best verifiable cost for your quantity, with an acceptable data risk.
Proving identity before comparing amounts
GS1 defines the GTIN as the identifier of a trade item. Differences in model, color, size, scent, weight, or presentation can lead to different references. Two rows carrying the same code but diverging titles should therefore trigger a review, not an automatic merge.
Start by preserving the source values: GTIN, supplier SKU, MPN, brand, title, variant, contained quantity, and image. Then recalculate the check digit using the GTIN validation method without false positives. A correct check digit only guarantees mathematical consistency. Also look for a brand and variant match against an authorized source.
The trickiest cases are lots. An EAN may identify a consumer unit, while the supplier requires purchasing a carton of several units. Another supplier might directly expose the carton's GTIN. Even if the products inside look identical, the rows do not necessarily represent the same trade item. Separate "offer GTIN," "units per pack," and "unit GTIN" when the documentation distinguishes them.
Building a truly comparable base
Create one row per offer and per order quantity studied. Do not overwrite the source price: add calculation columns. The following grid avoids most misleading comparisons.
| Element | Supplier A | Supplier B | Normalization rule |
|---|---|---|---|
| Identity | GTIN, SKU, variant | GTIN, SKU, variant | Match is mandatory |
| Source price | Amount and currency | Amount and currency | Raw value kept |
| Tax basis | Excl. VAT, incl. VAT, or unknown | Excl. VAT, incl. VAT, or unknown | Unknown = no merging |
| Sales unit | unit, pack, carton | unit, pack, carton | Convert only on proof |
| Order | MOQ and increment | MOQ and increment | Test the actually purchasable quantity |
| Stock | quantity or state | quantity or state | Never invent a quantity |
| Shipping | rate table or quote | rate table or quote | Allocate with a documented rule |
| Time | source date/time | source date/time | Compare freshness |
The European directive 98/6/EC defines, within its B2C scope, the selling price and the unit price as final prices including VAT and other charges. This reference helps explain why a common basis is essential, but it does not prove that a B2B wholesale catalog is tax-inclusive. The nature of the price must come from the contract, the invoice, or the documentation of each supplier.
A reproducible example with stated assumptions
Suppose, purely to illustrate the method, that offer A states EUR 48 excl. VAT for a carton explicitly made up of 12 units, with EUR 9 of allocated shipping. Its landed unit cost before other fees would be (48 + 9) / 12, i.e., EUR 4.75 excl. VAT. Suppose offer B states EUR 4.20 excl. VAT per unit, requires a minimum of 15 units, and charges EUR 12 shipping for this order. Its landed unit cost would be (4.20 × 15 + 12) / 15, i.e., EUR 5 excl. VAT.
B's displayed price is lower than EUR 4.75, but its hypothetical order ends up costing more per unit. This conclusion only holds for the quantities, taxes, and fees stated in the example. If shipping changes or if A imposes other fees, the result changes. The tiered discount and unit price calculations must therefore be redone for every realistic quantity.
For a foreign currency, keep the original amount, the currency, the rate source, its timestamp, and the actual cost charged by the payment provider. A reference rate is not necessarily a transaction rate. The final comparison should show both the normalized cost and its assumptions.
Factoring in stock without overstating what it proves
An exact, timestamped quantity is more informative than an InStock state, but it is not a reservation. Schema.org describes InStock as an indication that an item is in stock; this value does not contain a quantity. Two suppliers can therefore share the same status while presenting very different capacities.
Add a stock_proof_level field: exact_quantity, boolean_availability, lead_time, free_text, or unknown. Never convert InStock into 1, 10, or another convenience value. The full distinction between boolean stock and exact quantity must remain visible all the way through to the decision.
Freshness matters too. A price observed today and a stock level seen several days earlier do not form a coherent snapshot. Keep two timestamps if the supplier updates the fields separately. A slightly more expensive but recent, precisely documented offer may be preferable; that's a risk decision, not a universal truth.
Eight-step decision procedure
1. Validate the GTIN's format without concluding on identity too early. 2. Confirm brand, variant, presentation, and commercial unit. 3. Discard or flag for review any conflict in title, image, or packaging. 4. Identify the currency and the excl./incl. VAT nature of each price. 5. Apply the MOQ, order increment, and tier matching the studied quantity. 6. Calculate the landed unit cost with documented fees. 7. Show the stock's proof level and timestamp. 8. Keep all assumptions so the ranking can be reproduced.
A comparison should be able to answer the question: "Why is A ranked ahead of B for this quantity and on this date?" If the answer rests solely on a raw price difference, the model is incomplete.
Checklist before purchase
- The same GTIN designates the same variant and presentation.
- The check digits are valid and the match is proven.
- Prices are expressed on a compatible tax basis.
- The currency and conversion rate are traceable.
- The number of units per carton is explicit.
- The MOQ and order increment are applied.
- Shipping and fees come from a rate table or quote.
- Stock retains its real level of precision.
- Observation dates are visible.
- The result remains a controlled signal, not a promise of profit.
What ArbitragePro+ can automate / what the seller must verify
The proposed comparateur-fournisseurs specification could align offers whose identity is confirmed, calculate a unit cost under displayed assumptions, and flag incompatible tax bases, currencies, or packaging. It should never silently resolve a product conflict.
The seller must confirm the commercial terms, ordering rights, applicable VAT, actual fees, match quality, and availability at the time of purchase.
Review normalized offers
Access ArbitragePro+ supplier opportunities to review the available comparisons and their provenance data.
Official sources
- GS1, «Global Trade Item Number (GTIN)», https://www.gs1.org/standards/id-keys/gtin — accessed 2026-08-17.
- GS1 Support, «GS1 barcode commonly used for trade item identification», https://support.gs1.org/support/solutions/articles/43000734137-what-is-the-gs1-barcode-commonly-used-for-trade-item-identification- — accessed 2026-08-17.
- EUR-Lex, consolidated directive 98/6/EC on price indication, https://eur-lex.europa.eu/legal-content/FR/TXT/?uri=CELEX%3A01998L0006-20220528 — accessed 2026-08-17.
- Schema.org, «ItemAvailability», https://schema.org/ItemAvailability — accessed 2026-08-17.
