Body transformation coach monthly billing reconciliation is the financial health check that keeps a coaching business from leaking revenue. Missed charges, failed payments, and mismatched subscription records are common in coaching businesses that grow fast without tightening their backend. A VA who runs a clean monthly reconciliation protects the coach's income, catches errors before they compound, and keeps client accounts accurate. This SOP covers the full process from first to last working day of each month.


What Billing Reconciliation Covers in a Body Transformation Business

Body transformation coaches typically run a mix of billing scenarios: monthly recurring subscriptions, one-time program payments, payment plan installments, and occasionally refunds or chargebacks. Each of these needs to be tracked separately and reconciled against the payment processor records every month.

Reconciliation means confirming that what you expect to have charged was actually charged, what you received actually cleared, and what is outstanding is being actively pursued. It is not just pulling a Stripe export and calling it done. It is a systematic cross-reference between your client roster and your financial records.

Common billing tools used by body transformation coaches:

  • Stripe for recurring subscriptions and one-time charges
  • Square for in-person or package sales
  • GoHighLevel with Stripe integration for funnel-based billing
  • Trainerize with its own built-in billing module

Your reconciliation process needs to account for whichever combination the coach uses.


The Month-End Billing Reconciliation Workflow

Step 1: Pull the active client roster (Day 1 of the month)

Start with your CRM or tracking sheet. List every active client, their billing plan type, their expected charge amount, and their billing cycle date. This is your control list. Everything else gets compared against it.

Step 2: Pull the payment processor report

In Stripe: go to Reports, export the previous month's successful charges and failed payments. In Square: pull the transaction report for the same period. In GoHighLevel: check the payments section or pull via Stripe if integrated. You want a full list of every transaction that processed in the previous month.

Step 3: Match charges to clients

Go line by line. For every expected charge on your client roster, confirm there is a matching successful transaction in the payment report. Mark each one as reconciled. When you find an expected charge with no matching transaction, flag it as a discrepancy.

Step 4: Handle failed payments

Failed payments show up in Stripe as "payment failed" or "invoice past due." For each failed charge:

  • Send a payment update request to the client immediately (Stripe has an automated dunning feature, but confirm it is active)
  • Log the failed charge in your tracking sheet with the date and amount
  • Set a follow-up reminder in Asana for three days later if the card is not updated

If a payment fails and the client has not updated their card within five business days, escalate to the coach. At that point, the coach decides whether to pause access, extend grace, or have a direct conversation.

Step 5: Reconcile refunds and chargebacks

List every refund issued in the previous month. Confirm each one was authorized by the coach. Confirm the amount matches what was agreed. Log it in the client record with the reason. Chargebacks are more serious - if any appear, flag them to the coach immediately along with the transaction details.

Step 6: Check subscription statuses

In Stripe: filter subscriptions by status. Every active client should have an active subscription. Cancelled clients should have no active subscription. If you find a cancelled client with an active subscription still running, fix it immediately and refund any erroneous charges. If you find an active client with a cancelled subscription, investigate and reactivate with the correct plan.

Step 7: Reconcile with any frozen accounts

Cross-reference your freeze tracker against the billing records. Every client currently on a freeze should have a paused subscription in Stripe. Every client who resumed from a freeze should show a reactivated subscription from their resume date. Mismatches here are common and worth checking every month.

Step 8: Produce a one-page summary for the coach

At the end of the reconciliation, compile a summary: total revenue collected, number of active subscriptions, number of failed payments and their status, refunds issued, and any open items requiring coach attention. Keep it to one page or a short email. The coach needs the numbers, not a detailed accounting report.

Pair this SOP with payroll processing to close month-end and roll billing data into your KPI dashboard. McKinsey reports 60% of occupations could automate 30%+ of activities.


Keeping the Tracking Sheet Clean All Month

Monthly reconciliation is easier when the tracking sheet is maintained throughout the month, not just at month-end. Every time a new client is added, a freeze is processed, or a cancellation is executed, update the sheet. By the time month-end arrives, most of the work is already done and you are confirming rather than discovering.

Track these columns in your billing spreadsheet:

  • Client name
  • Email (must match Stripe customer email exactly)
  • Plan type and monthly amount
  • Billing cycle date
  • Subscription status (active, paused, cancelled)
  • Last payment date
  • Last payment status (succeeded, failed)
  • Notes (freeze dates, payment plan details, refund history)

Frequently Asked Questions

How long should monthly billing reconciliation take a VA?

For a program with 20 to 40 active clients, a thorough reconciliation should take two to three hours. With a clean tracking sheet maintained throughout the month, it can be closer to one hour. The first time you run it in a new program may take longer as you build the baseline.

What do you do when Stripe and the client roster do not match?

Investigate the discrepancy before making any changes. Check whether the client changed their email, was moved to a different plan, or had a manual payment applied outside Stripe. Document what you find. Only fix the record after you understand what happened. Guessing leads to errors.

Should a VA have full access to Stripe?

The VA needs enough access to pull reports, view subscription statuses, send payment update links, and pause or cancel subscriptions per approved workflows. They do not need access to issue large refunds, add bank accounts, or change payout settings. Set permissions accordingly.

What happens if a client was charged after they cancelled?

Refund it immediately and log the error. Notify the coach. Document the root cause - usually a subscription that was not cancelled in the system when the client record was marked inactive. Add a cancellation verification step to your offboarding checklist to prevent recurrence.

How do you handle payment plans that span multiple months?

Track each payment plan installment separately. Note the expected charge date and amount for each installment in the tracking sheet. On reconciliation day, confirm each scheduled installment that was due in the previous month either processed or is being followed up on. Payment plans with gaps need immediate attention.