← All tools

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.