> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uplifter-curling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Where did Membership Types go?

> CCM's Membership Types list is Members → Memberships; the classic view keeps the Membership Types section, and the early bird is set on the membership again — Discount Amount and Discount End Date in the classic form, an early-bird panel on each instance in the new look.

<Note>
  **Must know**

  * New look: **Members → Memberships** — "Manage membership groups, instances, and restrictions." Classic view: **Membership Types** in the admin bar. The `task=membershipTypes` bookmark lands there.
  * A CCM membership type becomes a membership group with one instance per season, priced per season.
  * The early bird is authored where CCM authored it. The classic **Edit Membership Type** form has CCM's **Discount Amount** and **Discount End Date** boxes; the new look has an **Early-bird discount** panel on each of the membership's **Instances**. Both write the same automatic discount, which Confirm and the invoice apply.
  * The importer carries each type's Show On Sign-up and Order, and its early bird with CCM's exact dates. Percentage discounts and card surcharges are not imported — re-create them yourself under **Financials → Discounts**.
</Note>

## The list

The classic list shows CCM's columns — Name, Price, Show On Sign-up, Order, Published — and they work as in CCM: tick **Show On Sign-Up** on the type's form, and type a number into a row's **Order** box, then Tab or Enter (*Updated Membership Types Order*). The new look shows groups and their season instances with price and window; **Manage → Details** has the same **Show on sign-up** switch and **Order** field, and a hidden type's card says **Hidden from sign-up**. The signup wizard lists only the types on sign-up, in that order, with their descriptions formatted. See [How do I hide a membership type from sign-up or change its order?](/club/memberships-and-members/how-do-i-hide-a-membership-type-from-sign-up-or-change-its-order). Membership selection can be **required** in the signup wizard (the importer turns that on for a migrating club), and a league can require an active membership through its **Membership Requirement**.

## What is different

* **Seasons instead of a flag.** A curler holds a dated membership record against a season's instance; when the window ends it stops counting. There is no "current member" checkbox and no annual reset.
* **Early bird on the membership.** See below; it shows as its own line at Confirm and on the invoice.
* **Show On Sign-up needs a current term too.** As in CCM, a type is on signup only when it is ticked and published; here that means a published term whose dates include today. Unticking it does not unpublish the type, so holders keep it.
* **Descriptions are rich text** in both views, and an imported CCM description opens with its formatting.

## The early bird

**Classic view.** Open a membership type with **Edit**. **Discount Amount** is the amount taken off (**0.00** means none) and **Discount End Date** is, as in CCM, "The first day at full price: the discount applies up to the day before." While it is running the amount box notes "Taken off automatically at sign-up until the end date."; once the date has passed it says "The end date has passed — not applied at sign-up." Setting an amount without an end date is refused. Because a CCM type has one price, the classic form edits the early bird of the instance on sale today (or, if none is, the most recent one).

**New look.** On **Members → Memberships**, each instance of a membership (one per season) has an **Early-bird discount** panel with **Discount amount (\$)** and **Last day at the early-bird price**, and a status — "Applies through \{date}", "Ended — not applied at signup" or "No early bird". **Save** it, or **Remove early bird** (an amount of 0 also removes it). The two views describe the same date differently: the new look names the last discounted day, the classic view names the first full-price day.

Either way the result is one automatic discount on that instance, so there is no code to type: the member sees it at Confirm and it is on the invoice. If another discount from **Financials → Discounts** also covers the membership, both forms say so — "Also covered by …" — and leave that discount alone.

**Migrated early birds.** CCM's end date was the first day at full price, and the import now reads it that way, so a migrated early bird ends on the same day it did in CCM. An amount CCM stored with no usable end date — which CCM never applied — is not imported as a permanent discount.

**Related:** [Where did Member Registration (the signup wizard) go?](/ccm/what-changes/where-did-member-signup-go) · [Where did Maintenance (season rollover) go?](/ccm/what-changes/where-did-maintenance-go) · [What does the import not carry?](/ccm/your-migration/what-the-import-does-not-bring)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.