Core ConceptsSeasons & Sessions

Seasons and sessions

Understand how Seasons group Sessions, Products, and Subproducts in Campium, and learn how to create, copy, and manage capacities, waitlists, and season status.

Overview

Seasons group your sessions (called Products in the admin UI) so families can register for the right offerings in the right time frame. Sessions can also have subproducts/options for variants like time slots or age groups, each with their own price, deposit, capacity, and waitlists.

This guide walks through how Seasons, Sessions/Products, and Subproducts/options work together, and how to configure fields like capacity, dates, and waitlists using the existing admin screens.

Navigation and exact menu labels can vary by deployment. This guide focuses on the modal windows and URLs that appear when you manage Seasons, Sessions/Products, and Subproducts/options in the admin area.

Key definitions

Season

A Season represents a registration period, such as "Summer 2025" or "School Year 2025–26". Each Season contains:

  • Sessions/Products families can register for

  • Associated forms

  • Payment plans

When you clone a Season, Campium copies these items from an existing Season into a new one along with Forms.

Session (Product)

A Session is the main thing a family registers for (for example, "Week 1 Day Camp"). In the admin UI, these may appear with your own term (for example, "Session", "Program", or "Class") based on how you configure labels under Admin → Site Settings → Basic tab.

Sessions:

  • Live inside a Season

  • Have their own name, public name, price, deposit, capacity, and dates

  • Can have one or more Subproducts/options beneath them

  • Link to registration and waitlist reports

Subproduct / Option

A Subproduct/Option is a variant under a Session, for example:

  • Morning vs afternoon track under a week-long camp

  • Age group options under one program

  • Add-ons that appear and register separately

Subproducts/options:

  • Inherit the parent Session context

  • Have their own name, description, price, deposit, capacity, and status

  • Can have their own staff assignment

  • Show separate registration and waitlist links in the options list

Capacity

Capacity controls how many registrations you accept:

  • For Sessions (Products): the Capacity field in the create/edit modal controls the session-level capacity.

  • For Subproducts/options: the Capacity field in the options edit modal controls capacity per option.

Tooltips and helper text indicate that:

  • For Sessions: "Capacity:" has a tooltip Set to zero or leave blank for unlimited.

  • For Subproducts/options: "Capacity" uses helper text blank or 0 for unlimited.

Waitlist

Waitlist links appear in the admin UI so you can see who is waiting when capacity is reached or when your configuration enables waitlists.

Link patterns from the templates:

  • Session waitlist link from the session list: a waitlist report URL that is shown when the Session/Product is configured to show waitlists.

The templates confirm where waitlist links appear and which URLs they use. They do not expose deeper business logic such as how families are added to the waitlist or when they move off the waitlist. Work with your Campium support contact if you need details on waitlist behavior beyond these confirmed links.

Work with Seasons

Clone an existing Season

Cloning a Season lets you reuse all of the Sessions (Products), forms, and payment plans from one Season in another, which is useful when you run the same structure each year.

Open the Season clone modal

  • Go to the Seasons area in the admin.
  • Select the Season you want to copy.
  • Use the Season clone action (often labeled Clone or similar) to open the Season clone modal.

Review the clone note

The Season clone modal includes an alert describing what the clone does. The text from the template is:

Note: This feature will create a copy of all sessions/products, forms, and payment plans from the selected season to a new season. This operation may take a few moments to complete. Please do not close this window until the process is finished.

The exact label used for sessions/products is configurable under Admin → Site Settings → Basic.

Fill in clone fields

The Season clone modal includes:

body
Copy From Seasonstring
Required

Read-only label showing the name of the Season you are copying from, displayed as Copy From Season with the selected Season name.

body
New Season Namestring
Required

The name for the new Season that will receive the copied Sessions/Products, forms, and payment plans. For example, Summer 2026.

Start the clone

  • Click Save to start cloning the Season.
  • Leave the window open until the process finishes, as the note indicates.
  • Click Cancel if you decide not to clone.

When the clone completes, the new Season appears in your Seasons list with copied Sessions/Products, forms, and payment plans that you can then adjust.

Work with Sessions (Products)

Sessions are created and managed within a Season. The admin UI uses your configured labels (for example, "Session" or "Program") based on Admin → Site Settings → Basic, but the behavior described here is the same regardless of the label text.

Create a new Session/Product

Use the New Session/Product modal to define a session that families can register for.

Open the new session modal

  • Navigate to the Products/Sessions list within the Season.
  • Click the button that opens the New Session/Product modal (the exact label varies based on Admin → Site Settings → Basic).

Fill required naming and pricing fields

The create modal uses the following fields, based on the new-product.html template. Some labels may vary depending on how you configure your terminology under Admin → Site Settings → Basic.

body
Session/Product Namestring
Required

Labeled as the name field for the Session/Product (often marked with an asterisk). Tooltip: This will appear as the name in CampiumDB. Use this for internal/admin reporting and CampiumDB.

body
Public Namestring

Labeled Public Name:. Tooltip: This will appear as the name on the parent site as well as on any invoices. Use this when you want a different display name for families.

body
Descriptionstring

Text area with placeholder Enter description here (e.g., June 16 - 20). This description appears on the parent site to help families understand the session details.

body
Pricenumber
Required

Labeled Price: * with placeholder e.g. 100.50. Enter the full price for the Session/Product.

body
Min. Depositnumber
Required

Labeled Min. Deposit: *. Tooltip: Fixed amount like $100. Enter the minimum amount a family must pay at registration if deposit-based payment plans apply.

Set capacity and purchase rules

Control how many registrations you accept and whether a child can register multiple times.

body
Capacityinteger

Labeled Capacity: with tooltip Set to zero or leave blank for unlimited. Use a positive integer to cap registrations, or 0/blank to allow unlimited registrations at the session level.

body
Allow Discounts To Be Applied?boolean

Yes/No field labeled Allow Discounts To Be Applied?. Choose Yes to allow discount rules to impact this Session/Product; choose No to prevent discounts from applying.

body
Can this be purchased twice for the same child?boolean

Yes/No field labeled Can this be purchased twice for the same child? with default No. Set to Yes if a child may register for this session more than once (for example, multiple weeks).

Configure attendance and stats fields

These fields affect attendance tracking and internal statistics without changing how the Session/Product appears on the parent site, unless otherwise noted.

body
Staffarray

Multi-select field labeled Staff. Use this to associate one or more staff members with the Session/Product.

body
Days of Week For Attendance Onlyarray

Set of checkboxes or selections labeled Days of Week For Attendance Only covering Sunday through Saturday. Use this to indicate which days attendance occurs for this Session.

body
Number of Weeks Used for admin stats onlyinteger

Labeled Number of Weeks Used for admin stats only. Tooltip explains it is used for multi-week sessions. Enter how many weeks this session spans for internal reporting.

body
Start Date For Attendance Onlydate

Labeled Start Date For Attendance Only. This date is used for attendance tracking and internal reference.

body
End Date For Attendance Onlydate

Labeled End Date For Attendance Only. Use this with the start date to define the attendance range.

body
Hide From Attendanceboolean

Checkbox labeled Hide From Attendance. Check this when you do not want this Session/Product to appear in attendance screens.

body
Non-revenue sessionboolean

Checkbox labeled Non-revenue session, shown under Start Date next to Hide From Attendance. Check this when you want the Session/Product excluded from Net Revenue calculations in the Revenue Summary report while leaving pricing and charges unchanged.

body
Expiration Datedate

Labeled Expiration Date Can't be purchased after this date. This date controls the last day families can purchase/register for the Session/Product.

Marking a Session/Product as Non-revenue session does not change what families are charged. It only affects how qualifying registration lines are presented in the Revenue Summary report.

Save the new Session/Product

  • Review all fields for accuracy.
  • Click Save to create the Session/Product.
  • Click Cancel to close without saving.

After saving, the new Session/Product appears in the list for that Season, and registration and reporting links will be available according to your configuration.

Copy an existing Session/Product

Copying a Session/Product lets you reuse most settings from an existing session while changing the name or Season.

Open the copy session modal

  • In the Sessions/Products list, locate the item you want to copy.
  • Use the copy action to open the copy modal (often labeled Copy or similar).

Enter copy details

The copy modal includes:

body
New Session/Product Namestring
Required

Labeled as the new name for the copied Session/Product. Enter the new name for the copied Session/Product. The exact label can vary based on Admin → Site Settings → Basic.

body
Seasonstring
Required

Dropdown labeled Season. Choose which Season should contain the copied Session/Product.

Create the copy

  • Click Copy to create the new Session/Product with the provided name in the selected Season.
  • Click Close to exit without copying.

The new Session/Product will then appear in the chosen Season's Sessions/Products list.

Cancellation fees

Cancellation fees let staff create a dedicated fee session inside a Season and reuse it whenever they need to charge the same cancellation fee. This keeps fee names and amounts consistent across staff workflows and reduces one-off manual setup.

Who should use this

  • Office or admin staff setting up a Season before registration opens
  • Registration staff who apply standard cancellation charges
  • Staff handling cancellations, adjustments, or follow-up fee corrections

Where to find Cancellation Fees

Sign in to the staff admin website

  • Sign in with your staff account.
  • Open the admin area you use to manage Seasons and Sessions/Products.

Open the products or sessions page for the Season

  • Go to the Season where you want the cancellation fee to live.
  • Open that Season's Products/Sessions page.

Find the Cancellation Fees button

  • Look near the top of the page for Cancellation Fees.
  • Select the button or link to open that area.

Expand the panel

  • Expand the Cancellation Fees panel if it is collapsed.
  • Review any existing cancellation fee rows before creating a new one.

If you do not see Cancellation Fees, the feature may not be enabled for your site. Ask your administrator or Campium support contact to confirm availability.

Create a cancellation fee

Enter the fee name

  • In the Cancellation Fees panel, enter a clear Name.
  • Use a name staff will recognize later during cancellation workflows.

Enter the amount

  • Enter the Amount to charge for this cancellation fee.
  • Use the standard fee amount your organization applies for this Season.

Add the description

  • Enter a short Description that explains when staff should use this fee.
  • Keep the wording specific enough to distinguish it from other fee rows.

Create the cancellation fee

  • Select Create Cancellation Fee to save the fee.
  • Wait for the page to refresh or for the new row to appear under existing fees.

What happens after save

  • The new fee appears in Existing Cancellation Fees.
  • Campium saves the cancellation fee for the current Season.
  • The amount you entered becomes the fee amount for that cancellation-fee session.

Edit an existing cancellation fee

Find the cancellation fee row

  • Open the Cancellation Fees panel for the correct Season.
  • Locate the fee you want to change in Existing Cancellation Fees.

Select Edit

  • Select Edit on that row.
  • Wait for the row or form to switch into edit mode.

Update the fields

  • Update the Name, Amount, or Description as needed.
  • Review the values before saving.

Save the changes

  • Select Update Cancellation Fee Session to save your changes.
  • Confirm the updated values appear in the list.

Use Cancel Edit to leave edit mode without saving.

Delete a cancellation fee

Select Delete

  • Find the fee in Existing Cancellation Fees.
  • Select Delete on the row you want to remove.

Confirm the deletion

  • Confirm the delete action if the system asks for confirmation.
  • Check that the row is removed from the list.

Deletion is blocked if the cancellation fee session is already in use by registrations. Keep that fee for historical records, and create a new cancellation fee if you need a different amount or name going forward.

  • Use names that match your finance or registration policy, such as Standard cancellation fee.
  • Keep one fee per standard amount when possible instead of reusing one name for different amounts.
  • Include a short description that tells staff when to use the fee.
  • Set up cancellation fees at the start of each Season so staff can apply them consistently.
  • Create a new fee instead of renaming an older one that has already been used for registrations.

Troubleshooting

Quick workflow checklist

  • Open the correct Season before working with Cancellation Fees.
  • Check Existing Cancellation Fees to avoid creating duplicates.
  • Enter a clear name, amount, and description.
  • Select Create Cancellation Fee to save a new fee.
  • Use Edit and Update Cancellation Fee Session for changes.
  • Delete only fees that have not been used.
  • Create a new fee for future use when an older fee must remain for history.

Manage Subproducts/options

Subproducts/options let you define multiple choices under a single Session/Product. You manage them from the Product options list and the edit option modal.

View and edit Subproducts/options list

The options list displays Subproducts/options with summary data and inline editing for key financial and capacity fields.

The product-options.html template includes:

  • Parent summary:

    • Parent Price: <product_price>

    • Parent Deposit: <product_min_deposit>

    • Parent Capacity: <product_capacity>

  • Table headers:

    • Option Name (displayed in reports)

    • Description (displayed on parent site)

    • Profile Fields

    • Response

    • Status

    • Price (inline editable)

    • Min. Dep. (inline editable)

    • Capacity (inline editable)

    • Wait

    • # Reg.

  • Actions:

    • Button: New Subproduct

    • Bulk link: Delete

The Price, Min. Dep., and Capacity columns are inline editable in the options list. You can click directly into these cells to adjust values without opening the full edit modal. Use the edit option modal for name, description, status, and staff changes.

Add a new Subproduct/option

Use the New Subproduct button to add an option under a Session/Product.

Open the new Subproduct form

  • From the Session/Product row, click into its options/subproducts area.
  • Click New Subproduct to open the option create modal (fields mirror the edit modal described below).

Configure core Subproduct fields

The edit-product-option.html template defines these fields, which also apply when creating a new Subproduct:

body
Option Namestring
Required

Labeled Option Name. This appears in reports under the Session/Product.

body
Descriptionstring

Optional field labeled Description. This is displayed on the parent site so families can see what distinguishes this option.

body
Pricenumber

Labeled Price. Defines the price for this specific Subproduct/option. You can also adjust this inline from the options list under the Price column.

body
Minimum Depositnumber

Labeled Minimum Deposit. Defines the minimum deposit for this option and is also inline editable under Min. Dep. in the options list.

body
Capacityinteger

Labeled Capacity with helper text blank or 0 for unlimited. Controls how many registrations you accept for this option. You can also adjust this inline from the Capacity column.

Set staff and status

Complete the remaining Subproduct fields:

body
Staffarray

Optional multi-select labeled Staff. Use this to assign staff members specifically to this option.

body
Statusstring
Required

Labeled Status. Use the available status values (for example, Active, Inactive) to control whether the option can be registered for.

Save the Subproduct/option

  • Click Save to create or update the Subproduct/option.
  • Click Cancel to abandon changes.

The option appears in the options list with the configured name, description, price, deposit, capacity, and status, and the Wait and # Reg. columns update according to your registrations and waitlists.

Edit an existing Subproduct/option

You can adjust Subproducts/options in two ways:

  • Inline edits in the options list:

    • Click directly into the Price, Min. Dep., or Capacity cells to modify values.

    • Save or confirm inline changes according to your UI controls.

  • Full edit modal:

    • Click the edit action for a Subproduct/option.

    • Adjust any field described in the previous section (Option Name, Description, Price, Minimum Deposit, Capacity, Staff, Status).

    • Click Save to apply changes or Cancel to close without saving.

View registrations and waitlists

Use the links in the Sessions/Products list and the Subproducts/options list to open detailed reports for registrations and waitlists.

Session-level registrations and waitlist

From the main Sessions/Products list:

  • Registered link:

    • Opens a report showing users registered for that Session/Product.
  • Wait Listed link:

    • Uses a waitlist report URL generated from your configuration.

    • Opens the waitlist report associated with that Session/Product.

The exact content, filters, and URL of these reports depend on your Campium configuration. The patterns shown here confirm where to click from the Sessions/Products list; the Wait Listed link path can vary.

Subproduct/option registrations and waitlist

From the Subproducts/options list (product-options.html):

  • Wait column:

    • Each option row links to the waitlist report for these users.

    • Opens the waitlist list for that Session/Product.

  • # Reg. column:

    • Each option row links to an enrollment report for these users.

    • Opens a registration report for that specific Subproduct/option under the Session/Product.

These links let you quickly jump from configuring options to monitoring who is registered or waiting at both the Session and Subproduct levels.

Season management overview

Admins can create and manage Seasons from the Seasons area, including adding new Seasons for upcoming registration periods and updating older ones after they end.

  • Create a new Season using the Add New Season action in the Seasons area, then enter the Season name and any related settings your setup requires.

  • Set a Season to Inactive after it has passed so it no longer functions as a current registration period.

  • Use the profile-data snapshot option when needed to save profile information as it existed when you saved the Season. This process runs in the background and can later support historical filtering in customer reports.

Change a Season from Active to Inactive only after that Season has passed. Setting a Season to Inactive can also set users to Inactive unless they are part of another Active Season.

Summary

  • Seasons group Sessions/Products, forms, and payment plans and can be cloned with the Season clone modal.

  • Sessions/Products are created and copied using modals that define names, prices, deposits, capacities, and attendance-related fields.

  • Subproducts/options extend Sessions with variants, managed through the options list and edit modal with inline editing for price, deposit, and capacity.

  • Registrations and waitlists are accessed through consistent report links from both the Sessions/Products list and the Subproducts/options list.