A check that says "geometry looks wrong" is an opinion. A check that says "the declared 2.520 m² door was emitted as 3.375 m², +33.9%, at a 0.75 m cell" is something you can act on, or overrule, on the evidence. Every finding in Ashbeck is written to the second standard.
We were rebuilding a published £25,000 consultancy study, clause by clause. A run came back complete. The solver reported success. Sixteen checks passed. A report issued with a governing available-safe-egress time of 38 to 42 seconds.
The building in that model was a sealed vessel. Sixteen leakage paths had been declared and not one reached outside air, so the fire had nowhere to push. Pressure peaked at 60,275 Pa — 0.6 bar, in an office. The tenability numbers were physically meaningless and there was nothing on the page to say so.
None of the checks were lying. They were each correctly examining something. The defect was in what nobody had thought to examine. Every finding added since exists because a specific number came out wrong, and the register is the list of things we now refuse to find out the hard way twice.
A check that has never fired on a real defect is a check nobody has validated. Ours are written from failures we had, and the commit that adds each one names the run it came from.
Severity is not a mood. It is a decision about whether the document remains transferable, and it is fixed in code rather than chosen per project.
Grouped by what they examine. The register runs on every job; codes that do not apply to a building return nothing rather than a misleading pass.
| Family | Codes | What it examines |
|---|---|---|
| Model | MODEL-01..03 | Whether the declared building is internally coherent before anything is meshed. |
| Geometry | GEO-01..10 | Spaces, references, openings, and whether the grid changed either the geometry or the flow areas that geometry was declared to provide. |
| Mesh | MESH-01..03 | Alignment, partitioning and whether refinement has sealed something it should have resolved. |
| Mechanical smoke ventilation | MSV-00..05 | Achieved flow against declared duty, damper areas, face velocities — and MSV-00 first, which states which systems the rest of the family covered. |
| Natural ventilation | NAT-01 | Shafts and vents that work on buoyancy rather than a fan. |
| Fire | FIRE-01..03 | Design fire, burner footprint against declared area, and whether the fire actually reached the growth it was specified to reach. |
| Pressure | PRES-01 | Whether the enclosure can breathe. |
| Conformance | CONF-01 | The deck against the model. |
| Control logic | CTRL-01 | Whether the devices and controls that were declared actually fired in the run. |
| Results | RES-01..03, TIME-01..02 | Whether the assessment window contains enough of the right data to draw a conclusion from. |
| Scope | JURIS-01, REF-01, CON-01 | Whether the guidance cited governs where the building actually is. |
| Cost and verification | COST-01..02, VERIFY-01 | Whether the run was affordable to trust and whether it verified against anything. |
It trains people to ignore the register, and once they do, the one finding that mattered scrolls past with the rest. We have made this mistake and caught it in testing twice in recent memory.
The first cut of the opening-area check compared closed doors too. A closed door is a solid leaf with no clear opening — zero emitted area is correct — so it raised a blocker on all twenty-seven correctly modelled closed doors in the building. The second keyed on "the opening is timed" as a proxy for a solver rule about device ownership; when the emitter changed, the proxy stopped correlating and the check became a false blocker on decks that ran perfectly well.
Both were caught before release by tests that assert the clean case as hard as the dirty one. Twenty test files run against the engine, and several of them exist solely to pin a finding at the severity it was measured at, so a future change cannot quietly promote or demote it.
A threshold that blocks the deck the system was validated against was not chosen by measuring. We set the opening-area limits only after measuring the distortion at six cell sizes.
The register is the part that is hardest to describe and easiest to demonstrate. Give us a scheme that has already been assessed and we will show you what it finds — including, if it happens, nothing at all.