Case study · Civil engineering
Too complex to get
right by hand.
These reports were being produced by an outside professional contractor, and several of them came back wrong. The errors reached councils, the client's sales suffered for it, and the cost of a mistake turned out to be commercial rather than clerical. What they needed wasn't reports produced faster. It was reports that couldn't be got wrong.
What a wrong report costs
A protected habitat is failing because of nitrogen and phosphorus, so no new home may add to the load. Replacing a failing septic system with a treatment plant removes load, and the difference is a tradeable credit. The report is what proves the difference is real — and it is read by a planning authority deciding whether houses get built.
So a report that doesn't hold up isn't a document to be reissued. It is a decision that goes the wrong way, a customer who doesn't complete, and a reputation that takes the hit in front of the one audience the business has to be trusted by. Several wrong reports in a row is a sales problem, and that is what it became.
Why it kept going wrong
Nothing about the errors was exotic. The work is simply too intricate to hold in one head. Each report has to settle, per site: which catchment the property sits in and therefore which regulator's methodology applies; how far the nearest surface water is, measured to the water body's edge rather than its centreline; whether the discharge sits in a groundwater source protection zone; how close the nearest designated site is; what the ground does with the water. Then the arithmetic, cited clause by clause.
Assembled by hand, every one of those is a place to make an ordinary mistake — the wrong occupancy figure for a property type, a distance taken from the wrong feature, a number carried out of the calculator with a digit transposed. None of them look wrong on the page. Checking is no answer either: re-reading your own arithmetic is the one task people are worst at, and a second pair of eyes on seventeen dense pages is expensive and still fallible.
Which is why the brief wasn't a tighter checking process. It was to stop the report being assembled by hand at all.
Evidence, not assertion
The engine doesn't claim a determination, it shows it. Proximity to surface water, other discharges within 200 m, source protection zones, designated sites — each gets a figure drawn from the live dataset, with the measurement on the map and the distance printed on it.
Every caption names the dataset it came from and the date it was read. A reviewer who doubts a figure can go and check that specific claim against that specific source.


Every number names where it came from
The appendices are built from the report's own data in the same render as the body — not screenshots of a spreadsheet showing somebody else's numbers. Each row names its source and the calculator item it answers to, so a planning officer can reproduce the sheet line by line, and the loads are shown as the worked sum rather than a result.
Fidelity to the published method is the whole point, down to the details that look like typos. Norfolk's calculator counts 365 days a year; Kent's counts 365.25. Two methodologies, implemented and verified separately, rather than one approximated by the other.
It can't be cheated
Before anything is emitted, eleven encoded rules run over the assembled report in a fixed order, each citing the clause it enforces. Only three certified treatment units are accepted. Occupancy and water use must match the region and the property's use class. The calculator named must be the one that region mandates. The framework versions cited must be current.
A failure doesn't produce a flagged report. It produces no report — the request returns an error and the document never exists. A non-compliant assessment is therefore not something to be caught in review; it is something the system cannot express.
Where an input can't be affirmatively evidenced, resolve toward less credit, never more. Under-claiming is a rounding error. Over-claiming is a habitat.
Including where it doesn't know
The same principle shows up as blank space. Where the engine has no evidence, the report says so in the cell rather than filling it with something plausible — and an unconfirmed criterion screens phosphorus out of the claim entirely, because phosphorus is only claimable on a demonstrated failure.

What it takes to be certain
Almost none of this shows up in the finished report, and that is deliberate — a planning officer should see a determination and the evidence for it, not the machinery that produced them. But the determination holds because a great many separate things get checked, and at this point the quantity is the substance. Every number below is somewhere a person doing this by hand would have had to find a dataset, recall a rule, or get some arithmetic right.
The evidence it gathers
- 16national and local spatial datasets resolved for every site
- 6public data authorities behind them, from national mapping to the council's own flood modelling
- 1,000+surveyed discharges in the client's own database, used to assess combined effect
- 7 GBof national mapping the engine carries with it
The comparisons it makes
- 14statutory General Binding Rules assessed, determined separately for each discharge route
- 8low-risk-zone criteria resolved to complies, doesn't, or to be confirmed
- 11framework rules encoded as hard conditions on emission, each citing its clause
- 3rule engines running independently, the last judging the output of the first two
How it is put together
- 10pipeline stages, any one of which can stop the report
- 2regulators' methodologies implemented separately, down to the days in a year
- 8figures drawn per report from the site's own coordinates
- 7verification suites that have to pass before a change ships
What the list deliberately doesn't do is explain how any of it was built. The engine is Quandrix's intellectual property, licensed to the client to run, and the method stays with us — so this is as much of it as goes in public. The only claim we would make from the list is this: accuracy at this level isn't a matter of being careful. It's a matter of building something that is careful the same way every single time.
Where the water actually goes
Underneath the paperwork is a civil engineering question: a credit only counts if the discharge reaches the same water body the habitat depends on, and water follows terrain rather than boundaries. A map won't tell you that.
So the engine models it. It reconstructs the ground surface from high-resolution elevation survey, conditions it hydrologically, computes flow direction cell by cell across the catchment, and walks downhill from the discharge point until it meets a modelled channel — giving the real drainage path and its length. That work is precomputed per catchment, so at request time the answer takes about three milliseconds. Open data and published algorithms throughout, so the finding itself can be checked by anyone who wants to argue with it.
A person still signs it
Nothing issues unseen. The engine assembles the evidence and does the arithmetic; an engineer reads the finished report and signs it before it reaches a council. The job was never to take the human out — it was to stop them doing the part people are reliably bad at, so their attention lands on the part they're good at.