The median single-location medical spa reports $1.5 million in annual revenue, according to AMSPA State of the Industry survey data. (Note: AMSPA figures are self-reported by member practices; verify current-year data at amspa.org before citing externally.) Most owners reading that benchmark are comparing it against the revenue total on their Vagaro or Mindbody dashboard. That comparison doesn't hold up. The POS total and the accounting revenue figure measure different things, and building a business on the gap between them is how practices end up with numbers that look fine until they don't.
The gap is not a bookkeeping error. Booking systems and accounting systems were built to answer different questions, and they count the same money by different rules. Vagaro and Mindbody record money when it arrives at the front desk. Proper accrual accounting records revenue when the service is delivered. For a practice selling packages, memberships, and gift cards, those two events happen at different times, sometimes weeks apart, sometimes months. The gap compounds until someone pulls a real P&L and the numbers don't add up.
What is med spa POS reconciliation?
POS reconciliation for a medical spa is the process of comparing your booking system's total revenue against your QuickBooks accounting records and accounting for every dollar treated differently between the two systems. The two systems are not in conflict. They are built for different jobs, and you are caught in the middle.
Vagaro and Mindbody are booking and point-of-sale platforms. They are built to track appointments, process payments, and report what came through the register. QuickBooks is an accounting system. It is built to report what the practice earned under Generally Accepted Accounting Principles (GAAP). For cash-only, service-by-service transactions, those two systems tell the same story. For a modern med spa with packages, memberships, and gift cards, they often don't.
That $45,000 sits in the gap between cash collected and services delivered. You cannot find it on a POS report. Without a monthly reconciliation, it builds inside deferred revenue, gift card liabilities, and tip pass-throughs.
What Vagaro or Mindbody shows vs. what accounting requires
There are 6 places where booking system totals and accounting revenue diverge. The table below maps each gap and shows which direction it runs.
| Transaction Type | What POS Records | What QuickBooks Should Show | Effect on POS Total |
|---|---|---|---|
| Prepaid packages and series | Full sale amount at purchase | Deferred liability; revenue recognized per session used | Overstates revenue |
| Gift cards sold | Full face value at point of sale | Liability until redeemed; revenue on redemption | Overstates revenue |
| Annual memberships charged in full | Full annual payment in month collected | 1/12 of annual amount per month | Overstates early months |
| Tips collected through POS | Included in daily transaction totals | Separated from service revenue; pass-through to staff | Overstates service revenue |
| Sales tax collected | May be included in gross totals depending on report settings | Excluded from revenue; recorded as sales tax payable | Overstates revenue if included |
| Refunds for prior-period services | Reduces current period totals regardless of when service occurred | Adjusts the period in which revenue was originally recognized | Creates timing mismatch |
Every one of these gaps pulls in the same direction: POS totals run higher than properly stated accounting revenue, except for refund timing, which creates unpredictable swings in both directions depending on the month.
The 6 reasons your POS revenue doesn't match QuickBooks
1. Deferred revenue from prepaid packages and series
When a client pays $1,200 for a package of 6 laser treatments, Vagaro or Mindbody records $1,200 in revenue on the day of purchase. Under accrual accounting, you have not earned $1,200. You have accepted $1,200 in exchange for a promise to deliver 6 treatments. That $1,200 is a liability until each treatment is delivered. After the first treatment, you recognize $200. After all 6, you have earned the full amount.
Practices with high package sales carry a meaningful deferred revenue balance at all times. If you sell aggressively in Q4 around holiday promotions and clients start redeeming in Q1, your POS will show a strong Q4 and a softer Q1. Your P&L, if properly maintained, will show the opposite pattern. Operating from the POS number means you think Q4 was strong. Your properly maintained P&L shows Q1 was the productive quarter. For more detail on how deferred revenue hits your P&L, see our guide on deferred revenue accounting for medical spas.
2. Gift card sales recorded as revenue
Gift cards are a common source of POS-to-books gaps. The booking system logs the sale the moment the card is purchased and processed. The accounting treatment is different: a gift card represents an obligation. The practice owes the cardholder services equal to the card's face value. Until the card is redeemed, it sits on the books as a liability, not as revenue.
In high-gift-card practices, the gap in the month of sale can run several thousand dollars. It reverses as clients redeem, but if redemption patterns spread over 6 to 12 months, the distortion lingers across multiple reporting periods.
3. Membership timing for annual contracts
Annual memberships create a timing gap that is easy to miss. A client pays $1,800 for an annual membership. Vagaro or Mindbody may record $1,800 in the month payment is collected. The accounting treatment spreads that $1,800 over 12 months at $150 per month. If you have 50 annual members, the difference between POS-reported and accounting-recognized membership revenue can exceed $80,000 in the month memberships renew. See the full accounting guide on med spa membership revenue recognition for how to set this up in QuickBooks.
Monthly memberships are cleaner but still need reconciliation when the charge date and service month don't match. A member charged on the 28th of one month for service access beginning the 1st of the next month creates a one-day timing difference that adds up across a large membership base.
4. Tips included in daily POS totals
Most booking platforms include gratuity in the gross transaction total. When you pull a monthly Vagaro or Mindbody revenue report, the headline number includes tip dollars that belong to your providers, not to the practice. Including tips in service revenue overstates the top line and distorts your labor percentage calculation at the same time. The same dollars that inflate revenue also appear as payroll when distributed, making labor percentage look higher than it is against a revenue number that is itself artificially elevated.
The fix is to separate tip revenue in your POS export, exclude it from service revenue in QuickBooks, and record it as a payroll liability or direct pass-through expense depending on how your practice handles distribution.
5. Sales tax in gross revenue figures
Depending on how your Vagaro or Mindbody report settings are configured, gross revenue totals may include sales tax collected on taxable services. Sales tax is not revenue. It passes through the practice and goes to the state. Including it in your top-line revenue number overstates your earnings and creates a mismatch with QuickBooks if your bookkeeper is correctly recording sales tax as a liability.
This is a settings issue as often as it is a reconciliation issue. Check your POS report configuration and confirm whether the revenue totals you use for business decisions are net of sales tax or gross. Many practices run on gross figures for years without realizing the discrepancy.
6. Refunds and voids that cross accounting periods
When a client returns for a refund in February on a service delivered in January, Vagaro or Mindbody may apply the refund to the current period. In accounting, the refund should reduce revenue in the period the service was delivered. If your practice runs on a cash-basis or quasi-cash bookkeeping setup, this timing mismatch creates month-to-month volatility in the revenue line that has nothing to do with actual business performance.
Practices with high refund rates or no-show fee reversals feel this most. Check whether your bookkeeper is adjusting refunds to the period when the service was delivered, or simply posting them when they hit the bank. See our post on how POS systems and bookkeeping systems differ fundamentally for context on why this happens so commonly.
For a practice selling packages, memberships, and gift cards, the revenue your booking system shows and the figure your accounting system should show are almost never the same number for the same month.
How to reconcile Vagaro or Mindbody with QuickBooks
Reconciliation is a monthly process. It takes under 2 hours when done consistently. Practices that skip months and try to catch up quarterly find the process takes 4 to 6 hours and requires digging through individual transactions to reconstruct timing gaps.
-
1
Export your POS monthly transaction report by category Pull the Vagaro or Mindbody sales report for the month, broken down by transaction type: services, packages sold, gift cards sold, memberships, tips, refunds, and sales tax. Do not use the headline revenue total. You need the breakdown.
-
2
Pull the QuickBooks P&L for the same month Run a Profit and Loss report in QuickBooks for the same calendar month. Note the total revenue line and compare it to your POS gross total. The difference is your starting reconciliation gap.
-
3
Remove tips and sales tax from the POS total Strip tips and sales tax out of your POS gross figure first. These are the easiest and most consistent adjustments. What remains is your adjusted POS service and product revenue.
-
4
Calculate deferred revenue movement for the month Compare your deferred revenue balance at the start of the month against the end of the month. New packages and gift cards sold increase the balance. Sessions redeemed and cards used decrease it. The net change tells you how much cash collected this month was not yet earned.
-
5
Post adjusting journal entries in QuickBooks Record the net deferred revenue change as a journal entry: debit cash (already recorded), credit deferred revenue liability. For membership proration, debit deferred revenue and credit service revenue for the earned portion. Your bookkeeper or CFO service should own this step on a monthly close schedule.
-
6
Document your reconciliation bridge for the month Keep a simple spreadsheet that shows POS gross total, each adjustment category with its dollar amount, and the final accounting revenue figure. This bridge document becomes your reference if you ever get a question from a lender, buyer, or CPA about how revenue is recognized. It also makes the following month's reconciliation faster because you have a starting baseline.
A worked reconciliation example
The example below uses round numbers. These are not reported benchmarks.
In this example, the POS shows $120,000. The accounting system should show $106,300. That $13,700 gap is cash collected for obligations not yet delivered. If the owner calculates labor percentage, EBITDA, or provider productivity from the $120,000 figure, every number downstream is off.
Reconciling once at year-end instead of monthly. Annual reconciliation collapses 12 months of deferred revenue movement into a single adjustment, making it impossible to identify which months were over- or understated. It also means every financial decision made during the year, including hiring, equipment purchases, and provider bonuses, was based on unreconciled numbers. Monthly reconciliation takes under 2 hours and prevents it.
How to prevent the gap from recurring
Monthly reconciliation is the repair. Prevention is getting the setup right once so the repair stays fast. Practices that close on time every month are not doing extra work; they built the right structure and run on it.
The most important setup step is configuring your chart of accounts in QuickBooks to mirror the revenue categories your POS tracks. If Vagaro separates injectable services, laser services, and skincare products, your QuickBooks income accounts should match. Without aligned categories, every month's reconciliation requires manual reclassification on top of the timing adjustments. Read our guide on building a med spa chart of accounts in QuickBooks for the specific account structure that supports clean monthly closes.
The second piece is a deferred revenue tracking spreadsheet, or the QuickBooks deferred revenue feature if your bookkeeper prefers it. You need a running balance of what is owed to clients in unredeemed sessions and cards. Without that balance, calculating the monthly deferred movement requires reconstructing it from individual transactions, which is slow and error-prone.
Third, check your POS report settings today. Confirm whether your standard revenue reports include or exclude tips and sales tax. Most practices do not know the answer without checking. Vagaro and Mindbody both offer customizable report templates. Build one that exports net-of-tip, net-of-tax service revenue so your starting figure for reconciliation is already adjusted for two of the six gaps.
Fourth, assign ownership. If reconciliation does not have a named person responsible for completing it by the 10th of every month, it will not happen consistently. Spa Ledger handles this for clients, along with the full separation of POS and bookkeeping workflows so the two systems stay coordinated week to week rather than only at month-end.
Find out what your practice actually earned last month.
Spa Ledger reconciles your Vagaro or Mindbody revenue against your QuickBooks books every month, closes your deferred revenue accounts, and delivers a P&L that shows what was earned, not just what was collected. Weekly P&L by service line. Injectable COGS reconciled. No onboarding fee. 30-day satisfaction guarantee.
Get Started