Skip to content

Series · 7 parts Published July 15, 2026

Tax rate updater

A small system that keeps a register of every tax rate and threshold your business has written down somewhere — in a price list, a spreadsheet, a config file — watches the official publications for changes to them, and puts a dated change in front of a person with the list of places that need editing. It never edits anything. 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 tax rate updater on AWS for a few dollars a month

    The whole system on one page — a register, a watcher and a notifier — and the insight it is built on: the dangerous rates are the ones no API knows you have.

  2. 02

    How the rate register works

    What is in a register row, the four ways to find rates nobody remembers, and why the “used in” column is the one thing no software can supply for you.

  3. 03

    How a source gets read

    Fetching a government page without breaking on every redesign: anchoring on the label rather than the markup, keeping the snapshot, and treating unreadable as an alarm rather than as silence.

  4. 04

    How a rate change gets dated

    Announcement and effect are months apart, and the gap is where the value is. Reading the effective date, what to do when there is not one, and the transitional cases that catch people out.

  5. 05

    How the rate reminder works

    The second notice four weeks before the effective date, the per-place checklist with a tick per location, and why acknowledgement is the only interaction the system ever asks for.

  6. 06

    What the tax rate updater costs

    About $2 a month. One Bedrock read per source check 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 tax rate updater architecture

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

What is a tax rate updater?
A small serverless system that keeps a register of the tax rates and thresholds your business relies on, watches the official sources that publish them, and tells a person when one changes — with the effective date and the list of places in your business that hold that number. It never edits anything itself.
Why not just use a tax API?
For calculating tax on a transaction, you should. This solves a different problem: the rates that are not in any API because they are typed into a price list, a quoting spreadsheet, a printed rate card and a config file. Those are the ones that go stale, and no API knows they exist.
Does it change any of my systems?
No, deliberately. It produces a dated change notice and a checklist of the places the number appears. Editing a live price list is a business decision with pricing and contract consequences, and it belongs to a person.
How does it know where a rate is used?
You tell it, once, in a register. Each entry is a rate, the official source that publishes it, and the list of places in your business that hold a copy. Building that register is the real work and it is worth doing even without any code.
What does it cost to run?
A couple of dollars a month. It checks a handful of sources on a schedule and almost never finds anything. See part six.
All posts