# Magnolia household traffic ranges — SUMO mesoscopic edition 07

The primary output is a **conditional planning range**, independently calculated
from occupied homes, residents, trips and car use. It is useful for exploring
which crossings become sensitive to added driving. It is not a probability
interval or a guarantee that real delays fall inside the displayed range.

## Independent household inputs

City zoning trip forecasts, FEIS V/C ratios and assumed city bus uptake do **not**
determine added traffic in this edition. The input formula is:

    added daily vehicle trips = additional occupied homes
        × residents per home × one-way person trips per resident per day
        × fraction of trips made by car ÷ people per car

The tested housing totals are 500, 1,000 and 2,000 additional occupied homes.
They are explicit scenario sizes, not predictions of how many homes will be
built. Zoning capacity, construction timing and realized occupancy are distinct.
All tested added units are assumed occupied. The city proposal's exact geographic
allocation and buildout can be substituted later without adopting its mode-share
or vehicle-trip forecast.

| Profile | Residents/home | One-way trips/person/day | By car | People/car | Vehicle trips/home/day |
|---|---:|---:|---:|---:|---:|
| Everyone uses the bus | 3 | 2 | 0% | 1 | 0 |
| Mostly transit | 2 | 2 | 25% | 1 | 1 |
| Mixed travel, smaller households | 2.5 | 2 | 40% | 1 | 2 |
| Mixed travel, larger households | 3 | 2 | 2/3 | 1 | 4 |
| Everyone drives alone | 4 | 2 | 100% | 1 | 8 |
| Everyone drives, more daily trips | 4 | 3 | 100% | 1 | 12 |
| High occupancy, everyone drives alone | 6 | 4 | 100% | 1 | 24 |

At 1,000 added homes these profiles add zero through 24,000 vehicle trips/day;
at 2,000 homes the upper case adds 48,000. A trip here is one direction: four
trips correspond to two round trips. One car per person does not mean one trip
per day. The high endpoint assumes every resident makes the specified trips
alone by car; it deliberately does not discount children, non-drivers or work
from home. It is an outer stress scenario, not an assertion about likely household
composition. The bus endpoint adds no private-car demand; bus service capacity,
additional bus movements, crowding and mode-choice feedback are not simulated.

Seven profiles across three housing scales produce eleven distinct additional
vehicle-trip totals. Those totals are each simulated under thirteen traffic
cases, for **143 all-day runs**. Identical totals share a run because timing and
geographic allocation are the same in this experiment. Housing or delay is
never linearly scaled after a simulation; queues are recomputed at each total.
The selected profile is a scenario, not an estimated most likely outcome.

## Engine and release status

This edition uses Eclipse SUMO 1.27.1 in its native **mesoscopic** mode: individual
vehicle identities move through finite-capacity road queues. It is not the
microscopic lane-position model.
Every map, travel-time comparison and cumulative-loss series in the SUMO release
comes from native SUMO outputs. The earlier custom Python queue engine is retained
as historical source, not blended into SUMO results. The release manifest identifies
the exact network, simulation source, native audit and displayed data hashes.
`SUMO_STATUS.md` records development status; the website builder refuses an
incomplete or rejected production grid.

Using an established engine is not the same as following every step of a locally
validated engineering traffic study. The simulations are conditional planning
sensitivities. Current field counts, turn geometry, signal plans and held-out
travel-time/queue observations remain missing or unverified. This is not a
crash-risk model or a finding that the city underestimated the zoning effect.

## Existing demand, background traffic and spatial scope

`demand.py` supplies 60,900 expected Magnolia vehicle trips per day, split equally
inbound/outbound in expectation. This reference remains provisional. Historical
SDOT surveys were collected in different years and do not supply a common complete
weekday for all required sites. They have not been used to claim current-day
calibration. The default additionally assumes 5,000 through trips each way between
the 15th/Elliott external boundaries: 10,000 daily through trips, independently of
growth. This is an explicit background load, not a measured SDOT total.

Magnolia trip metrics exclude those through trips; through drivers still consume
capacity and appear on the maps. Freight, port traffic, independent Queen Anne
side-street demand, buses, pedestrians and bicycles are incomplete or absent. The
bus endpoint adds no private-car trips and does not establish adequate transit
service, spare seats or extra bus movements.

The candidate road network is imported from the pinned full OSM street snapshot:
2,941 ordinary directed edges, no internal junction lanes and 32 generated
signal controllers. It retains Magnolia Bridge, W Dravus Street, W Emerson Place
bridge and Fort Street–Commodore Way, plus 15th Avenue W and Elliott approaches.
Residential streets distribute access demand across the neighborhood. The extent
is still finite; this is not a regional Seattle assignment. Gray map streets
provide context; colored streets belong to the simulation. See `SUMO_STATUS.md`
for acceptance status; these specifications do not mean the candidate has passed.

The northern external boundary is on 15th toward Ballard. There is no invented
northern exit inside Magnolia. Closing all four crossing cuts disconnects all
eligible home-access roads from both external boundaries. Closing the three main
crossings leaves routes through Fort/Commodore; 192 route checks exercise the
combinations and directions, including 24 all-three-closed checks.

Home trip ends are sampled on connected residential edges longer than 40 m,
within explicit western Magnolia geographic bands. The current import has
720 eligible access edges. Selection is weighted by
road length, not parcels, population, development capacity or exact proposed zoning.
These are assumed home locations, not surveyed driveways. Trips are inserted
near the start of the chosen edge and end at its downstream end; travel between
actual driveways and the sampled street positions is excluded.

Added trips follow the reference South/Central/North shares, directional daily
profiles and destination split (65% downtown, 35% Ballard). Half of expected added
trips are inbound and half outbound. Person trips are assumed to cross Magnolia's
boundary; local-only errands are excluded. This is an allocation assumption, not a
linked activity-tour or vehicle-ownership model. Poisson arrivals produce realized
totals slightly different from expectations.

Reference identities, requested departure times and access edges are nested as
traffic grows. The exact same demand file is used across closure cases at a given
traffic total. Comparisons match native vehicle IDs, not just similar samples.
The primary grid uses seed 7. Shared seed does not guarantee identical random
choices for each driver after traffic interactions change. Scenario endpoints are
not confidence intervals or probabilities.

## Road queues, junctions and operating assumptions

The microscopic OSM imports produced geometric overlap warnings under closure
stress. Those results are rejected. They are retained as diagnostics; they are
not silently reclassified as valid microscopic estimates. The current model uses
SUMO's native mesoscopic engine, which does not represent vehicle bodies inside
intersections. Zero reported collisions is therefore **not a physical safety or
collision-free microsimulation claim**.

- Lane counts, directions, speed tags and road shapes come from the pinned OSM
  snapshot, including available turn-lane and restriction tags. Missing speeds
  use 30 mph for primary roads, 25 mph for secondary/tertiary roads and 20 mph for
  local roads. Bus-only lanes, turn pockets and restrictions may be incomplete.
- Netconvert builds the mesoscopic network without internal links and expands
  road driving lengths to junction-center distances. This avoids silently
  omitting travel distance across intersections. It does not restore detailed
  turning trajectories or physical occupancy inside a junction. Junction space
  is absorbed into adjoining road length and storage, which can overstate usable
  storage where drivers must keep the intersection clear.
- All 32 signals use generated **fixed** programs with a requested 90-second
  cycle, three seconds yellow and two seconds all-red. The native phase sequences
  determine actual cycles. These are not SDOT timings or coordinated offsets.
  Pinned SUMO 1.27.1 mesoscopic mode does not support actuated signals; there is
  no silent actuated-to-fixed fallback. Pedestrians and transit priority are absent.
- Full mesoscopic junction control is enabled even at low traffic. Vehicles obey
  generated signal states, right-of-way and gap rules. Averaged signal-delay,
  signal-capacity and fixed minor-road penalties are disabled; they do not replace
  the actual signal phases. Imported/generated stop and priority controls require
  field verification.
- Roads are divided into approximately 25 m queue segments. Vehicle length is
  5 m, minimum gap 2.5 m and vehicle tau 1 s. Native net headway factors are 1.13 s
  free-to-free, 1.13 s free-to-jammed, 1.73 s jammed-to-free, and 1.4 s jammed-to-jammed.
  Actual spacing also depends on vehicle length, speed and the number of queues.
  Jam thresholds use the native speed-dependent setting (-1). These are engine
  defaults, not calibrated Magnolia discharge rates.
- Lane queues and separate turn queues are enabled. Lane changes and lateral
  position are not explicit trajectories: drivers can queue behind other traffic
  on a shared approach even where a microscopic driver might reach a free lane.
  Overtaking is disabled. Impatience does not grow into permission to disregard
  conflicting priority traffic. Everyone has the same speed factor of 1.
- Finite receiving storage can stop upstream discharge during green. A native
  controlled test fills a receiving road, verifies zero new turn admissions
  during the blockage, and verifies recovery when space opens. A separate approach
  remains usable. The test passes at 0.5 s and 1 s clocks. It does **not** show that
  an opposing car stopped inside an intersection physically blocks a left turn.
  The requested specific Magnolia Bridge blocking mechanism remains unresolved
  without a verified microscopic junction model.
- This pinned release uses SUMO's original mesoscopic queue dynamics, not the
  later experimental mesoscopic Link Transmission Model. Space freed within a
  segment can propagate too quickly when a queue starts moving. Small segments
  reduce spatial coarseness but do not remove the limitation. Queue resolution
  and discharge assumptions need sensitivity checks and observations.

The half-second engine clock is separate from ten-second map averages and
five-minute trip cohorts. Finer output does not establish field accuracy.
The microscopic build intermediates retain a small-circle geometry adjustment
(zero extra corner radius and a speed cap derived from ring radius), inherited
by the mesoscopic street import. This is a plausibility adjustment, not a speed
survey. The dashboard does not use the microscopic benchmark as its own proof.

Pinned engine references:
- https://github.com/eclipse-sumo/sumo/blob/v1_27_1/docs/web/docs/Simulation/Meso.md
- https://github.com/eclipse-sumo/sumo/blob/v1_27_1/docs/web/docs/Simulation/Intersections.md

## Rerouting and closures

Every vehicle receives SUMO's rerouting device. Edge travel-time estimates refresh
every 60 s using a 0.5 adaptation weight. En-route rerouting occurs every 300 s;
vehicles waiting to depart refresh routes every 60 s. Drivers respond to current
estimates, not future queues. This assumes broad route information, not observed
navigation use or an equilibrium assignment. Rerouting can oscillate or redistribute
queues; identical demand does not imply identical route choice.

Each crossing closes in both directions, independently of the other crossings:

- Repair: closed from midnight through the two-hour drain.
- Temporary AM event: 08:00–09:00.
- Temporary off-peak maintenance: 12:00–13:00.
- Temporary PM event: 17:00–18:00.
- Open: every crossing available, repeated as the fourth dashboard row.

One-hour blockages are illustrative scenarios, not a claim about announced works
or a statistically typical incident duration. The Emerson row closes Emerson
Place bridge; Emerson Street, Fort Street and Commodore Way remain available.
Native closing rerouters change vehicle permissions and announce detours at nearby
approaches. Vehicles already on the crossing may finish traversing it; new
admissions are forbidden until reopening. Native final route exit timestamps
check each admission. This model has no junction-interior staging or
committed-connector exception.

## Measurement and fair comparisons

Departures span 00:00–24:00. The model starts empty at midnight and observes a
two-hour drain until 02:00 the next day. There is no preceding-day warmup, and
queues that persist beyond the horizon remain unresolved. Vehicles never teleport
out of congestion, disappear to clear a jam or get discarded because departure
is too late. Native tripinfo records include both active and uninserted vehicles.

Requested times are sampled continuously, then rounded **up** to the simulation
clock for insertion requests. A vehicle cannot enter before its requested time.
Travel time starts at the original requested time, so waiting outside the network
and the clock rounding remain included. The zero-metre mesoscopic insertion position is checked against native output
and used in the open-network free-flow reference.

Maps show native 10-second **mean blocked vehicles**, calculated as SUMO edge
waitingTime divided by ten seconds. Mesoscopic waiting is queue blockage, not
an observed instantaneous vehicle speed. Color is
that average divided by estimated lane storage (lane metres / 7.5 m per car),
rounded and clipped to 0–100%. It is a visualization of stopped queues, not a
complete measure of slow traffic or a measured occupancy count. Ten-second bins
do not drive the half-second simulation. Queues waiting to enter the network do
not occupy map lanes; they remain in the trip metrics and outstanding count.
Each map also shows how many requested trips have not yet entered the network.
The downloads report cumulative origin-entry waiting separately, from the original
requested time until native admission (or the observation horizon if never admitted).
This elapsed waiting is already included in trip time; do not add it again to
cumulative time lost. For unfinished trips it is not an additive decomposition
of lost time, because the loss measure first subtracts the free-flow allowance.
Inbound trips enter through two external road boundaries. Origin-entry waiting
can dominate modeled inbound delay; it is sensitive to boundary location, entry
capacity and the assumed arrival profile. It must not be interpreted as an
observed queue inside Magnolia or evidence of its exact geographic extent.
Map percentages use lossless run-length storage (`MQR1`): every ten-second value
is retained. Export verifies an exact decode against the original dense array;
the browser seeks directly within the compressed transitions. Compression does
not smooth queues or coarsen the time resolution.

Commute panels compare the **same existing trips**, grouped into five-minute
requested-departure windows, separately inbound and outbound. A trip covers the
modeled access road to external road boundary, or the reverse; it is not an
entire commute to a downtown workplace. If either side has an unfinished trip in
the matched group at 02:00, eventual trip minutes and the added-minutes headline
are withheld. Range panels retain the difference in elapsed minutes accrued by
02:00, explicitly labeled as censored. That difference is neither an eventual
trip-delay estimate nor a lower bound on the eventual difference.

Cumulative time lost is the sum, across selected existing **and added Magnolia
trips**, of elapsed time beyond each trip's shortest open-network free-flow road
travel time. It includes detours, control delay, queues, engine-clock rounding and waiting
to enter. It is not SUMO's completed-only mean timeLoss. One driver-hour equals
60 driver-minutes; its delta differs from the matched-existing-trip mean.
Through drivers are excluded from this burden measure, but affect congestion.
The outstanding count is measured at each display clock: vehicles already
arrived at that exact time are completed, while unfinished vehicles remain.

## Computational release checks and practical limits

The release requires 143 complete native runs with the pinned engine and network.
The runner rejects missing or duplicate vehicles, unexpected removal, native error reports,
teleports, missing closure-route coverage and forbidden admissions during closure.
Native files, inputs and output manifests are hashed. The exporter checks common
existing trip identities, identical demand across closures, cumulative loss against
all native trip records and complete map intervals. Failed and interrupted tests
are not substituted into the dashboard. These checks establish computational
consistency under assumptions, not field accuracy. Collision reports are not a
physical collision test in the mesoscopic model.

Sensitivity to driver behavior, reference demand, geographic allocation, signal
plans, background traffic, boundary location and preceding-day conditions remains
outside the household slider. The scenario span does not bound all uncertainty.
A large modeled response can justify requesting better data and a dedicated
crossing-by-crossing study. It cannot establish a catastrophe, an exponential law,
that the city's model is wrong, or that a selected number of cars is a validated
forecast. Earlier city studies did analyze Magnolia Bridge closures; this project
does not claim no prior closure study exists.

The next field-evidence step is simultaneous directional and turning counts at
all four crossings and corridor boundaries, current signal phases and offsets,
verified lanes/turn pockets/control directions, observed queues and travel times,
and a held-out validation day tied to the exact proposal/buildout geography.

## Reproduction

Install `requirements-sumo.txt` into an isolated Python environment, then run:

```sh
python microsim/build_network.py
python microsim/verify_network.py
python microsim/verify_meso_mechanisms.py
python -m unittest discover -s tests -v
python run_sumo_grid.py --workers 8 --no-export
python build_sumo_release.py
```

`run_sumo_grid.py` resumes only unchanged, previously accepted native output.
The raw case directories retain trips, native commands, tripinfo, route audit,
edge output, collision output, log, checks and result records. `build_sumo_web.py`
refuses missing, mixed or stale grid data. The deployed release manifest and
native audit identify the exact published result set. Historical queue-model
methods are retained in `METHOD-v6-queue-reference.md`.

## Primary technical references

- SUMO intersections: https://sumo.dlr.de/docs/Simulation/Intersections.html
- SUMO network and internal lanes: https://sumo.dlr.de/docs/Networks/SUMO_Road_Networks.html
- SUMO geometry/driving distances: https://sumo.dlr.de/docs/Simulation/Distances.html
- SUMO driving and junction parameters: https://sumo.dlr.de/docs/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html
- SUMO safety checks: https://sumo.dlr.de/docs/Simulation/Safety.html
- SUMO closing rerouters: https://sumo.dlr.de/docs/Simulation/Rerouter.html
- SUMO tripinfo and unfinished trips: https://sumo.dlr.de/docs/Simulation/Output/TripInfo.html
- FHWA microsimulation study guidance: https://ops.fhwa.dot.gov/publications/fhwahop18036/index.htm
