Skip to content
← Help center

Programs & reservations

Registrations and prices

Set registration windows, capacity, prices, and visibility for your programs.

Club staff · 5 min read

Follow these steps at your club’s own website. Available screens and actions depend on your account’s role and the programs your club has enabled.

Overview

Camp, Events, and Lap swim each have a Registration & pricing tab; that is where you open sign-ups and set prices. Lessons works a little differently — see the note below.

That tab lists the registrations for that program and links into the shared editor for windows, capacity defaults, price rules, and the banner text members see when a program is not yet open, closed, or full. Club → Programs also links All registrations & prices when you want every program in one list.

Creating a registration

  1. On the program page, open Registration & pricing, or use Set up a new … registration there (Camp, Events, or Lap swim).

  2. Enter a title and optional summary.

  3. Set a default capacity if you want new sub-units to inherit a headcount when attached (you can still override per sub-unit).

  4. Save, then open the registration to set windows, attach sub-units, and add price rules before publishing.

Attach sub-units from the detail page (unattached camp weeks, events, or lap templates in your org). Sub-unit editors on Camp / Events / Lap remain the place to edit week dates, event copy, or lane templates.

Lessons is different. Create and manage a batch directly on the Lessons page — there is no Registration & pricing tab for it. Open Offering settings from a batch only when you need to set its windows, price rules, or publish state.

Dates and registration (club timezone)

All four window edges are authored in the club timezone configured under Settings → Organization. The admin form uses your local datetime picker, but values are stored as instants interpreted in that timezone (including daylight saving transitions).

EdgeMeaning
Visibility startEarliest moment the program can appear to members (for public listings).
Registration opensWhen registration becomes available (if unset, visibility start is used).
Registration closesLast moment to register or join the waitlist.
Visibility endProgram disappears from member-facing surfaces after this instant.

Leave an edge blank for an open boundary on that side. The system validates ordering: visibility start ≤ registration open ≤ registration close ≤ visibility end, and registration must fall inside visibility.

Publish states and preview links

StateMeaning
draftStaff-only; not visible to members.
publicListed when inside the visibility window and derived state allows.
unlistedReachable only via a preview link (not in public listings).
endedClosed to new registration; existing registrations are unchanged.

Publishing to public or unlisted requires valid windows. If any price rules exist, a fallback rule (any residency, any tier, no age band, whole-program scope) is required.

When you first move an offering to unlisted, the platform shows a preview URL once (/offerings/preview/…). Copy it immediately. The plaintext token is not stored. Use Replace preview link on an unlisted offering to invalidate the old link and create a new one (also shown once). The confirmation warns that the previous link will stop working.

Capacity

Default capacity is copied to new sub-units when attached (events only when their capacity was unset). Changing the default later does not retroactively change existing sub-units. Capacity cannot be lowered below current registrations on camp weeks and events.

Price rules

Price rules resolve at registration time from residency, membership tier, optional age band, and optional sub-unit scope. The most specific active rule wins; the amount is frozen on the invoice line and never changes when rules are edited later.

  • Add rules on the detail page. Deactivate outdated rules instead of deleting them.

  • A fallback rule (residency any, tier any, no age band, whole program) is required before publish when any rules exist.

  • Use the price preview widget to test a sample household (resident flag, tier, date of birth) against the earliest attached sub-unit start date.

If no price rules exist, sub-units continue to use their flat price field.

Banners members see

Derived registration state drives member-facing copy (no cron flips):

StateBanner
Not yet openOpens {month day} (from registration open, or visibility start)
ClosedRegistration closed
FullFull: join the waitlist
OpenNo banner

Waitlist depth and fill rates on the detail page are for staff planning; the program waitlist itself is unchanged (FIFO, members-only, per sub-unit).

What members see

Members reach camp, events, and lap swim from the member portal (sign-in required). There is no logged-out program catalog in v1. Public /camp, /events, and /lap-swim pages remain CMS/marketing content.

On each portal page:

  • Programs outside the visibility window, or in draft / ended state, do not appear in the list.

  • When registration is not yet open or closed, the register / RSVP / reserve control is replaced by the banner text (Opens June 1, Registration closed, etc.).

  • When the program is full but the waitlist is open, members see the existing join waitlist flow.

  • Camp and events show an advisory price resolved from the household's residency, tier, and (for camp) camper ages. The amount frozen at checkout may differ if household data changes before submit.

  • Lap swim is free. No price display.

Walk-up vs waitlist (EC-11): if a spot opens and someone registers before a waitlisted member accepts their emailed offer, the walk-up gets the seat. The waitlist does not hold capacity.

Camp lottery (EC-13): when a season lottery is open or awaiting its draw, portal camp shows the lottery form instead of register buttons. The registration window governs post-lottery registration only.

Preview links

Staff can copy an unlisted preview link from the editor (/offerings/preview/…). Anyone with the link can view the title, summary, schedule windows, session list with capacities, and price rules, never registration counts or waitlist information, without signing in. Links stop working when the registration returns to draft or ends. Preview is read-only. Registering still requires the member portal. Rotate the link from the admin editor to invalidate old URLs.