Accession Number Generator

Library Accession Number Generator

Create controlled library accession-number sequences with reusable patterns, year tokens, fixed-width numbering, continuation from an existing accession, collision checks and CSV, Excel or TXT export.

Rule-based / deterministic Reviewed 2026-09-01 Privacy-first workflow
Loading tool…

Accuracy note: The generator enforces the selected numeric width, validates its pattern tokens, can skip or report reserved accession numbers, and can enforce Koha's documented 80-character 952$i inventory-number limit when that target is selected. Accession-number policies are local, so confirm numbering conventions and whether sequences reset annually before production use.

How this result is calculated and when to review it

Method: The tool uses the values you provide and a visible rule set or workflow appropriate to this task. Results are designed to be reviewable, with assumptions and limitations shown instead of hidden behind an unexplained score.

Result type: Rule-based / deterministic.

Good practice: keep one known-good example, test small batches first, and document any local conventions that affect the result.

Worked example

Use a small representative input in Library Accession Number Generator, review the output and warnings, then repeat the process with real data only after the result matches your expected workflow.

Tip: the Try example control in the tool uses the built-in sample/default values so you can see the expected workflow before entering your own data.

The Library Accession Number Generator creates controlled sequential accession numbers for accession registers, acquisition workflows, migration spreadsheets and local inventory practices. It is designed for libraries that need more than a simple prefix followed by a counter. You can use year-based formats, fixed-width numbers, prefixes and suffixes, continue from an existing accession number, compare the proposed range with reserved values, and export the approved sequence to CSV, Excel or TXT.

An accession number is a locally assigned identifier associated with the acquisition or registration of material. Libraries use many conventions: a simple sequence such as 000001, a prefixed value such as ACC-000001, a year-based value such as 2026-000001, or an institutional pattern such as MAIN/2026/000001. There is no single universal punctuation or reset rule that every library must follow. The important requirements are consistency, uniqueness within the intended register, documentation and the ability to continue the sequence safely.

What this accession number generator does

The generator combines a pattern with a numeric sequence. Instead of hiding the logic, it shows the structure before you generate a range. Built-in templates include a plain number, prefix plus number, year plus number, prefix plus year plus number, and a slash-separated library/year/number format. Advanced users can create a custom pattern with the tokens {PREFIX}, {YEAR}, {YY}, {NUMBER} and {SUFFIX}.

For example, a prefix of ACC-, year 2026, numeric width 6 and starting sequence 1 can produce ACC-2026-000001. If the quantity is 500, the range continues through ACC-2026-000500. The numeric width is treated as a real rule: if a six-digit sequence would pass 999999, the tool stops rather than quietly changing the format to seven digits.

The tool supports up to 5,000 generated accession numbers in one run. Large batches are still best reviewed in smaller operational stages, especially when accession registers are being updated by more than one staff member.

Continue from the last accession number

When you already maintain an accession register, the most common task is not starting at one; it is continuing from the last value already assigned. Enter the last accession number in the optional continuation field. The tool compares that value with the selected pattern, prefix, suffix and year. If it matches, the next numeric sequence becomes the starting point automatically.

For example, if your current pattern is ACC-{YEAR}-{NUMBER} and the last value is ACC-2026-004582, the next generated accession is ACC-2026-004583. If the last value does not match the active pattern, the generator stops and asks you to review the settings. That is safer than extracting an arbitrary group of digits from a value that belongs to a different numbering convention.

Prevent duplicate or reserved accession numbers

A sequential range can still collide with numbers that have already been assigned, pre-printed or reserved for another batch. Paste existing or reserved accession numbers into the comparison box. You can choose to skip those values and continue until the requested quantity of unused numbers is produced, or keep the proposed sequence while flagging conflicts for review.

The default comparison is case-insensitive because many administrative identifiers are easier to manage when values such as ACC-0001 and acc-0001 are treated as the same human-facing identifier. If your local register intentionally treats letter case as significant, switch to case-sensitive comparison.

This comparison is local to the list you provide. The browser tool does not connect directly to your integrated library system or accession database, so it cannot discover live conflicts that were not included in the reserved list. For a production migration, export the existing identifier column first, use it for collision checking, and perform a final database-level uniqueness review before import.

Accession number vs barcode

An accession number and an item barcode can be the same string in some libraries, but they are not conceptually the same identifier. An accession number usually belongs to the acquisition or registration history of a physical or digital item. A circulation barcode is normally designed for scanning during check-out, check-in, inventory and other circulation work.

If you need to create new sequential Koha circulation identifiers, use the Koha Barcode Generator. That tool focuses on MARC21 952$p, barcode symbologies, scanner-safe values, Koha's barcode length constraints and printable labels. If your identifiers already exist and you need to turn them into A4, Letter or custom label sheets, use the Library Barcode Sheet Generator.

Keeping these jobs separate reduces a common migration mistake: assuming that every accession number should automatically replace the barcode, or that a newly generated barcode should overwrite the historical accession identifier.

Accession number vs call number

A call number is a shelving and retrieval designation, often based on a classification system plus an author mark, title mark, year or copy information. An accession number is an acquisition or registration identifier. A book may therefore have all of the following at the same time:

  • Accession number: ACC-2026-004583
  • Barcode: BK00098765
  • Call number: 025.431 SMI
  • Koha internal itemnumber: a database-generated internal identifier

Do not collapse these fields into one value merely because a spreadsheet has only one identifier column. If you are preparing data for Koha, define the purpose of each source column before mapping it.

Koha 952$i inventory number

Koha's current cataloguing documentation maps MARC21 952$i to the item's inventory number. The field is free text and the current Koha database field is documented as limited to 80 characters. Koha also explicitly distinguishes that inventory number from its internal itemnumber, which is stored in 952$9. See the official Koha cataloguing manual for the current item-field mapping.

This generator therefore includes an optional Koha inventory number target. When you select it, generated accession values longer than 80 characters are blocked. When the target is a general local accession register, the generator does not impose that Koha-specific limit, because another system or paper register may allow a different identifier length.

Whether your local accession number belongs in 952$i is a cataloguing and migration decision, not a universal rule. Some libraries use the inventory number for an accession-style identifier, while others maintain accession data separately. Test the mapping against your framework, reports and staff workflows before a bulk import.

Koha 952$p barcode and 952$9 itemnumber

In Koha's default MARC21 item mapping, 952$p is the barcode. It is a different field from 952$i. The barcode should contain the value your scanner returns during circulation. If you need a barcode range rather than an accession sequence, use the dedicated Koha barcode tool instead.

952$9 is Koha's internal itemnumber. It should not be treated as a locally assigned accession sequence. Koha manages this internal identifier as part of the item database. This generator intentionally does not offer a mode that claims to create Koha itemnumbers.

MARC21 541$e and accession numbers

MARC21 also defines subfield 541$e as an accession number within the Immediate Source of Acquisition Note. The Library of Congress describes it as the identification code assigned to materials acquired in a single and separate transfer of custody. Field 541 is used especially for acquisition/provenance information and is common with original, historical or archival material. Review the Library of Congress MARC21 541 documentation before mapping a routine item-level accession register directly into that field.

The existence of 541$e does not mean that every local book accession number must be placed there. MARC fields have scope and semantics. A migration should preserve what the identifier means in the source system and map it to the target field that best represents that meaning.

Choose a numbering pattern

A good accession pattern is long enough to remain useful but simple enough for staff to read, write and audit. Common structures include:

  • 000001 — one continuous institutional sequence.
  • ACC-000001 — descriptive prefix plus sequence.
  • 2026-000001 — year plus sequence.
  • ACC-2026-000001 — prefix, year and sequence.
  • MAIN/2026/000001 — branch or collection prefix with year.
  • 2026-000001-R — year and sequence with a documented suffix.

Avoid adding decorative characters that have no administrative meaning. Every extra prefix, slash or suffix increases the chance of transcription differences between registers, spreadsheets and labels.

Year-based accession numbers

Many libraries include the year in the accession number, but including a year does not automatically mean the numeric portion must reset each January. Some institutions use 2026-000001 and restart annually; others include the year while maintaining a continuous sequence. Decide the rule before generating a batch.

If your library does reset annually, document who authorizes the reset, what happens to late invoices received in the new year, and whether retrospective cataloguing uses the acquisition year or the current processing year. A generator can produce a sequence, but it cannot choose the correct institutional policy.

The custom pattern supports both {YEAR} for four digits and {YY} for the final two digits. Four-digit years are generally clearer for long-lived registers and migration data.

Why fixed-width numbering matters

Leading zeroes make identifiers easier to sort visually and lexically. With six digits, sequence 12 becomes 000012. Without padding, text-based sorting can place 100 before 20. Fixed width also makes label design and register columns more consistent.

The generator enforces the selected width. If a range starts at 999998 with six digits and asks for five unused values, there is not enough space. The tool reports the overflow instead of returning a mixture of six- and seven-digit suffixes.

Custom token patterns

Choose the Custom template when your institution already has a documented syntax. Supported tokens are:

  • {PREFIX} — the prefix entered in the form.
  • {YEAR} — four-digit year.
  • {YY} — two-digit year.
  • {NUMBER} — the zero-padded sequence.
  • {SUFFIX} — the optional suffix.

The pattern must contain {NUMBER} exactly once. A pattern such as {PREFIX}/{YEAR}/{NUMBER}{SUFFIX} could produce MAIN/2026/000125-R. Unknown tokens are rejected instead of being copied into output unnoticed.

Export accession numbers to CSV, Excel or TXT

After reviewing the range, you can download a UTF-8 CSV, an Excel workbook or a plain-text list. The structured CSV and Excel outputs include the final accession number, numeric sequence, year, prefix and suffix. These extra columns make it easier to audit the batch later or merge it with an accession-register spreadsheet.

If you need a complete accession register with bibliographic and acquisition details rather than only the identifiers, continue with the Library Accession Register Generator. A useful workflow is to generate the approved number range first, then pair each number with title, author, invoice, source, price and acquisition-date information in the register.

Using accession numbers in an Excel-to-MARC workflow

When preparing records for a Koha migration, the accession number may appear in a spreadsheet beside barcode, call number, branch, item type and price. Do not rely on the column heading alone to decide the MARC destination. Determine whether the source accession value represents an inventory number, a barcode, an acquisition note or another local identifier.

The Excel to MARC Converter for Koha Libraries provides a mapping review step before conversion. Use that review to confirm the target field rather than allowing historical spreadsheet terminology to dictate the mapping automatically. After conversion, run the output through the MARC21 Validator and, for a broader project, review the Koha Migration Readiness Checker.

Migration and accession-register planning

Before generating a new range for a migration, identify the highest valid accession number in the source system, duplicate values, cancelled or voided ranges, branch-specific series and any numbers that staff intentionally reserved. A gap is not necessarily an error: the missing number may represent a cancelled order or a historical record that was withdrawn. Do not renumber historical records merely to create a visually continuous sequence unless there is a documented reason.

If multiple branches use separate ranges, encode only as much branch information as your policy requires. A prefix can make ownership obvious, but a branch may later move or merge. Permanent accession identifiers should not become misleading when an item's current location changes.

Worked example

Assume a college library uses the pattern CL-{YEAR}-{NUMBER}. The last assigned value is CL-2026-002450. Staff need 300 new accession numbers and know that values CL-2026-002500 and CL-2026-002650 were reserved for replacement records.

  1. Select the custom or prefix/year template that produces CL-2026-000001-style output.
  2. Enter CL- as the prefix and 2026 as the year.
  3. Use six numeric digits.
  4. Enter CL-2026-002450 in Last accession number.
  5. Paste the two reserved values.
  6. Choose Skip existing/reserved values.
  7. Request 300 numbers.

The first generated value is CL-2026-002451. When the sequence reaches a reserved accession, it skips that value and continues until 300 usable numbers have been produced. The summary reports how many values were skipped so the batch can be reconciled with the register.

Privacy and browser-side processing

The accession sequence, reserved-value comparison and exports are designed to run in your browser. The page does not need a live connection to your Koha database or accession register to calculate the range. Because the tool cannot query those systems, you remain responsible for supplying an accurate reserved list and performing final checks against the production source before assigning identifiers.

Common accession-number mistakes

  • Using the same term for barcode and accession number without defining it. Clarify what each identifier means before migration.
  • Resetting an annual sequence without documenting the policy. Year-based patterns need an explicit reset rule.
  • Changing numeric width mid-year. Pick enough digits for the expected maximum volume.
  • Reusing cancelled numbers automatically. Historical gaps may be meaningful.
  • Generating a range without checking existing records. Compare against the current register or exported identifiers.
  • Manually generating Koha 952$9 itemnumbers. These are Koha internal identifiers.
  • Assuming every accession value belongs in MARC21 541$e. Review the field's acquisition/provenance scope.
  • Ignoring target field length. If you intentionally map the accession to Koha 952$i, keep the current 80-character database limit in mind.

Related VWS Online library tools

For a complete library-data workflow, use the Library Accession Register Generator to build a richer register, the Koha Barcode Generator for new circulation barcode ranges, and the Library Barcode Sheet Generator to print existing identifiers. The MARC to Excel Converter can extract existing MARC/Koha data for analysis, while the Excel to MARC Converter prepares mapped spreadsheet data for MARC-based migration workflows. Use the MARC21 Validator to review resulting records and the MARC21 Record Builder for individual record examples.

Frequently asked questions

What is a library accession number?

It is a locally assigned identifier used to register or track acquired material. The exact format and whether the sequence resets are determined by the library's policy.

Is an accession number the same as a barcode?

Not necessarily. A barcode is normally a scannable circulation or inventory identifier, while an accession number records acquisition or registration. Some libraries intentionally use the same value for both, but that should be a documented policy rather than an assumption.

Can I continue from my last accession number?

Yes. Enter the last accession number. If it matches the selected pattern, prefix, suffix and year, the generator starts with the next numeric sequence.

Can the tool skip accession numbers that already exist?

Yes. Paste existing or reserved values and choose the skip option. The generator continues beyond conflicts until it creates the requested quantity, as long as the selected numeric width has enough remaining capacity.

Can I create year-based accession numbers?

Yes. Use a built-in year template or the {YEAR} or {YY} token in a custom pattern. Decide separately whether your numeric sequence should reset when the year changes.

What is Koha 952$i?

In Koha's MARC21 item mapping, 952$i is the inventory number. Current Koha documentation describes it as free text with an 80-character database limit and distinguishes it from Koha's internal 952$9 itemnumber.

Does MARC21 have an accession-number subfield?

Yes. MARC21 541$e is named Accession number within the Immediate Source of Acquisition Note. Its scope is acquisition/provenance information, so do not assume every routine local accession register must map there.

Can I export the sequence to Excel?

Yes. The result can be downloaded as Excel, UTF-8 CSV or TXT, and you can also copy the full generated list.

Continue the workflow

  1. 1Library Accession Number GeneratorComplete and review this result first.
  2. 2MARC21 Record Builderbuild a structured MARC21 bibliographic record and export it in librarian-friendly formats
  3. 3Excel to MARC Converter for Koha Librariesconvert spreadsheet cataloguing data into MARC21 records for Koha and other MARC-based systems
  4. 4MARC21 Validatorvalidate MARC21 record structure, fields, indicators, subfields and optional Koha 952 item data before import or migration