How The Centre Line works
1. How a program gets listed
Three paths: (a) added directly by an admin from a tip or known list; (b) discovered by the monthly cron, which scans 13 governing-body sites (Hockey Canada branches + USA Hockey + league directories) for new programs and queues them as candidates; (c) submitted via the request a program form by a visitor.
Candidates from the cron land in an admin queue. An admin reviews each one, fills in city / province / age groups / governing body / website, and promotes it to a live program. Nothing auto-promotes.
2. How a reviewer signs in
We use Supabase magic-link auth — no passwords. The reviewer types their email, clicks the link in their inbox, and lands signed in. The email is verified at sign-in; unverified accounts cannot post.
Before submitting a review, the reviewer declares two things:
- Standing: parent, player, coach, volunteer, or board member.
- Status: currently in the program, or recently left.
Both are shown on the published review so other readers can weigh the perspective.
3. The questionnaire
Reviews are structured, not free-form. The reviewer answers a small set of factual questions first (year started, age group, role), then scores seven anchored dimensions, then writes two short paragraphs answering “what does this program do well?” and “what would you warn another family about?” Both sides are required. The submit button stays disabled until both are filled in.
For each dimension, the reviewer sees a written description of what a 1, a 3, and a 5 look like before they pick a number. See the full methodology.
4. How aggregates compute
On every review write, a Postgres trigger recomputes the program's review count, overall score, per-dimension averages, and the score distribution (1s/2s/3s/4s/5s histogram). Below 5 reviews, the aggregate is suppressed and the profile shows a notice instead.
Today, all reviewers are weighted equally. Credibility weighting (by history of helpful reviews, length of tenure, etc.) is a v1.1 addition and is a clearly marked seam in the recompute function.
5. External quotes layer
Below the structured reviews, every program profile has a “what people are saying elsewhere” section. We surface a balanced pair — one positive, one critical where possible — pulled from Reddit, HFBoards, press coverage, and blogs. Every quote is verbatim with a live URL, captured on a specific date. These are not Centre Line reviews and don't affect the score; they're context.
6. Claims & right-of-reply
Operators can claim a listing by signing in and submitting a role + proof link. The system checks whether the proof URL's domain matches the program's website. An admin approves or rejects. Approved claims add a “Claimed listing” tag and unlock a single right-of-reply per published review (v1.1, rolling out shortly). Claims do not let operators delete reviews, change scores, or change facts.
7. Moderation
Every review has a Report button. Reports are required to include a brief reason. They land in an admin queue. Confirmed fakes are removed; the reviewer's account is flagged if it's a repeat offender. We do not remove reviews because the operator dislikes them.
More: methodology · glossary · FAQ · about