Test 16: Affiliation to familiar exits
TEST-LOCAL1. Definition
A room of 10 m by 15 m has two 1 m exits on the 15 m walls, at equal distance from the short end wall. In Scenario 1 one occupant who is unfamiliar with the exits (no pre-evacuation time, 1 m/s) starts 1 m from the short wall at a fixed position equidistant from both exits. In Scenario 2 one occupant affiliated with Exit 2 starts at a position that ISO’s text places in the central area at the start of the corridor. Each scenario is repeated until the exit usage changes by less than 1 % with an additional run. The test needs an exit-choice sub-model that represents familiarity. The tester documents whether affiliation has its own sub-model and whether exit choice is deterministic or predictive.
Source: ISO 20414:2020, Test 16, Table 18, pp. 27-28, Fig. 12. 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
The usage of Exit 2 in Scenario 2 is higher than in Scenario 1.
Our criterion: Journey-weighted affiliation biases exit choice (80/20 -> exit 2 preferred)
The outcome is fixed by the input journey weights and the harness’s proportional split of agents over journeys, not by an affiliation model; same mechanism as NIST Verif.3.3.
4. Our result
Status: TEST-LOCAL
Test cases of this row
| Case | Status | Result | Run |
|---|---|---|---|
test_ | PASS | balanced_exit_fraction_difference (fraction) balanced_fraction_difference: 0 balanced_exit_counts: 20, 20 affiliated_exit_counts: 0, 40 accepted ≤ 0.1 fraction | n = 40 · seed 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 |
test_: bound: measured <= 0.10 (|exit1 - exit2| / total, 50/50 weights); comparison: affiliated_exit_counts[1] > affiliated_exit_counts[0] with 20/80 weightsaffiliation_ biases_ exit_ choice

Result figure from the executed notebook.
5. Our implementation
Deviations from the standard:
- Affiliation is represented by journey weights. Scenario 1 uses weights of 50 / 50. The affiliated case uses 20 / 80 in favour of Exit 2. The result follows from these input weights and from the harness’s proportional split of agents over journeys. No affiliation sub-model is involved, as in NIST Verif.3.3.
- Each scenario has two occupants instead of one. Both scenarios use the same start region.
- The pass rule is the suite’s own: with 50 / 50 weights the two exits differ in use by no more than 10 % of all arrivals, and with 20 / 80 weights Exit 2 is used more than Exit 1, over 20 fixed seeds. ISO’s repeat-until-stable rule is not used.
Model: CollisionFreeSpeedModel
- Test function: tests/vv/test_iso.py::test_affiliation_biases_exit_choice
- Scenario file: Iso-16-familiar-exits.zip