Deterministic signals, configurable scoring, portfolio monitoring, and a typed AI query plane over monthly area time-series. One API, one methodology, version-pinned per organisation.
An underwriter wants crime, deprivation, education, and price context for a postcode. They open four tabs, copy numbers into a spreadsheet, and hope the dates line up. A site selection team wants to rank 40,000 catchments against their own criteria. They cannot, because no single API answers a compound query against the ONS spine with country-correct percentiles.
We built the layer underneath. The same official sources every compliance team already trusts, but stitched into one API with the dating, attribution, and percentile scoping done correctly by construction. Methodology version stamped on every response. Sample-size gates on every change-detection job. A published methodology behind every architectural choice.
It exists so the underwriter, the planner, the site selection lead, and the analyst all pull from the same numbers, with the same methodology, on the same engine version. Decision-grade by construction. Auditable on first request.
These aren’t marketing words. Each one is enforced in code, documented in /methodology, and citable in your audit footnote.
The engine sets the number, not the AI. Every score, signal, and percentile is computed by a versioned SQL + rules pipeline you can replay byte-for-byte. AI sits on top as a planner and a query plane, never as the source of truth.
Every dimension, every weight, every aggregation step is documented on /methodology. The methodology version is stamped on every response. If a number lands in your report, the trail is citable.
Natural-language queries emit a typed plan (Zod-strict JSON) before any SQL runs. The same plan replays without an LLM call. The AI is auditable because it is not the executor.
When the underlying data is thin, confidence drops and the response says why. Price moves on two transactions never trigger a webhook. We would rather say less than say something wrong.
Methodology version locks per-org. Your contract cycle survives engine upgrades. Two calls in the same window return the same numbers across deploys.
England compared against England, Scotland against Scotland, Wales against Wales. No cross-border lies. Three official deprivation methodologies, three percentile spaces, by design.
OneGoodArea is built lean by a small team. The first phase was the engine: the ONS postcode spine, the three national deprivation methodologies, the price and crime time-series, the confidence rubric, the version stamp. The four products you see today (Signals, Scores, Monitor, Intelligence) all sit on that same core. Same numbers, four shapes.
AI joined the stack only after the engine was deterministic and the methodology was published. The planner emits a typed plan first; the SQL runs second; the LLM never touches the numbers. That ordering is the architecture, not a slogan. It is the reason a public sector analyst can replay an AI query a year later, without an LLM call, and get the same rows.
Whichever it is, the fastest channel is the one below you already use.
We read everything that lands here.
Engineering and product updates as we ship.
Longer-form notes and hiring when we open roles.