Clearer household membership and class choices
21 September 2026Member requests
- Membership, Classes and Check now look like progress steps instead of buttons.
- A compact counter stays visible while choosing classes. It shows places left,
explains when too many classes are selected and says how to continue.
- When an offered membership can accommodate all the selected classes, members
can switch to it without selecting their classes again. Availability, dates and household prices are checked again before sending.
- Unlimited memberships show no suggestion to downgrade when fewer classes are
selected. Instructions are shorter and repeated start-date text is removed.
Owner Telegram alerts
- An atomic household membership/class submission produces one owner Telegram
summary, including each member’s selected membership and number of classes.
- Matching owner Telegram automation steps share the same delivery reference.
Member-facing automations and their request-type conditions remain separate.
- Exact retries do not create another alert. Returning choices for changes and
submitting again creates a new occurrence. Existing queued historic alerts are not rewritten or replayed.
Operator rollout
Apply the new member-request-household-notifications preflight, editor and postflight SQL after the previously deployed household12+13 package, before merging/deploying this code. The correction replaces two existing functions; there are no new environment variables, feature flags, columns or grants. No production SQL or real Telegram delivery has been performed by this change.
Household memberships and costs
- Changing the club membership setup now opens a review. Staff can see shared
plans, pending changes and payment arrangements before saving. The server rechecks the review and protects against a second settings change.
- Existing memberships stay visible in Individual mode. Each household has a
route to ask members to choose new plans through the existing approval flow.
- Household costs now show member prices, discounts, caps and Video Review
add-ons, with current and planned totals separated by billing period. Incomplete prices are flagged instead of shown as a full bill.
- The household directory no longer labels basic plan-price sums as monthly bills.
- Request previews explain hidden membership options. Existing programme and
payment-type checks remain in place; saved requests keep their original options.
- Fixed-price Video Review add-ons are no longer grossed up a second time in
the member-request estimate when membership prices exclude VAT.
These household-review changes need no additional SQL, flags or environment settings. They use the existing household pricing, member-choice and add-on schema. The Telegram SQL rollout above is still a separate requirement from the preceding change. No live memberships, payments or messages are changed by this release preparation.
Household review follow-up
- Household costs refresh after saved plan or member changes. A changed plan
also resets the planned-price date so an old estimate is not left on screen.
- Paused plans stay visible with their pause end date, where one is recorded.
The date is a reminder to check the plan; it does not restart billing.
- Staff can replace one household's unanswered request with fresh choices.
Check the new request first. The old one closes only when its replacement is saved successfully. Replies and other households' requests are protected.
- Find households by name and switch between Needs checking, Reviewed and All.
Review progress is shared across staff and devices. Changed household details require another check.
This follow-up does require SQL before code: after the household Telegram SQL14 above, run the household-review-followup preflight, editor (units15/16), and postflight. It adds service-only review markers and an atomic replacement operation. No new flags, environment variables or cron schedules are required. The owner applies remote SQL; none has been applied by this work.
Smoother household reviews
- Prices and open requests stay visible during refresh. Unfinished request
edits stay open, with a clear message if a refresh fails.
- Saving a request updates the request lists without reloading household
details or recalculating prices. Insurance updates no longer reload prices.
- Marking a household reviewed checks just that household and its related
records. The initial review loads saved progress alongside membership data.
This performance correction needs no new SQL, flags or environment settings. The earlier household review units15/16 above still require their own rollout. Permissions, fresh server checks and payment behaviour are unchanged.
Development checks
- Behaviour changes now map important journeys, existing records, permissions,
interruptions and connected screens to repeatable checks. Late-found issues record the missing scenario and its prevention test.
- Household review and slow-refresh browser tests now run in local release
checks and CI, with receipts and screenshots for failures.
This development-process change requires no SQL or production settings. Browser fixtures do not replace real-login, database or provider verification.
CI quota fixture correction
- The Video Review concurrency test now uses its own synthetic student, so
earlier consumed quota cannot make it fail when test weeks overlap.
This corrects test setup only. Quota behaviour and deployed SQL are unchanged; the pending household SQL rollout above still applies.