Solving the cash problems from self-funding rapid growth
Business | April 1st, 2016
“If you grow too fast it can kill the business.”
After spending years fighting for even a tiny bit of growth, ConvertKit was now facing a totally different kind of problem: more growth than we could support. In October, November, and December we were averaging growing 40% per month. Recurring revenue went from $25,000 in September to $98,000 in December. That meant thousands of new customers who all needed help and support and millions of new emails for our servers to process.
Did we have too much of a good thing too quickly?
We quickly moved our two contract developers to full-time and then brought on another full-time developer. We also hired in support, marketing, and sales bringing our team to 14 full-time employees, plus a handful of contractors helping with Facebook ads, deliverability, design, and more.
But even with the all the new team members we were just barely keeping up. A group of spammers attempted to use ConvertKit for sending their spam emails—it took 2 developers almost full-time for 6 weeks to fight them off. Our support team was doing incredibly well, but still struggling under all the new accounts.
Worst of all, despite the growth, we were barely clinging to profitability. When I talked to other business owners about this they all joked and said, “Well, those are good problems to have.” Yes, but they’re still problems.
Back in June 2015 our revenue was at $10,000 per month, and we were down to our last $10,000 in the bank. Luckily that’s the lowest our bank balance ever got.
At the time those numbers didn’t look bad. We had a full month’s expenses on hand and a predictable revenue stream (no single customer made up more than 10% of our revenue). But as we grew we continued investing everything in the product and support. So in September we did almost $25,000 in revenue, but after expenses only added $1,000 to the bank account. Now—even though our bank balance grew each month and we were profitable—we only had about 12 days of expenses in the bank.
Huh, that’s a problem I never expected.
We had growth numbers that would make many funded startups jealous, but if revenue and expenses continued growing on the same path we’d soon be down to a week or less worth of expenses in the bank.
Looking for debt
I’ve wanted to wait as long as possible (or forever) to raise money for ConvertKit, so the first place I looked for a safety net was for a line of credit from our bank. A few years ago when I had over $100,000 in the bank they would offer me a line of credit almost every time I was in a branch. So I figured I’d get that as a safety net. Not to spend, but just in case something went wrong.
Unfortunately Wells Fargo took one look at my greatly diminished bank balance and said the credit line was no longer an option. I’d always heard that you should get a loan when you don’t need it because once you do it won’t be available, but it was painful to live that out in person.
I met with three other traditional banks, but none of them understood the SaaS business model and didn’t like that our business had no assets. If a software company shuts down, what can you sell? Macbooks and iPhones?
It was odd to think they would have rather loaned me $1,000,000 to buy a building then $100,000 to grow my software company. One has collateral, the other doesn’t.
I made progress on a small $50,000 line of credit with one bank, but then I found out I had been 30 days late on a credit card payment back in 2014 and the credit line fell through.
Remember those growth numbers? It turns out hitting $1m ARR growing 30%+ month-over-month is pretty good. That means when it came to raising funding we had plenty of options. I was down in San Francisco for a conference and so I met with a handful of VCs. The response was mixed, but overall good. So I started to map out what it would look like to raise $3m at a $20m pre-money valuation (10-12x ARR).
That looked possible, but a little harder due to the tech valuations that had just crashed in the public markets.
But I also talked to a few founders at the conference. I ran into Dharmesh Shah (CTO of Hubspot) and asked his opinion. He had a very balanced opinion on bootstrapping vs raising VC funding. After seeing how stressful it was for me personally to grow with such a small bank balance, Dharmesh suggested raising a small round of $1m on AngelList. That way I didn’t give up control, but could bring in plenty of cash quickly.
Since I have a pretty strong personal network and excellent growth numbers that wouldn’t be too hard. It felt like a good way to bring in some smart investors who could add value, but without fully committing to the VC path. And it would entirely solve my cash worries.
I started mapping out who I wanted to ask first and started those early conversations. My idea was to already have a few hundred thousand in commitments before I announced fundraising publicly.
One last conversation
On the last day of the conference I was having a conversation with a founder from Toronto when a guy named Mike walked up and said “hi”. He was also from Toronto, and looked really familiar, but his badge was turned around so I didn’t know who he was. After he walked away the first founder I was talking to said, “That was Mike McDerment the CEO of Freshbooks.”
I’ve been a fan and customer of Freshbooks for years. They were self-funded for a very long time until recently raising a large round of funding when they had over 200 employees. I’m pretty sure Mike’s dealt with similar problems. Unfortunately I just missed a great opportunity to ask him about it.
I thought about that for the next few hours and then decided to reach out on Twitter. He was still at the conference, but with 4,000+ attendees my chances of running into him again were pretty slim. He quickly replied on Twitter and said he’d be happy to meet for a few minutes to talk bootstrapping.
As the current session neared a close I started to get up to find a good place to meet him. But was quite surprised to see that he was sitting 2 seats away at the end of the aisle! Total coincidence.
After listening to the cash flow problems for a few minutes Mike repeated it back to me: “So you are at $130,000/month in revenue, just barely profitable, almost no cash in the bank, expenses are growing lockstep with revenue, but you’re adding almost $30,000 per month in revenue?”
Yeah, that sums it up.
He continued: “Well, it’s not easy, but all you have to do is be disciplined and not increase expenses for a few months and you’ll be nicely profitable.”
Getting support under control
We actually didn’t have to cut our expenses to be profitable—instead we just needed them to increase a lot more slowly. That felt near impossible under crippling growth and the load on our support team.
At the same time it became obvious that my director of support and I had very different views on how to run our support team, so I had to let him go.
As I pushed for a metrics driven approach to support I learned two interesting things:
- Our weekly ticket volume was increasing, but slower than the rate we were acquiring new customers.
- Our insanely high support queue levels (250+ tickets) were staying fairly steady. Meaning we were keeping up with the new volume, but could never get ahead.
Those two things told me that this was a solvable problem. We had the team in place (even down one person) to get our support queue under control.
It’s like doing the dishes. If your kitchen is a disaster you can keep doing an equal amount of dishes to what you just got dirty from making dinner, but your kitchen will always be a disaster. Yet you’re doing all the new dishes!
Or you can push hard one time and deep clean the kitchen. Then you can go back to doing the same amount of work to maintain the default state. Except now the default is perfectly clean rather than a disaster.
I shared that analogy, along with the metrics and observations, with my support team. My goal was to take us from a median of 24-30 hour response times down to 1-2 hour response times in 30 days.
We pulled together as a team and dropped down to median one-hour response times by the next day. I was shocked. We accomplished more with a smaller team. I asked each person on the support team individually over Slack: “What changed?”
They all said basically the same thing:
“Before we were drowning under an impossible pile of work. We needed more team members, fewer bugs, and better systems. It felt like we were sinking deeper rather than making progress.”
“You showed us that it was possible. That hope and teamwork is all we needed to get it done.”
Those results proved that we didn’t need to keep hiring—at least not at the same rate—in order to support our growing customer base. Profitability looked quite possible.
At the same time our development team worked to get our servers more efficient and I renegotiated our contracts with Stripe and Mailgun. Then cut every other expense that wasn’t necessary.
A 6 month plan
Ryan Delk, one of our advisors, recommended that we work towards 3 months of expenses in the bank as a baseline. Most businesses would need more, but in SaaS we have the world’s most predictable revenue stream. Customers pay us every month and no single customer makes up more than 1.5% of our revenue.
I created this spreadsheet of what we would need to do in order to get to 3 months of expenses in the bank.
This assumes expenses growing at 10% each month and revenue growing at $30,000 per month. Now a few months in we’re on track to hit $460,000 of cash in the bank (3 months of projected expenses) by July 1st.
On this chart you can see revenue (blue) compared to rough expenses (green) each month.
After being denied for a loan and turning down offers to raise capital, we are bootstrapped and profitable.
I emailed Mike McDerment from Freshbooks to thank him for his advice to stay disciplined:
Discipline, no matter how hard it is, never goes out of style.