Skip to content

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

\[ D_{qtod}=O_{qto}\,P_{qod}, \]

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

\[ D_{\mathrm{all}}=\sum_{q,t,o,d}D_{qtod}, \]

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

\[ C^g_{tod}= \min_{\substack{a\in A^g_o,\ b\in B^g_d\\a\ne b}} \left(W^g_{oa}+I^g_{tab}+W^g_{bd}\right). \]

\(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:

\[ I^{\mathrm{edit}}_{tab} =I^{\mathrm{shipped}}_{tab} +I^{\mathrm{browser,edit}}_{tab} -I^{\mathrm{browser,ref}}_{tab}. \]

Fixed-demand ideal time

Let \(B_t\) be the purpose/tract pairs whose costs are finite in both graphs during period \(t\), and let

\[ D_t^{\mathrm{common}}=\sum_{(q,o,d)\in B_t}D_{qtod}. \]

The displayed graph-specific period means are

\[ \mu^g_t= \frac{\sum_{(q,o,d)\in B_t}D_{qtod}C^g_{tod}} {D_t^{\mathrm{common}}}. \]

Policy-weighted time saved

Using the same normalized period weights as J,

\[ \Delta T_{\mathrm{policy}} =\sum_t w_t\left(\mu^{\mathrm{ref}}_t-\mu^{\mathrm{edit}}_t\right). \]

This is a weighted mean number of seconds saved, not a total passenger quantity.

Passenger-minutes saved

\[ P_{\mathrm{saved}} =\frac{1}{60} \sum_t\sum_{(q,o,d)\in B_t} D_{qtod}\left(C^{\mathrm{ref}}_{tod}-C^{\mathrm{edit}}_{tod}\right). \]

The percentage shown beside it divides by reference passenger-minutes on the same common support:

\[ P_{\mathrm{ref}} =\frac{1}{60} \sum_t\sum_{(q,o,d)\in B_t}D_{qtod}C^{\mathrm{ref}}_{tod}, \qquad \%\Delta P=100\frac{P_{\mathrm{saved}}}{P_{\mathrm{ref}}}. \]

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

\[ A^g_{\mathrm{reachable}} =\frac{\sum_{q,t,o,d}D_{qtod}\,\mathbf 1[C^g_{tod}<\infty]} {D_{\mathrm{all}}}. \]

The UI reports reference and edited shares plus their percentage-point difference.

Newly and no-longer reachable

\[ A_{\mathrm{new}} =\frac{\sum D_{qtod}\,\mathbf 1[C^{\mathrm{ref}}_{tod}=\infty,\ C^{\mathrm{edit}}_{tod}<\infty]} {D_{\mathrm{all}}}, \]
\[ A_{\mathrm{lost}} =\frac{\sum D_{qtod}\,\mathbf 1[C^{\mathrm{ref}}_{tod}<\infty,\ C^{\mathrm{edit}}_{tod}=\infty]} {D_{\mathrm{all}}}. \]

30-, 45-, and 60-minute access

For threshold \(L\in\{1800,2700,3600\}\) seconds,

\[ A^g_L= \frac{\sum_{q,t,o,d}D_{qtod}\,\mathbf 1[C^g_{tod}\le L]} {D_{\mathrm{all}}}. \]

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

\[ \delta_{ot}= \frac{\sum_{(q,d)\in B_{ot}}D_{qtod} \left(C^{\mathrm{ref}}_{tod}-C^{\mathrm{edit}}_{tod}\right)} {\sum_{(q,d)\in B_{ot}}D_{qtod}}, \]

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

\[ \delta_o=\sum_t w_t\delta_{ot}. \]

The UI reports the unweighted median of \(\delta_o\), the number of comparable origins, and

\[ \frac{\#\{o:\delta_o\ge300\text{ seconds}\}} {\#\{o:\delta_o\text{ is comparable}\}}, \]

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)\),

\[ c^g_{qtodab}=W^g_{oa}+T^g_{tab}+W^g_{bd}, \qquad m^g_{qtod}=\min_{a,b}c^g_{qtodab}, \]

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\):

\[ \begin{aligned} C^{\mathrm{walk}}_{od}&=3600x_{od}/3.13,\\ C^{\mathrm{surface}}_{od}&=3600x_{od}/8+300,\\ C^{\mathrm{drive}}_{od}&=3600x_{od}/15+600,\\ C^{\mathrm{other}}_{qod} &=(1-v_o)\min(C^{\mathrm{drive}},C^{\mathrm{surface}},C^{\mathrm{walk}})\\ &\quad+v_o\min(C^{\mathrm{surface}},C^{\mathrm{walk}}). \end{aligned} \]

The modeled subway share is logistic with a 600-second scale:

\[ s^g_{qtod}= \frac{1}{1+\exp\left[-\left(C^{\mathrm{other}}_{qod}-m^g_{qtod}\right)/600\right]}. \]

If the subway is unreachable, the share is zero. Subway trips on the tract pair are

\[ R^g_{qtod}=D_{qtod}s^g_{qtod}. \]

Those trips are spread across entry/exit options with a 300-second softmax temperature:

\[ \pi^g_{qtodab}= \frac{\exp\left[-(c^g_{qtodab}-m^g_{qtod})/300\right]} {\sum_{a',b'}\exp\left[-(c^g_{qtoda'b'}-m^g_{qtod})/300\right]}. \]

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:

\[ \alpha_t= \frac{R^{\mathrm{observed,total}}_t} {R^{\mathrm{artifact,raw,total}}_t}. \]

Absolute flow for graph \(g\) is calculated as

\[ \widehat R^g_{tab} =\left[ R^{\mathrm{artifact}}_{tab} +\alpha_t\left(R^{g,\mathrm{raw}}_{tab}-R^{\mathrm{artifact,raw}}_{tab}\right) \right]_+, \]

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

\[ \Delta R_{\mathrm{system}}=\sum_{t,a,b}\Delta R_{tab}. \]

The displayed percentage divides this by \(\sum_{t,a,b}\widehat R^{\mathrm{ref}}_{tab}\).

Trips touching and boarding at new stations

\[ R_{\mathrm{touch\ }N} =\sum_{t,a,b:\ a\in N\ \lor\ b\in N}\widehat R^{\mathrm{edit}}_{tab}, \]
\[ R_{\mathrm{board\ }N} =\sum_{t,a\in N,b}\widehat R^{\mathrm{edit}}_{tab}. \]

These are absolute edited trips, not changes from the reference.

Change elsewhere and stolen share

\[ \Delta R_{\neg N} =\sum_{t,a,b:\ a\notin N,\ b\notin N}\Delta R_{tab}, \]
\[ \mathrm{stolen\ share} =-\frac{\Delta R_{\neg N}}{R_{\mathrm{touch\ }N}}. \]

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

\[ S_{\mathrm{new}}=S_{\mathrm{edit}}\setminus S_{\mathrm{ref}}. \]

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

\[ \tau_{\ell tr} =\sum_{e\in\ell,r}\mathrm{segmentSeconds}_{et} +30\left(n_{\ell}-2\right). \]

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

\[ H_g=\frac{1}{3600}\sum_{\ell,t,r} f_{\ell t}\,h_t\,\tau_{\ell tr}. \]

The UI reports \(H_{\mathrm{edit}}\) and

\[ \Delta H=H_{\mathrm{edit}}-H_{\mathrm{ref}}, \qquad \%\Delta H=100\frac{\Delta H}{H_{\mathrm{ref}}}. \]

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.