Shopify compare-at price: how it works and the mistake that hides your discounts
Last updated: 31 July 2026
Compare-at price is Shopify's field for the original price of a discounted item. When it is higher than the actual price, themes render the strike-through and, usually, a sale badge. It is the mechanism behind nearly every discount display on a Shopify storefront.
The mistake
The rule most themes follow is simple: show the discount only when compare-at is strictly greater than price. So if compare-at equals the price, or is lower, the strike-through and badge silently vanish. No error, no warning — the product just quietly stops looking discounted.
This matters most at exactly the wrong moment. It is common after a sale ends and prices are restored but compare-at values are left behind, or after a bulk price edit that changed price without touching compare-at.
How it happens
- A sale ends. Prices go back up to match compare-at. The badge disappears, but the now-useless compare-at value stays on every variant.
- A bulk price increase raises price above a stale compare-at, so compare-at is now lower than price — meaningless, and on some themes it renders oddly.
- A CSV import copies price into both columns.
- Someone sets compare-at hoping to create the appearance of a discount, sets it equal to price, and cannot work out why no badge shows.
Setting an inflated compare-at price that was never the genuine selling price is regulated as misleading pricing in many jurisdictions, including the UK and EU. Use it for real former prices.
Finding broken ones
Both price and compare-at are per variant, so a product with twelve variants has twelve chances to be wrong, and the admin shows them one product at a time. There is no filter for "compare-at is not greater than price". This is a comparison between two fields, which is exactly the kind of thing a spreadsheet can do and the admin cannot.
How Catamend handles it
The compare_at_price_not_higher rule checks every variant and reports those where a compare-at price is set but is not strictly greater than the price — so it catches both the equal case and the lower case, while ignoring variants with no compare-at at all, which are simply not on sale.
It is review recommended rather than auto-fixable: whether the right correction is clearing the compare-at or lowering the price is a merchandising decision, not a data-quality one.
Check your own catalog
Catamend scans every product and variant against 23 checks like this one, ranks what it finds by impact, and applies the safe fixes in one click with a full before-and-after history. Install Catamend from the Shopify App Store.