Format support and sources.

This tool implements a bounded structural subset of ASCII ADI. It is not a complete ADIF compliance validator. The format reference checked for this build is the released ADIF 3.1.7 specification, updated March 22, 2026, especially sections IV.A.1 through IV.A.6 and the Date and Time data types. This names the release used, without claiming it will always be the latest.

What the reader handles

Length-delimited field values, case-independent field names and terminators, optional one-letter type indicators, zero-length values, optional headers and unknown fields. Values are consumed by their declared length, so a literal <EOR> inside a value cannot terminate a contact. Field order and values are retained. A source header must begin with a character other than < and end with <EOH>.

Deliberate bounds

ItemLimit
Each selected source file10 MiB
Contacts in each source20,000
Fields per source record or header256
One field value1 MiB
Candidate pairs2,000

Input must contain printable ASCII, carriage returns and line feeds. ADX/XML, non-ASCII text, UTF-8 BOMs, tabs, international field types, repeated fields in one record and missing final EOR tags are rejected. Incompatible USERDEF definitions are rejected because changing their definitions could reinterpret retained values.

What is checked and what is not

Matching needs CALL, BAND, MODE, QSO_DATE and TIME_ON. SUBMODE must agree if present. UTC dates and times used for matching are checked for calendar validity. Other values, band enumerations, award rules, frequency consistency and every ADIF field's semantic constraints are not validated. Contacts missing matching information are retained and reported. Matching does not infer a band from frequency or translate modes.

New-copy export policy

New exports identify QSO Merge Bench and ADIF 3.1.7. Source program/version/timestamp metadata is retained in the manifest rather than presented as the new file's metadata. Other header fields are preserved or explicitly resolved. Record fields are serialized with recalculated lengths. Non-field annotation text and original whitespace are omitted; source files remain unchanged. Read the preservation details.

Matching policy is an application decision

The 120-second candidate window and explicit merge process are this tool's review policy, not an ADIF duplicate rule. An exact field match is not proof that two contacts should be combined. Only contacts from different files are compared. See matching examples.

Return to the merge bench