Thursday, March 22, 2012

Financial planning for SaaS startups

[Update 03/23/16: I've created an improved version of the template - check it out!]

A few people who read my recent post about financial planning asked if I could provide an example for a good financial plan, so I'd like to post one here. The plan is very similar to the one that I created in the very early days at Zendesk and re-used a few times in the meantime, but I had to make a few adjustments to make it more generic.

It's a simple plan for an early-stage SaaS startup with a low-touch sales model – a company which markets a SaaS solution via its website, offers a 30 day free trial, gets most of its trial users organically and through online marketing and converts them into paying customer with very little human interaction. Therefore the key drivers of my imaginary startup are organic growth rate, marketing budget and customer acquisition costs, conversion rate, ARPU and churn rate. If you have a SaaS startup with a higher-touch sales model where revenue growth is largely driven by sales headcount, the plan needs to be modified accordingly.

For non-SaaS business models the template needs to be modified more heavily or may not be useful at all, other than that it shows my way of thinking around business planning. That was one of the points that I was trying to make in the original blog post – you can't simply re-use a template, your financial plan needs to mirror your specific business case.

The grey box at the left contains all assumptions (blue text color). Everything on the right is calculated, no hard-coded numbers there. I have, of course, used dummy numbers for all assumptions.

The model should be largely self-explanatory but here are a few notes:

It all starts with the signups that you're adding. I've separated signups into non-trackable signups (signups that you get from word of mouth, PR and so on) and trackable signups (signups from AdWords and other paid advertising where you can track the costs of acquiring a signup). You may have to break this down further depending on your customer acquisition channels.

Then I'm assuming that you're converting a certain percentage of signups into paying customers (with a one month time lag, assuming that you have a 30 day free trial). The model contains just one conversion rate regardless of the signup source. You can change that if your conversion rate varies depending on the signup source.

Next up, I'm calculating revenue by multiplying the (approximate) number of customers that you have mid-month by your average revenue per account. If you have a tiered pricing model or a per-seat pricing, consider modeling that.

Moving down to the costs side – this should all be self-explanatory. Just replace the dummy values by your actual values or assumptions and add additional expense categories as needed.

Regarding P&L and cash-flow, I'm keeping things really simple here and am assuming that your EBIT is equal to your operating cash-flow. That is, I'm assuming that you're charging your customers on a monthly basis, that you're not making any investments (in accounting terms) and that there are no taxes or interest payments. I think that simplification works well for most very early-stage SaaS startups but it of course needs to get more sophisticated as you grow.

Last – but not least because this is one of my favorite parts – the sanity checks: I've seen MANY financial plans with an EBIT margin north of 90% in year 3. That's a classic mistake which can happen if you project your revenues to grow exponentially but don't provision realistic increases on the costs side as well. Adding some sanity checks will help you spot these mistakes and make sure that your plan remains realistic. For example, I've included the number of paying customers which each support agent needs to take care of. If that number gets too high you need to allow for more support staff.

61 comments:

great little tool. Although I am missing the cash projections - which are not that easy to calculate but quite important if you are planning to bootstrap. In my experience a lot of customers pay you a year upfront, especially if you give them 2 months for free. So you get a lot more money on your accounts - even if this is not represented by revenue numbers.

[1] You mentioned that this file is for low-touch SaaS businesses. As the business grows and starts to get into the high-touch model, what else besides including sales headcounts and appropriate reseller model, is required to introduced to this file?

[2] Cost per acquisition: I want to capture cost per acquisition for new customers. Do you agree that we just take Total Marketing / Total new Customers? (H55 / H21)?

[3] Lifetime revenue per customer: Ever thought about introducing a lifetime revenue per customer metric to this file?

Useful, but not realistic.I made the same mistake once.To get 150 "signups" the 2nd month, you probably need 15.000 visits (1% conversion ratio). To drive that traffic, you should spent about 15.000$ at the beggining (avg 1$ PPC). Also, the conversion ratio on 20% is too high (of course, ir depends on product, ..etc)I mean, is good to have a model, but I would be better if you have a a more realistic model, because if not, all the entrepeneurs that see your spreasheet could think that their produc/model is not good enought.btw, love you blog. Keep posting!Thank youJoan

I see there is no line for a VAT cost on your sheet.I understand VAT cannot be inside EBIT, but as this is a significant cost, and I need cash flow control, I added VAT to Net Revenue, but not to P&L.Is this the right approach?Thanks!

Christoph, thanks for great saas business plan. I just want to ask if its possible to add some variables to better fit with pay per seat model ? There are some problems with it -> each customer orders different seat qty.

I have a specific question concerning your very nice spreadsheet. The cell "G14" (New trackable signups) is defined by "G12/G13" (Marketing spending/Acquisition costs). Is this the correct definition? I would be grateful for any comment. Thanks so much.

I think this makes sense, yes. It assumes that a part of your signups can be traced back to your marketing activities, and you get to the number of these signups by dividing your marketing spend by your costs per signup.

This is awesome! Thanks for helping out - and I just used Virally to share it to my twitter followers. I am looking forward to testing this out with my startup http://QuotaDeck.com which is going through the Techstars Boulder program right now.

However, how would a start up define its "Acquisition costs 1st month" without actually having a real life business running with real data. I feel like I am making a huge assumption of how effective my marketing may or may not be and how much penetration the idea will have in the first month. Do you have any advice as to how to improve this assumption so it is more accurate?

Since you're adding new customers continuously, presumably more or less linearly over the course of a month, I've made the assumption that in the middle of the month, you're at half the way between the start and the end of the month. This is of course a simplification and an assumption, but I had to make one for the purpose of the template.

If u need a reliable and genuine loan help,and don't want to be a victim of scam,I think this is for you.All posts of loan lenders giving loans on-line especially on sites were loan offer are post the posters are all SCAMS..The referrals there as well are bunch of scammers.Don't contact them for your own good.This is a story of how I was ripped off my hard earned cash by some idiots on-line that calls themselves lenders and how I finally got my financial freedom from a God sent loan officer within 36 hours at just 3% as interest.All thanks to Mrs Helen You are the one who remove me and my family out of poverty. The reason why i am doing this is that, i promise Mrs Helen that if i truly got my loan, i will advertize her company and bring customers to her company. Contact her now at (helenrose@blumail.org) for the Loan you have been looking for..