Skip to main content

Smart Refund Handling

When a member cancels a session, where does the credit go?

In most gym software, the answer is "back to their balance." The number goes up by 1. Done.

But that's not really accurate, is it? What if that credit came from an expiring weekly bucket? What if it was worth a different amount than their other credits? What if they want a refund later—which price do you use?

We track where credits came from, so when they come back, they go back to the right place.

The Problem with "Just Add It Back"

Let's say Kevin has credits from multiple sources:

  • 3 weekly credits (valid January 12-18, worth $65 each)
  • 3 weekly credits (valid January 19-25, worth $65 each)
  • 5 10-pack credits (valid through March, worth $75 each)

Kevin books a session for January 14th. The system uses one of his January 12-18 credits (because that's the week the session falls in).

Now Kevin cancels that session.

Traditional system: Kevin's balance was 10, now it's 11. Where did that credit go? Into the generic pool. Which bucket? Who knows.

The problem: That credit came from a bucket expiring January 18th. If it goes back to the 10-pack pool instead, Kevin just got a credit that lasts until March when it should have expired in 4 days.

Or worse, if he asks for a refund, do you refund him $65 (the weekly rate) or $75 (the 10-pack rate)?

How We Handle It

When Kevin cancels, the credit goes back to the exact bucket it came from.

Cancellation: January 14 session

Original credit source: Weekly PT (Jan 12-18)
├── Before cancellation: 2 credits
├── Credit returned: 1
└── After cancellation: 3 credits

Expiration: Still January 18
Value: Still $65

The credit didn't move to a different bucket. It went home.

Why This Matters

Expiration stays correct. If Kevin doesn't use that credit by January 18th, it expires. He can't game the system by booking and cancelling to extend his credits.

Refunds are accurate. If Kevin later cancels his membership, we know exactly what each credit is worth. His 3 weekly credits are $65 each. His 5 10-pack credits are $75 each. The refund calculation is precise.

The audit trail is complete. If anyone asks "what happened to Kevin's credits?" you can trace every movement.


What Gets Tracked

When Kevin books a session, we record:

Session Booking:
├── Date: January 14, 2025
├── Time: 10:00 AM
├── Trainer: Marcus
├── Credit used from: Invoice #INV-2025-0042
├── Credit bucket: Jan 12-18 (weekly)
└── Credit value: $65.00

When he cancels, we use that record to reverse it exactly:

Session Cancellation:
├── Original booking: January 14, 2025 at 10:00 AM
├── Credit returned to: Jan 12-18 (weekly)
├── Bucket after: 3 credits (was 2)
└── Invoice updated: #INV-2025-0042

And the invoice gets a note:

[SESSION CANCELLED 2025-01-13] Session for Jan 14 at 10:00 AM cancelled.
Credit returned to Jan 12-18 bucket. Member now has 3/3 credits for that week.

When the Bucket Already Expired

Here's a trickier scenario. Kevin booked a January 14th session. He forgot to cancel. Now it's January 20th, the bucket expired on the 18th, and he realizes he didn't go.

Can the credit be returned?

Generally, no. The bucket expired. The credit was assigned to that week. If Kevin didn't use it or cancel in time, the expiration policy applies.

But this is configurable based on your policies. Some gyms:

  • Offer a grace period for cancellations
  • Allow emergency exceptions
  • Let staff override for good members

Whatever you decide, the system documents it. "Credit returned to expired bucket per staff override" or "Credit forfeited due to bucket expiration."


Refund Calculations

When Kevin decides to cancel his membership entirely, the refund math is straightforward:

Kevin's unused credits:

Weekly PT (Jan 19-25): 3 credits × $65 = $195
10-Pack: 5 credits × $75 = $375
───────────────────────────────────────────────
Total refund: $570

Because each credit knows what it's worth, you don't have to guess. You don't have to average. You don't have to ask "what rate did he pay?"

The system tells you exactly what each credit is worth based on its source invoice.


Different Cancellation Scenarios

Kevin Cancels a Session (More Than 24 Hours Out)

  • Credit returns to original bucket
  • Trainer's slot opens up
  • Invoice is documented
  • Everyone's happy

Kevin Cancels a Session (Less Than 24 Hours Out)

  • Session is cancelled
  • Credit is NOT returned (late cancellation)
  • Trainer gets paid anyway
  • See Session Handling for details

Trainer Cancels on Kevin

  • Credit is always returned (Kevin didn't cause the cancellation)
  • Kevin is notified
  • No penalty to Kevin
  • Documented on the invoice

Kevin's Membership Gets Paused

  • All future sessions are cancelled
  • Credits from sessions more than 24 hours out are returned to their buckets
  • Credits from sessions within 24 hours are forfeited (unless emergency override)
  • All returned credits are extended by the pause duration
  • See Pausing and Resuming for details

What Kevin Sees

When Kevin cancels a session, his confirmation shows:

Session Cancelled

Tuesday, January 14 at 10:00 AM with Marcus

Your credit has been returned to your January 12-18 weekly credits.

Current credits:
├── This week (Jan 12-18): 3 available
├── Next week (Jan 19-25): 3 available
└── 10-Pack: 5 available

He knows exactly where the credit went. No mystery.


For Your Staff

When a member calls with questions, your staff can explain:

"When you cancelled your Tuesday session, the credit went back to your January 12-18 weekly credits. Those credits expire on Saturday the 18th, so you'll want to use them before then."

Or:

"I see you cancelled after the bucket expired. Unfortunately, those credits have already lapsed per the package terms. But let me see what we can do..."

Real answers. Not guesses.


The Accounting Angle

For the numbers people: accurate refunds mean accurate books.

Without source tracking:

  • Member has 8 credits
  • You guess they're worth... $68 each? $72?
  • Refund is approximate
  • Revenue recognition is approximate
  • Your accountant is annoyed

With source tracking:

  • 3 credits at $65 from weekly membership
  • 5 credits at $75 from 10-pack
  • Refund is $195 + $375 = $570
  • Revenue recognition is precise
  • Your accountant is pleased

Ready to streamline your gym?

Start managing bookings, personal training, and memberships in minutes.

Start Your Free Trial →

No credit card required