Every founder I’ve worked with has, at some point, sat across from me and said the same sentence: our pricing is too high, that’s why people are churning.
It almost never is. After running pricing experiments at Kkiapay and ChapChap — two products in radically different segments, same geography — I’ve become convinced of one thing: users don’t reject price. They reject the gap between what they thought they would pay and what shows up on the invoice.
This is a different problem, and it has different solutions.
The data that flipped my model
At ChapChap, we had a pricing tier that was, on the median customer, cheaper than the customer’s previous solution. We were losing them anyway. The exit interviews kept saying “trop cher” — too expensive — and we kept treating that as a price-point problem.
It wasn’t. When we cohort-analysed the churned users, the signal jumped out. The customers who churned weren’t the ones whose monthly bill was high. They were the ones whose monthly bill was variable — even if the average was low.
Our pricing was usage-based. Some months a customer paid €40, some months €120. The €120 month — even if it was offset by three €40 months — was the trigger. Users would call, complain, get a refund, and quietly leave the next month.
Three patterns that read as “too expensive”
The same complaint masks three different underlying problems.
Pattern 1: Hidden fees
The customer sees a headline price on the website, signs up, and is then surprised by add-ons, transaction fees, currency conversion margins, or activation costs that weren’t obvious upfront.
At Kkiapay, we hit this with our cross-currency conversion margin — clearly disclosed, but on a separate page. Customers who didn’t read it felt deceived. Same fee, same margin, but the experience of discovering it on the invoice was the churn driver.
Fix: every pricing page should let the user simulate their own actual invoice before signing up. Show the worst-case month, not just the optimistic one.
Pattern 2: Plan complexity
Three plans, fine. Five plans with crossing feature matrices, catastrophic. The customer has to predict their future usage to choose correctly, and they always predict wrong, and they always feel that they chose wrong. That cognitive cost is registered as “the product is expensive” even when, by any rational measure, it isn’t.
Fix: ruthless plan simplification. If you can’t explain the three plans on a sticky note, you have too many or they overlap too much.
Pattern 3: Surprise charges
This is the variable-bill problem from above. Even when each individual charge is justified, the variability itself is the product the user is buying — and most users buy predictability, not optionality.
Fix: cap the worst-case month, even if it costs you margin. Tell the user up front: “you will never pay more than X this month, no matter what.” That single sentence reduces churn more than any discount.
The thing pricing experiments usually miss
Most pricing tests are price-point tests. Should we charge $29 or $39? Should the annual discount be 10% or 20%? Those are real questions, but they’re downstream of the bigger one: how much certainty are we selling?
SaaS pricing has converged on flat monthly subscriptions for one good reason: users massively prefer predictability over economic optimality. They’d rather pay €50/month for a service they sometimes don’t use than pay €30/month on average with €15 and €60 swings.
This is well-established in consumer psychology — Kahneman’s loss aversion at the invoice level. It applies just as cleanly in B2B, possibly more so, because in B2B the user has to defend the invoice to a finance team that hates surprises.
What I changed at Kkiapay
We took our usage-based pricing and added a predictability layer without changing the underlying economics:
- A monthly cap at the 90th percentile of historical usage for each merchant. The customer pays usage-based up to the cap, then it’s flat. We absorbed the long-tail volatility.
- A monthly minimum for the highest tier. Same motivation in reverse — predictable revenue for us, predictable tier benefits for them.
- A real-time invoice preview in the dashboard. The merchant could see “at current pace, your bill this month will be approximately X” updated daily.
Headline price: unchanged. Average revenue per merchant: nearly unchanged. Churn for the experimental cohort dropped meaningfully over the following two quarters.
The principle
Customers don’t pay you for the product. They pay you for the product plus the certainty about what they’ll pay. Most pricing pages sell the first and undersell the second.
If you’re losing customers and the headline price seems reasonable, don’t lower the price. Audit your invoice. Ask: where is the gap between what the user expected to pay and what they actually paid? Close that gap, and you’ll find most of your churn was never about money at all.