Agile Budgeting For Startups – Cash is King


Budgets are a waste of time.

In startups and small companies, the business or strategy can change every few months and the revenue and expenses can swing wildly monthly. In an environment of constant change, it’s a complete waste of time to put the effort into an annual, quarterly or even rolling budget. What you can do instead is implement a few monitoring and control systems, so that you always know exactly what the financial picture is but you spend the minimal time on the processes. I’d like to put together a few standard tools that startups can use to manage their finances in an agile way – continuous improvement, low process overhead and immediate feedback. Let’s work on Agile Budgeting.

UPDATE: I should note here that, as we discuss in the comments, this post and this process really apply mostly to bootstrapped operations with small amounts of capital.  Doesn’t have to be early-stage, I used this process in years 8-10 of my company.  Use it when you don’t have huge amounts of padding.

The most critical piece is your cash flow management. You need a system that will give you an accurate picture of your bank account balance right now, as well as at various points in the future. Will you make payroll on the 15th? Will you make rent on the first? When in the next two months should you buy those Aerons? I’m going to describe a process that should give you this transparency without spending more than a few minutes a day on it.

Before starting: Get a bookkeeper as early as possible. They’re inexpensive compared to software engineers or biz dev folks, and they should keep your finances up to date with few mistakes. Both are critical to your company’s success. No amount of light process will save you from doing hours of data entry without a bookeeper.  This model is something that you should (we did, at least) update every day, so when there’s a decision to be made you can pull up the spreadsheet and know that the numbers were accurate this morning.

Before working on your cash flow, you need a clear view of your situation today.  A worksheet like this can be quickly updated from your online banking by your bookeeper every morning, and as cheques are written and payments received.  The available balance calculated at the end here is the starting balance for your cash flow, so it must be accurate.  That’s why we include outstanding cheques and undeposited payments.  We made a policy of keeping a minimum balance in our main account, shown here as $5,000 to guard against bounced cheques or variances in timing.

Once you have an available balance, you can start forecasting your cash flow.  As with anything else, start with the big blocks and work your way to the little bits and pieces.  Here’s the basic framework, starting with today’s balance and a few of the big monthly items.  We always start with that accurate balance so that as it gets updated you see where your planning went wrong and you’re going to run out of cash 🙂

We always preferred to use a separate account for tax liabilities, so here you see the payroll witholdings going on when payroll is made, and coming back out before the payment is due the next month.  Things are pretty red here!  But that’s ok, we haven’t entered any income yet.

Next step is to get a clear picture of your expense patterns. Summarize ALL of your expenses for the past few months and identify the things that happen regularly. This spreadsheet lists the expenses, recent monthly sums (doesn’t have to happen in every month, but often enough to be a normal part of your operation), and what dates you usually pay it on. Things without set payment dates I’ve split evenly between the first and second halfs of the month (eg. Lawyer).  The only things being left out of this list are the ones we’ve already entered on the cash flow.

I split the expenses into month-halfs because generally it’s not important what date it happens on, but whether it happens before or after your big fixed-date expenses: rent and payroll. Also you’ll see in a minute that we can fine-tune this much more.

In this list you have captured all of your outflows in the past three months.  This spreadsheet goes into your cashflow Excel file and gets updated probably twice a year.

Now, depending on the level of detail you want, you pull out the regularly recurring and fairly fixed stuff and enter it as new row items on the cashflow sheet.  I would enter items such as Dell Lease, Health Insurance, Hosting, etc… because they happen monthly, I know what date they happen on, and I have a good idea of the amount.

The rest of them get bundled into “Misc Expenses”, which you enter twice a month.  Once before the 15th payroll and once before the month-end payroll.  Now our cashflow worksheet looks like this (new rows highlighted):

These numbers are based on the averages from the previous three months, but when the expense rows are being entered for a new month, use the expected value.  For instance, LocalHost should be entered at the recent rate of $1,800 not the average of $1,467.

Do the same process for your revenue.  Make a list of your regular customers, the normal payment amounts, and when in the month they usually arrive (customers tend to have a pattern of how long they take to pay, and of course it depends on the payment method).  Fill in the expected payment dates and amounts and you have a complete cash flow prediction for a typical upcoming month:

Now comes the process part.  You’ve constructed a great starting point, now you make it repeatable, and you ingrain it as part of your routines.

Update balances – Usually performed every morning, the bookkeeper will check the online banking and update the balances sheet of this workbook.  The updated Total Available carries through to the Cash Flow sheet, perhaps significantly departing from what was expected for this point in the month.  Preferably he would also scan the Balance column of the Cash Flow sheet for any red numbers and bring them up for discussion.  In our case he also updated the current exchange rate.

Pre-fill months – Done monthly by the bookkeeper, the template rows (the set of standard expenses and revenues) are filled in to keep the timeline extending about two months out.  The owners should review after this to see how realistic the numbers are – the goal here is that the template set should be a pretty good picture of reality, and there will frequently be tweaks needed.

Enter specific numbers when known – The bookkeeper will update the template rows when they learn of the real amount for any of the transactions.  For example, you may receive the invoice for your hosting and update the amount for the payment row that occurs a few weeks later.  The bookkeeper should also enter any additional transactions that they learn about, and flag them for discussion or review (surprise payments are no fun).

Move the horizon – As you go through the month, the bookkeeper should be removing (or hiding – sometimes you need to look back) rows that have actually happened, leaving any that haven’t, and updating the “Misc Expenses” rows with new amounts as some of those component transactions occur.

Use it – If these are happening, you will be able to pull up the spreadsheet at any time, see where cash crunhes occur in the next month, and shuffle things around.  Most cash flow issues are related to timing, so opening up the sheet and seeing a red balance in a few weeks allows you to get on the phone with a client and speed up their payment.  You’re reacting in real time to accurate information about the future. When we used this at my company, my partners and I would pull it up a few times a week, adjust the entries with what we knew, and check for cash crunches as far out as two months away.  This is invaluable.

Some of the expenses are more for padding than anyting, such as the Lawyer row.  It doesn’t happen every month, but if you’ve budgeted a normal amount you’ll never get caught without the money to pay.  You’ll never be annoyed by having some extra money in the bank.  In fact, we would usually enter specific padding transactions in our monthly template for expenses that only happened annually, such as an amount for the annual tax preparation.  These can be entered as a monthly transaction for a portion of the amount, which is then put into a different account, or added as a running “earmark” item on the Bank Accounts spreadsheet (like the “Minimum $5,000 balance” item in my example at top).

If you can make this group of worksheets a part of your (well, your bookkeeper’s) daily routine, the ongoing effort is very small and the accuracy is very high.  Depending on your needs, I’m sure it would also work fine being updated weekly, but I find it’s best to have it accurate continuously as the situation changes.

PLEASE let me know if you apply this, I’d love to hear what modifications you make to the framework in your situation.  Let’s keep improving on this model and passing it around.

Here’s the sample workbook I’ve been using for this post:

Agile Budgeting – Sample Workbook

UPDATE: This process and this workbook are both released under CC – Attribution Share Alike.

UPDATE: I’ve posted some followup comments and resources here: Agile Budgeting Followup

Motivate with PROGRESS


In a recent HBR article (What Really Motivates Workers) it was revealed that workers are motivated less by the usual suspects (incentives, recognition, …) than we thought and that in fact progress in their work is the key driver of daily satisfaction.  How can we take advantage of this in software development to crank up real and perceived progress, and keep workers happier on a daily basis?

First, it seems we’re an industry uniquely situated to take advantage of creating perceived progress.  I don’t mean false progress, but with the real time metrics available such as compile errors, bug databases, unit tests passed or test runtime, we have the tools to demonstrate progress in several ways depending on the project.  The trick may be to identify the ones that are most valuable to your product, and to keep some perspective on how much you emphasize them.  If you keep cheering up your team by pointing to the diminishing bug list, you’ll have a hard time rallying them when a large dump of bugs comes in from new testing.  Keep it focused on customer satisfaction and percent of code under testing.

Second, there are methodologies and tools for software engineering that support constant progress and prevent the kind of backslide that kills morale and motivation.  Specifically, I’m thinking of agile methods that cut out time spent on exhaustive planning and requirement specifications that doesn’t feel like progress to the person writing it, and creates the opportunity for big negative progress when it turns out they’re misguided.  Then tack on test driven development to allow constant, incremental additions while locking out the possibility of backsliding again, and continuous integration and deployment to keep your work rolling forward instead of halting and going back.

These are very pragmatic, and well tested methods that, used together, will hugely increase the number of days your team can go without a big backslide, adding incremental improvement or capability day in and day out.  And, according to the article, this is a key driver of motivation.  So in addition to the benefits we already knew about (faster results, less wasted time, better tested code, no ‘ocean boiling’ integration and release cycle) we can now say that agile methods keep your team happy and motivated.

What other techniques support constant progress?