The fastest way to score an action shooting match.
One app. Every major action discipline. Every match-day touchpoint — from QR pre-registration to stage-scoped volunteer scoring to locked results — handled on a phone. Plus a full competitor side that keeps shooters engaged between matches, a director-side analytics layer for the people running matches, and a free WordPress plugin that moves your results from phone to club site the second a match locks. Six independent offline mechanisms keep every device current — no internet required.
One app. Every hat you wear.
Most people at a shooting match wear more than one hat. The same shooter who ran the timer last month is competing this month and directing the annual next month. Snapshot Scoring doesn’t make you pick — the same account does all of it, with a capability-based permission model that adapts to whatever you’re doing right now.
Compete
Follow home clubs, see upcoming matches in a feed, track career stats and classifier progression linked to your SASS / USPSA / IDPA membership numbers (with per-org aliases) on one profile, log practice drills against goals.
Score
Sport-specific UIs (A/C/D zones for USPSA, Points Down for IDPA, 5-string drop-worst for Steel). BLE timer sync with auto-reconnect, haptics, undo, and staleness guard. Permission scoped per-club — or per-stage for volunteers, even offline.
Manage
Create matches with league + ruleset picker, set per-match requirements (alias, age, equipment, membership), publish QR codes, build squads, invite volunteer scorers, lock + publish. Match Analytics + Operations Dashboard + Score Audit screens give directors a full view.
Volunteer
Helping score a match at a friend’s club? Director hands you a QR. Scan it. You have scoring access to exactly the stages you’re assigned to — and nothing else. Permissions cache on device so you can score remote bays with no signal. Access auto-expires at match end.
The permission model is capability-based: 12 discrete permissions, 3 system roles (Owner / Match Director / Scorekeeper), plus stage-scoped grants for temporary volunteers. No account sharing. No permanent-member overhead for one-off helpers. Every action is auditable.
Every touchpoint, one app.
From the email that announces the match to the leaderboard that ends it, every step runs through Snapshot Scoring — no paper, no Excel, no “wait, who’s handling registrations this time?”
Score a stage in under a minute.
Quick-jump shooter pills. Sport-specific form (A/C/D zones, Points Down, Steel strings). BLE timer flows times straight in — with auto-reconnect when the radio drops and undo for the last shot. Status badges tell you who’s scored, who’s up, and whose score you’re editing — no guessing, no double-entry.

Announce
Create the match in 30 seconds — pick league + ruleset from the wizard, set requirements (alias, age, equipment), and it lands in the Events feed of every shooter following your club and on your public club profile.
Pre-register (QR)
Each match gets its own QR code. Post it in the club email, on your site, at the clubhouse. Shooters scan, fill a mobile form (alias, SASS#, category, notes), and land in your registration queue — ineligible registrations bounce against the match’s requirements.
Walk-up registration
New shooter shows up on match day? Manager taps the walk-up button on the check-in screen. Alias + SASS# + category goes in — auto-approved in one step for managers.
Check-in desk
Live count at the top (“12/45 checked in”), searchable roster, one-tap toggle per shooter. Only checked-in shooters show up in posse setup and scoring — no phantom no-shows.
Squad & rotate
Auto-balance divides your roster across squads evenly. Auto-rotate assigns each squad its starting stage and computes the rotation schedule. Tweak by hand if you’re particular.
Invite volunteer scorers
Need help scoring one stage? Generate a QR grant scoped to exactly the stages that volunteer will work. They scan, authenticate, and are ready to score — nothing else unlocked. Grants cache on device so they keep working at remote bays with no signal.
Score live
Sport-specific scoring forms: USPSA hit factor with A/C/D zones, IDPA Points Down + FTDR, Steel best-4-of-5 strings with drop/cap badges. BLE timer flows times directly in.
Lock
One tap freezes the match — or bulk-lock all stages atomically. Scores can’t be edited after — audit integrity. Managers can unlock for legitimate corrections; every change is timestamped with an actor and visible on the Score Audit screen.
Publish & email
Overall + per-category leaderboards to WordPress. Awards certificates, PDF, CSV, full audit log export, PractiScore .psc file — everything in one tap. Per-shooter result emails with stage breakdowns sent automatically.
Your shooting, on one screen.
Snapshot Scoring isn’t just a tool for the director. The competitor side is a first-class product — your schedule, your scores, your stats, your classifier rank, all linked by every membership number you hold (and every alias). Reasons to open the app between matches.

One profile. Every membership. Every alias. Your QR on hand.
Hold a SASS number, a USPSA number, and an IDPA number on the same profile — with per-org aliases (your SASS handle is different from your USPSA name, and the app knows that). Scores from each discipline auto-link to the right ID and the right alias. Your Profile Card QR is the fastest way to check in at any club. Clubs you own and follow live in the same place. When you’re ready to publish results to your WordPress site, the pairing code is right there too.
Career stats
Total matches, total stages, clean-match rate, best + average match totals, best stage time. Every number is derived live from your scored matches.
Classifier tracking
Watch your classifier rank progress across seasons. Pulled live from scored matches; no manual entry. See trajectory by sport — your USPSA classification + IDPA class + SASS skill level on one screen.
Events feed
Matches from clubs you follow land in a feed, sorted by date. Register inline — fields pre-fill from your profile, membership numbers, and category preferences.
Club discovery
Search public clubs by name or location. See member count, follower count, upcoming matches. One tap to follow; new matches join your feed.
Match history
Every match you’ve shot — auto-linked by the right SASS / USPSA / IDPA number per discipline. Rank, category placement, raw time, misses, clean/MDQ flags, per-stage times. Filter by club, sport, season, or category.
Drill log + goals
Track practice: draws, transitions, reloads, sweeps, stage runs, dry-fire. Set target time + accuracy goals per drill type; the trajectory chart shows progress. Stats card breaks down best + average per drill type, by firearm.
Equipment slots
Per-shooter slots for firearm, holster, ammo, optics on your profile. Match registration validates your equipment against the match’s requirements before it lets you sign up — no “wait, that’s not legal in this division” on match morning.
Season standings
Year-to-date leaderboards per club and category, aggregating every match in the season. See how you’re stacking up against your division.
Profile Card QR
Settings → My QR Code. Show it at any club’s check-in desk and they scan you straight onto the squad. Travel matches at a club you’ve never been to? Same flow, no extra registration forms.
The match-day analytics layer.
Six dedicated director screens that turn match-day data into action — not just a CSV. From the moment a match locks, you have the breakdowns you used to compute by hand, plus the audit trail to defend any score change.
Match Analytics
Stage-by-stage breakdowns, per-entry analytics, group analytics, performance trends, segmented standings. See where the time went and which stages broke the field.
Operations Dashboard
Live match-day view: check-in pace, stage progress, scorer assignments, audit alerts. The director’s air-traffic-control screen.
Score Audit
Every score edit, every actor, every before/after delta — on one page per match. Filter by shooter, stage, or actor. Defend any score change with one screenshot.
Match duplication
Clone last weekend’s match (stages, requirements, sport, settings) in one tap; new date, same setup. Monthly cadences stop being weekly setup.
DQ analysis + sport summary
Match participant demographics, structured DQ reasons, sport-data summary across the season. The numbers you bring to a club board meeting.
Audit log + .psc export
Full audit log CSV export for season records, insurance, or sanctioning bodies. Direct PractiScore .psc export so you can hand off to PractiScore.com without leaving Snapshot Scoring.
Two sides. One flywheel.
The app gets shooters into the door for more reasons than match day. Daily-active competitors drive discoverability for clubs. Easier match-day operations mean clubs can run more matches. More matches means more reasons to open the app.
Shooters stay active
Between matches, competitors log drill sessions against goals, check classifier progression, browse clubs they haven’t shot yet, and compare career stats across the seasons.
Matches land in feeds
Your match drops into the feed of every shooter following your club. Inline pre-fill registration means “interested” turns into “registered” in two taps — and equipment validation catches problems before match day.
Ready by the time they park
Registered shooters hit the check-in screen. Walk-ups get a one-tap flow. Volunteer scorers scan their QR grant. Director runs squads, scorekeepers run stages. Results published before the awards.
Every action sport. Five engines. Eight composable modules.
Not a generic stopwatch bolted onto a rule set — each sport has its own scoring engine, divisions, penalty rules, built-in rulebook, and its own scoring form built around the way that sport actually scores. Underneath, eight reusable modules compose every engine, so a new league or a house variant is a config row, not a code change.
Results publish the same way for every sport — per-category leaderboards, awards certificates, CSV, PractiScore .psc, and a one-tap push to your WordPress site.

— matches scored · — upcoming on the calendar · live from the backend, refreshed every 15 min
Six offline mechanisms. No internet required.
Match-day networks are a mess. Snapshot Scoring assumes that and ships an offline-first sync stack with six independent mechanisms — every device stays current whether you have full LTE, the bay’s flaky Wi-Fi, or nothing at all.
14-day local mutation queue
Every score, registration, and check-in saves to device storage first. 5,000-operation capacity, sized for a 200-entry × 10-stage match × 2 ops/score. Payloads obfuscated at rest with a key in the device Keychain (iOS) / Keystore (Android). Mutex-protected against concurrent writes. Survives 14 days of offline scoring.
Local-network HTTP peer sync
Multiple phones at the same match exchange scores over the bay’s Wi-Fi without going to the server. Port 8847, QR-bootstrap session (snapshot://sync/<ip>:<port>/<token>), 30-minute timeout. Director phone, four scoring phones — all current with each other regardless of internet.
Delta sync
Only changed scores transit. ETag-based HTTP caching plus per-entity modifiedSince timestamps across nine entity types (matches, shooters, scores, stages, groups, entries, organizations, rulesets, check-ins). Phone joins mid-day on a slow tether? Catches up in seconds, not minutes.
Background sync
Auto-syncs when the app returns to foreground. Configurable: foreground interval, WiFi-only mode, low-battery skip, pause/resume. Default 5-minute foreground interval, 30-second floor between syncs, exponential retry up to 5 minutes. Pause for the awards ceremony if you want.
NFC tap-to-transfer
NDEF tags up to 8 KB, private MIME type so other apps don’t intercept. Five payload types: shooter, match, stage, club, scores. Tap a phone to a programmed tag and the right action runs — check in, follow a club, claim a stage, ingest a score bundle.
QR transfer codec
12 transfer types via compact QR (~2.9 KB chunked, JSON-with-version-prefix): SCORE / SHOOTER / SHOOTERS / MATCH / STAGE / STAGES / ENTRY / ENTRIES / GROUP / GROUPS / CLUB / BUNDLE. Transfer a full match, a single stage, a roster, or a single shooter — chunked automatically when the payload exceeds one QR.
Embedded scoring defaults
Sport rules cached on device at install time. A freshly-installed phone can score offline immediately — no first-load round-trip, no “please connect to download rulesets.”
Offline volunteer grants
Volunteers’ permission grants cache on device. Scan a grant QR with signal at sign-in, walk to a remote bay with no signal, keep scoring. A persistent banner reminds you you’re on cached perms.
BLE shot timers
Pairs with AMG Commander, Shooters Global SG Timer, and Special Pie M1A2 — with auto-reconnect when the radio drops, haptic feedback on shot detection, undo for the last shot, and a staleness guard. Stage times flow straight into the scoring screen.
Stop running matches on a clipboard.
Free for clubs. Pair your site, run a warm-up match this weekend, and decide for yourself. iOS TestFlight + Android Play Store submissions in review — join the beta list and we’ll send install codes the moment each store goes live.
