Page actions
instrument / verified-clean
Stair Rise & Run Designer
The current ledger marks this instrument verified clean within the source-bound verification corpus.
Inspectable records
Ledger state
The current ledger marks this instrument verified clean within the source-bound verification corpus.
- Area
- Everyday & Life
- Tranche
- tranche-4
- Evidence ID
- t4-043
- Ledger rows
- 1
No ledger note is attached.
Review findings
The core riser arithmetic and Pythagorean stringer formula are standard once total_run and units are explicitly defined. The specification cannot receive PASS because total_run, comfort tolerance, minimum stair size, and post-rounding validation are unresolved. The honest-label warning to verify local building code is appropriate but does not replace those constraints.
Formula and scope findings
- total_run is used in the stringer-length formula but is never defined. If there are num_steps risers and the upper floor is the landing, total_run is typically tread_depth × (num_steps - 1); using tread_depth × num_steps produces a different result.
- The comfort check uses an undefined approximation tolerance. The test vectors interpret it as inclusive 24.0–25.0 inches, but the specification does not state that rule.
- round(total_rise/target_riser) can produce zero, causing division by zero in actual_riser. Inputs need constraints such as total_rise > 0, target_riser > 0, and the rounded step count >= 1.
- The formula does not require validation of the resulting actual_riser and tread_depth after rounding, even though those values—not the desired riser—must be checked against the stated code-reference ranges.
- A one-riser result can produce zero horizontal run under the usual num_steps - 1 tread convention; a minimum of two risers or an explicit stair-layout rule is needed.
Unit assumptions
- All numeric test-vector dimensions are inches unless otherwise stated; total_rise, desired_riser, and tread_depth must use the same unit.
- The calculations assume positive values and JavaScript-style rounding for positive numbers, equivalent to Math.round.
- For stringer length, total_run is assumed to be tread_depth × (num_steps - 1), treating the upper floor as the final landing.
- The comfort flag is interpreted as true when 24.0 <= (2 × actual_riser + tread_depth) <= 25.0 inches.
- The code-reference flag is interpreted as true when 7.0 <= actual_riser <= 7.75 inches and tread_depth >= 10.0 inches; actual jurisdictional code requirements may differ.
Boundary hardening
BREAK_CLAIMED · SELF_FLAGGED
A zero total rise produces num_steps = 0 and then actual_riser = 0/0, an undefined result; the instrument must reject this input before division. Negative tread depth also exposes an unspecified sign convention and can produce a misleading comfort result unless rejected or converted to a magnitude.
Errata and corrections
No applied erratum is attached to this unique-name record.
Inspectable example
4 review vectors are recorded. One source-bound sample is shown below.
{
"inputs": {
"total_rise": 108,
"desired_riser": 7.5,
"tread_depth": 10.5,
"units": "in"
},
"expected_outputs": {
"step_count": 14,
"actual_riser": 7.7142857143,
"run": 10.5,
"total_run": 136.5,
"stringer_length": 174.05818,
"comfort_flag": false,
"code_range_flag": true
},
"working": "108 / 7.5 = 14.4; round(14.4) = 14 steps. Actual riser = 108 / 14 = 7.7142857143 in. Run per tread = 10.5 in. Total run = 10.5 × (14 - 1) = 10.5 × 13 = 136.5 in. Stringer = sqrt(108² + 136.5²) = sqrt(11664 + 18632.25) = sqrt(30296.25) = 174.058180 in. Comfort value = 2 × 7.7142857143 + 10.5 = 25.9285714286 in, so comfort_flag = false. Code range: 7.0 <= 7.7142857143 <= 7.75 and 10.5 >= 10, so code_range_flag = true."
}Related workflows
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.json · VERIFIED_CLEANevidence-tranche4/tranche4-results.jsonBOUNDARY_HAZARD_CATALOG.json