Playbook · Shopify compare-at / sale badge wrong
Shopify compare-at / sale badge wrong — wrong % off, stale Sale, Markets mismatch.
Written for a Shopify DTC owner whose compare-at / sale badge mounts but shows the wrong discount — incorrect percent-off, a Sale label on a full-price variant, or a Markets storefront compare-at that does not match admin. DIY-first: prove admin compare_at_price vs price, prove the badge formula, then isolate Markets presentment, sale-badge apps, and theme Liquid. Distinct from compare-at price / sale badge missing, quantity breaks not showing, unit price not showing, and B2B catalog prices wrong. Soft-link compare-at-price-not-showing when the strikethrough or Sale badge never mounts at all. Soft-link countdown-timer-not-showing when the sale clock is the broken surface, not the badge math. No earnings claims, no invented case studies.
Nico at Latch AI Ops · Sep 10, 2026 · ~12 minute read
Buy the 72-hour install — $997Compare-at missingQuantity breaksMerchant FAQ
01
Compare-at / sale badge wrong — not missing badge, quantity breaks, unit price, B2B catalog.
Several products can look like “the sale price looks off.” They do not share a settings panel. This page is only when a Sale / % off / was-now badge mounts but the label or math is wrong. When the strikethrough or badge never appears, use compare-at-price-not-showing. Volume / Buy X Get Y UI that never mounts is quantity-breaks-not-showing. Price-per-unit missing is unit-price-not-showing. Logged-in company catalog prices wrong are b2b-catalog-prices-wrong. Soft-link currency-converter-wrong when every price (not only the badge) is in the wrong currency.
02
Prove admin Compare at vs Price vs the storefront badge percent.
On the Current theme live PDP (not only Theme editor Preview), note the sale price, the strikethrough compare-at, and any Save X% / Sale badge. In admin Products → the same variant, read Compare at price and Price. Percent-off should be roughly (compare_at − price) / compare_at. If admin says $100 → $80 (20% off) and the badge says 50% or still says Sale after you cleared Compare at, you have a wrong badge problem — stay on this page. Also check a collection card: some themes hard-code product-level compare-at while the selected variant is full price. View source / Inspect for .badge--sale, .price--on-sale, or app-injected badge nodes that ignore variant JSON.
03
Markets presentment, currency converter, market-specific compare-at.
Markets can set country-specific prices and compare-at that differ from the primary market. Test with a VPN or market selector matching the country you care about. If the badge uses shop money without presentment conversion, % off can look wrong even when both prices are “correct” in admin for that market. A third-party currency converter that rewrites only the selling price (not compare-at) produces a fake discount — see currency-converter-wrong. Tax-inclusive display vs exclusive compare-at can also skew the badge; see tax-inclusive-pricing-wrong. Confirm you are not looking at a B2B catalog price list — that path is b2b-catalog-prices-wrong.
04
Sale-badge apps fighting Liquid, wrong formula, stale badge on variant change.
Sale-badge / discount-label apps often inject a second badge with their own formula (round up, floor, “up to” max variant %). Two badges with different numbers means app vs theme conflict — disable App embeds one at a time on a duplicate theme. Theme Liquid that uses product.compare_at_price (product-level max) instead of variant.compare_at_price shows Sale on variants that are not on sale. On option change, if price updates but the badge does not clear, that is stale badge JS — related to but not the same as variant-picker-not-updating (price/image stuck). Soft-link countdown-timer-not-showing when a sale timer app is driving fake urgency next to a wrong badge. Soft-link announcement-bar-not-showing when the promo bar copy disagrees with the PDP badge — fix the badge math first if admin compare-at is the source of truth.
05
You tested missing compare-at, quantity breaks, unit price, or B2B catalog instead.
Missing strikethrough / Sale badge entirely is compare-at-price-not-showing. Quantity breaks / volume discount UI not showing is quantity-breaks-not-showing. Unit price / price per unit missing is unit-price-not-showing. B2B company catalog prices wrong is b2b-catalog-prices-wrong. Do not rebuild Markets pricing or a B2B catalog until you have proven whether Online Store badge Liquid / apps print the wrong percent for a DTC variant that already has correct Compare at and Price in admin.
06
When to stay DIY vs pay $997.
Stay DIY if you can align badge math to admin compare-at, clear stale Sale on full-price variants, and confirm Markets presentment in under an hour. Pay for the Latch AI Ops install when you want lead capture, ops alerts, and a checkout-ready workflow on the live store — including storefront exception alerts landing in a channel you already check. Clock starts when collaborator access is in. 72 hours. One live store. Written by Nico. No earnings claims. No ranking-lift or conversion-lift number.
Buy the 72-hour install — $997Compare-at missingQuantity breaks
Also on Latch
Latch AI Ops · Nico · $997 one-time · 72h after collaborator access · No earnings claims.