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

Free plan · No card

Why wait? Try it free today.

Stop managing feeds manually. Start optimising with AI in 30 seconds.

  • Free plan, no credit card required
  • 1 brand, 1 feed, 100,000 products per feed
  • Full AI Product Optimisation, Rule Engine, and 200+ channel exports
  • Pay only for AI credits when you need them