Formula register / versioned
How the worksheets calculate and stop
Each tool separates its typed formula or decision table from the page controller, validates runtime values and removes the old result as soon as a calculation-bearing input changes.
Method register
Current module register
| Module | Version | Research date | Public route |
|---|---|---|---|
| Three-point measurement | 1.0.0 | 2026-09-04 | Measure a door |
| Hinge-position marker | 1.0.0 | 2026-09-04 | Door hinge positions |
| Trim allowance | 1.0.0 | 2026-09-04 | Trim a door |
| Frame fixing marks | 1.0.0 | 2026-09-04 | Replace a door frame |
| Door mass estimate | 1.0.0 | 2026-09-04 | Door weight calculator |
| Door handing record | 1.0.0 | 2026-09-04 | Hang a door |
| Door-fault checklist | 1.0.0 | 2026-09-04 | Door will not close |
Measure a door / v1.0.0
Three-point measurement recorder
minimum = min(r1, r2, r3)maximum = max(r1, r2, r3)spread = maximum - minimumThe calculation runs separately for width and height. All six readings are millimetres and remain unrounded in the result.
Golden: width 826, 824, 825 and height 1981, 1980, 1979 gives width 824 to 826 with spread 2 mm and height 1979 to 1981 with spread 2 mm.
Hinge positions / v1.0.0
Editable top-mark plotter
first top = top offsetlast top = door height - bottom offset - hinge lengthinterval = (last top - first top) / (hinge count - 1)mark[i] = first top + i x intervalDoor height, hinge length, offsets and returned marks use millimetres. Hinge count is an integer from 2 to 4.
Golden: 1981 mm leaf, 76 mm hinge, 3 hinges, 150 mm top offset and 225 mm bottom offset gives top marks at 150, 915 and 1680 mm.
Trim allowance / v1.0.0
Removal constrained by entered maker limits
target width = opening width - left gap - right gaptarget height = opening height - top gap - bottom gaprequired removal = leaf dimension - target dimensionfirst edge = clamp(total / 2, total - second limit, first limit)All dimensions, gaps, limits and allocations use millimetres. A limit of 0 is valid and means no removal from that edge.
Goldens: total removal 8 with limits 3 and 6 allocates 3 and 5. Total removal 3 with limits 0 and 5 allocates 0 and 3.
Frame fixing marks / v1.0.0
Maximum-spacing plotter
usable rail = frame height - top setback - bottom setbackintervals = ceil(usable rail / entered maximum spacing)actual step = usable rail / intervalsmark[i] = top setback + i x actual stepHeight, setbacks, maximum spacing, step and marks use millimetres.
Golden: height 2040, top and bottom setbacks 150, maximum spacing 450 gives usable rail 1740, 4 intervals and marks 150, 585, 1020, 1455 and 1890 mm.
Door mass estimate / v1.0.0
Material and optional glazing estimate
leaf area = width x height / 1,000,000timber face area = leaf area - glazing areatimber volume = timber face area x thickness / 1,000mass = timber volume x density + glazing area x glazing mass per m2Dimensions use millimetres, areas square metres, density kilograms per cubic metre and mass kilograms. No density is preselected.
Golden: 762 x 1981 x 35 mm, density 600 kg/m3 and no glazing gives the unrounded result 31.699962 kg and display 31.7 kg.
Handing record / v1.0.0
Plain-language orientation record
viewpoint + visible hinge side + observed movementValid viewpoints are pull side or push side; hinge side is left or right; movement is towards or away from the observer.
Golden: standing on the pull side, hinges on the left and movement towards the viewer returns: “Standing on the pull side, the hinges are on your left and the door moves towards you.”
Door-fault checklist / v1.0.0
Ordered conservative decision table
validate all enums, then stop order: uPVC, fire door, frame or wallotherwise: symptom -> ordered observation IDs + optional owner linkGolden: a timber hinged, non-fire door with an apparently sound frame and top-latch-corner symptom returns hinge-fixing check, gap-pattern record and hinge-recess inspection, in that order, with the hinge-position owner link.
Shared state, print and provenance rules
Editing any calculation-bearing input immediately makes the previous result stale, clears its values, assumptions and diagram marks, and disables current-result printing. A valid submission rebuilds that output atomically. Invalid and malformed scaffold states fail closed.
Current-result print contains only the current record. Each interactive route also provides an independent blank worksheet, including a browser-print fallback when JavaScript is unavailable where specified by the route contract.