currency-amount price

sale_price

The discounted price for promotional periods, alongside `sale_price_effective_date` for the start/end window. Only set during actual promotions — a permanent sale_price tells the algorithm this is always discounted, dampening the urgency signal.

Also known as: promo_price , discount_price

Channel support

Channel Status Field name Notes
Google Merchant Center Optional sale_price — Docs →
Meta Commerce Manager Optional sale_price —
TikTok Shop Optional sale_price —
Pinterest Catalog Optional sale_price —
Amazon Optional sale_price —
Bing Merchant Center Optional sale_price —

Why it matters

When set correctly, sale_price triggers strikethrough pricing in Shopping placements, sale badges in Meta Advantage+ creative, and 'discount' filtering on Pinterest. Set incorrectly (permanent, or higher than price), it does the opposite — channels suppress the listing or treat it as fraudulent.

`sale_price` is the single most misused field in promotional catalogs. The pattern that works: set sale_price only when there's an active promotion, pair it with `sale_price_effective_date` to mark the window, clear both when the promotion ends. The pattern that fails: leave sale_price set permanently as a marketing tactic — channels treat permanent sale_price as "this is always discounted" and dampen the urgency signal, suppressing the listing's eligibility for promo-tag placements.

Channels show strikethrough pricing only when sale_price is genuinely a discount from price. The minimum effective discount is around 5% — below that, the visual strikethrough doesn't render in most placements because the difference isn't compelling. The maximum sensible discount before triggering "suspicious price" classifiers is roughly 70-80% — anything more dramatic gets flagged for counterfeit or pricing-error review.

The operational discipline that pays off: schedule promotional pricing via sale_price_effective_date rather than manual flipping. Load BFCM discounts into the feed two weeks in advance with the date range set; let the date control activation; don't rely on someone updating the feed at midnight on the start date. This separates the promotional plan from the execution, which means promotional plans actually happen as planned.

Format rules

  • Same format as price field: 'amount CURRENCY'

    Applies to: Google Merchant Center, Meta Commerce Manager, Pinterest Catalog, Bing Merchant Center

  • Must be lower than price — equal or higher prices are rejected

    Applies to: Google Merchant Center, Meta Commerce Manager, TikTok Shop, Pinterest Catalog, Amazon, Bing Merchant Center

  • Must match the landing-page sale price exactly

    Applies to: Google Merchant Center, Meta Commerce Manager, Pinterest Catalog, Bing Merchant Center

  • Pair with sale_price_effective_date when the promotion has a defined window

    Applies to: Google Merchant Center, Meta Commerce Manager, Pinterest Catalog

Valid examples

19.99 GBP

When the regular price field shows 29.99 GBP

Cleared (empty)

When the promotion ends, blank it out — don't leave the old value sitting there

Common mistakes

29.99 GBP (when price is also 29.99 GBP)

Equal to price — must be lower

39.99 GBP (when price is 29.99 GBP)

Higher than price — backwards

0.01 GBP

Absurd discount fires Google's anti-fraud flag

FAQ

Should I leave sale_price set after a promotion ends?

No. Clear it. A permanent sale_price tells the algorithm 'this is always discounted,' which suppresses the urgency signal and dampens click-through. Channels prefer clean transitions between regular and promotional pricing.

Can I use sale_price_effective_date for a future promotion?

Yes. Set the start/end window and the discount only activates within that window. Useful for scheduled launches like Black Friday — load the discount into the feed in advance, let the date control activation.

What's the minimum discount channels will display?

Around 5% — below that, channels often don't show strikethrough pricing because the visual difference isn't meaningful. Discounts under 2% sometimes get suppressed entirely.

Last reviewed: 26 May 2026

Start free · No card

Why wait? Start free.

See your products rewritten in 60 seconds. Add a card only when you go live.

  • Start free, no card: import your catalogue and run the feed audit
  • 10 free AI credits to see your product titles rewritten
  • Go live with a 7-day free trial of Growth ($29/mo) or Pro ($49/mo)
  • Pay-as-you-go AI credits after the free 10, from $5