Charm Pricing

Charm pricing — ending prices in 9 or .99 — is the most-studied tactic in pricing psychology. Here's the mechanism, the math, the benchmarks, and where it backfires.
Charm Pricing
Ending a price in 9 or .99 (e.g. $19.99 instead of $20.00) to make it feel meaningfully cheaper than the round-number alternative.
Charm pricing is the practice of setting retail prices just below a round number — $19.99, £49, €9.95 — so the leftmost digit drops by one. Decades of pricing research show it lifts purchase intent on lower- and mid-AOV products, with the effect strongest when shoppers compare prices quickly across a category page.
It's the most-tested pattern under the broader umbrella of pricing psychology, and the easiest single change a store can ship to its product catalogue. The effect is real but bounded: it works less consistently on premium positioning, subscription pricing, and high-consideration purchases where shoppers slow down and read every digit.
The mechanism is the left-digit effect: shoppers encode prices left-to-right and anchor on the first digit. $19.99 reads as "nineteen-something" before the brain processes the cents, so it feels closer to $19 than to $20 — even though the actual gap is one cent.
Charm pricing also signals value and discount. A $39.99 tag on a category page reads as marked-down even when no markdown happened, because shoppers have learned to associate round prices with full retail and 9-endings with promotions. That association is why luxury brands deliberately avoid it.
perceived_price = floor(actual_price) + (cents / 100) * underweight_factor
actual_price
Actual price
The real shelf price the shopper pays (e.g. 19.99).
floor(actual_price)
Left-digit anchor
The integer part the brain reads first (e.g. 19).
cents
Cents portion
The decimal portion of the price (e.g. 99).
underweight_factor
Cognitive discount
How much weight the shopper gives the cents. Research suggests 0.3-0.7 on category pages where shoppers scan fast; closer to 1.0 on a focused single-product PDP.
An apparel store tests $20.00 vs $19.99 on a basic tee, on a fast-scrolling category page where the underweight factor is roughly 0.5.
Actual price: $19.99
Left-digit anchor: $19
Cents: $0.99
Underweight factor: 0.5
→ Perceived price ≈ $19 + ($0.99 × 0.5) = $19.50
The shopper feels they're paying around $19.50 — a perceived saving of $0.50 against the $20.00 round price, even though the real difference is one cent. That perceived saving is what drives the conversion lift.
The lift size depends heavily on category, price tier, and brand positioning. Mass-market verticals with frequent comparison shopping (apparel basics, beauty consumables, accessories) see the strongest effect. Premium, considered, and gift categories see smaller or negative effects — the 9-ending undercuts the brand.
Typical conversion lift from switching round prices to .99 endings, by vertical and AOV tier
| Vertical | AOV under €30 | AOV €30-€80 | AOV over €80 |
|---|---|---|---|
| Apparel basics | +6% to +9% | +3% to +5% | +1% to +2% |
| Beauty & personal care | +5% to +8% | +2% to +4% | 0% to +1% |
| Accessories & jewellery | +4% to +7% | +2% to +3% | -1% to +1% |
| Home & lifestyle | +3% to +5% | +1% to +3% | -1% to +1% |
| Premium / luxury positioning | +1% to +2% | 0% to +1% | -2% to 0% |
Read the table as a hypothesis prior, not a forecast. A basics-apparel SKU at €24.99 is an obvious test; a €180 leather bag where the brand sells craftsmanship probably isn't. When in doubt, run the variant as a proper A/B test and measure revenue per visitor, not just conversion rate — charm pricing can lift CVR while shrinking AOV if shoppers trade down to the cheaper-feeling SKU.
Charm pricing FAQ
It works, but the effect is smaller and more conditional than the folklore suggests. Meta-analyses consistently find a positive lift on low- and mid-AOV mass-market products, typically 2-9% on conversion rate. On premium positioning and high-consideration categories, the effect flattens or reverses.
Because of the left-digit effect: shoppers read prices left-to-right and anchor on the first digit. $19.99 registers as "nineteen-something" before the cents are processed, so it feels closer to $19 than to $20 — even though the real gap is one cent.
Avoid it on premium and luxury positioning, gift purchases, and any product where the brand story is craftsmanship or exclusivity. A €495 handbag at €494.99 looks like a clearance item. Round or whole-number pricing signals quality and confidence.
.99 is the dominant convention in most Western markets and the most-tested ending — shoppers parse it fastest as a discounted price. .95 is more common in parts of continental Europe and in some premium-adjacent verticals where .99 feels too aggressive. Test both if your category mixes positioning.
Less reliably. Subscription shoppers slow down, compare plans side-by-side, and read every digit — the left-digit effect weakens. Whole-number tiers ($29, $79, $199) often perform as well or better because they feel deliberate and premium rather than promotional.
It can compound or compete. A struck-through €30 reduced to €23.99 looks like a real promotion. But a €23.99 "everyday low price" on a brand that also runs sales can confuse shoppers about whether they're getting a deal. Pick one signal per product and stick to it.
Yes — it's one of the cleanest tests you can run because the implementation is trivial and the outcome maps directly to revenue per visitor. Run it at the category level (all basics SKUs at .99 vs all at round), not on a single product, so you accumulate significance faster.
Revenue per visitor, always. Charm pricing can lift conversion rate while lowering AOV if shoppers trade down to cheaper-feeling SKUs or buy fewer add-ons. RPV captures both effects in one number and is the metric pricing decisions should be made on.
Some research suggests yes — products bought on a perceived bargain can see slightly higher return rates because the post-purchase scrutiny is higher ("did I really need this?"). The effect is small, but worth tracking alongside the conversion lift, especially in apparel where return rates already run 20-30%.
They're opposite tactics under the same pricing-psychology umbrella. Charm pricing uses 9-endings to signal value and discount. Prestige pricing uses round numbers ($500, €1,000) to signal quality and confidence. The right choice depends on whether your brand competes on price or on positioning.
Test ideas before you ship them
Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.