System Manual

Help & how-to

Everything you need to run, score, or shoot a match on Core Stage. Search the manual or jump to a topic.

Getting started

All

Create an account, pick a role, set up your profile.

Core Stage supports three roles: Shooter, Organizer, and Range Officer (RO). Pick the signup that fits you.

  1. Shooters: /signup — name, email, password.
  2. Organizers: /signup/organizer (your matches require admin approval before publishing).
  3. ROs: /signup/ro — unlocks score entry permissions when an organizer grants you a stage.
  4. Complete your profile (display name, USPSA #, division, classification) — this autofills registrations.

Registering for a match

Shooter

Find, register, pick a squad, accept the waiver, and pay.

  1. Browse /matches (grid, map, or calendar view) and open one.
  2. Pick a squad if the organizer has published them, optionally apply a discount code.
  3. Read and tick the Release of Liability + Range Safety Waiver — required.
  4. Hit Register. Paid matches redirect to a secure Stripe Checkout (Apple Pay / Google Pay supported); free matches confirm immediately.
  5. Track everything at /registrations — resume unpaid checkouts, grab Stripe-hosted invoices, or cancel (refunds auto-issue for paid entries).

If the match is full you'll be offered a free waitlist spot; you're auto-promoted when someone cancels.

Profile, results & stats

Shooter

Past results, stage history, ranking, and follows.

  • Your profile shows registrations, invoices, score history, and personal stats.
  • Public organizer pages live at /o/<organizer-id> — follow them to get their matches in your feed.
  • The activity feed aggregates registrations, results, achievements, and clubs you follow.
  • Live results during a match: /matches/<id>/live. Final leaderboard: /leaderboard.

Creating & running a match

Organizer

From draft to approved, with stages, squads, and check-in.

  1. New Match — name, date, location, discipline, fee, capacity, hero image. Submits as pending_approval.
  2. Admin reviews at /admin/approvals. Approved matches go public.
  3. From /organizer, manage Squads, Stages, Discounts, Check-in, Score, Moderation, and Revenue.
  4. Export the roster as CSV (shooter, USPSA #, division, squad, paid amount) anytime from the dashboard.

Range Officer score entry

RO

Classic scoring screen and the dedicated RO Tablet Mode.

Two interfaces, same backend:

  • Classic: /organizer/matches/<id>/scores — full-width entry with timer, signature pad, and QR shooter scanner.
  • RO Tablet Mode: /ro/<id> — chrome-less, locked-zoom, big +/- counters per hit zone, squad filter strip, Save & Next that auto-advances through the squad.

Both write through the same offline-first queue (see below). Hit factor = max(raw points, 0) ÷ time; raw points = 5·A + 3·C + 1·D − 10·(M + NS) − 5·P.

Offline scoring & sync

RO

Score entry works without connectivity and syncs automatically.

  • Every save writes to a durable local queue before any network attempt — ROs never wait on signal.
  • The queue auto-flushes when the device comes back online, on app boot, and on a 20-second safety net.
  • Duplicate edits on the same shooter+stage collapse into one write. Failed entries retry with exponential backoff (2s → 5min).
  • The sync chip in the header shows Live, Offline, or N queued; tap to force a flush.

Notifications

All

In-app bell + optional browser push.

  • The bell shows registrations, payments, approvals, and score / rank updates.
  • Toggle browser push from the bell to get OS-level alerts when your score posts — clicking opens the live match view.
  • Manage all alerts at /notifications.

Payments, receipts & refunds

All

Stripe Checkout, saved cards, invoices, cancellations.

  • All charges go through Stripe Checkout — Apple Pay, Google Pay, Link, and card auto-surface based on your device.
  • Saved cards enable one-click re-registration for future matches.
  • Stripe-hosted invoice PDFs are linked from /registrations.
  • Cancel a registration to auto-refund (paid) and free the slot — the waitlist promotes the next shooter.

Store: tickets, merch, memberships

All

Browse, buy, get a receipt.

  • Public storefront: /store. Open a product, pick quantity, hit Buy.
  • Orders show in your account; Stripe webhook flips them to paid automatically. Free items skip Checkout.
  • Organizers manage their own products and fulfill orders at /organizer/store.

Safety, waivers & DQ policy

All

Versioned waiver, range safety expectations, DQ recording.

  • Every registration captures the active waiver version and timestamp — required before submit.
  • ROs can mark a stage DQ with a reason (180° break, AD, unsafe handling). The shooter is disqualified for the match.
  • Reshoot chips voids the stage and prompts a re-score instead.

Troubleshooting

All

Common issues and fast fixes.

I paid but my registration still says awaiting payment.
Refresh in 10 seconds — the Stripe webhook is the source of truth and usually finishes within a few seconds. If it persists after a minute, contact the organizer.
The RO tablet says Offline.
Scores are still safe in the local queue. Reconnect to WiFi and tap the sync chip to flush.
I can't see browser push notifications.
Open the bell, toggle push on, and approve the OS prompt. If you previously denied it, re-enable notifications for this site in your browser settings.
My match isn't visible publicly.
New matches require admin approval. Watch /organizer — status flips to open when approved.
I need to cancel and get a refund.
/registrations → Cancel. Paid entries auto-refund via Stripe; the waitlist gets promoted.

Still stuck?

Reach the match organizer from the match page, or contact the Core Stage team.