Methodology

How the score works

R = Σ ( polarity × normalized value × weight )

The sum runs over 19 features. Each feature contributes one term.

  • The polarity is +1 or −1. It sets whether more of the feature helps or hurts.
  • The normalized value is the min-max scaled measurement. It falls in [0, 1].
  • The weight comes from the expert survey. All weights sum to 1.

The pipeline measures every feature at sample points spaced 50 feet apart along each sidewalk segment. It computes the score at each point. It then averages the point scores into one score per segment. The map shows the segment scores.

Feature weights

The survey produced one weight per feature. The table lists all 19. The raw values are copied verbatim from feature_weights.csv in the study repository.

Feature Weight Weight (raw) Polarity Source
Sidewalk Width 6.81% 0.06806833613639274 +1 NYC OpenData
Pedestrian Density 9.45% 0.09445576675004053 -1 In-house (lab data)
Density of Street Furniture 6.75% 0.06752114455511304 -1 NYC OpenData
Sidewalk Roughness 4.59% 0.04593514200834298 -1 Constant
Surface Condition 7.68% 0.07682933579593197 +1 NYC OpenData
Wireless Communication Infrastructure 5.85% 0.05845165469318187 +1 Other public data
Slope Gradient 4.83% 0.04832231448153131 -1 Other public data
Proximity to Charging Stations 2.53% 0.025316489931061576 +1 Other public data
Curb Ramp Availability 6.01% 0.060102970276542725 +1 NYC OpenData
Crowd Dynamics 7.62% 0.07621927189475182 +1 NYC OpenData
Traffic Management Systems 4.64% 0.04638333896814371 +1 NYC OpenData
Surveillance Coverage 2.28% 0.02281272971765975 +1 In-house (lab data)
Zoning Laws and Regulation 4.15% 0.04146601033693057 +1 NYC OpenData
Bike Lane Availability 2.26% 0.022603749599280413 +1 NYC OpenData
GPS Signal Strength 4.84% 0.048359700811054354 +1 Constant
Bicycle Traffic 3.07% 0.03068282361247861 -1 In-house (lab data)
Vehicle Traffic 4.75% 0.04745443062510741 -1 In-house (lab data)
Existence of Detailed Digital Maps 4.85% 0.04850786858987462 +1 Constant
Intersection Safety 7.05% 0.07050692121657998 -1 NYC OpenData

Feature sources

Nine features use NYC OpenData datasets. Three features use other public data. Four features use in-house lab data. Three features are constants in the current New York City score.

Feature Source type Data
Sidewalk Width NYC OpenData
Pedestrian Density In-house (lab data) Computed by the lab cluster. Not served by a public API.
Density of Street Furniture NYC OpenData
Sidewalk Roughness Constant Fixed at 1 for every segment in the current score.
Surface Condition NYC OpenData
Wireless Communication Infrastructure Other public data Source data
Slope Gradient Other public data Source data
Proximity to Charging Stations Other public data Source data
Curb Ramp Availability NYC OpenData
Crowd Dynamics NYC OpenData
Traffic Management Systems NYC OpenData
Surveillance Coverage In-house (lab data) Computed by the lab cluster. Not served by a public API.
Zoning Laws and Regulation NYC OpenData
Bike Lane Availability NYC OpenData
GPS Signal Strength Constant Fixed at 1 for every segment in the current score.
Bicycle Traffic In-house (lab data) Computed by the lab cluster. Not served by a public API.
Vehicle Traffic In-house (lab data) Computed by the lab cluster. Not served by a public API.
Existence of Detailed Digital Maps Constant Fixed at 1 for every segment in the current score.
Intersection Safety NYC OpenData

Live scores and snapshots

What refreshes live

The map offers an opt-in live refresh. It recomputes nine features from NYC OpenData through the Socrata API. It also recomputes the charging station feature from the live CitiBike station feed. These ten features rely on public APIs that the browser can query.

What stays pinned

The snapshot scores stay pinned. The weights stay pinned. The four in-house features stay pinned. The three constants stay pinned. The FCC broadband feature and the elevation slope feature also stay pinned. The lab cluster computes these features. They need lab storage and heavy computation, so the browser cannot recompute them.

Why the split exists

The cluster runs the full pipeline on a schedule and publishes one snapshot per run. The browser refreshes only what public APIs can serve. Live values always use the normalization stats of the viewed snapshot. This keeps live scores comparable with snapshot scores.

Normalization

Each feature is scaled into [0, 1] before the weighted sum. The scaling is min-max normalization:

normalized = (value − min) / (max − min)

The min and max come from the snapshot manifest. Each snapshot ships one min and one max per feature. The manifest records the stats of the run that produced the snapshot. Live refresh uses the stats of the viewed snapshot, never new stats. Results are clamped to [0, 1].

NYC OpenData attribution

This site uses data from NYC OpenData . The data comes from the NYC OpenData Terms of Use :

The City of New York can not vouch for the accuracy or completeness of data provided by this web site or application or for the usefulness or integrity of the web site or application. This site provides applications using data that has been modified for use from its original source, NYC.gov, the official web site of the City of New York.