[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]
[ LOADING]

% Off

Over 6,000
users.
Over 6,000
users.
Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    
Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    Feature    -    

Auto-Calculate & Display % Off on Catalog Ads — Per Product

% Off

Over 6,000
users.
Over 6,000
users.

Auto-Calculate & Display % Off on Catalog Ads — Per Product

BACK
TO
ARTICLES
Reading
Progress:

Learn how to auto-calculate the exact percent-off discount for every on-sale product and display it dynamically in your Meta catalog ads. Fully automated from your feed.

"34% off." "17% off." "52% off."

Each of those numbers is specific, credible, and different — because they come from actual price data, calculated automatically, for every product in your catalog. No rounding. No generic "SALE" badge. The exact discount, shown in the ad, updated automatically when prices change.

That's what this tutorial covers: how to auto-calculate the percent-off discount from your product feed and display it as a dynamic badge on every on-sale catalog ad, with no manual work and no stale messaging.

Why "34% Off" Outperforms "SALE"

Generic sale messaging — "SALE," "On Sale Now," "Special Offer" — is everywhere in e-commerce advertising. It's so ubiquitous that shoppers have largely stopped registering it. When everything is on sale, "SALE" means nothing.

A specific percentage changes that equation.

"34% off" communicates three things that "SALE" doesn't: the discount is real, it's been calculated, and it applies to this specific product. That specificity does real work:

  • It's more credible. A precise number feels like a fact, not a marketing claim. Shoppers trust "34% off" more than they trust "SALE" because it implies the math has been done.
  • It's more compelling. Percentages create an immediate value comparison. A shopper doesn't need to know the original price to understand that 34% off is a meaningful discount — the number itself carries the message.
  • It drives higher CTR. Ads with specific discount percentages consistently outperform ads with generic sale labels. The more information you give shoppers in the ad, the better equipped they are to decide to click.

The challenge has always been scale: calculating the exact percentage for hundreds or thousands of products, keeping it current as prices change, and only showing it when a product is actually on sale. Feed-based dynamic discount badges solve all three of those problems automatically.

What You'll Need

Auto-calculating and displaying percent-off discounts in catalog ads requires:

  1. A product feed with both price fields populated — a price (or compare_at_price) field for the original price and a sale_price field for the discounted price. Most e-commerce platforms populate both when a sale is active.
  2. A Meta product catalog connected to your Business Manager
  3. A feed-based creative tool like Marpipe that supports custom formula fields and conditional display logic in catalog ad templates

The percent-off calculation is simple arithmetic. The feed already has the numbers. The creative layer just needs to do the math and show the result — automatically, for every product, every time.

Step 1: Set Up the Percent-Off Formula in Your Feed

The discount percentage is calculated from two fields already in your product feed:

Percent off = ((original price − sale price) ÷ original price) × 100

For a product with a compare_at_price of $199 and a sale_price of $132, that's:

((199 − 132) ÷ 199) × 100 = 33.7% off — which rounds to 34% off.

In a feed-based creative tool like Marpipe, you define this as a custom formula field that reads the relevant price fields from your feed and outputs the calculated percentage. The formula runs automatically for every product in your catalog. Products on sale get an exact percentage. Products at full price return no value — which is used in the next step to control when the badge shows.

A few things to configure at this stage:

Rounding. Most brands round to the nearest whole number ("34% off" rather than "33.7% off"). Round down rather than up — "33% off" is accurate; "34% off" when the true discount is 33.7% is technically misleading and could create trust issues at checkout.

Minimum threshold. Consider setting a minimum discount percentage below which the badge doesn't display. A "3% off" badge is not compelling and may undermine trust. A common threshold is 10% — only show the badge when the discount is meaningful enough to be a genuine reason to buy.

Step 2: Display the Discount Badge Conditionally in the Creative

With the formula field set up, the next step is surfacing the calculated percentage in the ad — but only when a sale price is present.

In Marpipe, this works through a conditional display element:

  1. Open your catalog ad template in Marpipe
  2. Add a text element for the discount badge (e.g., "[percent_off]% Off")
  3. Map it to your calculated percent-off formula field
  4. Set a conditional display rule: show this element only when sale_price is present and the calculated percentage meets your minimum threshold
  5. Style the badge to stand out — a bold, high-contrast treatment works well. Common approaches include a colored badge shape behind the percentage text, or a bold percentage in an accent color against the ad background.
  6. Publish — every on-sale product in your catalog now automatically shows its exact discount percentage. Full-price products show no badge at all.

The conditional logic is what makes this genuinely useful at scale. You don't need separate templates for sale and non-sale products. One template handles both states cleanly, automatically, forever.

Step 3: Optimize the Badge for Maximum Impact

Getting the discount badge live is the starting point. Getting it to perform as well as possible requires a few additional considerations:

Lead with the number, not the word. "34% Off" reads faster and lands harder than "Off 34%" or "Save 34%." Put the percentage first.

Size it to be immediately readable. The badge should be legible at the sizes Meta actually serves catalog ads — which includes small mobile placements. If the percentage is too small to read at a glance, it's not doing its job. Test at actual ad dimensions before publishing widely.

Consider badge shape and placement. A circular badge in the top corner is a classic retail treatment that shoppers recognize immediately as a discount indicator. A horizontal strip across the top or bottom of the image is another strong option. Both work — the right choice depends on your product image layout and overall creative design.

Pair with strikethrough pricing for maximum effect. A dynamic discount badge ("34% off") and a strikethrough price display ($199 $132) are complementary signals. The percentage tells shoppers how big the discount is; the price comparison shows them exactly what they're saving in dollars. Together, they address the discount from two angles simultaneously and give shoppers more reasons to click.

Watch for outliers. In a large catalog, you'll occasionally have products where the discount calculation produces an unexpected result — a very high percentage that seems implausible, or a very low one that isn't worth showing. After publishing, spot-check a sample of your catalog to confirm the badges look correct across a representative range of products.

How This Fits Into Your Broader Catalog Ad Strategy

The percent-off badge is one of several data-driven overlays you can add to catalog ads using your existing product feed. Each one surfaces a different type of information that influences purchase decisions:

  • Star ratings signal trust and social proof
  • Countdown timers create urgency around a deadline
  • Inventory counts create urgency around scarcity
  • BNPL pricing lowers the perceived cost barrier
  • Strikethrough pricing shows the dollar value of the discount
  • Percent-off badges show the relative size of the discount as a percentage

The percent-off badge and strikethrough pricing are particularly complementary — they communicate the same discount from two different angles. Running both together consistently outperforms either alone.

The Bottom Line

"34% off" is more persuasive than "SALE" because it's more specific, more credible, and more informative. And when it's calculated automatically from your product feed and displayed conditionally only on products that are actually on sale, it's also zero additional work after the initial setup.

The discount is already in your data. This is just a matter of showing it.

Ready to display exact discount percentages on your catalog ads? Try Marpipe free and set up dynamic discount badges across your catalog today.

Jonathan Boozer - Catalog Expert

Get a free catalog consultation

Jonathan Boozer
Catalog Expert