Loading

Record Numbering Overview

Record numbering gives records a human reference — INV-GB-2026-00042 — instead of making somebody quote a database ID.

Where to find it

Architect Panel → Data:

  • Record Numbering — the console — schemes, formats and their counters

Why not just use the ID

Every record already has an ID, but an ID is a poor public reference. It is awkward to read out on the telephone, it carries no indication of what kind of record it is, and it discloses your volumes — anybody quoted ID 41 knows you have had about forty of these.

A reference is also stable in a way an ID is not. It survives a migration between systems, because it is data rather than a row position.

The format is a token template

A scheme holds a format assembled from tokens rather than a fixed prefix-and-number shape. A typical one reads:

{PREFIX}-{ENTITY}-{PERIOD}-{SEQ}

  • PREFIX — a short code you set, such as INV or INC.
  • ENTITY — the legal entity, so two companies never share a series.
  • PERIOD — the current period, usually the year.
  • SEQ — the counter, zero-padded to the width you set.

Because it is a template, you can drop tokens you do not need. A single-entity business with no period reset can run {PREFIX}-{SEQ} and get INC-000042.

Two records can never get the same number

Allocation is atomic, so simultaneous creation cannot produce a collision. This matters more than it sounds — a duplicated invoice number is a genuine accounting problem, not a cosmetic one, and it is exactly the failure a naive "take the highest and add one" implementation produces under load.

Gaps are normal

The counter only moves forwards. Deleting a record does not return its number to the pool, and an abandoned draft leaves a gap.

This is deliberate. Reissuing a number would mean two different records had held the same reference at different times, which is precisely what a reference exists to prevent. Do not treat the numbers as a count: a highest number of INV-2026-00500 does not mean five hundred invoices.

Pad generously

Padding is what keeps references sorting and aligning correctly. Choose a width you will not exhaust — five digits costs nothing and covers 99,999 records per period, where three digits looks tidy until the day it does not.

Worked example

A service desk uses INC- for incidents and REQ- for requests, so the prefix alone tells an agent what they are looking at before they open anything. A finance team uses {PREFIX}-{ENTITY}-{PERIOD}-{SEQ} for sales invoices, giving INV-GB-2026-00042 — readable, per-company, and per-year, from one scheme.

Recommendations

  • Use distinct prefixes so the reference identifies the record type.
  • Pad to five digits unless you have a reason not to.
  • Include the entity token if you have more than one company, even if you only have two.
  • Never explain a gap as an error — it is how the counter is meant to behave.