[Admin] Setting a cancellation notice policy
Every Club and Studio on Who's In has a configurable cancellation notice period. Set it once in your settings, and every new member acknowledges it at signup.
Where to set it: - Clubs: Admin → Settings → Cancellation Policy - Studio: Admin → Settings → Cancellation Policy (studio-wide default) + optional per-plan override in Packages
Supported values: - 0 — no notice required (immediate cancellation allowed) - 7 — one-week notice - 14 — two-week notice - 28 — four-week notice (recommended default) - 60 — two-month notice
What happens when you change it: - Existing members keep the notice period they agreed to at signup (grandfathering — same pattern as scheduled price changes). - New members see the new policy and must acknowledge it with a required checkbox. - The change is written to the immutable audit log (`membership-package-history`) with your name, timestamp, and optional reason.
Legal and SaaS best-practice alignment: - Explicit disclosure — the notice period is shown as its own bordered disclosure block at signup, not buried in terms. - Explicit consent — members cannot proceed to payment without checking a required acknowledgment box. - No retroactive tightening — you cannot lengthen the notice period for members who've already joined. - Stripe `cancel_at` enforcement — when a member cancels, Stripe is told to stop billing on the exact effective date, not silently later. - Clear portal access — members can always see and manage their subscription via Stripe's Customer Portal.
Choosing a value: - Most community clubs and casual studios pick 0 or 7 days — friction-free cancellation, builds trust. - Premium fitness studios typically pick 28 days — aligns with the UK monthly rolling contract standard. - Private clubs or membership-capped packages pick 60 days — enough runway to promote a replacement.
The per-plan Studio override: Studios can override the default on specific plans (e.g. a 60-day notice on an annual prepaid plan but 7-day on a drop-in package). If no override is set, the studio-wide default is used. The per-plan value overrides at signup time only — already-joined members keep their snapshotted value.