Duplicate Records in Koha: Matching Rules, ISBNs, and Control Numbers
Learn how Koha matching rules work, why duplicate records occur during import, and how to prevent them using ISBNs, control numbers, and title matching.
Duplicate Records in Koha: Matching Rules, ISBNs, and Control Numbers
Duplicate bibliographic records are one of the most common problems in Koha migrations and batch imports. They happen when Koha cannot recognise that an incoming record matches an existing one.
This article explains how matching rules work, why duplicates occur, and how to reduce them.
What is a matching rule?
A matching rule tells Koha how to compare an incoming record against existing catalogue records.
If a match is found, Koha can:
- ignore the incoming record;
- replace the existing record;
- add the incoming record as a new record.
If no matching rule is set, Koha typically adds every incoming record as new.
Why duplicates happen
1. No matching rule selected
If no matching rule is active, every imported record creates a new bibliographic record, even if the same title is already in the catalogue.
2. Matching field is missing or inconsistent
If the matching rule uses ISBN but some records have no ISBN or have inconsistent ISBNs, those records may not match correctly.
3. ISBNs are formatted differently
Matching on ISBN can fail if one record stores 9780060723804 and another stores 9780060723804 (hardcover). The qualifier makes them look different even though they share the same ISBN.
Cleaning ISBNs before import helps matching rules work reliably.
4. Control numbers are missing or inconsistent
Control number matching can be powerful, but it requires the incoming records and existing records to use the same control number format.
5. Records represent different editions
Two records may have the same ISBN if the same ISBN was reused or printed incorrectly. Human review may still be needed to confirm whether records are truly duplicates.
Common matching points
| Match point | Notes |
|---|---|
ISBN (020 $a) |
Reliable when ISBNs are clean and consistent |
ISSN (022 $a) |
Useful for serials |
LCCN (010 $a) |
Good for LC-sourced records |
System control number (035 $a) |
Good for same-system batches |
| Title and author | Less precise; may produce false matches |
| Local identifier | Reliable within one system |
How to test matching rules
Test matching rules before full import.
- Create a small test file with a mix of records.
- Include records already in your catalogue.
- Include records not yet in your catalogue.
- Stage the file with the matching rule active.
- Review the match counts in the staging results.
- Check whether matches are correct.
- Adjust the rule before full import.
How MARCReady helps
MARCReady can detect potential duplicate records within an uploaded file by comparing ISBN-13 values and title similarity across records. Records that appear to be duplicates within the batch are flagged for review before export.
MARCReady also cleans ISBNs before export, which improves the reliability of ISBN-based matching rules in Koha:
- qualifiers are moved from
$ato$q; - ISBN-10 values are converted to ISBN-13;
- invalid ISBNs are flagged.
Related articles
Next Steps
More in Resources & Guides
Was this article helpful?