Contest
Full contest logger with 39 templates, live score, dupe marking and Cabrillo V3 export.
Start a Contest
- Top bar → Logs → New Log → Contest card → opens the wizard
- Step 1: Choose a template — list of all 39 bundled contests with search:
- HB / national: Helvetia (H26), USKA Field Day SSB/CW, USKA 50 MHz, NMD, Christmas Contest, Swiss Emergency Contest
- CQ family: CQ-WW CW/SSB/RTTY, CQ-WPX CW/SSB/RTTY
- HF DX: ARRL DX CW/SSB, ARRL RTTY Roundup, IARU-HF, WAE-DX CW/SSB, DARC-WAG, RUS-DX, All Asian DX CW/SSB, JIDX CW/SSB, EU-HF-Champ, REF CW/SSB, SAC CW/SSB, EUCW/UFT
- VHF/UHF: IARU R1 VHF & UHF, DARC-UKW, Helvetia-VHF, Marconi (144 MHz CW), AGCW VHF/UHF, Alpe-Adria VHF & UHF
- Step 2: Cabrillo categories — Operator (Single-Op, Multi-Two, …), Power (High/Low/QRP), Band (ALL / 160M / …), Mode (important!), Station (Fixed/Portable), Assisted, Time
- Create → the contest log is created and becomes active
Important: mode selection in the wizard
If you pick e.g. Mode: PH (= SSB) in the wizard, the app automatically filters the mode picker in the contest form, the DX cluster and the stats panel to SSB. With MIXED, all modes are allowed.
Contest Form
The entry panel in a contest is kept lean — no generic DX fields, only the fields from the template's Cabrillo exchange schema:
- Call (with dupe detection — call+band+mode already logged → red border + toast)
- Band/Mode (band from CAT, mode restricted to allowed values)
- Sent: dynamic fields from the template (e.g. RST + serial, or RST + canton)
- Recv: dynamic fields (auto-selected based on the received call: HB → canton, DX → serial)
- Run / S&P toggle (saved per QSO in the
contestIsRunflag)
Helvetia Special Case
In Helvetia the Recv field changes live as you type the call:
HB9XX→ Recv field shows canton (e.g.ZH)DL1ABC→ Recv field shows serial number (e.g.001)
Sent is always your own canton (from Settings → Station).
Stats Panel (right)
In contest mode the right side panel shows live score instead of propagation:
- Score summary:
X pts × Y mult = Z total, centered - Rate meter: QSOs/h computed for the last 10 and 60 minutes
- Score matrix (table): per band → multiplier count, CW/data/SSB QSOs, total
- Columns depend on the template (Helvetia → "Kant", CQ-WW → "Zone", CQ-WPX → "Pfx", standard → "DXCC")
- Only contest bands shown (160/80/40/20/15/10m at ALL)
- Band Activity Heatmap: from DX cluster spots, filtered to contest bands
- Op statistics (Multi-Op only, since 1.10.7): QSO count and percentage share per operator — see also Tutorial: Multi-Op Contest
DX Cluster in a Contest
The DXClusters tab at the bottom is filtered in a contest:
- Only spots in the correct mode (PH contest → SSB spots only)
- Only spots on contest bands
Plus color marking per spot:
- 🔴 Red — already logged (call+band+mode match in your log)
- 🟢 Green — likely a new multiplier (new country per band, new prefix for WPX)
- Normal — neither dupe nor mult
Double-click a spot → call and frequency land in the contest form, CAT jumps along.
Contest Map
A dedicated sub-tab Contest Map (visible only for contest logs):
- QTH-centered on your locator from the Station settings
- Lines from your QTH to each geo-mapped QSO
- Band filter for quick drill-down
- "QTH" button to re-center
Serial Counter
- Per log (default) — for CQ-WW, CQ-WPX Single-Op, ARRL-DX, IARU
- Per band — automatic for CQ-WPX Multi-Two / Multi-Unlimited / Multi-Distributed (CQ rule)
The serial number is auto-generated at log time (highest assigned + 1). On undo/delete the number is reused.
Scoring
All 39 templates have their own rule-compliant scoring (shared with MacADIF via the ADIFCore library). The live score in the stats panel and the score matrix compute, depending on the contest:
- Points per QSO — fixed (e.g. 1 pt), relationship-based (same country / same zone / same vs. different continent) or band-dependent.
- Multipliers — DXCC countries, CQ/ITU zones, prefixes (WPX), cantons, oblasts, US states/provinces, prefectures … depending on the rules, sometimes per band.
- VHF/UHF — distance scoring (km from locators, 1 point/km); for pure-distance contests (Marconi, AGCW, Alpe-Adria) without multiplier.
Scoring is still being validated
The engine hasn't yet been cross-checked against official result lists for every contest — verify the final score before submitting. ARRL RTTY Roundup, Russian DX, All Asian DX and JIDX are built against the official rules but still lack a comparison log. For the IARU-HF scoring ("same ITU zone" = 1 point), your own CQ/ITU zone must be set in Settings → Station.
Cabrillo Export
Contest log toolbar → Cabrillo… → a sheet opens with all header tags pre-filled from the wizard:
CONTEST,CALLSIGN,OPERATORS- All
CATEGORY-*tags - Sent exchange as the default value (per-QSO values from the log override it)
- Claimed score, club, soapbox
The file lands under ~/Documents/HAM-Tools/Exports/. The format is Cabrillo V3 — accepted by ARRL/CQ/DARC/USKA.
Tips
- Quick-toggle DX ↔ Contest: the top tab bar in the QSO entry panel — a click switches directly to the most recently opened log of that type
- Multiple contests in parallel are possible (e.g. CQ-WPX on Saturday, a local HB contest afterwards). Switch via the Logs popover at the top
- Set up a tester before the contest — the wizard's Cabrillo category choice can't be changed afterwards (delete + recreate would be the way)
Macros & Super Check Partial
- F1–F8 macros are built in — CW via Hamlib (
send_morse), SSB via your own voice recordings, plus ICOM/Yaesu voice-keyer slots. Guide: Tutorial: Contest with Macros. - SCP (Super Check Partial) is built in — suggestions from a master call DB as you type the call in the contest form.
Known Limitations
- WAE QTC block not yet supported (coming in stage 3)
- Custom contest definitions (user
contests.json) not yet — also stage 3