On 4 December 2025 Microsoft published a licensing page with no explanation on it. Two columns, old price and new price, effective 1 July 2026. Microsoft 365 E3 went from $36 to $39 per user per month. Office 365 E3 went from $23 to $26. The frontline F1 licence, the cheapest seat on the list, went from $2.25 to $3.00. That is 33%.
Run that through a customer that held the same number of seats in July as it did in June. The vendor books expansion. Net revenue retention goes up. Nobody at the customer used more of anything.
I build software for private equity, and the first file I ask for in a software data room is the renewal ledger, not the retention slide. I read that Microsoft page the same way. It is the cleanest public example I know of a number every software deal underwrites as one thing when it is two.
The thesis
Expansion revenue is two products. Volume led expansion, more seats, more usage, more modules adopted, compounds with the customer’s business. Price led expansion, the same seats at a higher unit price, has a ceiling and a procurement team with a memory. Every diligence pack I have read reports them as one line inside net revenue retention. They deserve different multiples, and in 2026 they are moving in opposite directions.
The mechanism
Net revenue retention is a ratio. What a cohort of customers pays you now, divided by what the same cohort paid a year ago. Churn and contraction pull it down. Expansion pushes it up. The figure says nothing about why the expansion happened.
Split a single renewal and every dollar comes from somewhere specific. Either the customer is paying for more units, or it is paying more for each unit. The first is a claim on the customer’s growth. The second is a claim on the customer’s patience.
Volume compounds because it rides on something outside the vendor: the customer hiring, processing more transactions, rolling the product into another division. Price does not compound that way. A 6% uplift is a one off step, and the next one has to be negotiated again against a buyer who now has the last invoice on file. That memory shows up at renewal as a discount request, a competitive tender, or a quiet seat reduction to hold the total flat.
AI is what makes this urgent. Seat priced software has always been priced on the customer’s headcount, and AI is going after headcount first in the roles that hold the most seats: support agents, frontline staff, junior operations. The volume engine in a seat priced business can now run backwards while the price engine runs forwards. Net revenue retention nets the two into one comfortable number.
Three cases on the public record
Microsoft. E3 up 8.3%, F1 up 33%, both from 1 July 2026. A customer holding seats flat produces 8.3% expansion on E3 alone. The largest percentage rise lands on the cheapest and most numerous seat, the one issued to people on a shop floor or a ward. Any business whose revenue tracks that seat base will show its best renewal cohort in years, and almost none of the improvement will be volume.
Salesforce. On 17 June 2025 Salesforce announced an average 6% list price rise on Enterprise and Unlimited editions of Sales Cloud, Service Cloud, Field Service and some industry clouds, effective 1 August, citing “significant ongoing innovation and customer value”. By early September Marc Benioff had told The Logan Bartlett Show he had cut his own support organisation “from 9,000 heads to about 5,000, because I need less heads.”
Put those two numbers on one account. A customer that makes the same cut on a per agent support product keeps 56% of its seats at 106% of the price. That account now pays 59% of what it paid before. Price can paper over a small seat decline. It cannot cover a 44% one, and the support desk is where AI is landing first.
Workday. Workday is the honest version. CFO Zane Rowe reported gross revenue retention of 97% in November 2025 and again in August 2026, and said in August that net expansion from existing customers drove about 60% of subscription revenue growth. In November an analyst asked how Workday grows if its customers lay people off. Rowe said customer headcount growth was a net positive, “but it’s not a significant amount of our growth.” Carl Eschenbach, then chief executive, said the company was “focused not on just seats, but actually revenue per seat”, and that contracts carry “floors and minimums” on how far a customer can bring headcount down.
Read those together. The expansion is not coming from more employees, so it is coming from modules, agents or price per head, and the floor exists because the vendor expects the head count may fall. That is a listed company telling you on a public call which of the two products it is selling. Most private targets will not tell you unless you ask for the rows.
Where this breaks
Three objections are fair.
First, pricing power is a moat signal. A vendor that raises prices 8% and keeps 97% of its revenue has a product customers cannot easily leave. Agreed. Price led expansion that survives three renewal cycles with gross retention intact is evidence, and I would pay for it. What I will not pay for is one cycle of it extrapolated across a five year hold.
Second, some price rises carry real new value. Microsoft’s announcement pointed to added AI and security features, and Salesforce cited innovation. Where the ledger can show that as a new module, it is volume and should be booked as volume. Where it cannot be separated, I treat it as price, because the buyer will.
Third, volume is not pure either. Seat growth tied to customer hiring is a bet on employment in your customer base, and in a downturn it reverses faster than price does. True, and that is the reason to split them. They fail in different conditions, so anyone holding a book of these businesses needs to know the mix in each.
What I would do on Monday
Ask for the renewal ledger at contract line level: units and unit price for every customer at each of the last three renewals. Not the retention slide. The rows.
Split every expansion dollar into new units at the old price and the price change on all units. Report a volume NRR and a price NRR beside the blended one.
Date every list price event and check gross retention and discount depth in the 12 months after each. That is where procurement memory shows up.
Map the seat base by role. Any share sitting in support, frontline or junior operations gets a volume haircut in the model, because those are the seats AI reaches first.
Value price led expansion as a step, not a rate. Hold it flat after the next renewal unless the ledger proves it repeats.
The two columns
Microsoft’s licensing page has two columns and no explanation. That is fine for a price list. It is not fine for a retention number, and most retention numbers I am handed are built the same way: a before, an after, and nothing about why it moved.
The why is in the rows. Ask for them.
Diligence on a software asset usually comes down to a renewal ledger nobody has split yet. If one is open on your desk, find an hour with me.

