The Feedance AI features is rolling out. Check it out!
How Feedance can help your revenue growth
250+ channel and platform integrations
Start optimizing with powerful integration
Wordpress compatible e-commerce integration
Start optimizing Magento very quickly
Open source e-commerce platform integration
Integrate ChatGPT Ads Catalog in seconds
Optimize Meta Catalog Ads
Optimize your Google Shopping visibility correctly
Optimization of TikTok Catalog Ads
Sale price is the optional feed attribute -- <g:sale_price> in Google Merchant Center XML, sale_price in Meta Catalog -- used to show a discounted price alongside the regular price attribute, so shoppers see a strikethrough comparison instead of a flat price change. Like price, it must be submitted as a number plus an ISO 4217 currency code, for example 29.00 USD, and that currency must match the one used in the price field on the same item.
<g:sale_price>
Submitting a discount by simply lowering price destroys the visual was-versus-now comparison that drives clicks on Shopping ads and Meta Catalog placements, and it also makes it harder to track true margin once the promotion ends, since price no longer reflects the standard rate. Retailers who cut prices frequently to hit performance targets, without controlling for what that does to net profit, often find sale-price is the field that exposes the problem: if sale_price sits below cost on a meaningful share of SKUs, ad spend is effectively subsidizing lossmaking sales. Because a promotion needs a defined end, sale price is closely tied to availability-date logic in feeds that also schedule when a discount starts and stops rather than relying on someone remembering to revert it manually.
Google requires sale_price to always be lower than price and rejects the item, or ignores the discount, if the two values are equal or inverted. To bound the promotion in time, Google supports a companion attribute, sale_price_effective_date, formatted as an ISO 8601 date range such as 2026-08-15T00:00-04:00/2026-08-22T23:59-04:00; once that window closes, Google reverts to displaying price automatically without requiring a feed update. Meta Catalog mirrors this with sale_price and sale_price_effective_date, using the same date-range format, and will similarly fall back to the base price once the range lapses. Neither platform allows sale_price to be submitted without a corresponding price on the same item, and both flag a discount that never expires as a policy risk since it undermines the credibility of the promotion. Retailers cleaning up feeds where markdowns silently erode margin can see the cost side of this addressed in Boost Profits by Removing Low-Performing Products From Your Feeds.
<item> <g:id>SKU-40871</g:id> <title>Merino Wool Beanie - Navy</title> <link>https://example-shop.com/products/merino-beanie-navy</link> <g:price>34.00 USD</g:price> <g:sale_price>24.00 USD</g:sale_price> <g:sale_price_effective_date>2026-08-15T00:00-04:00/2026-08-29T23:59-04:00</g:sale_price_effective_date> </item>
Sale price only makes sense relative to price, which supplies the baseline it discounts against, and it's frequently scheduled using the same date-range logic that governs availability date on preorder items. Feed teams tracking margin should treat sale_price as a direct input into net profit reporting rather than a purely front-end display field, since a feed full of aggressive, poorly bounded discounts can quietly turn profitable ad spend into break-even or negative returns.
Schedule a 15-minute demo and see how our AI-powered product feed management platform can improve your feed performance and ROI.
We’ll tailor your demo to your immediate needs and answer all your questions. Get ready to see how it works!