Understanding how we measure pedestrian accessibility
The Walkability Map Index is designed to reflect the approximate pedestrian accessibility for a specific location. Different sets of selected categories or functions will produce different results, reflecting the actual diversity and availability of amenities in that area.
A neighborhood thrives when it offers a variety of amenities across different functions. Having many coffee shops but no healthcare facilities is not ideal walkability.
The first hospital in your 15-minute zone is transformative. The second is valuable. The tenth? It barely improves your life. We model this real-world principle mathematically.
We only calculate the index for areas where people actually live. Industrial zones don't affect the score — they shouldn't be penalized for lacking residential amenities.
Calculates accessibility for one category, where count refers to the number of POIs within the isochrone (capped at 100%).
$$ \text{Score}_i = \min \left( \frac{\ln(\text{count} + 1)}{\ln(\text{2.25})}, 1 \right) $$
The final score, adjusted for diversity of available categories.
$$ \text{Walkability Index} = \min\left(\frac{1}{N} \sum_{i=1}^{N} \text{Score}_{i}, (\frac{1}{N} \sum_{i=1}^{N} [\text{count}_i > 0])^\text{1.25} \right) $$
Formula: ln(count + 1)
We use the natural logarithm because it captures reality: each new POI adds less value than the last.
Why add 1? The logarithm of zero is undefined, and ln(1) = 0. By adding 1, we ensure that when count=0 (no POI), the score is 0 (no benefit), and when count=1 (one POI exists), the score is ~0.69 (good, but not perfect).
| POI Count | ln(count + 1) | Interpretation |
|---|---|---|
| 0 | 0.00 | No amenity → no value |
| 1 | 0.69 | One option → solid |
| 2 | 1.10 | Two options → very good |
| 3 | 1.39 | Three options → more than enough |
Formula: ln(count + 1) / ln(2.25)
The logarithm grows infinitely. We need to scale it to a 0–100% range. We divide by ln(2.25) because this is our equilibrium point — the saturation threshold where a category is considered "well-served" but additional POIs offer minimal benefit.
This chosen value means that slightly more than 2 POIs in a category reaches maximum accessibility — reflecting the real world where choice and competition are good, but infinite options don't dramatically improve daily life.
Formula: min( ln(count + 1) / ln(2.25), 1 )
After normalization, we cap the result at 1.0 (100%). Why? After 2+ POIs, marginal utility approaches zero. With 10 veterinary clinics, your life isn't 5× better than with 2. The cap ensures that excessive POIs in one category don't distort the overall index.
Formula: Σ Scorei
We add up the accessibility scores for all selected categories. No category has a built-in "weight" because different cities and people have different priorities. A student values education more; a parent values healthcare more. By treating all categories equally, we let the data reflect reality.
Formula: (1/N) Σ Scorei
We divide the sum by the number of categories (N) to get an average. This is our primary accessibility score: the mean percentage of "category needs met" across all selected amenities.
Formula: Σ [counti > 0]
To calculate the diversity penalty, we count how many categories have at least one POI. This shows us how many different categories are represented in the area.
Formula: (1/N) Σ [counti > 0]
We express the count as a percentage of all categories. For example, if 5 of 6 functions are represented, this ratio is ~83%.
Formula: ((1/N) Σ [counti > 0])1.25
We raise the coverage ratio to the power 1.25. This exponential penalty ensures that missing categories hurt more and more as diversity decreases. An area with everything is much better than one with gaps.
Formula: min( ... )
We choose the lower of two values: the raw average score, or the diversity-adjusted score. This ensures that high availability in a few categories cannot compensate for missing major functions. The diversity penalty is enforced.
Given data:
Step 1: Calculate individual scores
min(ln(3)/ln(2.25), 1) = min(1.10/0.81, 1) = min(1.36, 1) =
1.0 (100%)
min(ln(3)/ln(2.25), 1) = 1.0 (100%)
min(ln(1)/ln(2.25), 1) = min(0/0.81, 1) =
0.0 (0%)
Step 2: Calculate mean accessibility
(1/3) × (1.0 + 1.0 + 0.0) = 0.67 (67%)
Step 3: Calculate coverage ratio and apply penalty
Step 4: Final Index
Index = min(0.67, 0.59) = 0.59 (59%)
The missing Library category creates a diversity penalty that reduces the otherwise respectable 67% average down to 59%. This reflects that true walkability requires diverse amenities.
This value reflects our design choice: we prioritize the difference between having 1 option and having 2, but treat additional options as less critical. The sweet spot lies between a simple choice (2) and excess (2.5) — 2.25 recognizes that choice matters, but too many options don't dramatically improve life. Different contexts might need different values.
A linear penalty (1.0) doesn't match reality: missing one service when you have six available is manageable, but missing one when you have only three is serious. The 1.25 exponent captures this — it penalizes diversity gaps more heavily as the neighborhood becomes less diverse. It's a middle ground: stronger than linear, but not extreme. The exact number involves some judgment.
Industrial zones, parks, and water bodies don't need 15-minute city amenities. Calculating the index for non-residential areas would penalize cities for not placing hospitals in factories. We filter the calculation to only isochrones where people actually live (Houses, Apartments, Dormitories > 0) to ensure fair assessment.
Walkable Map uses this methodology to provide
transparent, data-driven insights into neighborhood walkability and
urban livability.
If you have questions, suggestions, or want to contribute, please
reach out on mail@avdeev.me.