An asset register keeper on AWS for a few dollars a month
The register lists four hundred and eleven items. A walk round the building finds three hundred and forty of them, twelve things that are not on it at all, and a storeroom of equipment that was replaced in 2021 and never removed from anything. Nobody has done anything wrong; there is simply no moment at which disposal gets recorded.

Key takeaways
- Registers drift because acquisition has a trigger and disposal has none.
- Decide which of the four purposes you are serving before choosing fields.
- Verify by sampling continuously, not by auditing annually.
- A physical label on the thing is unglamorous and is most of the solution.
- Designed on AWS for about $2 a month.
The whole system on one page
Before any code, here is the shape of what we are designing.
- Compute
- Machine learning
- Front-end & mobile
- People
The asymmetry
Buying something produces an invoice, a payment, a delivery and a person who wanted it. There are several natural moments at which it can be added to a register and at least one of them usually happens.
Disposing of something produces nothing. A laptop goes in a cupboard, a machine is taken away by a scrap merchant, a monitor stops working and is put in a skip. None of those events touches finance, none of them generates a document, and none of them causes anybody to open the register.
What runs (the inside)
- Add. Driven from purchasing above a threshold, with a label printed. Part 3.
- Move and dispose. Making both take seconds, because anything slower does not happen. Part 3.
- Verify. Sampling a portion continuously so that drift is measured rather than discovered. Part 4.
One asset, end to end
- Compute
- Machine learning
- Front-end & mobile
In plain words
An invoice comes in for a piece of equipment above the threshold. It is flagged, a label with a code is printed, and somebody sticks it on the thing when it arrives and scans it into a location. That takes about twenty seconds and it is the whole acquisition process.
Over the next few years it moves twice, and each time somebody scans the label and picks a new location from a short list. In 2029 it is replaced, and whoever removes it scans it and picks a disposal reason: scrapped, sold, traded in, stolen, lost.
Meanwhile, every month a handful of assets are sampled: a list of twenty appears on somebody’s phone, they go and look, and they confirm or correct. That is the verification, and it produces a measured accuracy figure rather than an annual surprise.
Design rules that shaped every decision
- Decide the purpose first; the fields follow from it.
- Disposal must be as easy as acquisition, or the register only grows.
- Physical labels on things. There is no software substitute.
- Sample continuously; never plan an annual full count.
- Record the accuracy figure and watch it, rather than assuming.
- A missing asset is a state, not a deletion.
Why this shape
Asset registers are usually built as a finance artefact and then asked to do three other jobs badly. The result is a spreadsheet with a purchase price, a depreciation calculation, a serial number and a location field that has said “main office” for six years.
Deciding which purpose dominates, and being explicit that the others are secondary, produces a register that is genuinely useful for one thing rather than nominally useful for four.
The next four posts walk through each piece: what the register is actually for, how things get onto it and off it, how it gets verified without a full audit, and what a good register tells you. One diagram per post, a cost breakdown, and an engineering reference at the end.
All posts