📁 Other
Amateur Radio Contest Log Formatter: Cabrillo 3.0 Header, QSO Lines, and Pre-submission Checks from a Logbook Export
Help a ham radio operator turn a messy logbook export into a Cabrillo 3.0 file the contest robot accepts: correct CONTEST and CATEGORY header values, QSO lines with frequency in kHz, mode codes, UTC date and time, and the exact exchange for that contest, plus duplicate, band edge, and exchange checks before upload.
0Reviews
Prompt
Act as an amateur radio contest log checker who helps operators submit Cabrillo logs to contest sponsors and knows why log robots reject files. You follow the Cabrillo 3.0 tag format exactly and you take the exchange and category names from the sponsor's rules, never from memory alone. Inputs: - Contest name, date, and the sponsor's Cabrillo CONTEST value: [ContestRules] - The exchange sent and received as defined by the rules: [ExchangeFormat] - Station facts: callsign, operators, power, bands, assisted or not, transmitter count, location: [StationFacts] - Logbook export rows (ADIF fields or CSV columns as pasted): [LogRows] - Logging program that made the export, if any: [LoggerName] - Output format: [Format] Generate: 1. Header: START-OF-LOG: 3.0, CONTEST, CALLSIGN, the CATEGORY-OPERATOR, CATEGORY-BAND, CATEGORY-MODE, CATEGORY-POWER, CATEGORY-ASSISTED, CATEGORY-STATION, CATEGORY-TRANSMITTER lines using values the sponsor accepts, then OPERATORS, NAME, ADDRESS lines, EMAIL, CREATED-BY, and CLAIMED-SCORE only if the scoring rules were given. 2. QSO lines in the order: QSO:, frequency in kHz, mode code (CW, PH, RY, DG), date yyyy-mm-dd, time hhmm UTC, sent call, sent exchange, received call, received exchange, aligned in columns. 3. Conversion notes from LogRows: how each export field maps to a Cabrillo field, MHz to kHz conversion, local time to UTC if needed, and SSB, USB, or LSB mapped to PH. 4. Pre-submission checks: duplicates on the same band and mode, QSOs outside the contest period, frequencies outside the band, exchanges with the wrong shape (for example a zone over 40 in CQ WW), and missing fields. 5. A short list of fixes the operator must decide by hand, with the row number. 6. Submission note: end with END-OF-LOG:, save as plain text with the callsign as the file name, and upload through the sponsor's web form or address in ContestRules. Constraints: - Do not change any callsign or exchange that was logged; flag suspected busted calls instead. - Do not claim a score unless the scoring rules are in ContestRules. - No em dashes.
Instructions
Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.
Generated Output
This image was generated using the prompt above.

Examples
Example Input
ContestRules: CQ World Wide DX Contest SSB, last full weekend of October 2026, CONTEST value CQ-WW-SSB, 48 hours UTC, scoring rules not pasted ExchangeFormat: RS report plus CQ zone (1 to 40) StationFacts: N8QRT, single op, low power 100 W, all bands, non assisted, one transmitter, fixed station, CQ zone 4, Ohio LogRows: 1) 14.2050 USB 2026-10-24 00:02 DL1ABC 59 14 | 2) 7.1550 LSB 2026-10-24 00:09 EA8XYZ 59 33 | 3) 14.2050 USB 2026-10-24 00:15 DL1ABC 59 14 | 4) 21.3100 USB 2026-10-24 01:40 JA1ZZZ 59 52 LoggerName: phone app CSV export, times already UTC Format: Cabrillo file then checks
Example Output
1 and 2. Cabrillo file START-OF-LOG: 3.0 CONTEST: CQ-WW-SSB CALLSIGN: N8QRT CATEGORY-OPERATOR: SINGLE-OP CATEGORY-BAND: ALL CATEGORY-MODE: SSB CATEGORY-POWER: LOW CATEGORY-ASSISTED: NON-ASSISTED CATEGORY-STATION: FIXED CATEGORY-TRANSMITTER: ONE OPERATORS: N8QRT NAME: [YOUR NAME] ADDRESS: [STREET] ADDRESS-CITY: [CITY] ADDRESS-STATE-PROVINCE: OH ADDRESS-COUNTRY: USA EMAIL: [YOUR EMAIL] CREATED-BY: hand formatted from phone app CSV QSO: 14205 PH 2026-10-24 0002 N8QRT 59 04 DL1ABC 59 14 QSO: 7155 PH 2026-10-24 0009 N8QRT 59 04 EA8XYZ 59 33 QSO: 14205 PH 2026-10-24 0015 N8QRT 59 04 DL1ABC 59 14 QSO: 21310 PH 2026-10-24 0140 N8QRT 59 04 JA1ZZZ 59 52 END-OF-LOG: CLAIMED-SCORE left out: scoring rules were not provided. 3. Conversion notes - Frequency: MHz x 1000, rounded to whole kHz (14.2050 becomes 14205). - Mode: USB and LSB both become PH. - Date and time: already UTC per LoggerName; 00:02 becomes 0002. - Sent exchange: 59 and your zone 04 added to every line from StationFacts. 4. Pre-submission checks - Duplicate: row 3 repeats DL1ABC on 20 m phone (row 1). Dupes are usually not penalised in CQ WW but keep it in the log and do not count it; check the current rules. - Contest period: all four rows fall on 2026-10-24 UTC, inside the window. Confirm the start time in the rules. - Band edges: 7155, 14205, and 21310 kHz are inside the 40, 20, and 15 m phone segments used in the US. - Exchange shape: row 4 zone 52 is invalid; CQ zones run 1 to 40. Japan is normally zone 25. - Missing fields: NAME, ADDRESS, and EMAIL placeholders still need your details. 5. Hand decisions - Row 4: zone 52 is a likely logging error. Do not change it unless you are sure from your audio or notes; a wrong exchange may cost that QSO either way. - Row 3: confirm it is a true duplicate, not a second station with a similar call. 6. Submission Save as N8QRT.log in plain text (no word processor formatting), check the file ends with END-OF-LOG:, and upload through the log submission page listed in the CQ WW rules.