I’m over a month late publishing our Q1 progress report, but here it is…finally.
When you create a financial model for your sales or revenue forecast, it will probably have a nice smooth-ish growth curve. Our forecast is smooth, but our actual revenue numbers are lumpy, in part because we bill by invoice.
Every two weeks we send an invoice (or bill) via email to each of our customers. They pay us by mailing a check or transferring money via ACH to our bank account. The bills we send have a due date, but sadly, many companies see the due date as a suggestion. Bills get lost, forgotten about, stuck waiting for approval, or deprioritized. No one ever got a promotion for paying bills on time. It is your responsibility to make sure your customers are paying their bills on time.
If your customers are on a subscription, one of the benefits of having them pay by credit card is that you have control over when they pay - you can just charge their card. However, credit card companies charge a hefty 2-3% fee for every transaction. At Facet, our bills are usually too large to fit on a credit card and the fees would eat up 10-15% of our margin, so invoicing is really the only option.
Pro Tip: Don’t ever send a bill that is “due upon receipt”. Accounting departments are not set up to be able to pay bills the day they are received. Many accounting departments only pay bills on certain days of the week or times of the month. It also takes time to get approval to pay a bill. If you send a bill that is “due upon receipt” you are basically sending a bill with no due date and you will look like a noob.
In December I hired a new accountant and put her in charge of collections. We had a lot of overdue bills that clients were sitting on. So January we had higher than expected revenue because we were able to collect on overdue invoices. March was an anomaly too - we had an unexpectedly large project in March that pushed us way above our forecast. On the whole, we billed more hours than we were expecting in the quarter and came in well above our forecast.
Q1 Goal: $720,000
Q1 Actual: $793,000
We beat our Q1 revenue forecast by $73,000 or about 10%. When we set our goals for 2019, we were pretty aggressive. We are trying to grow by 2.5x this year with no outside funding, while still generating significant profit. That’s pretty hard to do. If we can land within +/-5% of our lofty goals, I will be super happy.
This is one of the big advantages of being a profitable, bootstrapped company. Let’s say we miss our goals by a lot and only grow 1.75x this year. We still made a profit, grew the company and had a ton of fun doing it! If we were venture backed and missed our forecast by that much we would be freaking out. We probably wouldn’t be able to raise more money, which means we’d have to lay off a ton of people and possibly shut down the business.
Anyway, back to our Q1 revenue results. Compared to the same quarter last year, we’ve made really good progress.
Q1 2018: $465,000
Q1 2019: $793,000
Q1 revenue is up 70% from last year (called Year over Year or YoY). Not bad considering we are still trying to figure out how to build and scale the business.
Q1 Gross Profit
Gross profit was lumpy too. Since we were able to collect on a bunch of work we had done last year, January Gross Profit was well above our forecast. We paid some bills in February that we didn’t get paid for until March. So February looks terrible and March looks amazing, but the reality is it was just a matter of timing. Looking at the quarter as a whole:
Q1 Goal: $255,000
Q1 Actual: $304,000
We beat our forecast here too. Looking at Q1 last year, things look significantly better.
Q1 2018: $57,000
Q1 2019: $304,000
I should mention that we use cash accounting at Facet, as opposed to accrual. With cash accounting, you count your revenue when the money hits your bank account, and expenses when the money leaves your bank account. It is simple and makes it easier to keep track of your cash flow and how much cash you have on hand.
With accrual accounting, you count revenue when you earn it, regardless of when the cash is actually received. So we would show income on our financial statements the day the work is done, even though we don’t actually receive the cash for it until weeks later. Accrual accounting is considered GAAP, or the correct way, but does make it harder to manage your cash. Your March numbers will say you made $X, but your bank account doesn’t care what your financial reports say. Your bank account will only have the cash you received from work done weeks or months ago. If you are not careful, you can end up writing checks that your employees can’t cash.
Cash accounting allows us to better predict our actual cash income and bank balance, not our theoretical cash flow. If you are bootstrapping, your actual cash flow (cash coming in, cash going out), is your most important financial metric because you don’t have a huge cushion of VC cash in your bank account.
If you are venture backed, you will look at metrics like cash in the bank, monthly burn (how much money we are losing each month) and runway (how many months do we have until we run out of cash in the bank). It can be scary. You are pretty much always in the process of going out of business, hoping that you can raise more money before you do. If you have investors then they will require you to use GAAP, which means you will use the accrual accounting method.
Q1 Hours Billed
Hours billed per week is our primary KPI for Facet. (See this blog post for a discussion on why.) Like I mentioned before, we had an unexpected spike in March, but generally speaking things are looking really good. If we can hit our hours goals, we will hit our 2.5x growth goal for the year.
2019 Goals Progress Report
Our goals for 2019 are:
- Build a marketing engine that produces a steady stream of new clients.
- Build a marketing engine that produces a steady stream of new contractors.
- Build and rollout our MVP.
Build a marketing engine that produces a steady stream of new clients
I’ve already written about some of the marketing tactics we’ve experimented with so far. Our goal is that by the end of the year we can consistently generate five marketing qualified leads (MQLs) each week. We didn’t start marketing until the end of February, so that’s where our data starts. The big spike at the end of March was caused by my viral blog post about why I turned down my Y Combinator interview.
We don’t have a consistent and repeatable way to generate leads yet, but we are getting close.
Goal Status: On Track
Build a marketing engine that produces a steady stream of new contractors
Most of our contractors are joining through posts I make on Hacker News, content marketing or referrals from existing members. Our developer network has grown much faster than we were expecting. We grew about 50% each month during Q1.
Today, our content marketing for contractors is very much spray and pray. I’m writing blog posts that I think are interesting to developers in hopes that some subset of the developers that read them want to become a freelancer. Next month we hope to launch a series of guides to teach developers everything they need to know about transitioning from full-time employee to full-time freelancer. We’ll cover topics like how to set up a business, how to find work and how to find health insurance. This should be much more targeted at our primary audience and we hope it will help more contractors find Facet.
I have to say that I have been BLOWN AWAY with the calibre of people we’ve had join the Facet developer network thus far. It is an honor to be a part of their community.
Goal Status: On Track
Build and rollout our MVP
We’ve made some pretty good progress on building our web application, but decided to pause development for a bit. What we found was that there was still a lot we needed to learn about how companies hire, how we will work with companies and what features our contractors need. We are going to keep iterating on our process with tools like Airtable and Basecamp until we have the process dialed in. Then we will know exactly what we need to build.
Goal Status: Behind
We hired an Executive Assistant. EAs can be a force multiplier for you as a founder. They can easily handle the small tasks that end up eating up so much of your day - preparing a contract for signature, compiling reports, scheduling interviews, etc. Anything that doesn’t HAVE to be done by you personally should be delegated. Sarah joined a few weeks ago and she has been a huge increase in my productivity.
We are consolidating our admin team in Utah. Product team remains remote. Creative work is a great fit for remote. I actually think it is better than in person offices. Operations and administrative teams, not so much for me. It’s been hard to collaborate with my co-founder Blake. We’ve gotten together in person a few times since the beginning of the year. Every time we are face to face, we make so much more progress than when we are alone.
Q1 Stupid Mistakes/Lessons Learned
There are so many to choose from here, but here are a few.
Customers Lie. I feel like I keep learning this lesson. Lie might be too strong of a word, but it doesn’t seem to matter how much diligence you do up front, some customers will wait till the last minute to tell you that your rates are too high, they’ve changed their mind about allowing remote workers or they didn’t have the approvals they need. It can be frustrating to go through all the work of finding the right person, putting them through interviews, etc, only to have the deal fall apart at the end.
Interviews are a random number generator. Everyone thinks they have a high bar for hiring. Well, all those candidates that you turned down ended up getting hired by a company down the street that thinks they have a high bar too. Who is right? Neither of you. Passing an interview is pretty random. It’s frustrating. We assumed that if we sent someone with the right skills and an incredible resume, our clients would hire them. Nope.
The bootstrapping grind continues. I wish we didn’t make so many mistakes along the way. It hurts to think about how much revenue we have lost because of dumb mistakes. Bootstrapping is a very expensive education.