Skip to content
Prices and compare-at prices on Shopify

Shopify compare-at price, explained

On Shopify, the compare-at price is the original, higher price shown next to a variant's current price to mark it as on sale. It only displays when it's higher than the price, and your theme decides how: most show it crossed out, often with a Sale badge. It doesn't change what customers pay; the Price field does.

Key takeaways

  • Price is what the customer pays; the compare-at price is the reference shown beside it and is never charged.
  • A sale displays only when the compare-at price is higher than the price.
  • Compare-at prices are stored per variant, and collection pages can hide a sale when variants disagree.
  • Use a genuine former price as the reference; reference-price rules are strict in many places, including the European Economic Area.
  • You can set or clear compare-at prices in bulk with the bulk editor, a CSV, or an app with dedicated compare-at rules.

What does compare-at price mean on Shopify?

The compare-at price is the price a product sold for before you reduced it. Shopify's product CSV reference describes it as the variant's original price when the price has been reduced. You enter it beside the Price field, and when it's higher than the price, your storefront can show the item as on sale.

Example: a jacket with a price of $45.00 and a compare-at price of $60.00 shows as $45.00, with $60.00 crossed out in most themes. The discount is 25%: discount % = (compare-at price − price) ÷ compare-at price × 100 = (60 − 45) ÷ 60 × 100.

The compare-at price is display information only. Customers pay the Price, and the compare-at price only tells them what the item cost before. That's why it matters so much that the number is honest: it's a claim you make to every shopper who sees the product.

How does Shopify display the compare-at price?

Shopify stores the numbers and your theme draws them. Shopify's help center notes that sale price display depends on your theme, which may also add a badge with a message or percentage off on product listing and collection pages. Many themes let you change the sale badge's position, shape and color in theme settings (theme settings guide).

On product pages, the theme reads the selected variant's price and compare-at price. On collection pages it usually reads product-level values. In Shopify's Liquid reference, product.compare_at_price is the lowest compare-at price of any variant and product.price is the lowest price of any variant, with separate properties that tell the theme when either one varies (Liquid product object).

That's why a product whose variants have mixed compare-at prices can look right on its own page and wrong in a collection. If you put only some variants on sale, check a collection page as well as the product page.

What are the rules for a compare-at price?

The core rule is short: the compare-at price must be higher than the price for the sale to display (Shopify's sale price guide). The table covers the cases merchants run into most.

SituationWhat shoppers typically seeWhat to do
Compare-at price higher than priceThe sale price and the crossed-out original, if your theme shows salesNothing; this is a working sale
Compare-at price equal to or lower than priceNo saleRaise the compare-at price, lower the price, or clear the compare-at price
Compare-at price emptyThe regular price onlyNothing, unless the item should be on sale
Compare-at price of 0.00Can break sale display on collection pages when variants are mixedClear the field instead of entering 0.00
Variants with mixed compare-at pricesCorrect product pages, but collection cards may not show the saleGive every variant on sale a higher compare-at price, or clear them all
Market catalog with fixed pricesThe fixed price, which overrides your admin price and compare-at priceSet compare-at prices in the catalog, or update its fixed prices
Market catalog with a percentage adjustmentCompare-at prices adjusted by the same percentage, by defaultTurn off Include compare-at price to set them manually

How is compare-at price different from price and cost per item?

Three fields sit together in a variant's pricing, and they answer different questions. Keep them apart when you plan a sale, because the sale changes your margin, not just the label.

Example: a variant with a $60 compare-at price, a $45 price and a $20 cost has a 55.6% margin at the sale price, against 66.7% at the full $60 price. Margin = (price − cost) ÷ price. The margin calculator runs the same check for any discount.

  • Price: what the customer pays for the variant.
  • Compare-at price: the reference price shown beside it to mark a reduction. Shoppers see it, but it's never charged.
  • Cost per item: what the variant costs you to make or buy. Shopify uses it for your own profit tracking; it isn't shown on your storefront.

Is it legal to show a compare-at price?

Showing a compare-at price is normal practice, but the reference price itself is regulated in many places. The common principle is that a "was" price should be a genuine former price, one you actually charged for a meaningful period, not a number raised just before a sale to make the discount look bigger.

In the European Economic Area, the Price Indication Directive requires an announced price reduction to show the lowest price you charged for the product in the previous 30 days, and some countries set a longer period. Shopify's summary of the directive suggests consulting a lawyer about the rules where you and your customers are. A few habits keep you on safe ground almost anywhere:

  • Use the price the item actually sold at before the sale as the compare-at price.
  • Don't raise prices shortly before a sale to inflate the reference.
  • Remove the compare-at price when the sale ends, so items aren't permanently "on sale".
  • Keep dated records of past prices, such as CSV exports, in case you need to show what you charged.

This is general information, not legal advice. Rules on reference prices differ by country and change over time, so check the requirements in every market you sell to.

How do you set a compare-at price on one product?

On a single product, you set the compare-at price on the product page in your admin. To remove it later, clear the field and save rather than typing 0.00. On desktop, the steps are:

  1. In your Shopify admin, go to Products and open the product.
  2. If it has variants, open the variant from the Variants section.
  3. In the price section, click Compare at.
  4. Enter the original price in Compare-at price and the sale price in Price.
  5. Click Save, then check the product on your storefront.

How do you set or remove compare-at prices in bulk?

For many products you have the same choices as for any bulk price change; our guide on how to bulk edit prices on Shopify covers each in detail. For compare-at prices specifically:

  • Bulk editor: select products, click Bulk edit, add the Compare-at price column with Columns, and type or paste values. To remove compare-at prices, clear the cells and save.
  • Product CSV: edit the Compare-at price column (Variant Compare At Price in older files). With Overwrite products with matching handles selected, a blank cell clears the existing compare-at price. That's how you remove them in bulk, and why you shouldn't blank cells by accident.
  • Market catalogs: a catalog's percentage adjustment applies to compare-at prices by default; turn off Include compare-at price to set them yourself (Creating catalogs for markets).
  • An app with compare-at rules: useful when compare-at prices should follow a rule, such as "the price before this sale", across hundreds of variants.

How does Sale Scheduler by SalePilot handle compare-at prices?

Sale Scheduler by SalePilot treats the compare-at price as its own setting in every sale, separate from the price. You choose a price action and a compare-at action, and the review screen shows both results for every variant before anything changes.

If a resulting compare-at price wouldn't be higher than the new price, the row is marked Warning and isn't applied, because Shopify wouldn't show it as a sale. When a scheduled sale ends, or when you click Restore prices, the previous price and compare-at price come back together, and variants whose price was changed elsewhere are skipped instead of overwritten.

The 8 compare-at actions are:

  • Don't change compare-at price.
  • Increase compare-at price or Decrease compare-at price, by percent or by amount.
  • Set new compare-at price: one value for every targeted variant.
  • Set compare-at price to original price: the pre-sale price becomes the crossed-out reference.
  • Increase relative to new price or Decrease relative to new price: the compare-at price is set a percent or amount above or below the new price.
  • Remove compare-at price: clears it, for clean-ups after a sale.

Frequently asked questions

What is the compare-at price on Shopify?

It's the original, higher price shown next to a variant's current price to mark it as on sale. Customers pay the Price; the compare-at price is only a reference.

Does the compare-at price have to be higher than the price?

Yes. Shopify displays a sale only when the compare-at price is higher than the price. An equal or lower value shows no sale.

Is a compare-at price the same as a discount?

No. A compare-at price changes how the catalog price is presented, while discount codes and automatic discounts reduce the amount in the cart or at checkout. See sale pricing vs discount codes.

Can I leave a compare-at price on permanently?

Shopify won't stop you, but an item that's always "on sale" makes the reference price misleading, and in many places a reference price must be a genuine former price. Remove it when the sale ends.

Can SalePilot set compare-at prices in bulk?

Yes. Every sale has a compare-at action, such as setting it to the original price or removing it. Rows where the compare-at price wouldn't be higher than the new price are flagged Warning and not applied.

Run your next sale without the spreadsheet

Install Sale Scheduler from the Shopify App Store, build a sale, and review every price before it goes live. The free allowance lets you try it on a few variants first.

Chat with us on WhatsAppQuestions before or after you install