DYNASCORE Help
← Back to App
v3.07 — User Guide

DYNASCORE

Managing · Scoring · Analytics — The complete IPSC match management system for clubs, range officers, and match directors.

🎯 Overview
What DynaScore does and how it is structured

DynaScore is an offline-capable web application that runs entirely in the browser. No installation required — just open the HTML files. Data is stored locally in the browser (localStorage) and optionally synced to a central server for multi-tablet use.


PageUsed byPurpose
setup.htmlMatch DirectorCreate and configure a match (7-step wizard)
scoring-squad.htmlRange OfficerEnter scores during Squad Mode or Range Rotation
scoring-stage.htmlRange OfficerStage selector for Stage Mode
rangemaster.htmlRange MasterMonitor events, approve scores, manage DQs
display.htmlTV / MonitorLive match leaderboard for the main screen
display-stage.htmlTV / MonitorPer-stage shooting order and results
analysis.htmlShooter / AdminIndividual shooter stats, rank, history
results.htmlAllFinal match results by division
progress.htmlAdminOverall match completion progress
Quick Start
Set up and run your first match in 10 minutes
Open setup.html and click New Match.
Fill in the match name, dates, venue and level. Click Stages →.
Add your stages — name, target counts, range/bay label. Click Workflow →.
Select your workflow mode: Squad, Stage, or Range Rotation. Click Squads →.
Add shooting days and squads with start times. Click Competitors →.
Add competitors manually or import via CSV. Click Rules →.
Review the checklist on the Launch page. Click 🚀 Launch Match.
Open scoring-squad.html on the scoring tablet. Select the squad and start scoring.
💡
All pages share the same data store. You can open multiple pages side by side — setup on a laptop, scoring on a tablet, display on a TV — and they all see the same match data.
🔄 Workflow Modes
Choose how squads and tablets are organised

👥 Squad Mode

The squad arrives at the range and shoots all stages in sequence before leaving. The tablet travels with the squad. Best for club matches with a single range.

Squad arrives
Stage 1
Stage 2
Stage 3…
Squad done

Scoring URL: scoring-squad.html

🎯 Stage Mode

Each range has one stage. The tablet stays fixed at that stage. Squads rotate between ranges on a timed schedule. Best for larger matches with multiple ranges.

Range 1: S1
←squads rotate→
Range 2: S2
←squads rotate→
Range 3: S3

Scoring URL: scoring-stage.html

🔄 Range Rotation Mode

Each range has multiple stages. Squads shoot all stages on Range 1, then rotate to Range 2, etc. One tablet per range stays fixed. Best for multi-range clubs with 1–5 stages per range.

SegmentRange 1 (S1+S2)Range 2 (S3+S4)Range 3 (S5+S6)
09:00Squad ASquad BSquad C
11:00Squad BSquad CSquad A
13:00Squad CSquad ASquad B

Scoring URL: scoring-squad.html?rangeGroup=N (one per range)

📋
In Step 2 of the wizard, assign each stage a Range Group number (1–5). In Step 3, select Range Rotation and set minutes per stage. The wizard auto-generates squads and the rotation plan.

📋 Step 1 — Match Info
Match name, dates, venue, officials, fees, bank, schedule, and terms

Fill in as much or as little as needed. Only Match Name is required to proceed. All other fields are saved for documentation and integration with DynaReg.

SectionFieldsNotes
CoreName, Dates, Venue, Level, FirearmRequired for scoring
OfficialsMatch Director, Range Master, Stats OfficeShown on results
ContactOrganiser, Contact Person, Email, PhoneAusschreibung export
RegistrationOpens, Closes, Payment Deadline, FeesEUR amounts
BankIBAN EUR/CHF, BIC, Account holderFor entry payment
ScheduleSquad card issue time, Morning/Afternoon start, PrematchZeitplan
Terms & SafetyTeilnahmebedingungen, Sicherheitshinweise, Foto/FilmFree text
🎯 Step 2 — Stages
Define each stage: targets, type, range label

Stage Fields

FieldDescription
NameStage name e.g. "Cold Start"
Paper targetsNumber of paper (IPSC) targets
Steel targetsNumber of steel poppers / plates
No-shootsNumber of no-shoot targets
Hits requiredHits per paper target — default 2 (double-tap)
Stage typeAuto-calculated: Short (<12), Medium (12–24), Long (>24), Speed
Range / BayFree text label shown on displays e.g. "Range 3 · Bay 7"
Range GroupRange Rotation only — assign stages to ranges 1–5
BriefingStage description for the walk-through
💡
Minimum rounds is calculated automatically: paper × hitsRequired + steel.
⚙️ Step 3 — Workflow
Select Squad, Stage, or Range Rotation mode

See Workflow Modes above for a full comparison. For Range Rotation, set Minutes per Stage and Break between segments — the rotation table is calculated automatically.

👥 Step 4 — Squads
Set up shooting days, squad start times, and durations

Squad Setup

Set the day start time (first squad starts here).
Set the squad duration in minutes (time allowed per squad).
Click + Add Squad for each squad. Start times are calculated automatically.
Repeat for multiple days if the match runs over more than one day.
🔄
In Range Rotation mode, squads are auto-generated — one per range. You only need to set the day start time and minutes per stage.
🏃 Step 5 — Competitors
Add shooters manually or import via CSV

Manual Entry

Click + Add Competitor. Fill in bib number, name, division, power factor, squad and day. Click the ✓ checkmark to save.

CSV Import

Click ⬆ Import CSV. The file must have these columns:

bib, first_name, last_name, division, power_factor, squad, day
# Optional: category, nation, ipsc_id, status

1, Thomas, Schneider, Production, Minor, 1, 1
7, Felix, Gruber, Open, Major, 1, 1, Overall, GER, GER-04192

Power Factor Rules

DivisionMajor allowed?
Open, Standard, RifleYes
All other divisionsMinor only
📐 Step 6 — Scoring Rules
IPSC Comstock scoring — read-only reference

DynaScore uses IPSC Comstock scoring. Hit values and calculation formulas are shown here for reference. See Scoring Rules for the full breakdown.

🚀 Step 7 — Launch
Pre-flight checks and match launch

The Launch page runs a pre-flight checklist. Errors must be fixed before launching. Warnings can be ignored but are worth checking.

Common errors:

  • No stages defined
  • No competitors added
  • Competitors with no squad assigned
⚠️
Once launched, the match is marked as active. You can still go back to Setup to make changes — tap ← Setup from any scoring page.

📱 Squad Scoring
Entering scores on the range tablet

SC1 — Day & Squad Selection

Select the day at the top, then tap the squad button. Start times are shown next to each squad number. Green border = squad fully approved. Yellow border = pending approvals.

SC2 — Shooter List

Shows all shooters in the current squad for the active stage. Tap a shooter to open score entry.

Border colourMeaning
GreenScore approved — locked
YellowSaved, pending Range Master approval
NoneNot yet scored
⚠️
Approved scores cannot be edited from the scoring page. To correct an approved score, use the Range Master page → ✏ Edit / Approve.

SC3 — Score Entry

Tap each hit value (A / C / D / M) for each paper target. Tap HIT or MISS for steel.
Enter the elapsed time from the timer. Tap the time field and type the value.
Add Procedural Errors (PE) using the + button. Select the reason from the list.
Tap Summary → to proceed to the summary screen.
💡
Tapping DNS marks the shooter as Did Not Shoot and skips straight to summary. Tap DQ to raise a disqualification event.

SC4 — Summary & Approval

Review the score before approving. Three options:

ButtonAction
← Back / CorrectReturn to score entry to fix a mistake
✓ ApproveScore is locked and counted in results
⏳ Save — Not ApprovedSave score, raise event in Range Master, shooting continues
Approvals
How the approval workflow operates

Every score must be approved before it counts in the results. There are two paths:

Direct Approval (normal)

The RO reviews the score on SC4 and taps ✓ Approve. The score is immediately locked and included in results. The shooter row turns green in SC2.

Save — Not Approved (pending RM)

Used when the RO is unsure, a protest is expected, or the Range Master needs to review. The score is saved but not counted. A ⏳ PENDING event is raised in the Range Master page. The squad continues shooting.

⚠️
A yellow warning banner appears in SC2 while pending approvals exist for the current squad. The Range Master should resolve all pending approvals before the squad moves to the next stage.
🔄 Reshoots
Queuing a shooter for a reshoot at the end of the stage

On SC4 (Summary), if a reshoot is required:

Tap 🔄 Reshoot Now to immediately restart the shooter (stays in current position in the order).
Tap ⏳ Reshoot at End to queue the shooter at the end of the stage order.

When Reshoot at End is pressed:

  • The display page immediately advances to the next shooter
  • A 🔄 RESHOOT badge appears on the display next to the shooter's name
  • After all other shooters are done, the reshoot shooter is presented automatically
  • The stage closes only after the reshoot is approved
🚫 DQ & DNS
Handling disqualifications and did-not-shoot

DNS — Did Not Shoot

Tap DNS on SC3. The shooter is marked as DNS for this stage and skipped in the shooting order. DNS on all stages = overall DNS. Does not affect match results negatively.

DQ — Disqualification

Tap DQ on SC3 and select the DQ reason. A DQ event is raised in the Range Master. The Range Master must approve the DQ for it to take effect. Until approved, the DQ is shown as pending.

Once a DQ is approved by the Range Master, the shooter is excluded from further stages and removed from the leaderboard. The squad will auto-close once all remaining shooters are done.

💡
A DQ can be retracted by the Range Master if it was raised in error. The shooter returns to the shooting order automatically.

🛡️ Range Master
Central control for DQs, approvals, and score corrections

Open rangemaster.html on the Range Master's tablet or phone. The page has three tabs:

TabContent
Events NPending DQs, pending score approvals, DNS events
ProgressMatch completion overview by squad and stage
Rotation PlanStage Mode / Range Rotation schedule (hidden in Squad Mode)
📋 RM Events Panel
Acting on DQ and pending approval events

Pending Approval Cards ⏳ PENDING

Appear when a scorer taps "Save — Not Approved". Shows the shooter name, stage, and saved score.

ButtonAction
✓ Approve ScoreScore is marked approved and counted in results
✕ Reject / Re-scoreScore is cleared — scorer must re-enter from scratch

DQ Event Cards

Appear when a scorer raises a DQ. Shows the DQ reason and shooter details.

ButtonAction
✓ Approve DQDQ confirmed — shooter excluded from match
✕ Retract DQDQ reversed — shooter re-enters shooting order
✏️ Edit Scores
Correcting an approved score via Range Master
Tap ✏ Edit / Approve Shooter Score at the top of the Events panel.
Use the Squad filter to narrow the shooter list, then select the shooter.
Select the stage.
The current score details appear — status, time, hit counts. Edit the time if needed.
Tap ✓ Approve to save and approve, or ✕ Clear Score to reset (scorer must re-enter).
🗓️ Rotation Plan
Stage Mode and Range Rotation schedule

The Rotation Plan tab (visible in Stage Mode and Range Rotation only) shows the full schedule: which squad is on which stage/range at each time segment. The current time slot is highlighted in orange. Completed slots shown in green.


📺 Master Display
Full match leaderboard for the main TV screen

Open display.html on any browser connected to the same network. Press F11 for fullscreen.

The display shows:

  • Leaderboard cycling through divisions every 8 seconds
  • Best Time and Best HF for the active stage
  • Currently Shooting slot (with 🔄 RESHOOT badge if applicable)
  • On Deck and On Hold shooters
  • QR code for the On Deck shooter — links to their analysis page

Tap 📺 Stages in the top-right to open the Stage Display launcher — shows URLs and QR codes for every stage.

🖥️ Stage Display
Per-stage shooting order and results for range TVs

Open display-stage.html on the range TV. No URL parameter needed — it auto-detects the active stage and switches automatically as the squad progresses.

URLBehaviour
display-stage.htmlAuto-follows active stage across all stages
display-stage.html?stage=3Always shows Stage 3
display-stage.html?range=2Range Rotation — auto-follows active stage in Range 2

Left panel: Best Time/HF → Currently Shooting → Shooting Order → Completed.
Right panel: Stage results sorted by Hit Factor — all shooters who have shot this stage.

📡 TV Setup
Connecting monitors to the match network

Direct HDMI (1–2 monitors)

Connect monitors directly to the GMKtec mini PC via HDMI. Open Chrome on each screen, drag windows to each monitor, press F11.

WiFi (recommended for multiple monitors)

Bring a WiFi router to the match. Connect the GMKtec via Ethernet or WiFi.
Connect TVs/Fire Sticks to the same WiFi network.
On each TV, open Silk/Chrome and navigate to http://192.168.1.100:8000/display-stage.html (replace IP with your server IP).
The 📺 Stages button on the master display shows QR codes for each stage — scan with a phone to copy the URL to the TV.
💡
Amazon Fire TV Stick 4K (~€40) is the recommended per-range display device. Same Silk browser as the Kindle Fire tablets, powered by the TV's USB port, connects to WiFi.

📊 Shooter Analysis
Individual stats, ranking, and progress

Open analysis.html or scan the QR code from the display page. The analysis page shows:

SectionContent
Hero headerBib, name, division, cat, nationality, PF
Div RankPosition in division with ▲▼ movement arrow
Cat RankPosition in category with ▲▼ movement arrow
Match %Percentage of division leader, gap shown
StagesDone/total, estimated points remaining
Match ProgressOverall match completion bar
Division NeighborsShooter ahead and behind with % gap
Next StageNext unscored stage name and range
Stage breakdownHF, time, points per stage
Cumulative graphRunning points total vs division leader

The page updates in real time when new scores are approved — the rank arrows show movement since the last update.

📱
Shooters can access their own analysis by scanning the QR code next to their name on the master display TV. The URL is analysis.html?bib=7 — works on any phone connected to the match WiFi.

📡 Network Setup
Connecting tablets, TVs, and the server

Recommended Hardware

DeviceRoleCost
GMKtec mini PCServer (already owned)
TP-Link travel routerWiFi hub for the range~€30
Amazon Kindle Fire 10Scoring tablet (already owned)
Amazon Fire TV Stick 4KPer-range display~€40 each

Network Layout

TP-Link Router (192.168.1.1) ├── GMKtec mini PC → 192.168.1.100:8000 (server) ├── Kindle Fire tablets → scoring-squad.html ├── Fire TV Stick (main) → display.html ├── Fire TV Stick (S1) → display-stage.html?range=1 └── RO phones → rangemaster.html / analysis.html
🖥️ FastAPI Server
Running the central server on the GMKtec
Install Python dependencies: pip install fastapi uvicorn
Start the server: uvicorn main:app --host 0.0.0.0 --port 8000
All devices open pages via http://192.168.1.100:8000/<page>.html

The server handles real-time result broadcasting via WebSocket. When a score is approved, the server recalculates rankings and pushes updates to all connected displays within 1–2 seconds.

💡
The app works completely offline without the server. Scores are saved locally on each tablet and synced automatically when the server is available. The connection status bar at the bottom of each scoring page shows the current state.
📴 Offline Mode
Using DynaScore without a server or internet connection

DynaScore is designed to work fully offline. All data is stored in localStorage on each device. When network connectivity is lost:

  • Scoring continues normally — all scores are saved locally
  • The connection bar shows ● Offline and the queue count
  • When connectivity is restored, queued scores are automatically synced to the server
  • Display pages show the last known results until refreshed

📐 Scoring Rules Reference
IPSC Comstock scoring — hit values and calculations

Hit Values

Hit ZoneMajorMinor
A (Alpha)55
C (Charlie)43
D (Delta)21
M (Miss)00
No-shoot hit−10−10
Procedural Error−10−10

Calculations

Total Points = Σ(hit values) − (PE × 10) − (no-shoot hits × 10) Hit Factor = Total Points ÷ Time Stage % = (Shooter HF ÷ Stage Leader HF) × 100 Match % = (Shooter Total Pts ÷ Leader Total Pts) × 100

Stage Type by Round Count

TypeMin rounds
Short< 12
Medium12 – 24
Long> 24
📖 Glossary
Terms used in DynaScore
TermMeaning
BibCompetitor number (unique positive integer)
SquadGroup of shooters shooting together (numbered 1, 2, 3…)
StageOne course of fire with defined targets
Range GroupSet of stages on the same physical range (Range Rotation mode)
SegmentTime block in Range Rotation — all squads shoot simultaneously
HFHit Factor = total points ÷ time
Match %Shooter's total points as a percentage of the division leader
PEProcedural Error — −10 points each
DNSDid Not Shoot — shooter absent from stage
DQDisqualification — raised by RO, approved by Range Master
SC1/2/3/4The four screens on the scoring page (Squad → Shooters → Entry → Summary)
RMRange Master
RORange Officer (operates the scoring tablet)
🔧 Troubleshooting
Common issues and solutions
ProblemSolution
Scoring page shows no days or squads Go back to Setup → Step 4 and add at least one squad, then re-launch. Make sure to tap Competitors → (not just navigate away) to save squads.
Page looks old / outdated version Clear browser cache: F12 → Application → Clear site data. Or press Ctrl+Shift+R for a hard reload. The version number is shown in the top-right of every page.
Stage won't close after all shooters done Check if any shooter has a pending reshoot (🔄) or a pending approval (⏳). The stage closes automatically once all active shooters are approved/DNS and the reshoot queue is empty.
Display shows "no data" Display pages read from localStorage. If opened from a different folder or browser profile, they won't see the scoring data. Ensure all pages are opened from the same server URL.
Score stuck as "approved" cannot edit Use Range Master → ✏ Edit / Approve Shooter Score. Select shooter + stage, adjust the time, and re-approve.
DQ not taking effect DQs must be approved by the Range Master. Check the Events tab — tap ✓ Approve DQ on the pending event card.
Wrong mode launched (squad vs stage) Go back to Setup → Step 3 and re-select the correct workflow mode. Make sure to tap Squads → to save the change before launching.
Major PF option is greyed out Major power factor is only available for Open, Standard, and Rifle divisions. Change the shooter's division or set power factor to Minor.
CSV import fails Check that the file has the required columns: bib, first_name, last_name, division, power_factor, squad, day. Ensure bib numbers are unique integers.
Display TV shows blank after WiFi drop The display page caches the last known results. Refresh the page once WiFi is restored — it will reconnect automatically and show current data.
DynaScore v3.07 — Managing · Scoring · Analytics
← Back to App