Does Charm Pricing Increase Shopify Conversion Rate?
In a real catalog test, $39 outsold $34 by 24%. Higher price, more buyers. Here's what that study actually proves, where the effect dies, and why most Shopify stores are testing the wrong digit.
Yes, by a little, and almost certainly less than the person who told you to change all your prices to end in 9 believes.
Here's the evidence in one line. Eric Anderson and Duncan Simester ran field experiments with a real women's clothing catalog, printing identical catalogs with the same item at $34, $39 and $44. The $39 version won. Roughly 24% more customers bought at $39 than at $34, which means the retailer got more buyers and more money per buyer at the same time.
That's a genuine result from a real business, not a lab with undergraduates. So charm pricing works.
Now the part the pricing blogs skip. The same research found the effect gets weaker on items shoppers had seen before, and weaker again when the catalog also flagged the item as being on sale. Which tells you what a 9-ending actually is: a tiebreaker for a shopper with limited information. Give that shopper more information, a price they remember, a discount badge, a competitor tab, and the digit stops carrying much weight.
So the useful question for a Shopify store isn't whether charm pricing works. It's whether it's worth your one good test this month. Most of the time, it isn't.
A 9-ending moves the digit. It never moves the order size. One of those is worth a few percent and the other is worth multiples.
What the research actually found
Let's be precise, because this study gets mangled everywhere.
The Anderson and Simester work involved three separate field experiments with real catalogs mailed to real customers. Three findings survived all three:
One: the 9-ending raised demand in every experiment. Not marginally in one and flat in the others. Every time.
Two: the effect was much stronger on new items than on items the retailer had sold in previous years. If a shopper already had a price in their head for a product, changing the ending to a 9 did comparatively little. If the product was new to them, the 9 did real work.
Three: 9-endings were less effective when the retailer also used sale cues. A "Sale" flag and a 9-ending are two ways of saying the same thing, which is that this price is as low as it gets. Run both and they compete instead of stacking.
That third finding is the most commercially useful one in the whole paper, and nobody quotes it. Most Shopify stores are running a sitewide discount badge AND a $49.99 price AND a strikethrough compare-at price. Three bargain signals pointed at the same shopper. The research says the third one is close to free.
The platform-scale version
Anderson and Simester tested a catalog. Gumroad tested a marketplace.
Gumroad compared conversion rates across every product on the platform priced at a whole dollar amount against every product priced one cent less. The .99 prices converted better across the board, and in at least one price band the conversion rate was roughly double.
One cent. That's the entire variable.
Now, that's observational data, not a controlled test. Sellers who price at $19.99 may differ from sellers who price at $20 in a hundred other ways: more marketing sophistication, better pages, more experience. The correlation is real, the causation is fuzzier than the headline suggests. But it points in the same direction as the catalog work, and when a field experiment and a platform-scale correlation agree, that's about as much certainty as pricing psychology ever gives you.
The dead zone nobody warns you about
Here's the practical finding buried in the same data: the worst prices are the arbitrary ones in between.
$47. $23. $172. These convert worse than both the round number above them and the 9-ending below them. A shopper reads $47 and can't place it. It isn't a bargain signal and it isn't a confidence signal. It's just a number somebody picked, and it reads as such.
Pick a lane. Round, or 9-ending. The middle is where conversion goes to sit down.
Three bargain signals aimed at one shopper don't stack. The sale badge, the strikethrough and the 9-ending are all saying "this is cheap," and the shopper only hears it once.
Where charm pricing backfires
The effect isn't universal, and the exceptions are where most Shopify stores actually live.
Premium and luxury positioning
Round pricing signals confidence. A $200 price says the brand decided what the thing is worth. A $199.99 price says the brand is worried you'll walk.
This is why you see $1,200 on a designer coat and $19.99 on a phone case, and why the reverse would feel wrong in both directions. If your brand's whole argument is craftsmanship and restraint, a .99 undercuts the positioning for a conversion bump you probably won't measure.
The test here is a feel test that happens to be right: read your price out loud next to your brand promise. "Handmade in small batches in Vermont. $89.99." That sentence has a seam in it.
Considered, high-ticket purchases
Charm pricing runs on the left-digit effect, which is a shortcut the brain uses when it's moving fast. $3.99 lands closer to $3 than to $4 because the reader stops after the first digit.
A shopper spending $2,400 is not moving fast. They've opened a comparison tab, they've read reviews, they've thought about financing. At that level of deliberation, $2,399 doesn't read as cheaper, it reads as a technique. Which puts a small crack in trust exactly where you need it whole.
Above roughly $500, round pricing plus a visible payment plan tends to beat a 9-ending. The high-ticket product page playbook has more on why the payment structure does more work than the price digit at that level.
When the shopper already knows your price
Repeat buyers, subscription customers, anyone who has seen the item before. Price memory beats the digit every time, which the catalog research showed directly. Changing an established $40 product to $39 buys you almost nothing, and if a returning customer notices you went from $40 to $39 to $39.99 over six months, you've taught them to wait for a sale.
When the discount is already doing the work
Covered above, and it's worth repeating because it's the most common overlap. If the page has a strikethrough compare-at price, the 9-ending is mostly redundant. Pick the stronger signal for that product and drop the other.
What about .95, .97 and other endings?
Once a founder starts thinking about digits, the next question is always whether some other ending beats 9.
The short answer: 9 is the one with the evidence behind it, and everything else is folklore with a good story attached.
- .99 is the most common in retail and the one Gumroad's platform data supports directly.
- .95 feels slightly softer and gets used by brands trying to keep a bargain signal without the discount-bin association. There's no strong controlled evidence it beats .99, but it's a reasonable compromise when .99 clashes with the brand.
- .97 and .87 got popular through direct response marketing folklore, where the claim was that odd endings signal a deliberately calculated discount. The published research doesn't support a separate effect, and to most shoppers a .97 just reads as an unfamiliar version of .99.
- .00 is the confidence play. Correct for premium, correct above $500, and correct any time the price is being read alongside a craftsmanship story.
One caution that matters more than the ending itself: whichever you pick, apply it consistently across the catalog. A store with $29.99 next to $32 next to $44.97 looks like three different people set prices, and inconsistency at the price line quietly undermines every trust signal you built above it.
Does charm pricing hurt perceived quality?
This is the real cost, and it's the reason "use 9-endings everywhere" is the wrong answer.
A 9-ending is a bargain cue. That's the mechanism. It works because it tells the shopper this price is as low as it goes. Which is helpful when your argument is value, and actively harmful when your argument is quality.
Think about what happens on a $180 skincare set. The buyer is deciding whether this brand belongs in the category they associate with results. Every element on the page is either building that case or eroding it: the photography, the ingredient story, the founder note, the shipping box. A $179.99 price tag pulls in the opposite direction from all of it, for a conversion effect the store almost certainly can't measure at that traffic level.
The trade only makes sense when the bargain frame is the frame you want. Consumables, replenishment items, accessories, impulse adds under $50: put the 9 on those. Anything where the buyer is paying for the brand rather than the unit economics: go round.
There's a middle path worth knowing. Keep round pricing on the hero product and use 9-endings on the accessories and add-ons in the bundle. The hero holds the positioning. The add-ons carry the bargain cue, which is exactly where you want a little impulse pressure, right at the moment the buyer is deciding whether to add the second item.
That single arrangement does more for order size than a sitewide price-ending change ever will.
How much is charm pricing actually worth on a Shopify store?
Let's put a number on it, because "it works" is not a number.
Assume the generous end: a 9-ending lifts conversion rate by 10% relative on a mid-priced impulse item. Not 10 percentage points. A 1.2% conversion rate becomes 1.32%.
Run it on a hypothetical store doing 10,000 sessions a month at an $80 average order value:
| Scenario | Conversion rate | Average order value | Revenue per visitor | On 10,000 visitors |
|---|---|---|---|---|
| Round pricing ($80) | 1.20% | $80 | $0.96 | $9,600 |
| Charm pricing ($79) | 1.32% | $79 | $1.04 | $10,400 |
| Charm pricing, weak case ($79) | 1.24% | $79 | $0.98 | $9,800 |
Best case, $800 a month. Weak case, $200 a month. On a store already doing that traffic, the best case is a rounding error and the weak case is inside the noise of a normal week.
Now the same store, same traffic, with the offer restructured instead of the digit:
| Scenario | Conversion rate | Average order value | Revenue per visitor | On 10,000 visitors |
|---|---|---|---|---|
| Baseline | 1.20% | $80 | $0.96 | $9,600 |
| Rebuilt page and offer | 2.40% | $145 | $3.48 | $34,800 |
$25,200 a month, from the same 10,000 visitors. That's the comparison nobody puts next to the charm pricing studies, and it's why I get a little tired of pricing-psychology threads.
Charm pricing is a coin you find in the couch. Order size is the couch.
And a real one, because hypotheticals only prove arithmetic. A bedding brand came to us with a conversion rate of 1.0% and an average order value of $125, which put their revenue per visitor at $1.25. On 10,000 visitors, that's $12,500. After the rebuild: conversion rate 3.5%, average order value $231, revenue per visitor $8.10. On the same 10,000 visitors, that's $81,000, a gap of $68,500 a month. You can see the full case study numbers on our results page. Real client numbers, not typical results, and not a promise of what your store will do.
Not one dollar of that came from changing a price ending.
The digit versus the structure
Here's the reframe I'd want a founder to walk away with.
Charm pricing operates on how a single number is read. Every lever that actually moves revenue per visitor operates on how many numbers there are and how they relate.
Look at the difference:
| Lever | What it changes | Typical effect on revenue per visitor |
|---|---|---|
| 9-ending on the price | How one number is perceived | A few percent, sometimes zero |
| Compare-at anchor | The reference point | Meaningful, and it stacks with tiers |
| Good-better-best tiers | Which option gets chosen | Large, moves average order value directly |
| Bundle at the buy box | How many units per order | Large |
| Quantity break pricing | Units per order on consumables | Large |
| Free shipping threshold | Cart value on the margin | Moderate to large |
The bottom five are structural. They change what the buyer puts in the cart. The top one changes how they read a label.
If you have one test slot this month, spend it on the second row. Price anchoring on a Shopify product page is the closest sibling to charm pricing and it's worth an order of magnitude more, because an anchor changes the reference point the price is judged against instead of tweaking the price itself.
How to test charm pricing properly (if you insist)
Fine. If you want the answer for your own store, here's how to get one you can trust instead of one you can tell a story about.
Pick one product, not the catalog. Sitewide price changes contaminate every other test you're running and make attribution impossible.
Choose a new product or a low-awareness one. The research is clear that established items with price memory show the weakest effect. Testing on your hero product is testing where the effect is smallest.
Kill the competing signals during the test. No sale badge, no strikethrough, no countdown. Otherwise you're measuring three things at once.
Get your sample size right before you start. To detect a 10% relative lift on a 1.2% conversion rate at any reasonable confidence, you need tens of thousands of sessions per variant. Most Shopify stores under $200K a month cannot resolve this effect at all, which means whatever result you see after two weeks is weather, not climate. Call the test before you run it: if you can't reach the sample, don't run it, and just pick the ending that fits your brand.
Measure revenue per visitor, not conversion rate. A 9-ending lowers the price by a dollar. If conversion rises 2% and price falls 1.3%, you've done work for nothing. Conversion rate on its own will lie to you here, which is the point we keep making about Shopify product pricing and conversion.
Run it for full weeks. Weekend and weekday buyers behave differently. A test that starts Tuesday and ends the following Monday has an extra weekday in it.
What I'd actually do
Three rules, and then I'd stop thinking about it.
One: pick an ending convention per price tier and hold it. Under $50, use 9-endings, since that's where impulse and the left-digit effect live. Between $50 and $500, either is defensible, so match the brand. Above $500, go round and put the payment plan in the buy box.
Two: never combine a 9-ending with a discount badge on the same product. Pick the stronger signal. Usually that's the badge.
Three: don't spend a test slot on it. Spend it on the bundle, the tier structure, or the anchor. Come back to the digit when those are done, which for most stores means never, because by then the revenue per visitor problem is solved and the digit is a rounding error on a bigger number.
Charm pricing is real. It's also the smallest real thing in pricing, and the amount of attention it gets is out of proportion to what it pays. I'd rather a founder spend that hour rewriting the section of their page that explains why the product is worth the price at all. That section is missing on most stores, and it's worth a hundred times the digit.
What to do next
Open your top three products in three tabs. Write down each price ending and each bargain signal on the page: sale badge, strikethrough, countdown, 9-ending.
If any product has three or more of those pointed at the same shopper, you've found something worth fixing today, and it isn't the digit.
Book Your Profit Audit
Get your free profit audit and we'll show you exactly where your pricing structure is capping your revenue per visitor, then rebuild a high-converting product sales page in less than 15 minutes.
P.S. The catalog study everyone quotes found that $39 beat $34. Read that again. The winning move wasn't the 9, it was charging five dollars more and getting 24% more buyers anyway. That's a positioning result wearing a pricing-psychology costume.
Frequently asked questions
Does charm pricing increase Shopify conversion rate?
Usually yes, by a small amount, and the effect is real enough to have survived field experiments rather than just lab studies. In one retail catalog test, women's clothing priced at $39 drew 24% more buyers than the same item at $34. The honest framing is that a 9-ending is a cheap tiebreaker, not a growth strategy, because it moves the digit and never moves the order size.
Is $39 better than $34 on a product page?
In the Anderson and Simester catalog experiments, yes. The same women's clothing item sold better at $39 than at either $34 or $44, which means the store collected more revenue per buyer and more buyers at the same time. The effect was strongest on new items where shoppers had no prior price memory to compare against.
When does charm pricing stop working?
Three situations kill it. First, when the item already carries a sale cue, because the discount signal and the 9-ending compete for the same job. Second, on items the shopper has seen at other prices before, since price memory beats the digit. Third, on premium and luxury positioning, where round pricing reads as confidence and .99 reads as a clearance rack.
Should I use $49 or $49.99?
Test them against each other, but expect the gap to be small. Gumroad's own platform data found prices ending in .99 converted better than prices one cent higher, in one case at roughly double the rate. The bigger rule is to avoid the dead zone between the two: an arbitrary $47 tends to underperform both $45 and $49.99.
Does charm pricing work on high-ticket products?
The effect weakens as price and deliberation rise. A shopper spending $19 is running on impulse, where the left digit does real work. A shopper spending $2,400 is building a spreadsheet, and $2,399 reads as a trick rather than a bargain. Above roughly the $500 mark, round pricing with a strong payment plan usually beats a 9-ending.
What matters more than charm pricing?
Order size. A 9-ending might move conversion rate by a percentage point or two on a good day. Restructuring the offer so the average order goes from $80 to $180 changes revenue per visitor by multiples. Charm pricing is the last thing to test on a page, not the first.

