Test 12: Stair flow rates
PASS1. Definition
Two floors 3 m apart are joined by a stair at 45 degrees with a diagonal of 4.24 m. Five stair widths are tested: 1.0, 1.2, 1.4, 1.6 and 1.8 m. Two scenarios are run for each width: stair down and stair up. In each, 100 occupants with no pre-evacuation time and a speed of 1 m/s start uniformly distributed on one side of the stair. The average flow on the stair is determined for every combination. The tester reports whether the flow is emergent or user-defined.
Source: ISO 20414:2020, Test 12, Table 13, pp. 22-23, Fig. 8. This is a paraphrase, not the text of the standard.
Reference: ISO (2020). ISO 20414:2020, Fire safety engineering - Verification and validation protocol for building fire evacuation models. First edition. International Organization for Standardization, Geneva. https://www.iso.org/standard/78348.html (Page numbers are the printed page numbers of ISO 20414:2020 (the copy read is a proof, so numbers can differ by a page in the published edition). ISO states that its tests are examples and that a tester may use different tests that verify the same component equivalently.)
2. Scenario

Scenario figure from the executed notebook.
3. What to expect
A wider stair gives a higher flow rate. ISO sets no numeric limit.
Our criterion: Flow rate increases with stair width (positive slope)
4. Our result
Status: PASS
Test cases of this row
| Case | Status | Result | Run | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
test_ | PASS | stair_flow_by_width (p/s) 2 series × 5 points Download CSV Show values
| n = 100 · seed 42 |
test_: bound: flow_p_s has no NaN; comparison: slope of the linear fit of flow_p_s over stair_width_m > 0 and flow_p_s[-1] (widest) > flow_p_s[0] (narrowest)flow_ increases_ with_ width

Result figure from the executed notebook.
5. Our implementation
Deviations from the standard:
- Only one scenario is run. The stair is a flat zone, so up and down are identical by construction.
- The stair is a flat 6 m strip with a speed factor of 0.5, so agents walk it at 0.5 m/s instead of 1 m/s. The feeding room is 10 m by 8 m.
- The pass rule is the suite’s own: the flow across the middle of the stair, (n - 1) / (t_last - t_first), has a positive linear trend over the five widths, the widest stair has a higher flow than the narrowest, and every width yields a flow value. It does not require an increase at every width step.
- The scenario is built in code (standards/iso/scenario_builders/iso12_stair_flow.py) rather than loaded from a scenario file. One seed (42) is run.
Model: CollisionFreeSpeedModel
- Test function: tests/vv/test_iso.py::test_flow_increases_with_width