Skip to content

Series · 7 parts Published July 25, 2026

Safety incident logger

A small system that makes reporting a near miss or an injury fast enough that people actually do it, routes each report to whoever needs it within the hour, tracks the actions that came out of it, and counts what recurs. It never assesses blame and never closes an action on anybody’s behalf. 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 safety incident logger on AWS for a few dollars a month

    The whole system on one page — a forty-second report, a router and a counter — built around the only metric that matters: how many reports you get.

  2. 02

    How a report takes forty seconds

    One screen with three inputs, what is inferred rather than asked, and why the anonymity choice must be offered before somebody types rather than after.

  3. 03

    How a report gets triaged

    Why severity is proposed rather than decided, how routing speed depends on it, the confirmation a person owns, and the one class of report that bypasses everything.

  4. 04

    How safety actions get tracked

    Why an action is a separate object from a report, the two states that get conflated, and what happens to an action nobody closes.

  5. 05

    How safety patterns get counted

    Counting places and equipment rather than people, the three patterns worth surfacing, and the single number that says whether the whole system is working.

  6. 06

    What the safety incident logger costs

    About $1 a month. One Bedrock read per report 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 safety incident logger architecture

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

What is a safety incident logger?
A small serverless system for reporting near misses and injuries from a phone in under a minute, routing each report to the right person the same hour, tracking the actions that follow, and counting what recurs. It records; it does not investigate and it does not assign blame.
Why focus on near misses rather than accidents?
Because accidents get reported anyway — somebody is hurt and there is a process. Near misses are the ones nobody logs, and they are the same event with a different ending. A business that hears about near misses gets to fix things before somebody is hurt.
Does it decide how serious something is?
It proposes a severity from what was described, and a person confirms it. The proposal exists so that a serious report is routed within minutes rather than waiting for somebody to triage a queue, and the confirmation exists because severity is a judgement.
Is a report anonymous?
It can be, and the choice is the reporter’s, made per report. An anonymous report is routed and counted like any other; what it cannot do is have follow-up questions asked, and the form says so before somebody chooses.
What does it cost to run?
A couple of dollars a month. See part six.
All posts