Same SKU listed at materially different prices on OnBuy vs Amazon UK. MAP/brand-consistency risk.
At a glance
Count of SKUs that are listed on both OnBuy and Amazon UK but priced more than 15% apart. A brand-consistency and MAP-policy risk: if Amazon’s price-policing crawler spots the cheaper OnBuy listing, the merchant’s Amazon listing can be suppressed under “Featured Offer disqualification” rules, costing more revenue than the OnBuy listing makes.
| What it counts | COUNT(SKUs WHERE listed on both AND ABS(onbuy.price - amazon.price) / onbuy.price > 0.15). Drift is symmetric, OnBuy can be cheaper or more expensive; either direction triggers the count. |
| Direction skew | OnBuy is cheaper than Amazon for ~80% of drifted SKUs in our sample. OnBuy commission (5 to 9%) is lower than Amazon (15%), so merchants who simply pass commission savings through to price end up cheaper on OnBuy. This is the MAP risk vector. |
| Source data | OnBuy GET /v2/listings (current price field) joined to Amazon SP-API Listing.attributes.list_price for the UK marketplace A1F83G8C2ARO7P. |
| Match key precedence | (1) GTIN / EAN / UPC where available, (2) seller_sku, (3) manual ASIN cross-reference on the OnBuy listing. Match precision is the same as onbuy_xc_missing_on_onbuy. |
| Drift threshold | 15% absolute price gap. Below 15% is treated as normal price-discovery noise (rounding, occasional promo); above 15% is treated as a structural pricing issue requiring action. |
| Currency | GBP only on both sides. Non-GBP Amazon listings (e.g. on A1PA6795UKMFR9 for DE) are excluded. |
| What “drift” really measures | Price drift only, not title or image drift. Title and image divergence are surfaced separately under shopline_xc_catalogue_drift for the Shopline equivalent; OnBuy’s API does not yet expose image hashes for cross-channel comparison. |
| Time window | 30D rolling. Window is used to apply a stability filter, a SKU is only counted as drifted if its price gap has held >15% for at least 7 consecutive days, to avoid flagging deal-day fluctuations. |
| Alert trigger | >10 SKUs drifting >15%. The integer threshold reflects scale; 1 to 10 drifted SKUs is normal noise; above 10 is a process issue. |
| Roles | owner, marketing. |
| Only when | has_amazon_sibling = true. |
Calculation
Calculated automatically from your OnBuy data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A small UK kitchen-and-tableware seller, snapshot taken 27 Apr 26. The seller has 95 SKUs listed on OnBuy and 180 on Amazon UK. The matcher finds 78 SKUs listed on both. The drift comparison flags 14 SKUs above the 15% threshold:| SKU | OnBuy price | Amazon UK price | Gap | Cheaper on |
|---|---|---|---|---|
| KT-2104 (oak chopping board) | £18.99 | £24.99 | -24.0% | OnBuy |
| KT-2118 (linen tea-towel set) | £14.50 | £19.99 | -27.5% | OnBuy |
| KT-2202 (wooden serving platter) | £29.99 | £39.99 | -25.0% | OnBuy |
| KT-2450 (cast-iron skillet) | £42.00 | £52.00 | -19.2% | OnBuy |
| KT-3201 (ceramic mug, navy) | £8.99 | £11.99 | -25.0% | OnBuy |
| KT-3210 (ceramic mug, sage) | £8.99 | £12.50 | -28.1% | OnBuy |
| KT-3215 (espresso cups, set of 4) | £24.99 | £34.99 | -28.6% | OnBuy |
| KT-3224 (cereal bowl, set of 4) | £21.99 | £29.99 | -26.7% | OnBuy |
| KT-3301 (storage jar, large) | £16.99 | £19.99 | -15.0% | OnBuy (right at threshold) |
| KT-4102 (pasta bowl, white) | £39.99 | £29.99 | +33.3% | Amazon |
| (… 4 more rows …) |
Sibling cards merchants should reference together
This card is the marketplace-vs-marketplace pricing-discipline read. The natural pairings:| Card | Why it matters next to drift | What the combination tells you |
|---|---|---|
| Amazon UK Top SKUs Missing on OnBuy | The “what to add” twin. | Drift fixes the listings already shared; missing-on-OnBuy adds the ones not yet shared. The two cards together form a complete OnBuy catalogue audit. |
| OnBuy vs DTC Price Gap | The DTC twin. | If OnBuy is cheaper than both DTC and Amazon, the merchant is treating OnBuy as a deep-discount channel; rationalise pricing or accept the cannibalisation. |
| OnBuy Commission % of Revenue | The fee context. | OnBuy’s lower commission tempts merchants to drop OnBuy prices; this card shows when that habit has grown into a MAP risk. |
| Listings Discounted >20% | OnBuy-side discounting view. | If the same SKUs show on both this card and Listings Discounted, the price is structurally low on OnBuy, not just drifted vs Amazon. |
| Avg Discount vs RRP | The average view. | A high average discount on OnBuy with high drift count = OnBuy is the merchant’s discount channel by default. |
| Amazon UK Total Revenue | The downside risk. | Quantifies what is at stake if Amazon Buy Box gets suspended (typical 30 to 50% revenue hit per affected SKU). |
| OnBuy Total Revenue | The upside being chased. | Lets you size whether the additional OnBuy margin from being cheaper actually exceeds the Amazon risk (usually no). |
| Catalogue Drift vs Amazon (Shopline) | The DTC-Amazon twin of this card. | If both Shopline and OnBuy show drift vs Amazon, the merchant has a brand-wide MAP discipline issue, not OnBuy-specific. |
Reconciling against the vendor’s own dashboard
Where to look in OnBuy’s own dashboard: Neither OnBuy nor Amazon offer a built-in cross-channel pricing comparison; this is a Vortex IQ-only view. The closest manual workflow is:
OnBuy Seller Console (https://seller.onbuy.com) -> Listings -> All Listings (export CSV with prices)
Amazon Seller Central -> Inventory -> All Inventory (export “Active Listings Report” with prices)
Compare in Excel: VLOOKUP on EAN, calculate ABS(price_a - price_b) / price_a > 0.15.
Most merchants do not run this comparison until Amazon issues a “Fair Pricing” warning, at which point the listing is already suppressed and the revenue is already lost.
Why our number may legitimately differ from a manual comparison:
| Reason | Direction | Why |
|---|---|---|
| Stability filter | Ours lower | We require the >15% gap to hold for at least 7 consecutive days before counting. A manual snapshot will catch deal-day flash-sales that we filter out. |
| Match key precedence | Either | Manual comparisons usually match on seller-SKU; we match on EAN/UPC first. SKUs with EAN matches that have different SKU codes per channel are flagged by us but not by manual SKU-only comparison. |
| Variant rollup | Marginal | Amazon parent-ASINs with multiple child variants (size, colour) are flattened to per-variant rows; OnBuy listings are also per-variant. The variant tree shape matches in most categories but differs occasionally for apparel and footwear. |
| Time zone for “current price” | Marginal | Both sides update prices through the day; we snapshot at sync time (every 6h for prices). A manual export taken at a different time of day can show a slightly different gap on SKUs the merchant is actively repricing. |
| Promo eligibility | Either | Amazon “Buy Box” price often reflects an active promo discount that does not appear in the listing’s list_price field. Our matcher uses list_price not featured_offer_price, which can under-count drift if the merchant runs heavy Amazon Lightning Deals. |
| Restricted brand listings | Ours lower | Amazon listings restricted under a brand-registry policy (where the merchant cannot freely reprice) are excluded from drift detection because the merchant cannot act on them. |
onbuy_xc_catalogue_drift = COUNT(SKUs WHERE EXISTS(onbuy.listing) AND EXISTS(amazon.listing) AND ABS(onbuy.price - amazon.price) / onbuy.price > 0.15 AND drift_days_consecutive >= 7)
The drift count and the per-SKU drill-down are derived from the same join; the count should always equal the row count of the drill-down table.