For Anyone at All
A finance analyst had a job that took days of spreadsheet work every month. Over about four months he built the thing that does it instead. This is what it is, in plain words.
Built on 2026-09-17. Every count and date here was read off the files as the page was made, not typed in.
Every month a company has to explain the gap between what it planned to pay for things and what it actually paid. That sounds small. It is not. The data arrives as a very large export, in more than one shape, from more than one system, and the explanation has to hold up in front of people who are going to act on it.
The way it was done was by hand. Open the export, build the pivots, chase the lines that moved, type the answers into a workbook, send it. Days, every month, and every month from nothing. A mistake made in the first week stayed invisible until somebody happened to ask the right question in the fourth.
One application you open in a browser. You give it the export and it produces the analysis: the charts, the forecast, the month end close, and the sheets that actually get sent to people.
It is a single file. Nothing to install, no account, no server it phones home to. The data you give it stays inside your own browser tab and is never uploaded anywhere. That was a deliberate choice and it is the reason the thing could be built at all: nobody needs to grant permission for a file to run on your own machine.
Underneath it there is a small warehouse of history, so a question spanning several months is answered in seconds instead of by opening nine spreadsheets. And there is a service that can feed the application directly, so eventually the file does not have to be dragged in at all.
Most of a week a month of manual spreadsheet work, and the part of it that never got done at all: explaining every line that moved, rather than the handful somebody happened to ask about.
It also replaces trust with proof. What goes out is a workbook where every figure is a formula you can click and follow back to where it came from, rather than a value somebody pasted in.
Two reasons, and neither of them is the application itself.
The first is that it is checked by machine rather than by clicking around. Screens are photographed and compared automatically, a gate refuses a broken version outright, and a figure cannot be reported at all unless an independent check on it is attached and passing. Each of those exists because a specific mistake got through once, and each one has been deliberately broken on purpose to prove it actually refuses. A check that has never been shown to fail is a claim, not a check.
The second is that it is honest about itself. These pages are generated from the files: the counts, the sizes and the dates are read off the machine every time they are built. Things that are half finished are listed as half finished with the line saying what is missing, and a thing that gets deleted turns red on the page rather than quietly vanishing from it. Nothing here is a screenshot of an intention.
There are 29 pieces working today. The rest are listed beside them with what they still need.
One person, working alongside an AI assistant, in evenings and weekends, starting from never having written software.
That is worth saying plainly, because the interesting part is not the code. It is that the whole thing was designed so that it does not depend on anybody remembering anything. The rules are enforced by scripts that refuse. The open questions are dated and aged automatically. Every session's work is written down while it happens rather than afterwards. It was built to survive being handed to somebody else.
There are no company figures, customer names or supplier names anywhere on these three pages. That is not a promise, it is a check: the generator refuses to write a page carrying one, and a second check reads the finished pages against the real data before they are published and refuses on a match. Generated by scripts/what_is_here.py.