Skip to content

Mid-season roster changes

This page is a runbook for the changes you’ll need to make once the season is underway.

An athlete moves to a different group

E.g. Suzy was U12, gets bumped to U14 mid-season.

  1. Open /coach/families/<id> for Suzy’s family.
  2. Tap Archive next to her old athlete row.
  3. Use the Add athlete form at the bottom of the page — name Suzy Smith, group U14. Add.

There’s no in-place “move” because attendance and audit history are tied to the athlete row — keeping the old row archived preserves the record. Suzy as U14 is effectively a new entry going forward.

A family drops mid-season

There’s no “delete family” button. The cleanest path:

  1. Open /coach/families/<id>.
  2. Archive each athlete (Archive button on each athlete row).
  3. Leave the family record in place — no athletes means no attendance, no notifications, nothing on the family page.

If you want the family’s /<slug> URL to stop resolving entirely, ping the dev — that’s not exposed in the UI yet.

A parent changes their email

On the family detail page, add a new contact with the new email (use Add contact). Leave the old one in place — the old one just becomes unused. You don’t currently delete contact rows.

Note this does not give the parent a way to sign in. Families reach their page by its slug — there is no parent email sign-in at all. Email addresses on a family are used for alerts and invites only. (Magic-link sign-in is for coaches.)

Adding a parent to an already-claimed family

Open /coach/families/<id>, use Add contact. The family is already at /<slug>; the new contact’s email just becomes one more recipient for digest emails (if they opt in).

Renaming a group

Open /coach/calendars, find the group and use the menu → Rename. The new name propagates to events and family-page rendering automatically.

Archiving a group

The menu on a group row offers Archive, Un-archive and — when the group is empty — Delete. The row shows a usage badge (empty, or 2 athletes · 4 events · 1 coach) so you can see which applies. Delete is refused for a group still in use; archive instead. Old events stay in the audit log either way.

A coach changes role (editor → admin or vice versa)

Edit the row on /coach/coaches — tick or untick Admin and Save. It takes effect on their next request; they don’t need to sign out.

A family forgot their slug

The parent can:

  • Go to ts.onsnowlive.com/me — the cookie remembers them on any device they’ve used.
  • Check the original invite email.
  • Ask you — you can look it up at /coach/families/<id>.

What about deleting events?

That’s not really a roster question, but: see Cancel / un-cancel / delete. Short answer: cancel rather than delete, so families see the change.

When in doubt

If a roster change you need doesn’t map cleanly to a button in the UI, drop feedback on the Welcome page — admin workflows are the area most likely to be missing pieces, and we’d rather hear it than have you fight the UI.