Cabrillo Log Validator
Contest logs get rejected or manually corrected for small format errors — a missing header tag, a QSO line with a dropped field, a date that isn't UTC. Paste or upload your Cabrillo log and check it against the v3 spec before you submit, entirely in your browser.
Why does my Cabrillo log get rejected by a contest sponsor?
The most common causes are a missing or malformed
START-OF-LOG/END-OF-LOG line,
QSO: lines with too few fields (a common cause is
an exchange field silently dropping, leaving fewer columns
than the contest expects), non-UTC or badly formatted
date/time values, and callsigns containing characters outside
A-Z, 0-9, and /. This tool checks for all of
these before you submit.
Does this check contest-specific exchange rules?
No — the exchange fields (RST plus contest-specific data like zone, grid, or serial number) vary by contest and aren't part of the universal Cabrillo v3 structure, so this tool doesn't score or validate their content. It checks the parts of the spec that are the same for every contest: header tags, QSO line structure, date/time/callsign format, and chronological order.
Does this tool upload my log anywhere?
No. Parsing and validation run entirely in your browser — nothing in your log file is sent to a server, whether you paste it or use the file picker.
Need this in a script instead of a browser?
The same validation logic is also a tiny dependency-free
CLI/library:
npx github:diwaspoudell/cabrillo-log-validator
— see
github.com/diwaspoudell/cabrillo-log-validator.