# CBB Project Brief: RSO & Range Officer Toolset
**Status:** Concept
**Destination:** CBB_Corporate venture (component of the Club Management SaaS venture, Brief #02; graduates with it to `CBB_Corporate/03_-_Confidential/Product_Strategy/`)
**Tier:** 3 — Longer Horizon
**Classification:** Internal — Confidential
**Version and date:** see Revision Control Block at the end of this document

---

## Summary

A dedicated app for Range Safety Officers and Range Officers (ROs) running NRL22 and PRS stages. Covers competitor check-in at the firing point, stage timing with par time alerts, hit/miss adjudication recording, score submission to the Club Management SaaS (Brief #02), and end-of-stage results display. The RSO Toolset is the operational complement to the Club Management SaaS — clubs run on the SaaS; ROs run stages on the toolset. Together they form a complete match day ecosystem. The RSO Toolset without the Club SaaS is a standalone tool with limited value; with the Club SaaS, it's the last piece of a complete match management platform.

---

## Problem Statement

NRL22 and PRS stage operations today depend on:
- Paper scorecards (lost, illegible, water-damaged)
- Mental tallying of hits and misses during a stage
- Verbal score reporting after each competitor ("Range officer confirms 8 hits")
- Score entry back at a central table by a separate person
- End-of-match reconciliation that takes 30–60 minutes

This process is error-prone, time-consuming, and archaic for a sport that otherwise embraces precision data. A stage with 10 targets and 50 competitors over a 4-hour match generates 500 individual hit/miss decisions — recording and transmitting these accurately is a real operational challenge.

The RSO who has to manage: competitor queue, current competitor's time, hit/miss count per target, safety enforcement, and score recording simultaneously is doing too many things without tooling.

---

## Product Concept

### Core Features (v1.0)

**Competitor Queue**
- Pull the stage's competitor list from the Club SaaS (if integrated) or enter manually
- Display: next 3 competitors, current competitor's name and shooter number
- Check-in: RSO confirms each competitor at the firing point before timing begins

**Stage Timer**
- Par time countdown with large display
- Visual + audio alerts at par time
- One-tap start/stop
- Stage-specific time limit pre-configured from Club SaaS stage setup

**Score Entry**
- Target grid: tap each target as hit or miss during or immediately after a stage
- Confirmation step: show score summary to competitor before submitting ("Competitor confirms: 7 hits, 3 misses — submit?")
- Submit: score transmitted directly to Club SaaS (requires connectivity); or stored locally for sync when connectivity returns

**Offline Operation**
- Full offline functionality — scores queue locally when no connectivity
- Sync when connectivity returns (common at outdoor ranges)
- No score is lost due to connectivity issues

**Stage Summary**
- After each competitor: running leaderboard for the stage (if multiple ROs are scoring simultaneously)
- Stage complete: all scores accounted for, confirmation to club director

### v2.0 Features
- Photo documentation: RSO photos a hit/miss dispute for review
- Calibration stage: warm-up firing before competitive stage, excluded from scoring
- Multi-stage coordination: club director sees all stages' progress in real time
- Penalty recording: safe penalty, procedural penalty (NRL22 specific)

---

## Target User

**Primary:** NRL22 and PRS Range Officers — volunteers who run individual stages at a match. Typically 2–4 per match. Most are experienced competitors doing a duty rotation.

**Secondary:** Club Directors who manage overall match operations and want real-time visibility into stage progress.

---

## Revenue Model

**Free with the Club Management SaaS subscription.** RSO Toolset is a feature add-on for Club SaaS subscribers — it is not a standalone revenue item. A club director on the Club tier ($49/mo) gets RSO Toolset access included.

The RSO Toolset without Club SaaS integration is a significantly less useful standalone tool. It makes sense primarily as part of the complete platform.

---

## Strategic Fit with CBB / ScopeDOPE

**Completes the Club Management platform:** Club SaaS handles pre-match operations (registration, check-in, communication) and post-match operations (results, standings, communication). RSO Toolset handles in-match operations (timing, scoring, real-time results). Together they cover the complete match lifecycle.

**Data quality for DOPE database:** RSO-confirmed hit/miss data at known distances under known conditions is the highest quality DOPE database contribution possible — it's independently confirmed rather than self-reported. When a club uses the RSO Toolset and ScopeDOPE™ is the competitor's app, the hit/miss data from the RSO can be optionally matched to the competitor's ScopeDOPE session (with their consent) for maximum-confidence DOPE database contribution.

**Club SaaS retention:** A club that relies on the RSO Toolset for match operations is deeply invested in the CBB Club SaaS. The toolset is a retention mechanism for the SaaS subscription.

---

## Competitive Landscape

PractiScore is the dominant scoring app for action shooting sports (USPSA, IDPA) and has some precision rifle users. However, PractiScore's model is RO-entered scores after stages — it doesn't have a real-time timing + scoring workflow, and it has no integration with club management. No NRL22-specific RO toolset exists.

---

## Technical Overview

**Platform:** iOS + Android (both required — ROs use whatever phone they have)

**Architecture:**
- Offline-first: SQLite local storage, sync to Club SaaS API when connected
- Real-time sync: WebSocket connection to Club SaaS for live leaderboard updates (when connected)
- Timer: native OS timer (millisecond precision for par time accuracy)
- Audio alerts: system audio for par time (must work with phone silenced — vibration + screen flash as fallback)

**Integration with Club SaaS:**
- Auth: Club director shares a match access token with ROs before the match
- Stage data pull: competitor list, stage configuration, par time
- Score push: hit/miss data per competitor per target → Club SaaS calculates points
- Live sync: all ROs see the same match state

**Complexity estimate:** Medium. The timer and offline sync are the engineering challenges. Score entry UI must be fast and error-resistant (RSO is under time pressure). 4–6 weeks after Club SaaS backend is established.

---

## Go-to-Market

**Bundled with Club SaaS:** No separate marketing required. When a club director signs up for the Club SaaS, the RSO Toolset is part of their onboarding.

**Match director testimonials:** Club directors who use the full platform (SaaS + RSO Toolset) at a match become advocates. "Our last match: zero paper scorecards, real-time leaderboard, results posted 5 minutes after the last stage. This is how matches should run."

---

## Success Metrics

| Metric | 12-month | 24-month |
|---|---|---|
| Club SaaS subscribers using RSO Toolset | 50% | 75% |
| Stages scored through RSO Toolset | 200 | 2,000 |
| Score disputes (RSO-confirmed vs. competitor recall mismatch) | Measurable | Trending down |

---

## Risks & Mitigations

| Risk | Likelihood | Mitigation |
|---|---|---|
| ROs resist new tech on match day | High | Make it optional — clubs can use the SaaS without the RSO Toolset. Adoption grows as ROs see it work. |
| Connectivity at outdoor ranges is poor | High | Offline-first design is non-negotiable. Every feature works without connectivity. |
| Timer accuracy on mobile OS varies | Medium | Use system monotonic clock for timing; document any ±accuracy limitations |

---

## Resource Requirements

- 1 developer (Jason) — 4–6 weeks after Club SaaS backend is stable
- No new infrastructure (shared with Club SaaS backend)
- UX design: significant — RO UI must be fast and error-resistant under match conditions

---

## Recommended Timing

**Build after Club Management SaaS (Brief #02) is live and has active clubs.** The RSO Toolset is only valuable in context of the SaaS. Build it as the first Club SaaS v2.0 feature after initial club feedback is incorporated.

---

## Open Questions

- Should the RSO Toolset be a separate app or part of the Club Management SaaS web app (installed as PWA on the RO's phone)? Recommendation: PWA first (simplest deployment — no app store listing required, RO just opens a URL); native app only if PWA performance is insufficient for timer accuracy.
- Should the app record audio during a stage (to adjudicate disputed calls based on sound)? Recommendation: no — too complex, potential privacy issues, not needed for initial version.
- How are NRL22 penalties (procedural, safe) handled in scoring? Recommendation: implement NRL22 scoring rules explicitly — this is documented and deterministic. Don't generalize to other sports in v1.0.

---

## Document Control

| Field | Value |
|---|---|
| **Document owner** | `jschwefel@coldboreballisticsllc.com` |
| **Classification** | Confidential (03_-_Confidential/) |
| **Location** | `OneDrive/ScopeDOPE/03_-_Confidential/Product_Strategy/CBB_BRIEF_16_RSO_TOOLSET.md` |
| **Cross-references** | `CBB_PROJECT_BRIEFS_TOC.md` |
| **Created** | 2026-06-02 |
| **Last updated** | 2026-06-09 |
| **Next full review due** | 2027-06-02 |

---

## Revision Control Block

| Rev | Date | Changed By | Reviewed By | Approved By | Summary |
|-----|------|------------|-------------|-------------|-------|
| 0.9 | 2026-06-02 | jschwefel | — | — | Initial release |
| DRAFT | 2026-06-09 | Claude (Opus 4.8) | — | — | Removed header version number (→ Status/Destination + revision-block pointer); added Destination tag (CBB_Corporate venture — component of Brief #02); applied ™ to first use of ScopeDOPE. |
