Skip to content
CodelessOps

Grounded · Technical · Engineering record

I published an exam for finance AI, then sat my own tool for it.

I can't publish the application code; the course licence forbids it. So the record is public instead: every decision with its date, the measurements, the incidents and the rule each one left behind, what is mine and what came with the scaffold, and every feature tagged built or backlog. If you're deciding whether I build serious software, this is the page to read slowly.

01 · The numbers

81/81

The Board Pack Test: 34 realistic finance documents, 25 questions, a deterministic grader. Grounded scored the ceiling; raw frontier chat scored 66 and 71 of the 81 machine-checkable points.

After a human judgment pass every frontier tool lands between 95 and 100, and the best raw model beat Grounded by one point. The edge is in what survives checking with no person in the loop.

Cost per answered question$0.18 median, $0.31 at the 90th percentile
Input tokens served from cacheAbout 77%
Reranker lift, right document ranked first0.42 to 0.75 on one corpus, 0.44 to 0.72 on another
Time to answer a lookup question12 to 20 seconds
Unit tests, fast tier925 passing in about 20 seconds
Security and isolation tests95

02 · What I built on the scaffold

Grounded started as a fork of a retrieval application from a paid course. That scaffold had a chat loop, search, document ingestion and a front end, and it was a serious piece of software. What I built on it is everything that makes the answers safe to rely on in a finance team.

Verification

A guard that checks every figure in an answer after it is written, and refuses when one can't be traced. A calculator in code for the arithmetic. The trust chain shown under each answer.

Spreadsheets

An extractor that keeps the grid, the sheet and the cell reference for every value, and a viewer that opens the workbook with the cited cell highlighted.

Retrieval quality

A retrieval-only test that found the reranker had never run. Turning it on, with retries and tests, and ranking that demotes superseded documents.

Evals

A golden-question runner with sources asserted in code, an evals page in the app, and the Board Pack Test with its grader.

Tenancy and secrets

Organisations as tenants, with retrieval and citations scoped to each one, encrypted model keys per organisation, and 95 security and isolation tests.

Audit

Audit packages that survive a deleted conversation, and a page to read them on.

Integration

Grounded as an MCP server, a Slack bot, and a month-end close suite of skills.

Operations

The deployment runbook, tracing and cost alerts, and a tiered test runner with a pre-commit hook.

What is mine and what is the scaffold, in full

03 · Decisions and mistakes

Fourteen decision records, eight incidents, all public.

What I would do differently

  • Build the test before the feature. The retrieval test took an afternoon and found a reranker that had never run.
  • Make the tests cheap from the start. Once a run cost nothing I ran them constantly, and quality moved.
  • Publish the benchmark on day one. It was the most useful thing I built and the last thing I started.

All fourteen decision records, dated

04 · Every feature, by the moment you reach for it

Working on now, October 2026: this site family, and the public close plugin for Claude.

Each line says where it stands. Built runs today. Backlog is not built; I would build it against a real team's close rather than guess.

When you need a number

  • builtAsk in plain English. The answer cites the file, the sheet and the cell range, and the workbook opens with that cell highlighted.
  • builtEvery figure in the answer is checked by code after it is written. One that cannot be traced is held back and the answer says so.
  • builtArithmetic runs in a calculator, not the model. The trust chain under the answer shows the inputs, the computation and the result.
  • builtMarket and industry context from the web, always labelled external, never blended with the company's own numbers.
  • backlogSettings a controller can change: web search on or off, how strict the number guard is.

When two reports disagree

  • builtReconcile a figure across documents: ties, near miss, material mismatch or cannot reconcile, with both sources cited.
  • backlogCheck the numbers against the words: recognised revenue against the contract, spend against the policy, commentary against the actuals.

When you run the close

  • builtA close checklist that reads your own close calendar, shows the steps with owners, and runs each step with a reviewer gate between them.
  • builtThe WD3 flash: revenue, margin and operating profit against budget, top variances called out, every figure cited.
  • builtManual journals checked against the delegation of authority, each one presented for an approve or query decision, decisions kept in a log.
  • builtAccrual completeness: what posted after the ledger cut, why the department export disagrees with the pack.
  • builtThe bank rec: statement to cashbook to the pack's cash position, timing differences verified, stale items flagged for a person.
  • builtThe variance pack: every P&L line against budget, material variances investigated to their drivers, commentary drafted for sign-off.
  • backlogThe approved pack generated as a file, with the driver decomposition behind each line.
  • backlogFigures pulled live from the ledger or the planning system (Xero, NetSuite, Anaplan), each one citing the system, the report and the timestamp.

When the CFO asks "what if"

  • builtAdvisory mode: a research pipeline over the documents that answers in three tiers, facts cited to cells, assumptions stated and editable, opinion derived only from those two.
  • backlogScenarios: close a department, invest in a product. Avoidable cost separated from allocated overhead, and a plain statement of what the files cannot separate.
  • backlogSensitivity: which inputs move the result most, computed over cited baselines.
  • backlogBoard prep: given the pack, the hardest questions the board will ask, with cited draft answers.
  • backlogA takeaway model: the scenario as a small spreadsheet, inputs annotated with their source cells, outputs formula-driven.
  • backlogDashboards as generated, cited artifacts, and a memo composer for the commentary that goes with them.

When the auditors come

  • builtEvery answer kept as an audit package: the question, the answer, the sources and the checks. It survives the conversation being deleted.
  • builtReviewer decisions recorded in the run, so the close has a who-signed as well as a what-happened.
  • builtPersonal data redacted before the model sees it, and a check that the redaction never alters a number.
  • builtEach organisation is its own tenant: retrieval, citations and model keys scoped to it, isolation covered by tests. A documents-only policy per organisation, with web search off.

When you want to know if you can trust it

  • builtYour own golden questions in the app: known answers, sources asserted in code, a judge, and a score before every release.
  • builtThe Board Pack Test, a public benchmark with its grader, run against the same engine.
  • builtTracing on every run, a cost budget per day, and an alert when the hallucination judge drifts.
  • backlogThe golden suites as a gate in the deployment pipeline, so a release that drops the score does not ship.

Where it lives

  • builtIn the browser, as a Slack bot, and as an MCP server so Claude or any agent can ask it and get the cited answer back.
  • backlogThe close skills packaged as a public plugin for Claude, with a shared run log of every automation, exception and sign-off.

05 · The films, dated

September 2026Caldergate walkthrough · One question landing, the citation opening the cell, a refusal, the close.
September 2026Caldergate, newcomer cut · The onboarding questions.
24 August 2026Your AI doesn't know which budget is real · Version-correct answers, the full film.
24 August 2026Why your AI can't find your invoice · The three searches every document AI runs, taught in eight minutes.
August 2026Watch one $2.1M travel through an entire close · The biotech corpus, the late accrual found and followed.

06 · How it is tested

Four tiers: fast (925 unit tests, under a minute, pre-commit on backend changes), API, smoke (six stable golden questions, all of which must pass) and gates (the full golden suites, three runs each). Golden questions never run automatically in CI (ADR 0014). If a release drops the score, a person running the gate catches it, and I set it up that way deliberately. Every run is traced, and there's a daily cost budget and a hallucination-judge alert.

The evals page in the app: the organisation's golden questions and runs
Real app, fictional company, captured 12 October 2026.

The engineering record on GitHub

Hiring?

Need this kind of build on your team?

I take contract roles in finance automation and FP&A systems. Ask me anything about how Grounded works; I'm happy to walk through the parts that broke as well as the parts that worked.