The Receipt Numbered 58 After 41
A tenant asks why their receipt is numbered 58 when last month's was 41. It is a fair question, it has an answer, and for five of our document types the honest answer used to be that the missing numbers belonged to somebody else's business.
Nobody thinks about document numbers until somebody asks about one. Then it turns out to be a surprisingly load-bearing detail: a tenant comparing two receipts, an auditor sampling a sequence, a landlord reconciling a year, or a revenue authority asking to see everything between two figures.
The question is always the same. Why does this one follow that one, and what happened to the numbers in between?
There are good answers and bad ones, and the difference matters more in property than in most sectors, because a managing agent issues receipts to people who compare them with each other.
What a document number is expected to do
It looks like a label and it is doing four jobs at once, which is why getting it wrong causes trouble out of proportion to the field.
- Identify uniquely. Two documents must never share a number, or a reference to one is a reference to either.
- Order chronologically. A higher number should mean later. This is what makes a sequence readable at all.
- Demonstrate completeness. If the sequence runs unbroken, everything issued is accounted for. This is the property an auditor is actually testing when they sample it.
- Belong to you. Your numbering should reflect your business and nobody else's, which sounds too obvious to state and is exactly the thing that went wrong below.
The third one is the reason gaps attract attention. A gap in a receipt sequence has two possible explanations — a document was issued and then removed, or the numbering skips — and only one of those is innocent. Somebody who does not know which is looking at the other.
A gap has two explanations: a document was issued and destroyed, or the numbering skips. Someone who does not know which is looking at the first one.
How the numbering works now
Nine kinds of document are numbered — invoices, quotations, purchase orders, credit notes, point-of-sale sales and returns, assets, asset custodians and employees. Each gets a prefix, the year, and a padded counter.
The counter lives in its own table, keyed on your organization, the document type and the year, and it is read under a row lock inside a transaction. That lock is the part that matters operationally: two people creating an invoice at the same instant cannot be handed the same number, because the second request waits for the first to finish rather than reading the same value.
Counters reset each year, so your invoice numbering restarts at one every January with the year in the reference. That is deliberate — a sequence that runs to six figures across a decade tells you nothing at a glance, while one that resets annually makes the year the natural unit of review, which is also how an auditor will ask for it.
| Property | Behaviour |
|---|---|
| Scope | Per organization, per document type, per year |
| Concurrency | A row lock, so two simultaneous requests cannot collide |
| Format | Prefix, year, and a zero-padded counter |
| Reset | Annually — the year is carried in the reference |
| Types covered | Nine, from invoices to employee numbers |
Why five of them used to skip
This is the part worth publishing rather than quietly fixing, because it is a good illustration of how a defect can be somebody's correct decision.
Five of the nine — invoices, purchase orders, credit notes, and both point-of-sale types — used to have their next number computed by scanning the whole table rather than just your organization's rows. So the next number was one more than the highest anybody on the installation had reached, not one more than yours.
The consequence was visible and inexplicable: your invoice numbers skipped. Forty-one, then fifty-eight, with nothing in between and nothing in your business that accounted for it. The missing numbers had been consumed by other organizations you have never heard of.
And it was not carelessness. Those five number columns each carried a uniqueness constraint that did not include the organization, which on a shared deployment makes a single number space for everybody. Without the global scan, the second organization to reach the first invoice number of the year would have hit a constraint violation and been unable to save. The scan was the correct compensation for the schema as it stood.
Fixed on 6 August 2026, and it took two changes
The uniqueness constraints were replaced with ones that include the organization, and only then could the scan be narrowed. Either change alone makes things worse — narrowing the scan without the schema change brings back the save failures, and changing the schema without narrowing the scan leaves the skipping in place with nothing requiring it. Numbering is now genuinely per organization across all nine types.
What AWRA OpsHub does today
- Per-organization, per-year sequences across nine document types, with a prefix and zero padding.
- A row lock on the counter, so simultaneous requests cannot be handed the same number.
- Annual reset with the year in the reference, which makes the year the natural unit of review.
- Numbering scoped to your business alone — the cross-organization scan that caused skipping was removed on 6 August 2026, along with the schema constraint that required it.
What it does not do
- No per-building or per-property series. Sequences are per organization and per document type, so a managing agent cannot run separate receipt numbering per building or per landlord.
- No gap report. Nothing lists the numbers that were issued and no longer exist, so demonstrating completeness to an auditor means exporting the sequence and reading it.
- Numbering is not a legal fiscal series. Where a revenue authority requires a controlled sequence, its own rules govern, and this is an internal reference rather than a certified one.
Not ours, by choice
- We will not renumber documents to close a gap. A number that was issued was issued, and a system that tidies a sequence afterwards is producing a document trail that no longer describes what happened.
- We will not reuse a number. If a document is cancelled, its number stays consumed rather than being handed to the next one, because a reused reference means two different documents answer to the same name.
Per-building or per-landlord series, and a gap report that lists issued-then-removed numbers with what happened to each, are both scope rather than ceilings. The sequence table, the locking and the trash lifecycle ledger that records deletions all exist and work.
The historic skipping is worth knowing about specifically if you were operating before August 2026 and have invoice or receipt numbering from that period. Those gaps are real, they are in your data, and they have the explanation given above — which is a better thing to be able to tell an auditor than "we do not know".
What to do about gaps you already have
Whether they came from the behaviour above or from ordinary cancellations, existing gaps are worth understanding before somebody asks about them rather than while they are asking.
-
Export the sequence for the period
One column, sorted. Reading a numeric sequence for breaks takes minutes and is the only way to know whether you have any.
-
Separate the two causes
A gap that is a run of several consecutive numbers is almost certainly the scanning behaviour. A single missing number in an otherwise unbroken run is usually a cancelled or deleted document.
-
Account for the single ones
Find out what each was. A cancelled invoice is a perfectly good answer as long as you can give it, and the deletion ledger records what was removed and by whom.
-
Write the explanation down once
Not for each gap — a short note covering the period, kept with your year-end papers, so the next person to be asked does not have to re-derive it. An explanation offered before it is requested carries considerably more weight than one produced afterwards.
-
Check the current year is clean
Sequences from after the fix should be unbroken except where documents were genuinely cancelled. If they are not, that is worth raising rather than assuming.
The fourth step is the one that pays. An auditor who asks about a gap and receives an immediate, specific, unembarrassed answer moves on. One who receives an investigation samples more.
Numbering as a matter of trust
It is worth ending on why this deserves attention at all, because a numbering scheme is easy to treat as cosmetic.
A managing agent holds money that belongs to other people and issues documents saying what happened to it. The entire relationship rests on those documents being reliable, and a tenant or landlord assessing reliability does not audit your controls — they look at the artefacts they can see. A receipt that follows on sensibly from the last one is a small, constant, unspoken signal that the business is in order.
The inverse is also true and less forgiving. A tenant who notices that receipt fifty-eight followed receipt forty-one does not conclude that there is an index scoping problem. They wonder what happened to the sixteen receipts in between, and once that thought exists it is not removed by an explanation about database constraints.
The trust-money discipline this sits inside is in deposits and landlord funds, the reporting that owners judge you on in owner statements and payouts, and the receipting side of collection in rent and service-charge collection.
Our take
Export your invoice and receipt sequences for the last two years and read them for breaks — it takes twenty minutes and you will either find nothing, which is worth knowing, or find gaps you would rather discover yourself. Runs of consecutive missing numbers from before August 2026 have the explanation given here and it is a good one; single missing numbers are cancellations and are worth being able to name. Write the explanation down once, keep it with your year-end papers, and you will never have to derive it under pressure in front of somebody who is already curious.
See how documents are numbered
Per-organization, per-year sequences across nine document types, a row lock so concurrent requests cannot collide, and numbering that reflects your business rather than the installation.
Explore document controlsFrequently asked questions
Why did our invoice numbers skip?
If the gaps predate August 2026 and appear as runs of several consecutive missing numbers, it is almost certainly this: five document types — invoices, purchase orders, credit notes and both point-of-sale types — used to compute their next number by scanning every organization's rows rather than yours. So your counter advanced past numbers consumed by businesses you have never heard of. It was the correct compensation for a uniqueness constraint that did not include the organization, and both were fixed together on 6 August 2026.
Is numbering now scoped to us alone?
Yes, across all nine document types. The uniqueness constraints were replaced with ones that include the organization, and only then was the scan narrowed — the two changes had to happen together, because narrowing the scan alone would have reintroduced save failures when a second organization reached the same number. Sequences from after that date should be unbroken except where documents were genuinely cancelled.
Can two people create an invoice at the same moment and get the same number?
No. The counter is read under a row lock inside a transaction, keyed on your organization, the document type and the year, so a second request waits for the first to complete rather than reading the same value. This is the failure mode worth asking any vendor about, because it produces duplicate references under exactly the load — month end, a busy collection day — when you can least afford to untangle them.
Do numbers restart each year?
Yes, with the year carried in the reference. That is deliberate: a counter running to six figures across a decade tells you nothing at a glance, while an annual reset makes the year the natural unit of review — which is also the unit an auditor will ask for. It does mean the number alone is not unique across years, so always quote the full reference including the year rather than the counter on its own.
Can we number receipts separately per building?
No. Sequences are per organization and per document type, so a managing agent cannot run a separate series per building or per landlord. In practice most agencies handle this by carrying the building reference in a field rather than in the number, which reports perfectly well. Per-series numbering is a well-defined addition if the distinction genuinely matters to how your owners read their documents.
What do we tell an auditor who asks about a gap?
Have the answer ready rather than deriving it under pressure. Export the sequence, separate runs of consecutive missing numbers — which are the historic scanning behaviour — from single missing numbers, which are cancellations you should be able to name individually. Write it up once as a short note kept with your year-end papers. An explanation offered before it is requested carries considerably more weight than one produced afterwards, and an auditor who gets an immediate specific answer moves on rather than sampling more.