Modeling SaaS Contracts
In this issue of the "SaaS Model deep dive," I'm going to walk through all the different inputs I use to model various SaaS Contracts.
(📱 If reading on your phone, you'll have to pinch the screen to get a closer look!)
The red rectangles highlight the section we're talking about.
Let's get started...
SaaS Contracts: Logo Name
Big picture, we've got customer and/or cohort names going down this first column called "Logo Name."
As you make your way to the right (going across the columns), you have the ability to change assumptions for the given cohort.
So for our first column, simple enough, you assign a cohort name.
As a default here, I have a new cohort for each month:
- January 2030 Cohort
- February 2030 Cohort
- March 2030 Cohort
- Etc.
Actual vs. Projected
Straight-forward enough, in this column you "tag" the given cohort as an Actual or a Projection.
This can be used for summary information down the road.
SaaS Contracts: Acquisition Strategy
The model is built with three customer Acquisition Strategies in mind:
- Outbound Sales: we have a team of sales reps making outbound sales calls, and closed deals are contingent upon the team's capacity.
- Inbound Sales: customers find us on their own (i.e., via a web search, word-of-mouth, etc.), but this still requires a team of reps to help sign and onboard these new customers.
- Self-Service: customers find us on their own and sign-up on their own (just like you'd sign-up for a Netflix subscription, there's no one there to onboard you -- you just pay and go).
In real life, I have found that very few companies utilize all three of these strategies, but nonetheless, I wanted the functionality to exist in the model to give people optionality.
Contract Type
You can select four Contract Types:
- New Business: aka a new customer we've signed
- Renewal: when an existing customer renews their contract
- Upsell Portion: when a customer expands their contract (i.e., pays us more)
- Downsell Portion: when a customer reduces their contract (i.e., pays us less)
When it comes to building a projection, the default "Type" is "New Business." You won't really need the other three options unless you're modeling Actual contracts (which is in its own section, shown below in a minute).
ON / OFF and Start Dates
These columns don't need their own sections, and are pretty straightforward:
- ON / OFF: a simple toggle you can use to turn a cohort on or off and see how it flows through the model
- Start Date: when the contract starts
- Start Data Cohort: when the cohort starts
*Note, the reason we have a contract start date and a cohort start date is because one customer may have multiple contracts. For example, a given customer may have:
- Contract 1: a new contract when they first sign-up
- Contract 2: a renewed contract when the first contract comes to an end
- Contract 3: the renewal may also be a downsell from their original contract
So, this one customer actually has three contracts. Here's an example:
SaaS Contracts: Contract Duration
A quick breakdown of this section:
- Contract Duration: how many months the contract lasts for. The "stock assumption" in the model is 12 months, but it can be changed on the Summary + Assumptions tab.
- Contract Duration Override: for those one-off instances where you want to override the "stock assumption."
- End Date: An automatic calculation based on the Start Date and Duration.
- Renews: When modeling a Projection that is initially tagged as "New Business," the standard is assumption is "Yes" the contract will renew. You would only toggle this off when modeling Actual customers (as shown two images up).
Number of Contracts and Price
In this section we've got:
- Number of Contracts: it's a little hard to conceptualize, but within each cohort (a group of customers) you have a given number of contracts. For example: in January of 2030 (the cohort), thousands of people may sign up (the contracts).
- Contract Value: each of these contracts has its own price (just like when you sign up for Netflix). In this table, the starting price is $20,000 per contract and gradually makes its way up to $30,000 per contract, but these assumptions can be changed as needed.
SaaS Contracts Metrics (TCV, ARR, MRR)
Based on the information we've entered in the preceding columns, we now have the data to calculate the following:
- Total Contract Value (TCV): the number of contracts x the contract price
- Single Contract ARR: the Annual Recurring Revenue (ARR) for just one contract in the cohort
- Total ARR: the total ARR for the entire cohort (so it will include number of contracts)
- Single Contract MRR: the Monthly Recurring Revenue (MRR) for just one contract in the cohort (ARR / 12)
- Total MRR: the total MRR for the entire cohort (so it will include number of contracts = ARR / 12)
Billing Information
A big distinction to make when modeling SaaS is when we bill for something vs. when we earn something, and that's why we have billing assumptions.
Here's a very common structure:
- We bill the customer upfront for a 12 month contract, but;
- We don't earn that revenue until all 12 months of the contract have been satisfied
So this means:
- Cash comes into the business today (since we sent out a bill), but;
- Revenue is earned over a 12 month period (since we have to deliver on the contract), meaning;
- there's an Unearned Revenue portion we have to keep track of every month (liability on the Balance Sheet) that equals the difference of what we've billed for minus the portion of the contract we've delivered on.
So the billing section is all about cash collection, not revenue:
- Billing Cadence: how often we bill the customer. The standard assumption is 12 months to align with the contract duration.
- Billing Cadence Override: ability to create a custom billing cadence as needed.
- Single Billing Amount: The amount we bill one customer in the cohort.
- Total Billing Amount: The amount we bill for the entire cohort (number of contracts x price)
Churn
The nasty number no one wants to talk about: Churn
Aka how many customers we lose at the end of each contract.
Churn is a part of any business -- you unsubscribe from things like Netflix, newsletters (please don't), or maybe grocery delivery -- this is called "Churn" and it's a critical part of building a SaaS Model.
- Churn Cadence: how often we expect Logos (customers) to churn. The standard assumption is 12 months to align with the contract duration.
- Churn Cadence Override: ability to create a custom churn cadence as needed.
- Logo Churn Percent: what percent of our logos will churn at the end of each contract? A typical assumption is 10-20%.
- Monthly and Annual Churn Percent: support calculations that can be ignored (they help model the monthly section off to the right which is not shown in the images above).
Implementation Revenue
A smaller part of the big picture, "Implementation Revenue" is revenue we earn when we sign new contracts (usually via Outbound Sales).
This is revenue we earn for helping onboard clients to our platform. Think zoom calls, setting up user profiles, etc. The starting assumption in the model is 5% and can be changed as needed.
SaaS Contracts: What You Don't See
Off to the right (not shown in any of the images), there are a ton of columns using all the information we've entered here to calculate the following by month:
- Number of Contracts
- Number of Logos
- Subscription Revenue
- Billings
- New ARR
- Churned ARR
- ARR Balance
- Implementation Revenue
From there, this information is aggregated further into the corresponding Income Statement and Balance Sheet accounts as needed, which ultimately make their way back to the Three Statement Model.
SaaS Contracts: Lot of Info, but (relatively) Simple Concept
We've got a lot of columns here (trust me, I know), but the idea is grounded in simplicity: each row of data allows you to enter everything you'd need to model a given cohort.
The output of this information flows back into the Three Statement Model.
That's it for today, see you next time.
—Chris
p.s., if you enjoyed this post, then please consider checking out my Financial Modeling Courses. As featured by Wharton Online, Wall Street Prep, and LinkedIn Learning, you'll learn to build the exact models I use with Investment Banks, FP&A Teams, and Private Equity Firms 👉 Click here to learn more.