⚠️ Work in progress — data and figures are preliminary.

Solvent Streets

Play ▸

los-angeles-ca

Pavement & Parking Analysis | Last computed 2026-07-12

City Summary

City Area (acres) 927926.3
City Area (sq mi) 1449.88
Total Paved (acres) 95409.2
% Paved 10.3%

roads

Features 815746
Area (acres) 80416.1
Area (sq mi) 125.65

parking

Features 30871
Area (acres) 13208.7
Area (sq mi) 20.64

sidewalks

Features 157848
Area (acres) 4444.3
Area (sq mi) 6.94
Coverage %
0%25%50%75%100%

Interactive Forecast

Tier Min PCI Max PCI $/unit

Methodology

This section describes the data sources, models, and assumptions behind the analysis presented in each dashboard.

Data sources

The exact sources and endpoints used for a given example are listed in that example's Config tab.

Decay model

Each road classification decays independently via

PCI(t) = PCI₀ · exp(−k · t)

where k is an annual decay constant that depends on the road classification. Higher-class roads (motorway, trunk, primary) decay more slowly than lower-class roads (residential, service) because they are built to thicker, more rigorous design standards and typically receive more frequent maintenance. Default values are derived from LTPP data reported in FHWA-RD-01-156, Long-Term Pavement Performance and ship as part of the forecast package; they are continental-US averages and do not account for local climate, traffic, or construction quality. A config may set a per-city decay_rate to tune for local conditions (e.g. freeze/thaw or road salt); that override is applied as the rate for a typical road and scales every road class proportionally, so the per-class ordering (higher classes decay slower) is preserved rather than flattened. Sidewalks decay on a separate, slower track and are not treated as a highway class.

Cost model

Treatment costs are banded by PCI: each band has a representative $/sq m value, and costs between bands are linearly interpolated at the tier midpoints, so the cost-versus-PCI curve is smooth rather than step-shaped. Above the highest anchor (the midpoint of the preventive tier) and below the lowest anchor (the midpoint of the reconstruction tier), the cost is clamped to that anchor's value rather than extrapolated. Default cost tiers are expressed in $/sq m and sourced from FHWA treatment-selection guidance; they are calibration inputs, not measurements, and local bid prices will differ. Roads and sidewalks use independent cost tiers because the treatment economics differ substantially.

Condition spread

A real network is a distribution of conditions — some segments excellent, some failed — not a single average. Because the cost-versus-PCI curve is non-linear, pricing everything at the network-average PCI under-states the true program cost (the failed/poor tail is disproportionately expensive). To correct this without requiring per-segment condition data the model does not have, PVMT spreads the single configured average PCI into a distribution around that average (a Beta distribution on the 0–100 scale, with the average preserved exactly) and prices each slice separately. The result is a more realistic — and modestly higher — cost than pricing the average alone. This is a deliberately conservative approximation of the real spread; it is applied automatically and moves the solvency dollars in the direction validated against published city data. When field-measured per-segment condition becomes available, it will replace this assumed spread.

Treatment cycle

Real pavement is maintained on a multi-year cycle: a city treats roughly one slice of its network each year, not the whole network annually. The model captures this with a treatment cycle of N years (default 12, the midpoint of a typical 10–14 year municipal cycle, configurable via treatment_cycle_years). Each forecast year only 1/N of the network is scheduled for treatment, so the annual treatment need is the full-network retreatment cost divided by N. This is what makes the break-even budget a realistic annual program cost rather than the one-off cost of rebuilding the entire network at once. A cycle of N = 1 reproduces the older behavior (the whole network priced every year), which overstated the hold-steady budget several-fold.

The cost level and the cycle length are not independent — the break-even budget scales as cost ÷ N, so a cheaper cost basis and a shorter cycle trade off exactly. We anchor the cycle to the physical rate at which a city actually repaves (lane-miles treated per year, not dollars): for Berkeley that hold-steady cadence is ≈ 12 years, which is the default. With the cycle fixed there, the default bare-construction cost tiers reproduce the city's cited real hold-steady spend (~$5.6 per m² per year), so the break-even dollars are calibrated to reality rather than chosen freely. See the validation report for the derivation and the limits of this anchor.

Scenario comparisons

PVMT ships with three comparison runs driven by annual funding level, all using the worst-first allocation strategy (budget is spent on the lowest-PCI segments first):

A do-nothing baseline (no spend, uncontrolled decay) is shown alongside the funded runs for comparison.

The forecast library also implements a preventive-first strategy (prioritize highest-PCI segments that are still in the preservation window), but the default UI comparisons do not exercise it. Preventive vs. worst-first allocation is governed by per-strategy efficiency multipliers; those multipliers are illustrative calibration constants chosen to reflect the direction and sign of the effect reported in FHWA-HIF-12-042, Pavement Preservation: Preserving our Investment — that $1 of preventive maintenance is reported to avoid $6–$10 of future reconstruction — not to reproduce that benefit-cost ratio as a single-year spending efficiency.

Area growth

Optional compound annual growth applies to pavement area each year:

Area(y) = Area₀ · (1 + g)^y

where g is configured per city (default zero). This lets an example model a city that is still expanding its street network; it does not model demolition or removal.

Solvency metrics (streets/roads only)

The dashboard's Financials headline and the cross-city leaderboard report three solvency figures. They are computed on the roads/streets cohort only — the aggregate scenarios blend roads, parking, and sidewalks but cost the blend at road tiers, which would mis-price sidewalks, so an absolute dollar claim must be roads-only. They are derived from a worst-first run at the city's configured annual budget.

Three caveats apply to these figures specifically:

Compare-tab scores

The multi-city Compare view presents two distinct per-city scores:

Assumptions and limitations

References

Project Configuration

Input Configuration

# Los Angeles County, CA — all 88 incorporated cities, Overpass-only
#
# A county-wide analysis across every incorporated city in Los Angeles
# County, from the City of LA (one of the largest municipal footprints in
# the country) down to tiny enclaves like Vernon, Bradbury, and Rolling
# Hills. This is the SoCal analogue to the bay-area-ca example: a big
# multi-city config whose Compare tab ranks dozens of neighboring
# jurisdictions against one another.
#
# The county has 88 incorporated cities; 87 are listed here. Compton is
# omitted because OpenStreetMap currently has no boundary polygon for it
# (see the note where it would otherwise appear, below).
#
# Techniques demonstrated:
#   - A custom four-tier forecast cost schedule (Failed/Poor/Fair/Good).
#   - Per-city hex_edge_m overrides sized to each jurisdiction: LA proper at
#     300 m, the Antelope Valley cities (Palmdale, Lancaster) at 250 m, and
#     the other large cities at 150-200 m; the many compact cities stay on
#     the 125 m default.
#   - boundary_relation_id for cities Nominatim mis-types as a suburb or
#     returns only as a place node (Industry, La Habra Heights, the Palos
#     Verdes/Rolling Hills enclaves, Rosemead) — the admin boundary is
#     pinned to a specific OSM relation instead.
#
# Mostly a minimal config: most cities run on the top-level [forecast]
# defaults (no per-city PCI/budget). A handful (Los Angeles, Long Beach,
# Pasadena, Glendale, Burbank) keep cited PCI/budget values from earlier
# revisions — see their #@cite comments. Overpass-only. Expect ~87
# Nominatim + Overpass pulls for `pvmt all ingest`.

config_id = "los-angeles-ca"

[grid]
hex_edge_m = 125

[forecast]
years = 20
decay_rate = 0.03

[[forecast.cost_tiers]]
min_pci = 0
max_pci = 25
cost_per_sqm = 200.0
label = "Failed"

[[forecast.cost_tiers]]
min_pci = 25
max_pci = 50
cost_per_sqm = 120.0
label = "Poor"

[[forecast.cost_tiers]]
min_pci = 50
max_pci = 70
cost_per_sqm = 60.0
label = "Fair"

[[forecast.cost_tiers]]
min_pci = 70
max_pci = 100
cost_per_sqm = 15.0
label = "Good"

[[cities]]
name = "Agoura Hills, CA"
overpass = true

[[cities]]
name = "Alhambra, CA"
overpass = true

[[cities]]
name = "Arcadia, CA"
overpass = true

[[cities]]
name = "Artesia, CA"
overpass = true

[[cities]]
name = "Avalon, CA"
overpass = true

[[cities]]
name = "Azusa, CA"
overpass = true

[[cities]]
name = "Baldwin Park, CA"
overpass = true

[[cities]]
name = "Bell, CA"
overpass = true

[[cities]]
name = "Bell Gardens, CA"
overpass = true

[[cities]]
name = "Bellflower, CA"
overpass = true

[[cities]]
name = "Beverly Hills, CA"
overpass = true

[[cities]]
name = "Bradbury, CA"
overpass = true

[[cities]]
name = "Burbank, CA"
#@cite Burbank citywide PCI, target 73 by FY2030/31 (2023)
#@cite     https://myburbank.com/burbank-announces-upcoming-street-repaving-road-repairs-zones/ (accessed 2026-06-14)
forecast.initial_pci = 67
#@cite Pavement Management Program annual budget, FY2023/24
#@cite     https://myburbank.com/burbank-announces-upcoming-street-repaving-road-repairs-zones/ (accessed 2026-06-14)
forecast.current_budget = 8000000.0
overpass = true

[[cities]]
name = "Calabasas, CA"
overpass = true
hex_edge_m = 150

[[cities]]
name = "Carson, CA"
overpass = true
hex_edge_m = 150

[[cities]]
name = "Cerritos, CA"
overpass = true

[[cities]]
name = "Claremont, CA"
overpass = true

[[cities]]
name = "Commerce, CA"
overpass = true

# Compton is omitted: OpenStreetMap has no administrative boundary polygon
# for it (it exists only as a place=city node), so neither the Nominatim
# search nor a boundary_relation_id lookup can supply a footprint. Re-add it
# here with a boundary_relation_id if OSM gains a boundary=administrative
# relation for Compton, CA.

[[cities]]
name = "Covina, CA"
overpass = true

[[cities]]
name = "Cudahy, CA"
overpass = true

[[cities]]
name = "Culver City, CA"
overpass = true

[[cities]]
name = "Diamond Bar, CA"
overpass = true

[[cities]]
name = "Downey, CA"
overpass = true

[[cities]]
name = "Duarte, CA"
overpass = true

[[cities]]
name = "El Monte, CA"
overpass = true

[[cities]]
name = "El Segundo, CA"
overpass = true

[[cities]]
name = "Gardena, CA"
overpass = true

[[cities]]
name = "Glendale, CA"
#@cite Citywide PCI 58, Sept 2023 City Council PMP report
#@cite     https://www.glendalestar.com/news/article_f358ac62-5a5f-11ee-b646-27d066b51a60.html (accessed 2026-06-14)
forecast.initial_pci = 58
overpass = true
hex_edge_m = 150

[[cities]]
name = "Glendora, CA"
overpass = true

[[cities]]
name = "Hawaiian Gardens, CA"
overpass = true

[[cities]]
name = "Hawthorne, CA"
overpass = true

[[cities]]
name = "Hermosa Beach, CA"
overpass = true

[[cities]]
name = "Hidden Hills, CA"
overpass = true

[[cities]]
name = "Huntington Park, CA"
overpass = true

[[cities]]
name = "Industry, CA"
overpass = true
# Nominatim types the City of Industry boundary as a suburb, not a city;
# pin the admin_level=8 relation to get the correct municipal footprint.
boundary_relation_id = 112088

[[cities]]
name = "Inglewood, CA"
overpass = true

[[cities]]
name = "Irwindale, CA"
overpass = true

[[cities]]
name = "La Cañada Flintridge, CA"
overpass = true

[[cities]]
name = "La Habra Heights, CA"
overpass = true
# Nominatim types this boundary as a suburb; pin the admin_level=8 relation.
boundary_relation_id = 3523972

[[cities]]
name = "La Mirada, CA"
overpass = true

[[cities]]
name = "La Puente, CA"
overpass = true

[[cities]]
name = "La Verne, CA"
overpass = true

[[cities]]
name = "Lakewood, CA"
overpass = true

[[cities]]
name = "Lancaster, CA"
overpass = true
hex_edge_m = 250  # sprawling Antelope Valley city (~245 km²)

[[cities]]
name = "Lawndale, CA"
overpass = true

[[cities]]
name = "Lomita, CA"
overpass = true

[[cities]]
name = "Long Beach, CA"
#@cite Citywide PCI 61, 2025 City Manager memo (longbeach.gov) [PCI not byte-verified]
#@cite     https://www.longbeach.gov/globalassets/city-manager/media-library/documents/memos-to-the-mayor-tabbed-file-list-folders/2025/august-1--2025---city-of-long-beach-updated-pavement-condition-index--pci--score (accessed 2026-06-14)
forecast.initial_pci = 61
#@cite $27.5M arterial + $18M residential street repairs = $45.5M, FY2025 completed
#@cite     https://www.longbeach.gov/globalassets/finance/media-library/documents/city-budget-and-finances/budget/budget-documents/fy-25-adopted-budget/32-public-works (accessed 2026-06-14)
forecast.current_budget = 45500000.0
overpass = true
hex_edge_m = 200  # second-largest LA-area city (~170 km²)

[[cities]]
name = "Los Angeles, CA"
#@cite StreetsLA citywide network-average PCI 71
#@cite     https://data.streetsforall.org/blog/repaving/ (accessed 2026-06-14)
forecast.initial_pci = 71
overpass = true
hex_edge_m = 300  # LA proper is very large (~1300 km²); use coarse hexes

[[cities]]
name = "Lynwood, CA"
overpass = true

[[cities]]
name = "Malibu, CA"
overpass = true
hex_edge_m = 150  # long, thin coastal footprint (~50 km²)

[[cities]]
name = "Manhattan Beach, CA"
overpass = true

[[cities]]
name = "Maywood, CA"
overpass = true

[[cities]]
name = "Monrovia, CA"
overpass = true

[[cities]]
name = "Montebello, CA"
overpass = true

[[cities]]
name = "Monterey Park, CA"
overpass = true

[[cities]]
name = "Norwalk, CA"
overpass = true

[[cities]]
name = "Palmdale, CA"
overpass = true
hex_edge_m = 250  # sprawling Antelope Valley city (~275 km²)

[[cities]]
name = "Palos Verdes Estates, CA"
overpass = true
# Nominatim types this boundary as a suburb; pin the admin_level=8 relation.
boundary_relation_id = 2314269

[[cities]]
name = "Paramount, CA"
overpass = true

[[cities]]
name = "Pasadena, CA"
#@cite Citywide avg PCI 57, FY2026 Street Pavement & Maintenance Audit (cityofpasadena.net) [PCI not byte-verified]
#@cite     https://www.cityofpasadena.net/city-manager/wp-content/uploads/sites/2/2026-04-Street-Pavement-and-Maintenance-Audit.pdf (accessed 2026-06-14)
forecast.initial_pci = 57
#@cite $1.1M CDBG street resurfacing & ADA improvements, FY2026
#@cite     https://pasadenanow.com/main/local-affordable-housing-homeless-services-and-street-repairs-are-set-for-funding-review-funding-for-2026 (accessed 2026-06-14)
forecast.current_budget = 1100000.0
overpass = true
hex_edge_m = 150  # ~60 km²

[[cities]]
name = "Pico Rivera, CA"
overpass = true

[[cities]]
name = "Pomona, CA"
overpass = true
hex_edge_m = 150  # ~60 km²

[[cities]]
name = "Rancho Palos Verdes, CA"
overpass = true

[[cities]]
name = "Redondo Beach, CA"
overpass = true

[[cities]]
name = "Rolling Hills, CA"
overpass = true
# Nominatim types this boundary as a suburb; pin the admin_level=8 relation.
boundary_relation_id = 2314272

[[cities]]
name = "Rolling Hills Estates, CA"
overpass = true
# Nominatim types this boundary as a suburb; pin the admin_level=8 relation.
boundary_relation_id = 2314271

[[cities]]
name = "Rosemead, CA"
overpass = true
# Nominatim returns Rosemead only as a place node (no polygon); pin the
# boundary=administrative relation (which lacks an admin_level tag in OSM).
boundary_relation_id = 10435737

[[cities]]
name = "San Dimas, CA"
overpass = true

[[cities]]
name = "San Fernando, CA"
overpass = true

[[cities]]
name = "San Gabriel, CA"
overpass = true

[[cities]]
name = "San Marino, CA"
overpass = true

[[cities]]
name = "Santa Clarita, CA"
overpass = true
hex_edge_m = 200  # large northern LA County city (~180 km²)

[[cities]]
name = "Santa Fe Springs, CA"
overpass = true

[[cities]]
name = "Santa Monica, CA"
overpass = true

[[cities]]
name = "Sierra Madre, CA"
overpass = true

[[cities]]
name = "Signal Hill, CA"
overpass = true

[[cities]]
name = "South El Monte, CA"
overpass = true

[[cities]]
name = "South Gate, CA"
overpass = true

[[cities]]
name = "South Pasadena, CA"
overpass = true

[[cities]]
name = "Temple City, CA"
overpass = true

[[cities]]
name = "Torrance, CA"
overpass = true
hex_edge_m = 150  # ~55 km²

[[cities]]
name = "Vernon, CA"
overpass = true

[[cities]]
name = "Walnut, CA"
overpass = true

[[cities]]
name = "West Covina, CA"
overpass = true
hex_edge_m = 150  # ~42 km²

[[cities]]
name = "West Hollywood, CA"
overpass = true

[[cities]]
name = "Westlake Village, CA"
overpass = true

[[cities]]
name = "Whittier, CA"
overpass = true

Effective configuration (with defaults)

[grid]
  hex_edge_m = 125.0

[display]
  units = "imperial"
  min_hex_area = 100.0

[export]
  title = ""
  coordinate_decimals = 0

[forecast]
  initial_pci = 85.0
  decay_rate = 0.03
  growth_rate = 0.0
  years = 20
  treatment_cycle_years = 0.0

  [[forecast.cost_tiers]]
    min_pci = 0.0
    max_pci = 25.0
    cost_per_sqm = 200.0
    label = "Failed"

  [[forecast.cost_tiers]]
    min_pci = 25.0
    max_pci = 50.0
    cost_per_sqm = 120.0
    label = "Poor"

  [[forecast.cost_tiers]]
    min_pci = 50.0
    max_pci = 70.0
    cost_per_sqm = 60.0
    label = "Fair"

  [[forecast.cost_tiers]]
    min_pci = 70.0
    max_pci = 100.0
    cost_per_sqm = 15.0
    label = "Good"

[[cities]]
  name = "Agoura Hills, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Alhambra, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Arcadia, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Artesia, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Avalon, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Azusa, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Baldwin Park, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Bell, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Bell Gardens, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Bellflower, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Beverly Hills, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Bradbury, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Burbank, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false
  [cities.forecast]
    initial_pci = 67.0
    decay_rate = 0.0
    growth_rate = 0.0
    years = 0
    treatment_cycle_years = 0.0
    current_budget = 8e+06

[[cities]]
  name = "Calabasas, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Carson, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Cerritos, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Claremont, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Commerce, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Covina, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Cudahy, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Culver City, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Diamond Bar, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Downey, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Duarte, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "El Monte, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "El Segundo, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Gardena, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Glendale, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false
  [cities.forecast]
    initial_pci = 58.0
    decay_rate = 0.0
    growth_rate = 0.0
    years = 0
    treatment_cycle_years = 0.0

[[cities]]
  name = "Glendora, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Hawaiian Gardens, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Hawthorne, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Hermosa Beach, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Hidden Hills, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Huntington Park, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Industry, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 112088
  allow_private_arcgis = false

[[cities]]
  name = "Inglewood, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Irwindale, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "La Cañada Flintridge, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "La Habra Heights, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 3523972
  allow_private_arcgis = false

[[cities]]
  name = "La Mirada, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "La Puente, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "La Verne, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Lakewood, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Lancaster, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 250.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Lawndale, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Lomita, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Long Beach, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 200.0
  boundary_relation_id = 0
  allow_private_arcgis = false
  [cities.forecast]
    initial_pci = 61.0
    decay_rate = 0.0
    growth_rate = 0.0
    years = 0
    treatment_cycle_years = 0.0
    current_budget = 4.55e+07

[[cities]]
  name = "Los Angeles, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 300.0
  boundary_relation_id = 0
  allow_private_arcgis = false
  [cities.forecast]
    initial_pci = 71.0
    decay_rate = 0.0
    growth_rate = 0.0
    years = 0
    treatment_cycle_years = 0.0

[[cities]]
  name = "Lynwood, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Malibu, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Manhattan Beach, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Maywood, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Monrovia, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Montebello, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Monterey Park, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Norwalk, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Palmdale, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 250.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Palos Verdes Estates, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 2314269
  allow_private_arcgis = false

[[cities]]
  name = "Paramount, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Pasadena, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false
  [cities.forecast]
    initial_pci = 57.0
    decay_rate = 0.0
    growth_rate = 0.0
    years = 0
    treatment_cycle_years = 0.0
    current_budget = 1.1e+06

[[cities]]
  name = "Pico Rivera, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Pomona, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Rancho Palos Verdes, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Redondo Beach, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Rolling Hills, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 2314272
  allow_private_arcgis = false

[[cities]]
  name = "Rolling Hills Estates, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 2314271
  allow_private_arcgis = false

[[cities]]
  name = "Rosemead, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 10435737
  allow_private_arcgis = false

[[cities]]
  name = "San Dimas, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "San Fernando, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "San Gabriel, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "San Marino, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Santa Clarita, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 200.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Santa Fe Springs, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Santa Monica, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Sierra Madre, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Signal Hill, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "South El Monte, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "South Gate, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "South Pasadena, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Temple City, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Torrance, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Vernon, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Walnut, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "West Covina, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 150.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "West Hollywood, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Westlake Village, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

[[cities]]
  name = "Whittier, CA"
  overpass = true
  arcgis_url = ""
  hex_edge_m = 0.0
  boundary_relation_id = 0
  allow_private_arcgis = false

City Showdown

How does your city's pavement stack up?
Loading city data...

Region Rollup

The whole network as one fiscal entity — what does it cost to keep solvent?
Loading region data...