
September 30, 2026 · Mitt Patel · 5 min read
You sell a $2,000 package of ten laser sessions on the first of the month, and your profit and loss suddenly looks like your best month of the year. The client has been in twice. Did you actually have a great month, or did you just get paid early for work you haven't done yet?
Why this happens
Packages and memberships are convenient for you and for clients. The client pays once and comes back for months. But that convenience creates a timing problem in your books.
If you record the full $2,000 as income the day the client pays, your profit and loss shows a big revenue spike that has nothing to do with how many treatments your staff actually delivered that month. The next few months, when the client uses the remaining sessions, show no revenue for that work at all, even though your team is doing the treatments, using the product, and spending the time.
This matters because you make decisions off that profit and loss. If a strong sales month looks like a strong operating month, you might decide to hire, raise pay, or spend on marketing based on a number that's really just prepaid cash sitting in your bank account. Then two months later, when the sales slow down but the treatments keep happening, the business looks like it's struggling when it isn't. You're reacting to a distortion, not to what's really going on.
The same kind of mismatch shows up in two other places at a med spa: how you track injectable and skincare inventory, and how you record patient financing payouts. All three come from the same root cause, cash moving on a different schedule than the work.
A worked example
Say you sell a $2,000 package for ten laser sessions on June 1. If you record all $2,000 as income in June, your books show $2,000 of revenue for that client, no matter how many sessions happened.
Now say the client comes in for two sessions in June, three in July, and three in August. Each session is worth $200 of the package ($2,000 divided by ten). The honest picture is $400 of earned revenue in June, $600 in July, and $600 in August.
If you'd booked the whole $2,000 in June, July and August would show zero revenue from that client, even though your staff delivered six sessions in those two months. Anyone looking at June's numbers would think business was booming. Anyone looking at July would think it fell off a cliff. Neither is true. The client's usage pattern is the real story, and only the second version shows it.
How to set it up
- Create an unearned revenue account. In QuickBooks Online, this is a liability account, sometimes called deferred revenue. It holds cash you've received but haven't earned yet.
- Record the full package or membership payment to that account, not to an income account, when the client pays.
- Set up a simple way to track sessions used per client. This can be a spreadsheet, your scheduling software, or a field in your point-of-sale system. The point is you need a running count of sessions delivered versus sessions paid for.
- Each month, calculate the value of sessions used. Take the package price, divide by total sessions, multiply by sessions used that month.
- Move that amount from unearned revenue to income with a journal entry, debiting the liability account and crediting the revenue account.
- For memberships that renew monthly, the timing is usually simpler since the payment and the service period line up. Confirm the service period matches the billing period before you treat it as fully earned each month.
- Reconcile the unearned revenue account periodically against your client tracking sheet, so the balance always reflects sessions genuinely outstanding.
Where this goes wrong
The most common mistake is recording the sale straight to income because it's faster and the deposit already shows up that way from your payment processor. That one habit is what causes the whole distortion.
Another common mistake is tracking sessions used in one system, like your scheduling software, but never connecting it back to the unearned revenue balance in your books. The two drift apart over time, and nobody notices until the liability account has a balance that doesn't match reality.
Package expirations also get missed. If a client's package expires unused, that balance needs to be dealt with deliberately, not just left sitting in unearned revenue indefinitely or quietly moved to income without a clear policy.
Refunds cause the same kind of gap. If a client gets a partial refund on an unused package, the unearned revenue account needs to be reduced too, not just the bank balance.
Monthly checklist
- Pull a list of all active packages and memberships and how many sessions or months remain on each
- Calculate sessions used per client this month and move that value from unearned revenue to income
- Reconcile the unearned revenue account balance against your client tracking sheet
- Review any packages nearing expiration and decide how to handle unused balances
- Check for refunds or cancellations and adjust the unearned revenue account accordingly
- Review injectable and skincare inventory counts so cost of goods reflects what was actually used
- Confirm patient financing payouts were recorded at full sale value with fees booked separately
Common questions
Do I need to do this for a simple monthly membership too?
If the membership period and the billing period match up, meaning a client pays for June and gets June's services, you can generally record it as earned income once the service period begins. The unearned revenue treatment matters most for packages that span multiple months or have sessions that carry over.
What about injectables and skincare product, does that connect to this?
It's a related but separate issue. When you buy Botox, filler, or retail skincare product, it's product you haven't used yet, so it's an asset until it goes into a treatment. Keeping it as inventory and counting it monthly, rather than expensing it the moment you buy it, means your profit and loss shows the actual cost of the treatments you delivered that month, not just what you happened to purchase.
How do patient financing payouts fit into this same picture?
Financing companies typically pay you the sale amount minus their fee, so if a client finances a $3,000 treatment, you might see a deposit of $2,850. If you record just the deposit, your revenue is understated by $150 and your fees never show up anywhere. Recording the full $3,000 sale and then the $150 fee as a separate expense keeps both numbers honest and comparable to your cash-pay treatments.
Is this worth the extra work for a small med spa?
The setup takes some time up front, but the monthly maintenance is usually a short, repeatable task once your tracking sheet is built. The payoff is that your profit and loss actually tells you whether a given month's treatments were profitable, which is the number you need for decisions about staffing, hours, and marketing spend.
North Hudson Bookkeeping sets this up for med spa clients in QuickBooks Online and keeps the unearned revenue, inventory, and financing entries current every month, so your profit and loss reflects what actually happened in your business. The first call is free.
