Skip to content
Fikacare
Blog

Receipt gaps and where the money goes

By Fikacare team 5 min read

A receipt book works because the numbers run in order. Fikacare keeps that property in software, even on a machine that is cut off, and shows the owner every gap the same day with a name attached.

A receipt book has one property that matters more than any other: the numbers run in order. When a hospital owner sits down with the day's takings, the numbers are how they know the takings are complete. If the book runs from 1041 to 1096, there should be fifty-six receipts and the cash to match. A missing number is a question, and it is a question with a name attached, because somebody had that book.

Software often loses this property without anyone noticing. A receipt number typed by hand can be mistyped or reused. A number handed out by a central server is unavailable whenever the server is, so the cashier writes a manual receipt and the sequence has a hole that is filled, or not, later. Either way the owner is back to a reconciliation at month end that starts with an unexplained difference and works backwards.

Why a gap matters

A gap in receipt numbers is not always theft. It can be a voided receipt, a printer jam, a receipt written during an outage and never entered, or an honest mistake. The point is that the owner cannot tell which without asking, and if the question is asked weeks later nobody remembers. Every unexplained gap spends a little trust, and over a year that adds up to a reconciliation nobody believes.

Fikacare treats receipt continuity as a hard rule of the system rather than a report run at the end of the month. Numbers are issued by the system, never typed. A void consumes its number permanently, requires a reason and an authorising role, and appears in the report. And the check for missing numbers runs continuously, so a gap is an exception raised today rather than a mystery found in the audit.

Where the numbers come from when the machine is cut off

The obvious way to guarantee an unbroken sequence is to have one central counter. That works until the counter cannot be reached, which in a Nigerian hospital is a normal afternoon.

Fikacare uses number blocks instead. The cloud issues each hospital's hub a large range of numbers for every series it keeps: receipts, patient card numbers, laboratory accession numbers, claim numbers, admission numbers. The hub issues smaller sub-blocks from that range to each station. The cashier's machine therefore already holds the next several hundred receipt numbers before it needs them, and it asks for another block well before the current one runs out. It can hold two at once.

Because the blocks do not overlap, a cashier who is entirely cut off from the hub, the internet and every other machine can still issue receipt numbers that are guaranteed not to clash with anyone else's. When the connection returns, the receipts sync like every other record and take their place in the sequence.

There is one further rule, carried over from the retail till software Fikazon built before Fikacare. A receipt number is reserved inside the same database transaction as the receipt itself. If the receipt is not saved, for whatever reason, the number is not consumed. A number is only ever spent on a receipt that exists.

If a machine were somehow to exhaust every block it holds while alone, it would still receipt, using a clearly marked provisional number that is back-filled when the hub is reached and flagged in the report until then. This branch exists so that nothing ever stops a patient being served. In ordinary operation it should never be seen, and if it is, the portal raises an alert.

Money is a ledger, not a balance

Behind the receipts sits a second rule. Fikacare has no editable balance anywhere. A patient's outstanding amount, a cashier's takings for the day and the hospital's cash position are all sums of the transactions that make them up. Nobody can adjust a figure without creating a transaction that says so, with an author and a time.

Each cashier works in a cash session: opened with a float, closed with a declared count. The difference between what the ledger says should be in the drawer and what the cashier declares is posted as a variance and reported. It is not hidden and it is not smoothed over.

What the owner sees

The receipt continuity report is the daily answer to the question the receipt book used to answer. For each series and each machine it shows the range issued, the numbers used, every void with its reason and the person who authorised it, and any number that is missing. A missing number is listed with the machine and the cashier session it belongs to, so the question can be asked the same day, of the right person.

The daily cash-up report sits alongside it: receipts by payment method, voids, refunds, deposits, cash declared against cash expected, and what was banked. Every figure on it can be opened to show the receipts that make it up, on the machine in the hospital and in the owner's portal.

None of this asks anyone to type a summary. The figures come from the receipts themselves, and the receipts come from a sequence that cannot silently break. That is the whole idea: the owner should be able to trust the number at the top because every number under it is accounted for.