# Building a Simple SaaS Growth Model Spreadsheet

> How to build a simple SaaS growth model in a spreadsheet, including traffic, conversion, activation, churn, expansion and revenue assumptions, scenarios and using the model for decisions.

Source: https://comppound.com/blog/building-a-simple-saas-growth-model-spreadsheet (published 2026-09-26)

A growth model is a way of writing down how your SaaS business turns attention into revenue. It connects the number of people who find you, the share who sign up, the share who get real value, the share who pay, and the share who stay and grow. Once those links are on a single sheet, you can see which levers move revenue most and set targets that are grounded in how the business actually behaves.

You do not need specialist forecasting software to do this. A spreadsheet with a handful of clearly labeled assumptions is enough for most companies until well past their first few million in annual recurring revenue. What matters is that the model is honest, that everyone on the team understands it, and that it gets compared against reality every month.

This guide walks through building one from a blank sheet. To keep it concrete, we will follow a fictional company called Ledgerline, which sells invoicing software to small accounting firms. Ledgerline has about 120 paying customers, a free trial, and a small marketing team trying to decide where to spend the next two quarters.

## Decide what the model needs to answer

Before you open the spreadsheet, write down the questions the model exists to answer. This keeps it from sprawling. For Ledgerline, the founders want to know how many customers they are likely to have by the end of next quarter, how much monthly recurring revenue that implies, which improvement would matter most if they could only fund one, and what happens to the plan if conversion dips or churn rises.

Those four questions shape everything that follows. A model built to answer them needs monthly granularity, a clear path from traffic to revenue, and a way to change one assumption and watch the result. It does not need cohort-level retention curves, departmental cost allocation or a dozen pricing tiers. Those can come later if the questions change.

## Lay out the sheet in monthly rows

The simplest structure puts each month in its own row and each step of the funnel in its own column. Reading across a row tells you the story of that month, from visitors arriving at the top to ending revenue at the bottom. Reading down a column shows how one metric changes over time.

Keep assumptions in a separate block at the top of the sheet or on their own tab, and have every calculated cell refer back to them. That way, when someone asks what happens if trial conversion improves, you change one input and the whole model updates. Hard-coding numbers inside formulas is the most common reason spreadsheets become untrustworthy, because nobody remembers which cells contain hidden assumptions.

## Model acquisition first

The top of the model is acquisition. Start with website visitors per month, ideally the visitors who reach pages where signing up is possible rather than total sessions including job seekers and existing customers logging in. Multiply visitors by the visitor-to-signup conversion rate to get new signups.

Ledgerline sees around 9,000 relevant visitors a month and converts about 2.5 percent of them into trial signups, which gives roughly 225 new trials. Those are its own observed figures from the last six months, not industry benchmarks. Use your own data wherever you have it, because averages from other companies hide huge differences in audience, price point and product type.

If you plan for traffic to grow, express that growth as its own assumption, such as a monthly growth rate for organic visits, rather than typing larger numbers into later rows. Growth that lives in an assumption can be questioned. Growth hidden in a typed figure tends to go unexamined.

## Add activation

Not every signup becomes a real user. Activation is the step where a new account reaches the moment of value, the point at which the product has done something useful for them. For Ledgerline, activation means sending a first invoice to a real client from inside the product. Multiply signups by the activation rate to get activated accounts.

Separating activation from paid conversion is one of the most useful decisions you can make in a simple model. It tells you whether a weak month was caused by people failing to get started or by people who got started and still chose not to pay. Those are different problems with different owners. The first usually belongs to product and onboarding, the second to pricing, sales or the strength of the value itself.

## Convert activated accounts into customers

Next, apply the rate at which activated accounts become paying customers. If your trial is short and most decisions happen at the end of it, a single monthly rate works fine. If conversions trickle in over several months, you may eventually want to spread them across later rows, but start simple.

Ledgerline activates about 40 percent of its trials and converts about 30 percent of activated accounts into paying customers. With 225 trials, that gives 90 activated accounts and around 27 new customers a month. Writing it out this way makes the leverage obvious. Each step multiplies the one before, so a small gain early in the funnel ripples through everything below it.

## Turn customers into revenue

Multiply new customers by the average revenue per account to get new monthly recurring revenue. Use the average for recently acquired customers rather than your whole base, since older customers may be on legacy plans. If Ledgerline's new customers pay an average of 90 dollars a month, those 27 customers add about 2,430 dollars in new MRR.

If you sell several plans with very different prices, you can split new customers by plan using a mix assumption. For a first model, a single average is usually close enough, and it keeps the sheet readable.

## Account for churn

Retention is where optimistic models usually break. Every month, some customers leave. Apply a monthly churn rate to the starting customer count to estimate customers lost, and apply a revenue churn rate to starting MRR to estimate revenue lost. If you do not have enough history to calculate churn reliably, use a cautious estimate and mark it clearly as a guess to be replaced.

Ledgerline loses about 3 percent of customers each month. On a base of 120 customers, that is between three and four cancellations. It sounds small, but churn compounds. As the customer base grows, the same rate removes more customers every month, and eventually new acquisition is spent mostly replacing what leaves. Seeing that curve in the model is often the moment a team starts taking retention seriously.

## Include expansion

Some customers grow their spend by adding seats, upgrading plans or buying add-ons. Model this as an expansion rate applied to starting MRR. For many early-stage companies expansion is small, and that is fine to show. If your product is priced per seat or per usage unit, expansion can become a major driver and deserves its own careful assumption.

## Bring it together in totals

The totals columns tie the model together. Ending customers equal starting customers plus new customers minus churned customers. Ending MRR equals starting MRR plus new MRR plus expansion MRR minus churned MRR. Each month's ending values become the next month's starting values, so the model rolls forward on its own once the first row is set.

Written as formulas, the core of the sheet looks like this. Signups equal visitors multiplied by the signup rate. Activated accounts equal signups multiplied by the activation rate. New customers equal activated accounts multiplied by paid conversion. New MRR equals new customers multiplied by average revenue per account. Churned MRR equals starting MRR multiplied by the revenue churn rate. Ending MRR equals starting MRR plus new MRR plus expansion MRR minus churned MRR. That is the entire engine. Everything else is refinement.

## Ground every assumption in data

The model is only as good as its inputs. Base each assumption on recent actual performance, typically a trailing average over three to six months. Avoid using your single best month, and avoid targets dressed up as assumptions. If the team hopes to double conversion, that hope belongs in a scenario, not in the base case.

Where data is thin, use a range instead of a single number. A young company might know its signup rate fairly well but have only a few months of churn history. Writing churn as somewhere between 2 and 5 percent, and running the model at both ends, is more honest and more useful than pretending the figure is precise.

## Build scenarios

Once the base model works, create three versions. A conservative scenario uses assumptions at the cautious end of what you have observed. An expected scenario uses your best estimate. An optimistic scenario reflects what happens if planned improvements land. Change the inputs that are genuinely uncertain, such as traffic growth, activation, conversion and churn, and leave stable ones alone.

Scenarios change the conversation with investors and with your own team. Instead of arguing about whether a target is achievable, you can show what has to be true for each outcome. If the optimistic case requires both doubling traffic and halving churn in one quarter, everyone can see that it is a stretch.

## Test which levers matter most

Sensitivity analysis is where a simple model earns its keep. Change one assumption at a time by a realistic amount and record the effect on ending MRR six or twelve months out. What happens if activation rises by five percentage points? What if churn falls by one point? What if traffic grows twice as fast?

When Ledgerline runs this, it discovers that a five-point gain in activation produces more revenue over twelve months than a 20 percent increase in traffic, because every extra activated account flows through conversion and retention. That finding redirects the next quarter's plan from buying more ads toward improving the first-invoice experience. This is exactly the kind of decision a growth model is for.

## Separate channels as you grow

At first, a single acquisition line is enough. As you add channels, split them out. Organic search, paid campaigns, outbound sales and referrals usually differ in volume, cost and conversion. Organic visitors might convert to trial at a lower rate but activate at a higher one because they arrived looking for a solution. Outbound leads might skip the trial entirely. Modeling channels separately lets you see which ones are worth investing in and stops a strong channel from hiding a weak one. If organic search is one of those channels, a structured [SEO growth program](/services/seo-growth) is one way to give that line a steadier, more predictable input.

## Resist complexity

It is tempting to keep adding detail: cohort curves, seasonality, plan mix, regional pricing, sales capacity. Each addition makes the model feel more sophisticated and makes it harder to maintain. A model that only one person understands, and that breaks whenever someone edits a cell, will be abandoned within a few months.

Add complexity only when a decision requires it. If you are planning sales hires, you may need sales capacity. If you are entering a seasonal market, you may need seasonality. Otherwise, keep the sheet short enough that a new team member can understand it in ten minutes.

## Compare against actuals every month

A forecast that is never checked teaches you nothing. At the end of each month, add a row of actual results next to the forecast and look at where they differ. If signups beat the forecast but conversions lagged, that tells you something specific. Adjust assumptions when the evidence is consistent over a few months, not after a single unusual result.

Over time, this habit makes the model more accurate and makes the team better at forecasting. It also builds credibility with investors, who tend to trust founders whose forecasts show a track record of being compared openly against reality.

## Put the model to work

A good growth model is a working tool. Use it to set realistic quarterly targets, to prioritize experiments by their likely revenue effect, to time hiring against expected growth, and to explain performance in board updates. When someone proposes a new initiative, ask which assumption it would change and by how much, then run it through the model.

## Avoid the common traps

The mistakes that undermine most growth models are predictable. Assumptions drift toward optimism because nobody wants to present a disappointing forecast. Churn gets ignored or set unrealistically low. Too many variables make the model fragile and opaque. And the forecast is never compared with what actually happened, so errors repeat quarter after quarter.

A simple, honest model avoids all four. It links acquisition, activation, conversion, churn and expansion into revenue, it rests on real data, it shows a range of outcomes, and it gets updated as the business learns. Built that way, a single spreadsheet can guide more good decisions than an elaborate forecast nobody trusts.

## Keep reading

- [Building a Shopify App as a Growth Channel](/blog/building-a-shopify-app-as-a-growth-channel)

## Frequently asked questions

### What is a SaaS growth model?

A model connecting acquisition, conversion, retention and expansion assumptions to forecast customers and revenue.

### Can I build a growth model in a spreadsheet?

Yes. A clear spreadsheet with monthly assumptions is enough for many early-stage SaaS companies.

### How often should I update the growth model?

Monthly, comparing actual results with forecasts.

## About Comppound

Comppound runs SEO and AI search for B2B SaaS companies: a person sets the plan and reviews samples and every high-risk page, and AI speeds up production.

- [Get the free report](https://comppound.com/ai-visibility-report): When buyers ask ChatGPT about your category, are you in the answer?
- [Book a call](https://comppound.com/contact): Most of this works better when buyers can find you first
