Percentage Off vs. Dollar Off: A Real WooCommerce Store Owner’s Test
WooCommerce Pricing Strategy
Same Saving. Different Result.
On a $50 cart, “30% off” and “$15 off” are identical discounts. One often converts better — and the answer depends on your price point, your product category, and whether the buyer is new or returning. Here’s how to know which to run, and how to test it yourself.
Most WooCommerce store owners pick a discount format — percentage or dollar — and stick with it forever. The percentage feels natural for sitewide sales (“20% off everything this weekend”). The dollar figure gets used for targeted offers (“Save $10 on orders over $60”). Neither choice is wrong, but most stores never test whether the other format would convert better.
This post is about doing that test with precision. Not theory — actual numbers, an actual methodology, and the specific scenario where switching formats adds a measurable lift without changing your margin at all.
If you want the behavioral psychology behind why customers respond differently to these formats, the psychology and framing companion post covers the Rule of 100, anchoring effects, and the research literature. This post starts where that one ends: with the decision framework and the test setup.
The test scenario: $15 off vs. 30% off on a $50 cart
Take a store selling skincare bundles with an average cart value of $50. You want to run a promotion. Two options:
- Option A: “30% off” — the customer saves $15 on a $50 cart, paying $35.
- Option B: “$15 off” — the customer saves $15 on a $50 cart, paying $35.
The discount is mathematically identical. The cost to you is identical. The customer pays the same amount either way.
So why does it matter which you display? Because customers process numbers before they do the math. “30” reads as a larger number than “15.” On a $50 cart, the percentage version produces a numerically bigger figure — and that magnitude impression happens before any conscious calculation. Research on this pattern (often called the Rule of 100) suggests percentage framing tends to read as more generous on products under roughly $100.
That’s the hypothesis. Testing it against your actual customers is how you find out whether it holds for your store, your category, and your audience.
Why identical math produces different buyer behavior
The explanation is not complicated once you see it: customers form impressions of discount size based on the number itself, not the unit. “30% off” registers as “a number in the thirties.” “$15 off” registers as “a number in the teens.” On a $50 product, the percentage wins the magnitude comparison — even though the actual saving is the same $15 either way.
Now flip the price point. On a $200 skincare set: “30% off” and “$60 off” are identical. But “$60” is numerically bigger than “30.” The dollar frame now produces the larger-seeming number. The same psychology that favoured percentage framing on the $50 cart now favours dollar framing on the $200 cart.
This is the core of the decision framework below. It doesn’t require any deep research to apply — it just requires you to look at your actual price points and run the comparison in one direction first.
This is a tendency, not a law
The magnitude heuristic is a pattern in aggregate consumer behaviour — it doesn’t predict every individual purchase. Your actual customers, your product category, and the context on your page all matter. The framework below tells you which format to test first. Your own conversion data tells you whether it actually wins for your store.
Decision framework: which discount type wins by scenario
Use this table as your starting hypothesis for any new campaign. The goal is to identify which format to run first in your comparison test — not to skip the test entirely.
| Scenario | Run first | Reason |
|---|---|---|
| Product / cart value under $100 | Percentage off | The percentage number is larger than the dollar saving. “30% off” on a $60 cart reads bigger than “$18 off.” |
| Product / cart value over $100 | Dollar off | The dollar saving is numerically larger than the percentage. “$40 off” on a $200 cart reads bigger than “20% off.” |
| Premium or luxury item (price signals quality) | Dollar off | Aggressive percentage framing can feel like clearance pricing and undermine the quality signal. “$50 off” feels deliberate; “40% off” feels like a fire sale. |
| Low-ticket item under $15 | Neither — consider a bundle or free add-on | Either frame produces a small-looking number. The discount format matters less than the nature of the offer at this price point. |
| First-time buyer / new customer | Percentage off | New customers don’t have a reference for your normal price. The percentage communicates the proportion of saving without requiring them to know the original price. |
| Repeat / loyal buyer | Dollar off | Loyal customers know your prices. They can calculate the actual saving and appreciate the concrete dollar figure. “Save $X” rewards their loyalty with a tangible number. |
| Cart-value threshold offer (“spend $X, save $Y”) | Dollar off | Threshold offers work better when the saving is concrete. “$15 off when you spend $60” is clearer than “25% off when you reach the threshold.” The customer knows exactly what they’re getting. |
| Flash sale / urgency-driven event | Percentage off | In flash-sale contexts, customers compare your offer against others they’ve seen. Percentage communicates the depth of discount in a format that’s easy to compare across categories and price points. |
Worked examples with real numbers
Abstract frameworks are easy to agree with and easy to forget. The examples below are designed to be concrete enough to apply directly to your own catalog.
Example 1: Coffee subscription starter kit — $45 cart
You’re running a promotion on a coffee starter kit priced at $45. You want to discount it by $9.
- Option A: “20% off” — customer reads a number in the twenties.
- Option B: “$9 off” — customer reads a number in the single digits.
The framework says: product under $100, run percentage first. “20% off” produces the larger-seeming number, which means it’s more likely to register as a meaningful saving before the customer calculates the actual dollar amount. Your test hypothesis: Option A (20% off) converts at a higher rate than Option B ($9 off) on this product.
Example 2: Camera bag — $180 cart
A camera bag at $180, discounted by $36.
- Option A: “20% off” — customer reads a number in the twenties.
- Option B: “$36 off” — customer reads a number in the thirties.
Framework: product over $100, run dollar off first. “$36 off” produces the larger-seeming number. A customer who knows they’re considering a $180 purchase finds “$36” to be a concrete, tangible saving — it’s money they could spend on a memory card or a second battery. “20% off” requires a calculation step to arrive at that same figure.
Example 3: Repeat customer on a $55 supplement — same math, different framing logic
A customer who has bought your protein powder three times knows it costs $55. You want to offer a loyalty reward of $11 off (about 20% of the price).
- Option A: “20% off” — applies the magnitude heuristic from the Rule of 100.
- Option B: “$11 off” — gives a concrete dollar figure to someone who already knows the price.
This is the one case where the price-point framework (under $100 → percentage) and the customer-type framework (repeat buyer → dollar) point in different directions. When they conflict, lean toward customer type: the repeat buyer’s familiarity with your regular price changes the psychology. Test Option B first for this audience segment.
A note on conflicting signals
The framework above gives you a starting hypothesis in each case. When two signals point in opposite directions — low price point suggests percentage, but loyal customer suggests dollar — the customer-type signal is usually stronger. Loyal customers respond to being treated differently from new visitors. A concrete “$X off” communicates that you know what they normally pay. A percentage off communicates nothing specific to their relationship with your store.
How to run the comparison in your own WooCommerce store
A rigorous A/B test requires traffic splitting technology and statistical significance calculations. Most small WooCommerce stores don’t have that tooling, and that’s fine. A sequential comparison — run one format for four weeks, then the other for four weeks — gives you directional evidence you can act on.
Here’s the methodology:
-
Pick one product or category for the test
Don’t run the comparison across your entire catalog at once. Pick one product or one category where you have enough traffic to see a difference in four weeks. Aim for at least 50 conversions per test period — below that, the noise is too large to interpret.
-
Set the discount amount so both formats cost you identically
If the product is $50 and you want to test “30% off” vs “$15 off,” both are a $15 saving. Your margin exposure is the same either way. This is important: you’re testing framing, not discount depth. If one format performs better, it’s because of perception, not because one offer was genuinely cheaper.
-
Run format A for four weeks, then format B for four weeks
Use the same product, same time of week, same promotional channels. The goal is to hold everything constant except the discount format. Note any external factors that differed between periods — a news cycle, a competitor sale, a traffic source change — so you can account for them when reading results.
-
Measure conversion rate and average order value
Conversion rate on the product page tells you which format was more persuasive. Average order value tells you whether one format brought in more price-sensitive buyers who bought less per order. You want both metrics — a framing that lifts conversion by 5% but drops AOV by 15% may not be a win for your margins.
-
Run at least two cycles before deciding
One four-week period is a data point. Two periods for the same format is a pattern. If format A outperforms format B in two separate four-week windows, you have a real signal. If the results flip between cycles, you need more data or a cleaner test design.
Watch out for seasonal noise
If your four-week windows span different parts of a buying calendar — one window includes a major holiday, the other doesn’t — the seasonal lift will swamp any framing effect. Run both periods in the same part of the month or quarter, or compare year-over-year equivalents.
Switching discount types in Smart Cycle Discounts
Smart Cycle Discounts supports both percentage discounts and fixed-amount (dollar) discounts as separate campaign types. The discount type is set per campaign in the wizard’s discount configuration step — you choose “Percentage Discount” or “Fixed Amount” from a dropdown, and the corresponding value field appears. Switching between formats means creating a new campaign with the other type, which lets you run the sequential test described above with clean campaign boundaries and precise date controls.
This is what the test workflow looks like in practice:
- Campaign 1 — Percentage framing: Create a campaign targeting your test product. Set discount type to “Percentage Discount.” Enter the percentage value. Set start and end dates for your first four-week window. Leave the campaign name descriptive — something like “June Skincare Test — 30% Off” makes it easy to find in your campaign list later.
- Campaign 2 — Dollar framing: Duplicate or create a second campaign targeting the same product. Set discount type to “Fixed Amount.” Enter the equivalent dollar value. Set start and end dates for your second four-week window. Name it consistently — “July Skincare Test — $15 Off.”
- Review the Campaign Intelligence verdict before launching each. The dashboard flags priority conflicts when two campaigns target the same products. If a sitewide sale or another active campaign overlaps your test product, the test results will be contaminated. Resolve any conflicts before the first window opens.
On what SCD controls vs. what your theme controls
Smart Cycle Discounts applies the discount at the price level — it calculates whether the saving is a percentage or a fixed amount and adjusts the displayed price accordingly. The customer-facing label (“30% off” or “Save $15”) is typically rendered by your WooCommerce theme’s sale badge template, not by the campaign configuration itself. If you need precise control over the label text — to show “Save $15” explicitly rather than just a crossed-out price — that’s a theme or custom display plugin concern, not a campaign setting. Most themes show a percentage badge or a simple “Sale!” badge; check your theme’s sale badge template if the framing label matters to your test.
The percentage discounts documentation and the fixed amount discount documentation cover the specific configuration fields for each type.
What to measure and how to read the results
Running the test is only half the work. Reading the results without over-interpreting them is the other half.
Primary metric: product page conversion rate
Conversion rate on the specific product page — sessions that resulted in an add-to-cart divided by total sessions on that page — is your primary signal. This isolates the framing effect at the point where the discount is visible. A lift of 2–5 percentage points in absolute terms (say, 3.2% to 5.8% conversion) is meaningful for most stores at typical traffic volumes. A lift of less than 1 percentage point in either direction is likely noise unless your traffic is very high.
Secondary metric: average order value
A format that lifts conversion by pulling in more price-sensitive buyers can simultaneously drop your average order value. If 30% off draws customers who buy only the discounted item and nothing else, while $15 off draws customers who add a second product to reach the threshold where the dollar saving feels more justified, the AOV difference matters. You want both metrics before declaring a winner.
What to watch for in the data
- Consistent direction across two test cycles — one cycle is a data point, two is a pattern.
- Traffic volume parity — if one period had 30% more traffic than the other, don’t compare raw conversion numbers; use rates.
- No campaign overlap contamination — check that no other active discount applied to the test product during either window.
- Post-campaign velocity — check whether sales drop below baseline after each window ends. A format that converts well but heavily pulls forward demand may leave a longer recovery gap, which affects whether you can run the deal again in the same quarter.
For a deeper framework on interpreting campaign analytics, including demand pullforward detection and break-even calculations, the guide to measuring WooCommerce discount campaign performance covers the methodology in full.
Frequently asked questions
Is “30% off” the same as “$15 off” on a $50 product?
Mathematically, yes — on a $50 product, 30% off and $15 off both reduce the price to $35 and cost you the same margin. The difference is entirely in how customers perceive the saving before doing the calculation. On products under roughly $100, the percentage number is typically larger than the dollar number, so “30% off” tends to read as a bigger saving than “$15 off” even though the actual amount is identical.
When should I default to dollar-off framing?
Dollar-off framing (“Save $40”) tends to work better on products over $100, on premium items where percentage framing can signal clearance pricing, on threshold offers (“spend $75, save $20”), and with loyal customers who already know your regular prices and can immediately appreciate the concrete saving. For a full decision framework, see the table earlier in this post.
Does Smart Cycle Discounts support both discount types?
Yes. Smart Cycle Discounts supports both “Percentage Discount” and “Fixed Amount” as distinct discount types set per campaign in the wizard’s discount configuration step. You can run one campaign as a percentage and a subsequent campaign as a fixed amount on the same products, which is the basis of the sequential comparison test described in this post. The plugin also supports tiered, BOGO, buy-X-get-Y, bundle, and spend-threshold discount types — each as a separate campaign configuration.
My theme doesn’t show “X% off” — it just shows “Sale!” Will this test still work?
The test still works in the sense that the actual prices shown to customers reflect the correct discount type (the crossed-out “was” price and the lower current price are accurate either way). But if your theme only shows a generic “Sale!” badge without a percentage or dollar label, customers won’t see the framing difference you’re trying to test. In that case, you’d need to update your theme’s sale badge template or use a display plugin to show the specific label. The discount type you set in Smart Cycle Discounts controls the calculation; the label is a theme rendering concern.
How long should I run each test window?
Four weeks is a reasonable minimum if you have decent traffic — enough to accumulate at least 50 conversions per window. Shorter windows introduce too much day-of-week and week-of-month variance. If your traffic is lower, extend to six or eight weeks. The goal is statistical confidence, not speed. Two cycles of four weeks each (format A, then format B, then format A again) gives you a much stronger signal than one cycle of each.
Key takeaways
What to take away from this
- On products under $100, percentage framing tends to produce a numerically larger-seeming discount than the equivalent dollar amount. On products over $100, the dollar figure is typically larger-seeming than the percentage. Start your test with the format that wins the magnitude comparison for your price point.
- New customers benefit from percentage framing — they don’t have a reference price and respond to the proportion of saving. Repeat buyers who know your prices often respond better to a concrete dollar figure that rewards their loyalty directly.
- The test methodology matters as much as the hypothesis. Equal discount amounts, same product, same time windows, at least 50 conversions per window, two full cycles minimum. Seasonal noise will swamp a framing effect if your windows span unequal parts of the buying calendar.
- Measure both conversion rate and AOV. A format that lifts conversion at the cost of lower average orders may be neutral or negative for your total margin. Both numbers matter before declaring a winner.
- Smart Cycle Discounts lets you switch discount types per campaign — percentage and fixed-amount are both available in the wizard’s discount step. The framing test maps directly to two sequential campaigns on the same product with clean date boundaries.
- The label your customers actually see (“30% off” vs “Save $15”) is often rendered by your theme’s sale badge template, not the campaign configuration. Confirm your theme shows the right label before drawing conclusions from your test data.
The decision between percentage off and dollar off is not a permanent architectural choice. It’s a testable variable — one you can rotate across campaigns and measure in your own store with a few weeks of data. The framework above tells you where to start. Your own customers tell you where to finish.
Once you’ve settled on a format for a product or category, you can use that as a standing campaign configuration and move on to the next variable worth testing. For ideas on what to optimise after framing, the SCD discount types overview shows the full range of structures available — tiered, BOGO, spend-threshold — each of which pairs differently with percentage vs dollar framing depending on the goal.