How To: Forecast Revenue (and Reduce Stress)
Almost every services business founder has a story like this:
The month just ended. Your instincts were telling you this would be a great month for revenue. Very exciting! Invoices get generated. You look at the total, and… it’s much less than you expected. The knot in the pit of your stomach comes back.
“What happened?” you ask.
Surprises are scary
🔮 Being able to forecast revenue significantly reduces the chances of being surprised by those “down months”.
When you do get the occasional surprise, the tools used for revenue forecasting give you a framework to figure out:
What happened
How to get better to prevent the same type of surprise in the future
Early-stage services founders and management teams sometimes avoid trying to forecast their revenue. They may think it’s just not possible, it’s not worth the time, or their instincts are “good enough”.
Nothing could be further from the truth.
It is possible, and the insights and peace of mind that come from predicting the future enable better business decision-making with less stress.
And - no matter how good one’s instincts are - eventually, the business will outgrow the ability to be managed by gut. (This is a great problem to have!)
Today I’m going to focus only on forecasting revenue from work that’s already been sold. Forecasting revenue from your sales pipeline is easier once you can forecast existing work.
Total backlog is (the start of) the answer
💭 The central concept to forecasting revenue from work you’ve already sold is backlog.
In its simplest form, backlog is the amount of revenue you would recognize by delivering only the work to which your current clients are contractually committed.
The way you calculate that varies depending on the contractual structure:
Time & materials without a not-to-exceed (“NTE”) clause: estimating the total billable hours remaining multiplied by the rate(s) for each category of hours you can bill
Time & materials with an NTE clause: same as above, but capped at the NTE value
Milestone: the total of all currently un-billed milestones
Fixed fee: the full contract amount minus the amount you’ve already invoiced
You can go through this exercise and get a simple table that would look like this:
In this fictional example, if you didn’t sell another dollar of new work, you’d be able to recognize just under $4.1mm of revenue. This is helpful because it gives you a sense of how much revenue is in your future.
What’s missing? When that revenue will be billed.
Backlog by month is the next step
🗓️ Understanding the timing of when work is being invoiced is critical to running a services business.
Once you have the total backlog, you can decompose it for each client by month, distributing the revenue over time.
In this crude example, you can see some projects are starting and ending in different months, some projects have ramp-up/ramp-down times, and some projects have milestone-based revenue:
This is a crude example partly because it doesn’t account for the number of working days in a month. The fact that February is three days shorter than March distorts the backlog in both months.
An improvement of this analysis is to look at the billable days in each month (shown below as the number above each month) and estimate the daily revenue per client by the number of working days:
You can see that this approach leads to a backlog by month that can vary by as much as -7.8% to +3.7% compared to the previous approach. This is getting much closer to an accurate forecast of when revenue will be recognized!
You can imagine getting even more accurate still by taking into account vacation time and unplanned absences.
📈 Graphing the backlog enables you to easily see trends with individual clients and how revenue changes month to month.
This is an easy visual to create that is a crystal ball into the future of the business. It reveals when projects are ramping up and down, when milestones are occurring, and the big-picture trend line of revenue.
Analyzing variance is a superpower
🤓 Comparing actual revenue invoiced to the revenue forecast reveals where estimates were off so you can become more accurate.
Refreshing the forecast and comparing it to your actuals will highlight sources of variance. Some common problems that lead to variance are missing timecards, time off that wasn’t forecasted, or conditions at a client changing, causing more or fewer hours to be worked. This allows you to correct the underlying problem or update your forecast accordingly.
Doing this month after month will result in better forecasts and fewer surprises.
✌🏼That’s it for today. If this was helpful, it’d mean a lot to me if you like this post below.
If this sort of how-to guide is helpful to people, I’ll do a follow-up to it that shows how sales forecasting fits into this type of model.