Skip to main content
Players & Accounts

Account Deletion

How to delete your account, what's removed after 30 days, and what's kept.

Overview

You can permanently delete your AllSquads player account from My Profile → Danger zone → Delete account. Account deletion is a two-stage process:

  1. Request — you confirm the deletion and we hide your profile, sign you out everywhere, and email you a restore link.
  2. Finalisation — 30 days later, our system permanently anonymises your personal information.

You can change your mind at any point during the 30-day window by clicking the restore link in your confirmation email.


Before you can delete

Account deletion is blocked if any of the following apply. The danger-zone modal will list them with direct cancel links so you can clear each one through its own standard cancel flow.

  • Active subscription — recurring class subscriptions must be cancelled first. Open the subscription card in Dashboard → My bookings and use the existing "Cancel subscription" button. The standard notice period (set by your coach or club) applies.
  • Future bookings — confirmed or pending bookings against sessions that haven't started yet. Cancel each one from Dashboard → My bookings. Refunds / credits are issued per the class cancellation policy (see 06-cancellation-policy.md).
  • Outstanding payments — any unpaid invoice from the last 30 days. Settle the invoice or contact your coach / club for a credit before you can proceed.

You cannot bypass these flows from inside the deletion journey — each cancellation still requires its own confirmation modal. This is intentional: cancelling a subscription has different consequences (refunds, notice periods, classmates losing a doubles partner) than deleting your account.


What we remove (after 30 days)

When the 30-day window expires, the following personal data is permanently anonymised or deleted:

  • Your name (replaced with "Deleted User")
  • Email address (removed)
  • Phone number (removed)
  • Date of birth (removed)
  • Profile photo / avatar (file deleted, database reference cleared)
  • Home address (removed)
  • Emergency contact details (removed)
  • Saved Stripe payment methods (detached and the Stripe customer record deleted)
  • Notification preferences (deleted)
  • Session tokens and refresh tokens (deleted immediately when you submit the request)
  • Push notification tokens (deleted)
  • Email + SMS marketing consent records — the email and phone fields on the consent log are nulled, but the consent timestamp and event type are retained for Spam Act audit purposes

What we keep (and why)

For legal and operational compliance, the following records are retained and continue to reference your now-anonymised user account. Other people who interacted with you (coaches, club admins, other players in shared classes) will see your name as "Deleted User".

  • Booking and attendance records — retained in full. Your bookings remain linked to your anonymised account so coach KPIs, capacity tracking, and class attendance history stay accurate.
  • Reviews you left — retained. The review content stays; your name displays as "Deleted User" on the public review.
  • Messages you sent — retained for the other participants. Your sender name appears as "Deleted User".
  • Group chat membership — your historical membership is retained so other members can see "Deleted User left the chat".
  • Invoices — retained for 5 years (Australian Taxation Office requirement). Future invoices addressed to your account use "Deleted User"; historical invoice PDFs are unchanged.
  • Marketing consent records — retained for 7 years (Spam Act 2003 requirement) as proof of opt-in / opt-out. Email and phone fields are nulled.
  • Audit logs and security events — retained for 7 years (AML/CTF Act requirement). They resolve to your anonymised account.
  • Stripe Connect account (coaches only) — disconnected from AllSquads. Stripe retains the underlying account on their side per their own policy; we sever the link.

Coach accounts — additional requirements

The flow described above also applies to coach accounts. Coaches have additional pre-conditions on top of the player checks — all of them must be cleared before the modal will accept the deletion request:

  • Active classes with future bookings — for any class where you're the head coach and there are confirmed or pending bookings on an upcoming session, the modal lists the class with a deep link to its cancel surface. Transfer the class to another coach (where supported) or cancel the upcoming sessions first.
  • Pending payouts — if you have a payout in the current weekly cycle that hasn't completed yet, the modal asks you to wait for it to land. The cancel link points to Dashboard → Payouts so you can check the status.
  • Stripe Connect balance — if your Stripe Connect account has any available or pending balance, you can't delete until the balance is zero. Trigger a manual payout from Dashboard → Payouts (or wait for the next automatic cycle) and try again.
  • Head-coach role at a club — if you're listed as the head coach at one or more clubs, hand the role off to another coach first via Dashboard → Team → kebab menu → Promote to head coach. If your club has no other coach who can take the role, email support@allsquads.com.au and we'll help with the handover.

Once the 30-day window expires and the finaliser runs, the coach-side cleanup additionally:

  • Stamps a `allsquads_disconnected_at` timestamp on your Stripe Connect account metadata, then clears the link from your AllSquads user record. The Stripe Connect account itself is retained on Stripe's side per their compliance policy — you can close it from your own Stripe dashboard if you want it fully removed.
  • Removes your `user_clubs` membership rows but preserves the clubs themselves.
  • Retains payout history and reviews left about you in full — anonymised so coach and reviewee names render as "Deleted User", with payment amounts and review ratings unchanged for the 7-year financial-records retention.

Club admin accounts

Club admin (and other club-staff) account deletion uses the same coach pre-conditions where they apply (head-coach role, pending payouts, Connect balance). Deleting your personal admin account does NOT delete the club — see Club account deletion below to close the club itself.


Club account deletion

A club admin or owner can close the entire club account from Dashboard → Settings → Danger zone → Delete club account. The flow mirrors the player and coach lifecycle: a 30-day restore window, then an automated cascade. (An independent coach whose account has only an auto-created personal org — never a real multi-coach club — sees this same control labelled "Delete coaching account" instead; the pre-conditions, restore window, and cascade behaviour are identical, only the label changes.)

Before you can delete the club

The same pre-condition gate that protects player and coach deletions also protects club deletion. We block the request until each of the following is resolved through its own standard cancel flow:

  • Open Stripe Connect balance (>$0) — trigger a payout from Dashboard → Payouts first.
  • Active classes with future booked sessions — cancel or transfer each class first.
  • Pending payouts owed to a coach at this club — wait for the next payout cycle to settle.
  • Active player subscriptions on club-owned classes — these are auto-cancelled with credit at hard-delete (see below), but they appear in the obligation list so you can cancel manually first if you prefer to avoid the automated cascade.

What happens at hard delete (30 days later)

  • Classes — paused. Past sessions stay queryable for coach KPIs / payout history. The FK to the club row is preserved so historical bookings continue to render the (anonymised) club name.
  • Active player subscriptions — cancelled. We issue each affected player a pro-rata credit for the unused portion of their billing period (mirrors the ADR-002 cancellation policy). The player is emailed with the credit amount.
  • Connected coaches — keep their AllSquads accounts. Only the user_clubs row linking each coach to this specific club is removed; their other club memberships are untouched.
  • Multi-club admins — keep every other club membership they have.
  • Stripe Connect — disconnected from AllSquads (we stamp the Stripe account with an allsquads_disconnected_at metadata field and clear the link locally). Stripe retains the underlying account per their own compliance policy.
  • Booking history — preserved. The club row stays in our DB with name = "Deleted Club" and all PII columns nulled, so historical bookings and payment receipts continue to render correctly.
  • Club PIIname → "Deleted Club", email, phone, address and logo_url permanently removed. The logo file is hard-deleted from S3.

Restoring within the 30-day window

The original admin receives an email immediately after the request with a restore link. Clicking the link before the 30 days elapse cancels the cascade and the club returns to normal — classes resume, Stripe Connect link stays intact, members unchanged. After 30 days the link stops working and the cascade is irreversible.

Who can trigger it

Only users with club_admin or owner role at the target club can submit the deletion request. Other club members (coach, head_coach) see a 403 and are pointed at the club's admin. Platform admins (AllSquads staff) can also trigger it for ops support.


Download your data

You can request a copy of your AllSquads personal data at any time from My Profile → Privacy → Download your data. This is independent of account deletion — you can request a data export while keeping your account active, or download a copy before deleting.

How to request

  1. Open My Profile and scroll to the Privacy section.
  2. Click Request a copy of your data.
  3. We email a secure download link to your registered email address, typically within a few minutes.

What's in the bundle

You receive a single JSON file with the following categories:

  • profile — your name, email, phone, date of birth, address, profile photo URL, sports and certifications, emergency contact, account creation date and roles.
  • bookings — every booking you've made (class name, club name, status, total paid, created date).
  • sub_bookings_attendance — per-session attendance records linked to your bookings.
  • reviews — reviews you've authored (not reviews of you).
  • messages_sent — only messages you wrote. Other participants' messages stay private to them.
  • notification_preferences — your current toggles for email / SMS / in-app per notification type.
  • marketing_consent — every email and SMS marketing opt-in / opt-out event recorded for your account.
  • credits_ledger — credits issued to you and where you've spent them.
  • subscriptions — class subscription history (status, current period, cancellation timestamps).

Link expiry

The download link is valid for 7 days. After that, the file is no longer accessible and you can request a fresh export from the same panel.

Rate limit

You can request one data export per 24 hours. If you click again within the window, the page surfaces the existing pending or ready bundle rather than starting a new build.

If the export fails

If something goes wrong while we're building your bundle, you'll receive an email asking you to contact support@allsquads.com.au and we'll prepare it for you manually within the 30-day Privacy Act window. The original manual-handoff path is always available as a fallback — email support@ and we'll process it by hand.


FAQ

Q. Can I delete my account if I have credits? Yes — credits are retained as anonymised ledger entries (they're tied to specific classes / clubs and not refundable in cash). If you want to use them up first, do so before clicking Delete.

Q. What if I'm a coach and a player at the same time? You delete a single account — both sides go together. The same My Profile → Danger zone → Delete account modal runs the player checks (subscriptions, future bookings, outstanding payments) and the coach checks (active classes, pending payouts, Stripe Connect balance, head-coach role) and lists every obligation in one combined list. Clear them all to proceed.

Q. I clicked Delete by mistake — what now? Open the confirmation email we sent you. The "Restore my account" button takes you back to a working account. The link is valid for 30 days from your original request.

Q. What happens if I never click the restore link? On day 30, the finaliser job runs and permanently anonymises your data. You'll receive no further communication from us after that.

Q. Can someone else trigger deletion of my account? No. The deletion flow requires (a) being signed in to your account, (b) typing your exact full name to confirm. There is no admin / "delete this user" function exposed on the dashboard.