Skip to content

Series · 7 parts Published July 11, 2026

Cash drawer reconciler

A small system that takes the end-of-shift count and the till report, works out the variance, tries to explain it from the day’s own records — a refund, a no-sale, a float change, a tip-out — and surfaces only what is left. It never accuses anybody of anything and it never looks at one person in isolation. Seven posts on the same system — one diagram at a time — with a cost breakdown and an engineering reference at the end.

  1. 01

    A cash drawer reconciler on AWS for a few dollars a month

    The whole system on one page — a reader, an explainer and a surfacer — plus the rule that keeps it decent: it explains before it reports, and it never looks at one shift in isolation.

  2. 02

    How a close gets recorded

    Two inputs that arrive separately and must be paired — a photographed count sheet and a till report. How they get matched to one shift, and what happens when only one of them shows up.

  3. 03

    How a variance gets explained

    Five lookups run in order of likelihood — cash refunds rung as card, no-sales, float changes, safe drops and tip-outs — most of which explain the whole variance before anybody is told a number.

  4. 04

    How a cash pattern gets surfaced

    A rolling window over residual variance per till and shift slot. Three patterns are worth a message, single shifts never are, and exactly one case skips the window entirely.

  5. 05

    How a cash finding gets closed

    A finding closes by recording a cause, which suppresses that pattern until it changes shape. The monthly summary carries two numbers about the money and two about whether the thresholds are set right.

  6. 06

    What the cash drawer reconciler costs

    About $3 a month. One Bedrock read per close is the only line that grows; the queue, the table, the mail and the storage are rounding errors. Plus the three ways the bill could surprise you.

  7. 07

    Engineering reference: the cash drawer reconciler architecture

    Same system, drawn purely for engineers. Service names, region, Lambda inventory, IAM scopes, the schemas and the exact model id.

What is a cash drawer reconciler?
A small serverless system that compares the counted cash at the end of a shift with what the till says should be there, works out the variance, and tries to explain it from the day’s own records before telling anybody. Only unexplained variance above a threshold you set reaches a person.
Does it accuse staff of taking money?
No, and the design is built to avoid it. Almost all variance is a mis-keyed refund, a float that was changed and not recorded, or a note miscounted at eleven at night. The system explains what it can, aggregates over time rather than reacting to single shifts, and phrases everything as a question about a till, not a person.
What does it compare against?
The till or point-of-sale report for the same shift, the day’s refunds and no-sales, the recorded float, and any tip-out or safe drop logged during the shift. All of those already exist; the system just puts them in one place.
What if the count sheet is handwritten?
That is the normal case. A photo of the count sheet is a first-class input: Textract pulls the denomination grid and anything the reader cannot read confidently becomes a question with the crop attached, never a guessed number.
What does it cost to run?
A few dollars a month for a handful of tills. Nothing is always-on. See part six.
All posts