Koha Solutions
All articles

Koha and MARC21: A Cataloger’s Guide to Fields and Frameworks

How Koha stores and uses MARC21 — the essential fields, the 942 and 952 fields that are Koha’s own, frameworks, and how to fix records that import badly.

1 September 2026 · Koha Solutions

Koha stores bibliographic data as MARC records and extracts a subset of those fields into ordinary database columns for search and circulation. Understanding which fields Koha actually reads is what separates a catalog that works from one that looks right and behaves oddly.

How Koha stores MARC records

Each record exists twice: as a complete MARC blob, and as extracted values in relational columns. The cataloging module keeps both in step.

The practical consequence is that editing data outside the cataloging module — a direct database change, or a batch job that touches only one representation — leaves the two disagreeing. The record then displays one thing and searches as another, which is a genuinely confusing bug to chase.

MARC21 vs UNIMARC

Chosen at installation and not changeable afterwards. MARC21 is used across North America, the UK, Australia and most of Asia; UNIMARC persists in parts of Europe. If you are choosing, MARC21 gives you a far larger pool of records to copy-catalog from.

The essential MARC21 fields in Koha

TagNameWhat Koha does with it
000LeaderRecord type and bibliographic level; drives icons and some behaviour
001Control numberUsed for matching on import — duplicates cause overlay problems
003Control number identifierQualifies 001; matters when merging sources
005Transaction timeUpdated automatically
008Fixed-length dataLanguage, date, place, audience — feeds search limits
020ISBNSearch, matching, cover images
022ISSNSerials identification
040Cataloging sourceProvenance
041Language codeLanguage facet
100 / 110 / 111Main entryAuthor browse; links to authorities
130 / 240Uniform titleCollocates editions
245Title statementThe displayed title. Indicators matter — see below
250EditionDisplay
264 / 260PublicationPublisher, place, date
300Physical descriptionExtent, dimensions
490 / 830SeriesSeries browse
500 / 520Notes / summaryDisplay; 520 feeds keyword search
600 / 650 / 651SubjectsSubject browse and facets
700 / 710Added entriesAdditional authors
856Electronic locationLinks to online resources
942Koha-specificItem type and classification scheme
952Koha holdingsOne field per physical copy

The 942 field — Koha's own

Not part of standard MARC21; Koha uses the locally-defined 942 for record-level defaults.

942$c is the default item type, and it is the one that causes problems. Records imported from external sources frequently arrive without it. Koha may then be unable to determine circulation behaviour, and the record can behave unpredictably in searches and limits. If you import records in bulk, check 942$c is populated — it is the single most common post-import fix.

The 952 field — holdings

The field that confuses everyone new to Koha. One 952 field equals one physical copy. Three copies of a title means one bibliographic record with three 952 fields.

SubfieldMeaning
$aHome branch — where the item belongs
$bHolding branch — where it currently is
$cShelving location
$oFull call number
$pBarcode — must be unique across the whole system
$yItem type — drives circulation rules
$7Not for loan status
$8Collection code
$dDate acquired
$vReplacement price — used for lost-item charges

A record with no 952 has no copies and will not show as available in the OPAC. After a bulk import, records with no holdings are the most common "where did my books go" report.

MARC frameworks

A framework defines which tags and subfields appear when cataloging, which are mandatory, which are hidden, and which link to authorised value lists. Koha ships a default plus several specialised frameworks.

Create a new framework rather than editing the default in place. The default is the fallback for everything, and changes to it surface in unexpected places later. Copy it, then modify the copy.

Authorities

Linking 1xx, 6xx and 7xx fields to authority records is what makes browse work properly and keeps headings consistent. It is optional and it is worth doing — an unlinked catalog accumulates four spellings of the same author and no way to notice.

Importing MARC records

Three routes:

  • Z39.50 / SRU copy cataloging — search a remote catalog and import a matching record. How most libraries catalog most stock.
  • Batch import — a MARC file staged, matched against existing records, then committed. Always review the staged batch before committing.
  • Manual — for genuinely unique local material.

Copy cataloging has real friction that is rarely mentioned: finding targets that are actually up, adding each one by hand, and diagnosing attribute or syntax mismatches — which make a target return nothing at all rather than an error, so it looks like your search was simply unsuccessful. Having a set of Z39.50 and SRU sources already configured and enabled with one click is the same job minus the afternoon.

Beyond copy cataloging, a record can now be drafted from a title and an ISBN with AI-assisted cataloging on a system we host for you — useful for material no remote catalog holds.

Common MARC problems and fixes

  • Mojibake — question marks or boxes instead of accented characters. MARC-8 data loaded as UTF-8. Fix at the source and reload; converting after the fact is lossy. See our migration guide.
  • Missing 942$c — batch-add the correct item type.
  • Missing 952 — record invisible as available. Add holdings.
  • Duplicate 001s — breaks import matching and causes wrong overlays.
  • Titles sorting under "The" — the 245 second indicator sets how many leading characters to skip. "The Great Gatsby" needs indicator 4.
  • Duplicate barcodes in 952$p — rejected on import; deduplicate before loading.

Bulk editing MARC records

Koha's batch record modification applies a template to many records at once. It is the right tool for adding a missing 942$c across an imported batch.

Back up before every batch operation. There is no undo, and a template with a wrong condition can modify thousands of records in seconds. See our backup guide.


Struggling with imported records? We fix encoding problems, missing item types and holdings across whole catalogs. Send us a sample file and we will tell you what is wrong with it.

Share this article

Would you rather not run the server?

We set up, host and maintain your library system — backups, upgrades and notices included. You look after your students; we look after the server.

Explore Koha Cloud