@wsm007 Willem, I wanted to circle back after you made me dig a lot deeper. I greatly appreciate your consistent attention to detail (here and every post!) and, let’s be clear, you know this company and its nuances better than I. However, I think your conclusions above are incorrect, and beyond that, I’m really not sure how you are confident enough to calc your own NRR based on the add’l breakouts given by CFO (and in my own attempts, I come up with way, way better NRR).
The price increase
First off, let’s start with the specifics of the Premium price increase. As I said before, this isn’t a one-off, but was a staggered increase at time of renewal. From April 2023 on, the first year renewal of Premium tier was offered at a discount of $24. Next year (after April 2024) gets greater uplift at full $29 price. So for a price increase of $19 to $29, the first year (across FY24) was half of the increase (+$5), and second year (across FY25) was the other half (+$5).
From Q124 on, the CFO has repeatedly said the price increase would have less impact on FY24, stronger impact in FY25 (add’l +$10-20M), and into FY26. Yes, this will continue into FY26 a bit, as the price increase doesn’t match their FY. Q124 had 1 month of it, and Q126 will have 2 months of final renewal at full price.
The NRR breakouts
Beyond that, the CFO is providing breakouts are part of his discussion of NRR. This means he is generalizing the contribution to overall expansion revenue TTM in these breakouts - aka the part of NRR over the base 100% from the ongoing subscription renewal. (I assume no seat changes, but obviously that is a factor here too – however they say that contraction has stabilized.)
I think you missed how 25% of this expansion revenue TTM (part of the NRR discussion) was already on “price yield” before Q124 first saw the effects of the price increase.
CFO in Q423 (Mar-23): “So first let me talk about the net dollar retention rate. Seat growth is still the number one contributor to the net dollar retention rate, followed by tier upgrades and then price yield and so that hasn’t changed that much. Seat growth, two or three quarters ago was about two-thirds. That’s down to around 50% now and then the other to make up the remaining 50%.”
Okay, so going into the price change, we had expansion coming from 50% seat increase (from 66% a few Q prior), and 50% between tier upgrades and price yield. [My guess as to why it decreased? Success of Premium->Ultimate tier upgrades bumped up in the mix.]
What is “price yield”? He actually clarified this nicely in a recent Truist fireside chat after Q424 (will get back to those breakdouts in a sec).
CFO at Truist fireside chat after Q424: “As we go through the dollar-based net retention rate, we historically have given sort of what the breakdown is between seats, increased price yield and tier upgrades. And so about 40% of it is related to more seats this 12 months over the prior 12 months. And the other 40% is increased price yield. It’s important. We’ve talked about this since being public. And so when we sell the product, we may give a certain discount for year 1. And so then in year 2, we give less of a discount. Year 3, we give less of a discount. And this is because we put so much feature functionality continually in the platform. So it’s comprised of increased yield per customer as well as the premium price increase, and that was roughly about 40%.”
So price yield has traditionally been about the removal of early discounts in later contract years. Now you can add the price increase to that.
NRR change
CFO in Q3: “We ended our third quarter with a dollar-based net retention rate of 128%. … This quarter we have updated our dollar-based net retention rate calculation methodology to reflect operational changes to our customer account hierarchies. The trend of declining but stabilizing rate has been consistent based on both the previous and the new dollar-based net retention rate calculations.”
… Later in Q&A: “Yeah, I’ll take the dollar-based net retention first. And so, I wanted to call out, we’ve made a change in the way that we’ve calculated dollar-based net retention rate this quarter to better reflect the business itself. And so, this quarter, if you did the old way, be flat 124% to 124%. But the new way basically takes into the account the account hierarchies. The old way that we did it actually kept a static view of the parent accounts. And if there was a merger, a new subsidiary, division being shut down or something, that actually showed a churn and then a new business. And so the change that we made, it’s important to note, doesn’t change the business at all. It just shifts between growth and new to give a better reflection of what’s going on in the business. This is reflected in our 10-Q for Q1 and Q2. And so you can see the disclosures there. But under the old method was 124% to 124%. And under the new method, it’s 128%.”
From Q324 10-Q:
During the quarter ended October 31, 2023, we implemented operational changes related to our account hierarchy process for tracking customers. These changes resulted in an update to our methodology for calculating Dollar-Based Net Retention Rate. Under this new methodology, Dollar-Based Net Retention Rate would have been reported as above 130% and as 129% in the quarters ended April 30, 2023 (Q1) and July 31, 2023 (Q2), respectively. All prior quarter disclosures would be unchanged.
I really hate changes to KPIs that allow companies to change the goal posts. This doesn’t seem like that. What they are essentially saying is they were undercounting NRR before due to the way they tracked overall company accounts around mergers and separate divisions.
They restated only 2 quarters. Something happened in Q1-Q224 that made them realize their internal tracking of customer accounts (parent accounts) was allocating things wrong. So these mergers and division changes were being allocated to new lands or churn, not renewal. (PS this is something Snowflake encounters a lot, but they have decided to change their entire historical customer counts every year to handle it. I hate it!)
This makes me think their new method is more sound. It seems this change added +4-5pp to NRR.
- Under old method, Q324 was 124% - flat to Q2 (stable).
- Under new method, Q124 was >130%, Q224 was 129%, and Q324 was 128%.
Q4 was reported as 130% in the new method, so it moved back up +2pp either way.
Issues in your calcs
Problem 1: You are prematurely attributing a huge NRR adj from price mix in Q124, only 1 month into the first upgrade cycle.
You started pulling from their NRR w/ your own calcs in Q, all of one month into their price increase in a 12mo renewal cycle (as it happens at the next annual renewal of every Premium customer). I’m not sure why you think 128% needs to adjust to 121% here.
CFO in Q124 (one month into price change): “It’s been relatively the same. And so seats is about 50%. Price increase is about 25%, and the last is 25%. So there really hasn’t been any change whatsoever.”
I think his wording was confusing… he used price yield before, and price increase here. He later clarified it is both at that Truist conf. So you essentially have 50/25/25 breakdown of expansion TTM that was unchanged between Q423 and Q124 after the price increase kicked in. Not that surprising as Q1 was likely 1/12 (one month) of a 1/2 price increase (the first +$5).
Problem 2: the starting point for price yield contribution is 25% before price change, which increases to 40% by Q4. Your issue above (adjusting their NRR lower) magnifies as you adjust NRR down to 115.8%
We don’t know what Q2 looked like, but it had to be under Q3 as the price change continues through 3 more months of renewals (4/12 of 1/2 price increase now complete). Let’s say it was 29% from price yield (+4pp).
By Q3, it was 33%, seats <50%, tier< 25%. This means that the price increase took the price yield part of the mix from 25% to 33% (+8pp).
By Q4 (7/12 of 1/2 price increase now complete), it was 40%, taking it from 25% to 40% in contribution to expansion revenue TTM (+15pp) over FY24. That extra bump makes me think a majority of renewals were in Q4.
IMHO you really shouldn’t be recalculating NRR on your own without any of the inputs. But if you wanted to… as I said before, his breakouts above are on expansion revenue overall, aka the part of NRR over 100% (the same subscription renewal). Premium price increase took that part of expand mix from 25% to 40% (+15pp) over last 3Q (again, 7/12 of this first upgrade cycle now complete). For Q4 with NRR of 130%, this is at most 4.5pp of NRR. (.3 times .15). We don’t know the mix of land to expand in net new revenue/ARR so can’t really extrapolate this further.
I don’t like doing this, but it’s merely an example. I have no idea how you lowered all this to 115.8% in your own calcs – but I think you need to revisit.
WHEW that got long. Long story short, there are 2 ways to look NRR from GitLab that I think we should stick with instead of trying to extract our own.
NRR over FY24, old way:
128% → 124% → 124% → 126% (estimate from +2pp)
NRR over FY24, new way:
over 130% → 129% → 128% → 130%
FY25 will bring another EQUAL ROUND of revenue increase from price appreciation in the 2nd wave of this upgrade cycle. FY26 will have 2 months of it in its Q1. Revenue growth and NRR might start muting then after Q126 after we get entirely through the cycle. However, lots of new products in FY25 are coming to boost things before then.
As for the recent Truist fireside chat, I listened to it on the Quartr app as it is no longer available on IR’s event page. There was very helpful commentary as noted above.
-muji