How to Make Your B2B SaaS Revenue GAAP Compliant


Are your investors asking if your numbers are GAAP? You probably know it is not that hard to get your books in order and make them GAAP. It is really that you don't have the time to spend to go through everything and figure out the steps to get it done.

It takes so much time to go through all of your invoices and contracts.

What is GAAP revenue anyway?

The easiest technical definition I have seen is from the Financial Accounting Standards Board (FASB), a non-profit that helps set the standards for GAAP, and they say:

"Recognize revenue to depict the transfer of promised goods or services to customers in an amount that reflects the consideration to which the entity expects to be entitled in exchange for those goods or services."

In plain English they are saying that you need to meet two basic criteria: 1) You can only recognize revenue once you have "turned over the keys" of your SaaS to your client and 2) If you reasonably expect to get paid.

The concept of "turning over your keys" can be a little fuzzy.

Let's pause on understanding turning over the keys for a moment and start from the beginning. You sign up a client. They sign your Master Service Agreement (MSA), a "click-through" agreement on your website or whatever type of contract that you use. On the agreement, or in an annex/order form/etc, it states:

  • The service you will be providing - This is where you are agreeing to which product/products/features/services/etc that you are selling to your customer. Here you may also include an implementation, set up or other one-time fee.
  • The cost. There are a number of ways that you can price your SaaS. Some of the most popular are: number of seats, like or a combination of fixed plus variable, like Hubspot,. Whatever pricing you choose it must be outlined and clear on the agreement. You do not have a blank check from your clients, right? Your clients expect to be charge $x for y service. This is very important for GAAP and we will get to that point in a bit.
  • The term of service - How long will the client will have access to your SaaS. Usually SaaS agreements are for one year, but can be month-to-month or multi-year agreements. It really depends on the service being provided what makes the most sense. You might even change this over time. I have seen SaaS companies start up charging monthly, move to annual agreements and then branch out to multiyear agreements.
  • Most of the rest of the agreement is legal stuff, maybe a Service Level Agreement (SLA), etc. For the purpose of explaining GAAP revenue here we can ignore that.

Now that we have gone over these details that go into GAAP revenue.

How do you know if your revenue is GAAP?

  • Your contract is not just a legal document. It is a tool that you can leverage to your business advantage. Your contract outlines the products and services you're selling. Have you turned those over to your client? Yes? Ok, that step is complete.
  • Go back to your contract and look at the pricing. Is it clear what you are charging for? Yes? Ok, next. Is it reasonable that you expect to get paid? This is kind of a tough one. If someone signs up and they seem trustworthy you can assume they will pay you until they don’t. Once your company gets established you can buy a service, like that of Dun and Bradstreet, which has credit scores for companies. But let’s not get distracted by big tools for bigger companies.
  • Revenue recognition is the next step. Here we want to look at the term of the contract outlined in the agreement. The trickiest part here can be figuring out when the “keys were turned over” if you also provide implementation. Below is a great illustration from BDO white paper. You start recognizing revenue only once you are in the “initial term” section.
  • Additionally, if you do charge an implementation fee, here you will recognize revenue over the initial term. For example, if you charge a $12,000 implementation fee, you will allocate that $12,000 evenly over the initial term. Also, be warned that some companies should defer this revenue over a longer period of time. This depends on how long the implementation will “last” for the customer. But let's not complicate this.

Now that we have explained a bit, you can see that your contract is VERY important in determining GAAP. A lot of startups have trouble with this. And it makes sense. You do not know where to put the bricks to build your house until you start building, you know? You want to charge right away because you are investing time in setting up the client and you are itching to increase your revenue as quickly as possible.

That is great and I agree that charging right away shows to the client that your SaaS in valuable. It is easy to get caught up thinking about the bugs or missing features and you don't want to charge yet because you don't think that your product is there yet. Go ahead and charge. But know that you cannot recognize the revenue until the client gets the product they signed up for.

Now, to get back to turning over the keys to your SaaS.

How can you determine that the keys to your SaaS have been turned over to your client to ensure that your revenue is GAAP compliant?

Let's go back to your agreement:

Can your clients use the full extent of the service, features, etc that were described in the agreement? Here it just needs to be reasonably available. Take Salesforce, for example, their system needs to be set up; it is not usable without some amount of set up and thought. You can set it up yourself, you could hire a consultant to set it up, you could hire Salesforce to set it up. There are a number of options. But Salesforce starts to recognize their revenue as soon as they give you access to their SaaS. In fact, if you decide to buy another seat for Salesforce six months into a year contract, Salesforce charges you for the additional seat for the remaining six months and adds that seat to your account. It is up to you as the client to assign that seat to your new AE. Make sense?

Now that we know that the keys to your SaaS have been turned over to your client, let's get to the practical stuff.

Practical examples of how to make your B2B SaaS revenue GAAP compliant.

On January 1st, you signed an agreement with Cool Company for one year of Awesome SaaS service. It took you two weeks to set up Awesome SaaS. On February 15th you have a kick off call with Awesome SaaS to show them how to log on and a tutorial. Cool Company now has access to Awesome SaaS: the keys have been turned over.

Invoice 101 was created and sent on January 15th for one month of service plus the full set up fee, totaling to $2,200.

Summary Breakdown Client Name: Cool Company Product: Awesome SaaS Contract type: Annual Annual Contract Value (ACV): $13,200 Annual Recurring Revenue (ARR): $12,000 Live date (date “keys have been turned over”): February 15th Billing: Monthly Term of service: February 1st current year though January 31st the following year. Monthly Subscription Cost: $1,000 Implementation fee: $1,200The funny thing about accounting is that it seems like it is black and white. It is GAAP or it is not GAAP. The irony is that GAAP comes in shades of gray:

  • Conservative: recognize revenue down to the day. Here you take $12,000 divided by 365 (or 366 days if it spans a leap year) and recognize $32.87 each day. The result is that February will have a dip because there are fewer days than other months and months with 31 days will slightly increase. What are the advantages of recognizing revenue down to the day? Accuracy. What are the disadvantages: administrative burden and high probability of mistakes.

  • Less conservative: Prorate the first and last month revenue amounts for any clients whose live dates do not begin on the first day of the month. This is really a middle ground between the least conservative and most conservative ways to recognize your SaaS revenue. Advantages: more accurately depicts the time that the SaaS is being used by your client. Disadvantages: some administrative burden and additional complication in revenue reconciliation at the end of accounting periods.

  • Least conservative: Recognize revenue down to the month. You can say "we recognize a month as one unit.” Each month a client either has access to your SaaS or they don't. This is the easiest for a early startups that do not have a finance team because it requires the least amount of bookkeeping complications, is the easiest to manage from an administrative standpoint and makes the numbers nice a smooth. Disadvantages: This may not be acceptable depending on your type of business. Additionally, your SaaS will likely outgrow this and move up the ladder to more conservative GAAP


If you look at the examples for conservative GAAP, less conservative GAPP and least conservative GAAP you will see that conservative GAAP and less conservative are messy. Conservative GAAP doesn’t even add up to the full amount because of rounding. I left if like that to make it obvious, but you would actually need to recognize the full amount and get those $2 back in there somehow. And they both span 13 months. That doesn’t feel good. It is right, however. But it is a real administrative burden and some companies must do it.

One more really important note is that GAAP is also about consistently applying the same rules to your books. For example, if you choose to use the least conservative method for recognizing revenue. Do it for a whole year. Don't apply the most conservative one month and then the least conservative ways to recognize revenue another month or depending on the client. That is not GAAP.


Questions you may still have: What if I bundle the price for my products? How do I recognize my revenue and make sure it is GAAP? If you are an early stage startup do not bundle your products and charge one price. It is a slippery slope. To be GAAP compliant revenue must be recognized separately for each product. In order to recognize the revenue separately you will to use Vendor Specific Objective Evidence (VSOE). This is an advanced accounting concept that fortune 500s hire accounting firms to work on and still run into trouble applying it acceptably.

What if it is my client's fault for taking so long to get set up? Can I just start recognizing revenue? You still cannot recognize revenue for those clients that you have not turned over the keys. What you can do to avoid this situation in the future is make your contracts say that there is a by date start date. Meaning if for reasons that are the client's fault that you cannot turn over the system by a certain date you will consider the keys turned over. But this must be in your agreement.

If I apply GAAP to my revenue do I need to apply GAAP to the rest of my books in order to be GAAP? You really need to apply GAAP to everything. The good news is that usually early stage companies don't usually have a lot of complicated accounting stuff. It is GAAP to expense things at the time of payment, it just isn’t usually in your favor. The most complicated part will be balance sheet stuff.


I hope that this blog post has helped to answer your questions about apply GAAP revenue recognition to your SaaS company.


For more insight or help managing startup’s finances contact me at me (at)

GAAPKatie BronnenkantComment