Skip to main content
All updates
Bug fix·Mon Aug 31·

The extra-class offer now shows each client their own price

When a client used up their monthly classes, the offer to buy an extra one quoted the under-30 price to everyone and named the wrong date for when their classes come back. Both now show what is true for that client.

When a client on a limited monthly membership has used all the classes included
in their cycle, we tell them so and offer them an extra class. Two things in that
message were wrong.

**The price was the under-30 price, for everyone.** Clients aged 30 and over were
shown one amount and charged another at checkout — because the offer quoted your
catalogue price, which for group classes is the VAT-exempt under-30 figure. The
offer now shows each client the amount they will actually be charged, worked out
by checkout itself, including their loyalty or other automatic rate, VAT and any
first-purchase registration fee. Their age band is still resolved from their own
date of birth and the VAT evidence you hold. Only their own price is shown; they
never see both.

**The date their classes come back was the billing date.** For most members those
are the same day, so it usually looked right — but after a freeze, a pause, or if
their start date was moved, the two drift apart and we named the wrong one. On a
clip card we were showing the card's expiry date under the words "renews", which
is never true. The message now uses the date the allowance genuinely resets, taken
from the same place the remaining-classes count comes from, and says nothing at all
rather than guessing when a pass has no cycle.

This matters because waiting is often the better answer than buying. A client who
can see that their classes return in two days can decide for themselves — and one
who buys an extra class now sees the right price before they pay, not after.
Next update

Reliable discounted membership sales and failed-setup cleanup

Staff can again sell a membership with an agreed recurring price, registration fee waiver, referral offer, or other coupon-backed concession. Membership creation now uses Stripe's current subscription-discount request shape while preserving the existing concession precedence and retry fingerprint.