A founder I work with sat on a price increase for two and a half years. Every board meeting somebody asked about it. Every quarter he said next quarter. When we finally pulled the numbers, his average contract value on the existing base was 19% below what the same customer profile paid on a new deal signed that month. Same product, more features than the 2023 version, and a book of business quietly renewing at 2023 prices.
He was not being lazy. He was scared. The fear was specific and he said it out loud: "If I send that email, half of them will start shopping."
Almost none of them did. We raised the base by an average of 8%, gave 90 days notice, and lost two accounts out of 140. Both were already dying. Net revenue retention went up nine points inside two quarters, and the thing he had been dreading for two years turned into a two-week project.
I want to be honest about why I think most price increase advice is useless. Search the phrase and you get a hundred pages of letter templates. Fill in the blank, insert a warm sentence about rising costs, sign off with gratitude. The letter is the last 5% of the job. What actually decides whether your customers stay is everything that happens before you press send: who you increase, by how much, what you have already fixed in the CRM, and whether your CSMs have a real answer when somebody pushes back.
So here is the full version. The math, the segmentation, the contract mechanics, the operational setup, and yes, the letter at the end.
Why you are almost certainly underpriced on the existing base
Two forces work against you and both are invisible on a dashboard.
The first is drift. You raise new-business prices, quietly and gradually, because the market lets you. Nobody raises the existing base at the same rate. After three years you are running two price books: what new customers pay, and what customers who signed in 2022 pay. The gap widens every quarter and shows up nowhere in your reporting.
The second is delivered value. You ship. The 2026 product does considerably more than the 2023 product. Your 2023 customer gets every one of those improvements for free. That is not generosity, it is an accounting error you have been making monthly.
Increase in operating profit from a 1% price increase with no volume loss, per McKinsey's analysis of large companies. No other growth lever in your business is this efficient, and most B2B teams never pull it on the customers they already have.
That number is worth sitting with. A 1% price increase moves operating profit by roughly 9%, and older McKinsey work on the Global 1200 put it as high as 11%. Compare that to what you would have to do on the acquisition side to move profit the same amount. Hire two more AEs, wait nine months for ramp, hope they hit quota. Or send an email.
The catch, obviously, is "with no volume loss." That is what the rest of this article is about.
Decide the number before you write a word
Most teams get this backwards. They pick a percentage that feels safe, usually somewhere between 5% and 10%, then work out how to justify it. Start with the data instead.
Pull three things from your CRM:
Your realization gap. For every active customer, compare what they pay per unit against what a comparable customer signing today would pay. Do it per seat, per user, per whatever your value metric is. That difference is your ceiling. If the gap is 19%, an 8% increase is not aggressive, it is a partial catch-up.
Your usage-to-price ratio. Sort customers by how much of the product they actually use relative to what they pay. The accounts consuming three times their contracted value are your safest increases. They will renew anyway, and some of them know they are getting a deal.
Your last increase date. If some cohorts got a bump in 2024 and others have never had one, do not apply a flat percentage across everyone. You will punish the loyal and reward the neglected.
Then build the bands. In every rollout I have run, a flat number across the whole base is the wrong answer. You want three or four groups.
The zero-percent band matters more than people expect. Being able to tell a customer "we reviewed your account and you are already priced correctly" buys enormous credibility, and it gives your CSMs a genuine story instead of a corporate one.
Do not send anything until the CRM is clean
Here is the part nobody writes about, and it is where I spend most of my time on these projects.
A price increase is a data project wearing a communications costume. To execute it you need to know, for every single customer: the exact contracted price, the renewal date, the notice period buried in their contract, whether they have a price protection clause, who the billing contact is (not the champion, the person whose card gets charged), and whether anyone on your team has promised them something in writing.
I have never once found a company where all of that was accurate on the first pull. On a typical audit I find somewhere between 15% and 30% of accounts with a renewal date in the CRM that does not match the contract, and a handful with a most-favored-nation or capped-increase clause that somebody agreed to during a hard negotiation and never logged anywhere.
Send an increase to a customer with a contractual cap you forgot about and you have handed them the upper hand for the entire renewal negotiation. Annoying them is the smaller cost.
Put the increase percentage, the new price, the effective date, and the assigned owner on the company record in HubSpot or whatever CRM you run. Not in a Google Sheet. The moment it lives in a sheet, three people have three versions and the CSM on the call cannot see what the customer was actually told. If you want the mechanics of getting contract terms and CRM records to agree in the first place, that is the same problem I covered in the quote-to-cash breakdown.
Then build the tracking before you send. One property for notified date, one for response type (accepted, negotiating, escalated, churning), one for final agreed price. Without it you will be answering "how is the increase going?" from memory for six weeks.
Notice periods, and the trap inside them
The standard advice is 30 days minimum, 60 to 90 days better. That is roughly right for B2B, and 90 days is the number I use for anything above about $10K a year, because your customer has a budget cycle and an approval chain of their own. Give them time to get the new number into their own planning and you convert a confrontation into an administrative task.
But notice period is not really your decision. It is written into the contract, and it varies per customer, which is exactly why step one above exists. Some contracts require notice before the auto-renewal window opens. Miss that date and you are legally locked into another year at the old price whether or not you sent a lovely letter.
The other timing rule: never land a price increase in the same month as an outage, a failed implementation, or a support escalation. Check the health score and support ticket volume before the send list is final. If the account had a bad quarter, defer them a cycle. You are not losing much and you are avoiding the one conversation that actually causes churn.
Customers do not churn over the price. They churn over being surprised.
In every rollout I have run, the accounts that pushed back hardest were the ones where the increase arrived cold from an address nobody recognised. The ones that got a call from a person they knew, a week before the email, mostly said fine.
Build the escalator into new contracts so you never do this again
Everything above is remedial work. The permanent fix is to stop signing contracts that have no annual increase mechanism in them.
An uplift clause sets an automatic annual increase at renewal, usually a fixed percentage or CPI, whichever is higher. Typical B2B SaaS ranges sit at 3% to 5%, and named enterprise vendors run higher. Workday reportedly uses 5% escalators in multi-year agreements, ServiceNow lands around 3% to 7%, HubSpot has been reported at 5% to 10% depending on the package. Meanwhile only about 29% of SaaS contracts include any cap on renewal increases at all, which tells you how normal this has become on the buy side.
Two things to get right in the wording. First, "the greater of CPI or 4%" protects you in a low inflation year in a way that "CPI" alone does not. Second, make the clause automatic rather than something requiring notice. If it needs a notification to trigger, someone on your team will eventually forget, and you are back to the two-price-book problem.
The reason this matters is not the 4%. It is that an automatic escalator removes the conversation entirely. Nobody writes a letter. Nobody spends two years dreading it. The increase happens because the contract says so, and the customer signed the contract.
Grandfathering: use it as a tool, not a default
Grandfathering existing customers forever feels kind. It is how you end up with a 2019 cohort paying a third of list price and a support burden they no longer fund.
I use grandfathering in two narrow ways. As a time-limited concession: you keep the old price for twelve more months if you sign a two-year renewal now. That converts a price conversation into a term extension, which is usually worth more to you anyway. And as a permanent exception for a genuine strategic account, logged with a reason, reviewed annually, capped at a small number of logos.
What I do not do is grandfather by default because a rep asked nicely. Every permanent exception is a hole in the price book that somebody will point at during the next increase.
The letter itself
Now the part everyone searches for. Some rules, then the structure.
Send it from a person, not from "The Team at Acme." Send it separately from any newsletter. Call your top 10 to 20 percent of accounts by revenue before the email goes out, because a five-minute call surfaces objections while you can still handle them, and because those customers will find out you emailed everyone at once and will notice they were not worth a call.
Keep it short. Say the number. Do not bury the increase in paragraph four under a wall of gratitude.
The structure that works:
- The what, immediately. Their new price, the old price, and the date it takes effect. Two sentences, first thing.
- The why, in one line, and make it about them. What they got this year that they did not have last year. Not "rising costs." Your customer does not care about your AWS bill, and pinning it on inflation invites a conversation about whether inflation was really 8%.
- What is not changing. Their contract terms, their support level, their account team. Reduce the surface area of the news.
- A clear next step and a real human. Name the person, give the calendar link, tell them what happens if they do nothing.
What to cut: apologies, "we know this may be difficult," and any hedging language that signals you expect a fight. If you write like you are bracing for impact, you will get one. Confidence in the wording does real work here.
A version I have used, near enough:
Hi [name], starting 1 April your [plan] moves from $2,400 to $2,640 a month. This is the first change to your pricing since you joined us in 2023.
Over that period we shipped [two specific things they actually use]. Your team ran [specific usage number] through the platform last quarter, up from [previous number].
Nothing else changes. Same terms, same support, same team, and your renewal date stays 1 September.
If you want to talk it through, here is my calendar: [link]. If I do not hear from you, your April invoice will reflect the new amount.
That is it. The specificity is what makes it land. A generic letter reads as a company-wide policy applied to a stranger. Naming their usage numbers proves somebody looked at their account.
What to do when they push back
Roughly one in five will respond, and most of those want reassurance rather than a discount. Arm your CSMs with three moves and a firm floor.
The moves: extend the term in exchange for holding the old price for a defined period; phase the increase over two steps six months apart; or trade the increase for a scope reduction they will not miss. All three keep the price book intact.
The floor: whatever it is, decide it before you send, write it down, and do not let it move. The moment one AE gives a full reversal to avoid an awkward call, that becomes the precedent, and it will leak to other customers faster than you think. This is the same discipline problem as discount authority in new business, and it fails the same way.
For accounts that genuinely threaten to leave, do the math out loud. If a customer at $30K a year churns over a $2,400 increase, you lost $30K to protect $2,400. Sometimes holding is still right, because caving teaches the whole base that your prices are negotiable. But make that a deliberate call by one named person, not an improvised one by whoever picked up the phone.
Track the outcomes properly. Accepted, negotiated, churned, and the final price, all on the record. Two quarters later you will know exactly what the increase cost you in logos and earned you in revenue, and the next one will be a much easier decision. This is straightforward net revenue retention accounting, and a well-run increase usually moves that number more than any expansion play you could run in the same quarter.
Sitting on a price increase you keep postponing?
We reconcile the contracts, band the base, build the CRM tracking, and hand your team the scripts. Book a 30-minute call and we will tell you what the delay is costing.
Book a call →Frequently asked questions
How much can I raise prices on existing B2B customers?
It depends on your gap to current list price, not on a universal safe number. If comparable new customers pay 20% more than a legacy cohort, an 8% to 12% increase for that cohort is a catch-up and reads as reasonable. If the gap is 5%, do not exceed it. Band the base rather than applying one percentage everywhere, and exclude accounts that are already at or above list.
How much notice do I need to give before a price increase?
Check each contract first, because the notice period is usually written into it and often tied to the auto-renewal window. As a default, 30 days is the minimum and 90 days is better for anything over roughly $10K a year, since your customer has a budget approval cycle of its own. Missing a contractual notice date can lock you into another full term at the old price.
Will a price increase cause customers to churn?
Far less than founders expect, if the increase is segmented and communicated properly. The accounts that leave over a price increase are almost always accounts that were already disengaged, so pull your health scores and support ticket history before finalising the list and defer anyone in active trouble. Surprise causes churn much more reliably than the number does.
Should I grandfather existing customers at their old price?
Not by default. Use it as a trade, for example holding the old price for twelve months in exchange for a two-year renewal, or as a documented exception for a small number of strategic accounts reviewed annually. Permanent open-ended grandfathering creates a legacy cohort that gets more expensive to serve every year while paying less.
What is a price uplift clause and what percentage is standard?
It is a contract term that automatically raises the price at each renewal, typically the greater of CPI or a fixed percentage. Standard B2B SaaS ranges run 3% to 5%, with large enterprise vendors often higher. Adding one to every new contract removes the need for a price increase campaign later, because the increase is contractual rather than a conversation.
Stop treating this as a communications problem
The letter is the easy part. What makes a price increase work is the boring operational layer under it: contracts reconciled against CRM records, customers banded by their actual gap, health scores checked, notice periods honoured, tracking in place before anything sends, and a floor your team will not cross.
Do that work and the email is a formality. Skip it and no amount of warm phrasing saves you.
If your contract data and your CRM currently disagree, fix that first. It is the same foundation everything else in RevOps sits on, and once the records are trustworthy, most of this becomes a workflow rather than a project. We build exactly that for B2B teams, including the automation layer that keeps renewal dates and uplift clauses from drifting again. Tell us what you are working with and we will tell you what the delay has already cost.