Compare¶
Compare evaluates the edited graph against the initially published graph. It intentionally does not make a composite score. Instead it returns four metric families with different denominators and, crucially, two different demand treatments.
flowchart TD
fixed[Fixed Layer-1 tract demand] --> time[Fixed-demand ideal time]
fixed --> access[Accessibility breadth]
service[Graph-dependent service cost] --> choice[Mode and station choice]
fixed --> choice
choice --> ridership[Subway ridership]
lines[Lines, frequency, runtime] --> effort[Infrastructure effort]
| Family | Demand treatment | Network cost |
|---|---|---|
| Fixed-demand ideal time | Same person trips in both graphs | Infrastructure-only, door to door |
| Accessibility breadth | Same person trips in both graphs | Infrastructure-only, door to door |
| Subway ridership | Subway share and station choice may change | Actual service, door to door |
| Infrastructure effort | No passenger demand | Scheduled line runtime |
Shared tract demand¶
Let \(q\) denote trip purpose, \(t\) service period, and \(o,d\) origin and destination census tracts. Layer-1 demand is factorized as
where \(O_{qto}\) is trip production and \(P_{qod}\) is the destination probability. This demand does not read the subway graph, so the fixed-demand and accessibility families use exactly the same \(D_{qtod}\) for the reference and edited graphs.
The common total used by reachability metrics is
including demand the subway cannot reach.
Door-to-door ideal cost¶
For graph \(g\in\{\mathrm{ref},\mathrm{edit}\}\), each tract keeps up to five entry and five exit station candidates. Access is calculated over the pedestrian network at 1.4 m/s, with a 20-minute cutoff. New or moved stations are routed from 100 sample points per tract and folded into the same five-candidate ranking.
For entry station \(a\) and exit station \(b\), let \(W^g_{oa}\) and \(W^g_{bd}\) be access and egress time and let \(I^g_{tab}\) be the infrastructure-only station time. The tract-pair cost is
\(I^g_{tab}\) uses physical segment times, platform walks, and 30 seconds per intermediate platform. It has no service pattern, wait, or transfer penalty. If no valid entry/exit pair exists, \(C^g_{tod}=\infty\).
For existing station pairs the edited ideal uses the same browser-delta correction as J:
Fixed-demand ideal time¶
Let \(B_t\) be the purpose/tract pairs whose costs are finite in both graphs during period \(t\), and let
The displayed graph-specific period means are
Policy-weighted time saved¶
Using the same normalized period weights as J,
This is a weighted mean number of seconds saved, not a total passenger quantity.
Passenger-minutes saved¶
The percentage shown beside it divides by reference passenger-minutes on the same common support:
Unlike policy-weighted savings, passenger-minutes use raw trips and no \(w_t\).
Accessibility breadth¶
All accessibility shares divide by \(D_{\mathrm{all}}\), not merely reachable or common demand.
Reachable demand¶
The UI reports reference and edited shares plus their percentage-point difference.
Newly and no-longer reachable¶
30-, 45-, and 60-minute access¶
For threshold \(L\in\{1800,2700,3600\}\) seconds,
These are ideal door-to-door infrastructure thresholds. They do not include service waits.
Equal-origin improvement¶
The trip-weighted metrics above can be dominated by large origins. Compare therefore gives each comparable origin tract one vote. For origin \(o\) and period \(t\), let
where \(B_{ot}\) contains destinations reachable in both graphs. An origin is comparable only when it has positive common demand in every period with positive policy weight. Its combined improvement is
The UI reports the unweighted median of \(\delta_o\), the number of comparable origins, and
the equal-tract share improving by at least five minutes.
Graph-dependent subway ridership¶
This family lets the subway share and chosen stations respond to the service graph. It uses actual service costs rather than the infrastructure-only ideal.
For an entry/exit option \((a,b)\),
where \(T^g_{tab}\) is routed service time with running time, stops, walking transfers, and waits. The route itself is selected with the 240-second transfer penalty described on the Calculate J page.
The competing non-subway cost is based on great-circle distance \(x_{od}\) in miles and the origin tract's no-vehicle household share \(v_o\):
The modeled subway share is logistic with a 600-second scale:
If the subway is unreachable, the share is zero. Subway trips on the tract pair are
Those trips are spread across entry/exit options with a 300-second softmax temperature:
Summing \(R^g_{qtod}\pi^g_{qtodab}\) over purposes and tract pairs gives raw station OD. Each period has a calibration factor that makes the exported artifact baseline total match observed station demand:
Absolute flow for graph \(g\) is calculated as
where \([x]_+=\max(0,x)\). Values materially below zero are treated as an invalid counterfactual; the clamp only absorbs floating-point noise around zero.
Let \(N\) be station complexes added relative to the reference graph and \(\Delta R_{tab}=\widehat R^{\mathrm{edit}}_{tab}-\widehat R^{\mathrm{ref}}_{tab}\).
Net subway trips¶
The displayed percentage divides this by \(\sum_{t,a,b}\widehat R^{\mathrm{ref}}_{tab}\).
Trips touching and boarding at new stations¶
These are absolute edited trips, not changes from the reference.
Change elsewhere and stolen share¶
A positive stolen share means ridership away from new stations declined as trips shifted toward them. A negative value means the rest of the system also gained trips. The displayed “change elsewhere” percentage uses reference trips whose endpoints are both outside \(N\) as its denominator. When no edited trips touch a new station, the UI displays stolen share as unavailable instead of dividing by zero.
Infrastructure effort¶
New stations¶
The UI shows \(|S_{\mathrm{new}}|\) and divides it by the number of reference station complexes for the percentage.
Weekly train-hours¶
The seven service periods represent \((20,25,25,20,30,24,24)\) hours per week. For line \(\ell\), period \(t\), and direction \(r\), one-way runtime is
The second term charges intermediate stops but not the two terminals. Directional frequency is \(f_{\ell t}\) trains/hour, so total scheduled train-hours are
The UI reports \(H_{\mathrm{edit}}\) and
Train-hours measure scheduled vehicle time, not crews, fleet requirements, energy, construction cost, or track mileage.
Capacity remains separate
A directional track is limited to 26 trains/hour. The editor rejects line changes that worsen an overload, but Compare does not fold capacity into any displayed metric or composite score.