←selected work

Ledger Audit Bench

2026

Agentic Auditor for Spreadsheet Financial Models

2 min read
Five-minute walkthrough of the problem, the design, and the numbers. Playing muted, so turn the sound on.

A spreadsheet never tells you it is wrong. Total a column, forget the last row, and Excel hands back a number that is clean, confident, and wrong. Then you email it to your board. I built a system that makes financial models confess, and brings proof with every accusation.

Built solo over three days for the micro1 Frontier Engineering Challenge 2026, a field of roughly 2,400 engineers. The brief asked for a baseline solution and a meaningfully better one, judged on correctness, reproducibility, and engineering judgment rather than demo polish. See the challenge.

The defects that matter most are invisible on the face of a sheet. A formula edited after the file was last calculated, so the cell displays one number and computes another. An annual churn rate charged in a single month. A closing balance that quietly omits one of its own movement rows. Nothing turns red, so the only defence is a senior person reading every formula by hand, roughly 38 minutes per model, and they still miss things.

A staged pipeline in which every claim the model makes is checked by something deterministic. Eleven checks recompute the workbook independently and decide what is arithmetically true. The model may then propose any cell no rule anticipated, but it has to arrive carrying the formula it believes belongs there, and that formula gets written into a copy of the workbook and executed. If it computes the value the cell already gives, the proposal is discarded however confident the prose was. The output is an audit memo, a proposed-fix workbook that explains its own diff, and a judgment ledger so a decision made in March is not re-litigated in April.

Sole author of the detector layer, the recomputation engine, the agent pipeline, the evaluation harness, and the web interface. I built the baseline deliberately strong, because measuring yourself against a straw man tells you nothing.

Python, openpyxl, formulas, Anthropic API, pytest, uv, Next.js, TypeScript, pnpm