Revenue Cash Reconciliation for Subscription Businesses

Revenue Cash Reconciliation for Subscription Businesses

Cash reconciliation with the proper journal entries is a popular question from our customers at Leapfin who operate on subscription business models. Once revenue is properly recognized in your organization, building out the journal entries to your general ledger becomes fairly straightforward.

For simplicity purposes, let’s assume you collect payments for your subscriptions from an automated billing solution such as Stripe, and $10K worth of revenue was invoiced on 4/15/18:

At the end of the month, let’s record the earned revenue: 

In addition, from a cash reconciliation perspective, let’s say you were able to collect $9,000 of the total amount invoiced by the end of the month: 

In the world of automated billing solutions, there rarely are net-30, net-60, etc. terms, and payment is due immediately when invoiced. If the attempt on payment fails, there is usually a predetermined period of time to make subsequent attempts before giving up. This revenue is considered in-flight (or dunning) before we can write it off. We’ll assume we give any customer up to 30 days to make a successful payment.

Let’s handle this with one more journal entry to an AR contra account (allowance for doubtful accounts) since we can now estimate the amount of bad debt to arise:

On 5/31/18, you determine that $900 will never be paid, so you need to get rid of the invoices and draw down your balance for doubtful accounts:

This is a basic example of revenue journal entries for a typical subscription business. However, in most subscription businesses using automated subscription payment systems, not all invoices are paid with cash due to these platforms holding credit balances for customers to pay with instead of refunding owed money. This poses an issue with reconciling your Accounts Receivable account with how much cash you actually receive on a month to month basis.

Journal Entries with AR and Customer Credit Balances

Let’s use a common hypothetical scenario where credits are given to your customers when they downgrade and switch subscription plans mid-cycle, and create journal entries for a customer that ends up paying subsequent invoices using credits carried forward by past balances.

On Jan 1, 2018, our customer pays $1200 for an annual subscription to your service. We can use the above journal entries to record this transaction. Let’s say on July 15th, 2018 the customer decides to downgrade their plan to a monthly plan at $120 per month instead. Instead of receiving a refund, your billing platform instead issues a credit for the unused time remaining on the subscription. For the purposes of simplifying the math, we will calculate based on a monthly basis, and say that the customer receives a credit of $550. 

Let’s take a look at how this will impact your journal entries for July. The “credit note” itself needs to be deferred, so before we recognize it in your contra-revenue account, we need to debit deferred first:

Then, we can do the standard JE for moving the monthly revenue into your deferred account:

We then create our revenue recognition entries at the end of the month both for our credit (using a contra-revenue account called Credit Allowances) and our monthly earned revenue:

With the revenue recognition JE’s complete, we now turn to cash reconciliation. At this point, your Accounts Receivable account has a credit balance. To balance, we will credit a liability account called Prepayment to track credits given out to customers.

That completes the end of July. When the end of August rolls around next month, another $120 has been charged to the customer from the monthly subscription. So we again create our standard AR entries for our month end close process:

Again, since the customer still has a credit balance to take from their previous credit given to them, no cash is received. We will instead take from the prepayments to clear out our Accounts Receivable account:

If necessary, the above JEs can then be improved by accounting for bad debt using the methods in the previous section.

The complexity level here is very high and prone to error when needing to calculate a high volume of transactions with spreadsheets as a sub-ledger to generate your JEs. Contact us for a personal demo demonstrating how to automate this process.