Skip to content

Series · 7 parts Published August 22, 2026

Utility meter reader

A small system that collects meter readings, works out which of them are estimates, measures the overnight baseload that reveals what is left on, normalises gas against the weather, and checks whether the changes anybody made actually saved 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 utility meter reader on AWS for a few dollars a month

    The whole system on one page — collect, normalise, compare — and the two adjustments without which none of the numbers mean anything.

  2. 02

    How a reading becomes a number you can use

    How estimated readings distort a series, why resolution determines what can be found, how meter changes and resets are handled, and normalising for period length.

  3. 03

    What the overnight baseload tells you

    Why the small hours are the most informative period, how to work out what baseload should be, how it is traced, and why a non-zero water baseload is always a leak.

  4. 04

    Why gas needs the weather

    What degree days are and why they work, how a normalised comparison is built, what a changed relationship between temperature and gas means, and the limits of the method.

  5. 05

    How a finding becomes a saving

    Why savings must be verified against the meter, how the before-and-after measurement is set up, the common reasons a fix does not work, and how savings are reported.

  6. 06

    What the utility meter reader costs

    About $1 a month. One Bedrock read per meter 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 utility meter reader architecture

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

What is a utility meter reader?
A small serverless system that collects electricity, gas and water readings, distinguishes estimates from actual readings, and produces findings about what is consuming energy and whether changes worked.
Why do estimated bills matter so much?
Because an estimate followed by a real reading produces a catch-up that looks like a consumption spike in the month it lands, which sends people looking for a problem that happened months earlier.
What is baseload?
What is being consumed when nothing should be running — typically the small hours. It is the single most informative number in the data and usually the cheapest thing to reduce.
Why does gas need weather data?
Because gas consumption is dominated by how cold it was. Comparing this January to last January without adjusting for temperature compares two winters, not two buildings.
What does it cost to run?
A couple of dollars a month. See part six.
All posts