Shock analysis methodology

The East-West Express shock

A hypothetical 4-station rapid-transit line cross-cutting Berlin from the eastern outer suburb (Marzahn) through inner-east (Lichtenberg), the CBD (Mitte), and terminating in the inner-west (Charlottenburg).

Configuration in data/berlin/shocks/east_west_express.yaml:

name: east_west_express
description: Hypothetical cross-city express, 4 stations, 5 min between adjacent.
intra_station_min: 5.0
stations:
  - ortsteile_name: Marzahn
    role: outer-east-terminus
  - ortsteile_name: Lichtenberg
    role: inner-east-hub
  - ortsteile_name: Mitte
    role: cbd
  - ortsteile_name: Charlottenburg
    role: inner-west-terminus

End-to-end travel time: 3 × 5 = 15 min (roughly halves current east-west public-transit commute of 30-45 min).

Route-C min-of-paths

The shock modifies the τ matrix using a Route-C “min over baseline + via-rail” rule:

τ_shock[i, j] = min(
    τ_baseline[i, j],                                       # original route
    min over all (p, q) of (
        τ_baseline[i, station_p]                            # i to nearest station
        + |p - q| × intra_station_min                       # rail leg
        + τ_baseline[station_q, j]                          # furthest station to j
    )
)

In words: travelers use the rail line if and only if it makes their journey faster. OD pairs that don’t benefit are unchanged.

Implementation at agent_urban_planning.research.berlin.railway_shock.apply_railway_shock().

Diagnostic: how many OD pairs are affected?

After applying the shock, the tool reports:

[shock] τ shock: 164/9216 pairs reduced (mean 5.93 min, max 24.78 min)

Only ~1.8% of pairs are affected — a focused, station-local intervention rather than a city-wide commute overhaul. This focal nature is why spatial patterns of ΔQ, Δw, ΔHR, ΔHM differ qualitatively across V1-V5: the structural family captures localized accessibility capitalization at the 4 stations, while V5 picks up city-wide gradient flattening + agglomeration mechanisms.

Comparing variants’ shock responses

Cross-variant moments table (built by scripts/build_comparison_moments_table.py in the dev repo):

                       μ ΔQ      σ ΔQ      ΔY%       Δ⟨U⟩  (V1 ruler)
V1 Baseline-softmax    +0.0004  +0.0070   +0.0007    -0.0032
V2 Baseline-ABM argmax +0.0004  +0.0071   -0.0000    -0.0031
V3 Normal-ABM argmax   +0.0004  +0.0042   +0.0132    -0.0027
V4 Hybrid-ABM        +0.0004  +0.0068   +0.0002    -0.0031
V5 LLM-ABM           +0.0016  +0.0083   +0.0299    -0.0056

The structural family clusters tightly (consensus); V5 stands out on:

  • 4× larger μ ΔQ

  • 1.2× larger σ ΔQ (more spread)

  • 14× larger Δ Q̄ (mean rent rise)

  • ~2× larger welfare drop on the V1 ruler

  • Only positive aggregate productivity change (ΔY% = +3% vs ~0% for structural)

See the paper’s §6 (cross-variant comparison) for the full discussion.

Reproducing the moments table

After all 5 variants complete (Tier 3 + Tier 4):

python scripts/build_comparison_moments_table.py

Outputs output/comparison/comparison_moments.csv and a markdown companion suitable for paste into the paper.

See also