Must know
- Standings are never stored; they are recomputed from game results every time a page is opened.
- The total a member sees on the wizard’s Confirm step is the same number that is booked on the invoice — both come from one calculation.
- Refunds are refused when the club’s payment balance cannot cover them; refunds that undo a charge just taken are never refused.
Seasons and ages
A club’s season starts on the 1st of the month picked under Settings → Club Settings → Season starts in and runs to the day before the next season starts. Seasons are derived from that month, so every date belongs to exactly one season, labelled like “2026 / 2027” (or just “2026” for a January start). Membership payments, memberships and history are filed by season. A curler’s age for league and membership age limits is measured, by default, on the day before the season starts, and the same date is used in the wizard and at checkout. Waivers are the exception: a waiver’s age targeting always uses the curler’s age on the day they register.Points
Each league carries points rules per round × division. A rule has Win, Loss and Tie points (required), Default win and Default loss for forfeits (blank means “same as win / loss”), and Per end won (blank means 0). Values run from 0 to 99.99 with two decimals, so halves like 1.5 are fine. A rule can be specific to one round and one division, to one of them, or apply to all; the most specific matching row wins. For every side of a game the points recorded are:points for the outcome + (points per end won × ends won)A league in points mode saves that number on each game and refuses to save a result for a round × division that has no points row — the CCM behaviour. A league in scores mode records the curling score and the result, and derives points from the same rule when standings are read. A league with no rules at all falls back to 2 for a win, 1 for a tie, 0 for a loss.
Standings
Standings are grouped per round × division and only teams that appear in at least one game of the group get a row. The nine columns, in plain words:
The club picks which columns show and the sort column (CCM’s default is Round Points, descending). Ties on the sort column are broken by points, then wins, then ends won, then team name — where CCM left tied teams in team order.
Three views sit above the table, named with the club’s own word for a round: Total Points for all Rounds (one row per team, the league-wide total; teams with no points sort last), Total Points for Each Round (the default) and Wins/Losses/Ties (a head-to-head grid with “Scheduled” for an unplayed game, plus a fixed Team / W / L / T / GS / GP summary that is not affected by the column selection).
The Confirm total
The wizard’s Confirm step and the invoice are priced by the same function. Lines are priced on the server (league fees, prize fees, session fees, priced options), discounts are subtracted (promo and automatic, bulk, criteria), tax is worked out on the discounted subtotal, and then:- Customer pays (Financials → Taxes & Fees): tax is inside the total and appears as its own line.
- Organization pays (tax-inclusive pricing): tax does not appear at checkout and is not added to the total.
- A convenience fee, if the club has one, is added for card payments. A cheque is never surcharged.
- The platform’s processing fee is the club’s cost and is never added to the member’s total.
Refunds and club credits
- Staff-initiated refunds — withdrawing an enrollment, refunding a transaction, cancelling an invoice — are checked against the club’s payment balance minus refunds already in flight; a refund the club cannot cover is refused outright.
- Reversals that undo a charge the system itself just made are never gated.
- A refund that fails ambiguously (a timeout, a gateway error) stays pending so it cannot be refunded twice; a retry replays the same refund.
- Club credit belongs to the paying account’s email, not to a curler. It is a ledger: corrections are new rows, and the balance can never be spent below zero. A refund can be issued to credit, and credit can pay at checkout.
- Withdrawing a curler from a league previews the prorated refund, cancels the invoice line, frees the spot (promoting from a waitlist where one is enabled) and keeps the record.