{
 "ocl_version": "0.1.0",
 "name": "North Malvern Road",
 "slug": "north-malvern-road",
 "confidence": "A",
 "reported_claims": [],
 "ladder": [
  {
   "window_m": 2.0,
   "max_gradient_pct": 28.1886696121461,
   "diagnostic": true,
   "flags": [],
   "start_distance_m": 1806.0,
   "end_distance_m": 1808.0,
   "start_elevation_m": 220.9153132338095,
   "end_elevation_m": 221.47908662605244,
   "min_gradient_pct": -0.826947075636042
  },
  {
   "window_m": 3.0,
   "max_gradient_pct": 25.36954503224725,
   "diagnostic": true,
   "flags": [],
   "start_distance_m": 1837.0,
   "end_distance_m": 1840.0,
   "start_elevation_m": 226.71349664421075,
   "end_elevation_m": 227.47458299517817,
   "min_gradient_pct": 0.008895684384431965
  },
  {
   "window_m": 5.0,
   "max_gradient_pct": 24.76245406082569,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 1834.0,
   "end_distance_m": 1839.0,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 227.20340057965518,
   "min_gradient_pct": 0.7885646427291704
  },
  {
   "window_m": 10.0,
   "max_gradient_pct": 23.597852901128817,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 1834.0,
   "end_distance_m": 1844.0,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 228.32506316672678,
   "min_gradient_pct": 1.4371033550239076
  },
  {
   "window_m": 20.0,
   "max_gradient_pct": 21.889079878052087,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 1833.0,
   "end_distance_m": 1853.0,
   "start_elevation_m": 225.78915498124732,
   "end_elevation_m": 230.16697095685774,
   "min_gradient_pct": 1.7132340615620478
  },
  {
   "window_m": 25.0,
   "max_gradient_pct": 21.140405814919973,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 1834.0,
   "end_distance_m": 1859.0,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 231.2503793303439,
   "min_gradient_pct": 1.740310726454254
  },
  {
   "window_m": 50.0,
   "max_gradient_pct": 19.70044313533731,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 1806.0,
   "end_distance_m": 1856.0,
   "start_elevation_m": 220.9153132338095,
   "end_elevation_m": 230.76553480147817,
   "min_gradient_pct": 2.0247692261173142
  },
  {
   "window_m": 100.0,
   "max_gradient_pct": 14.116100141503296,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 120.0,
   "end_distance_m": 220.0,
   "start_elevation_m": 118.71410252084473,
   "end_elevation_m": 132.83020266234803,
   "min_gradient_pct": 2.6570600230786
  }
 ],
 "shape": {
  "ascent_concentration": 0.293,
  "concentration_window_frac": 0.25,
  "longest_pitch_10pct_m": 73.0,
  "shape_class": "sustained"
 },
 "length_m": 1859.6378788723584,
 "start_elevation_m": 109.36238191703771,
 "end_elevation_m": 231.38331502006,
 "endpoint_gain_m": 122.02093310302229,
 "overall_gradient_pct": 6.561542679320609,
 "accumulated_ascent_m": 122.34786301911295,
 "window_maxima": {
  "max_5m": {
   "gradient_pct": 24.76245406082569,
   "start_distance_m": 1834.0,
   "end_distance_m": 1839.0,
   "midpoint_distance_m": 1836.5,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 227.20340057965518,
   "start_xy": [
    376484.90973163117,
    247038.23730163282
   ],
   "end_xy": [
    376489.68035789276,
    247039.73433895997
   ]
  },
  "max_10m": {
   "gradient_pct": 23.597852901128817,
   "start_distance_m": 1834.0,
   "end_distance_m": 1844.0,
   "midpoint_distance_m": 1839.0,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 228.32506316672678,
   "start_xy": [
    376484.90973163117,
    247038.23730163282
   ],
   "end_xy": [
    376494.4509384548,
    247041.23152152664
   ]
  },
  "max_20m": {
   "gradient_pct": 21.889079878052087,
   "start_distance_m": 1833.0,
   "end_distance_m": 1853.0,
   "midpoint_distance_m": 1843.0,
   "start_elevation_m": 225.78915498124732,
   "end_elevation_m": 230.16697095685774,
   "start_xy": [
    376483.95574271126,
    247037.93745997208
   ],
   "end_xy": [
    376503.0377176303,
    247043.9272972447
   ]
  },
  "max_25m": {
   "gradient_pct": 21.140405814919973,
   "start_distance_m": 1834.0,
   "end_distance_m": 1859.0,
   "midpoint_distance_m": 1846.5,
   "start_elevation_m": 225.9652778766139,
   "end_elevation_m": 231.2503793303439,
   "start_xy": [
    376484.90973163117,
    247038.23730163282
   ],
   "end_xy": [
    376508.7623295481,
    247045.72418664407
   ]
  },
  "max_50m": {
   "gradient_pct": 19.70044313533731,
   "start_distance_m": 1806.0,
   "end_distance_m": 1856.0,
   "midpoint_distance_m": 1831.0,
   "start_elevation_m": 220.9153132338095,
   "end_elevation_m": 230.76553480147817,
   "start_xy": [
    376458.1950249086,
    247029.85134497136
   ],
   "end_xy": [
    376505.90009281924,
    247044.82552130448
   ]
  },
  "max_100m": {
   "gradient_pct": 14.116100141503296,
   "start_distance_m": 120.0,
   "end_distance_m": 220.0,
   "midpoint_distance_m": 170.0,
   "start_elevation_m": 118.71410252084473,
   "end_elevation_m": 132.83020266234803,
   "start_xy": [
    377642.8731578581,
    246748.06788699457
   ],
   "end_xy": [
    377556.3324882916,
    246797.94939220411
   ]
  }
 },
 "window_minima": {
  "min_5m": {
   "gradient_pct": 0.7885646427291704,
   "start_distance_m": 272.0,
   "end_distance_m": 277.0,
   "midpoint_distance_m": 274.5,
   "start_elevation_m": 134.3262689618312,
   "end_elevation_m": 134.36569719396766,
   "start_xy": [
    377566.040649324,
    246759.66412211646
   ],
   "end_xy": [
    377567.8968933423,
    246755.02145546727
   ]
  },
  "min_10m": {
   "gradient_pct": 1.4371033550239076,
   "start_distance_m": 283.0,
   "end_distance_m": 293.0,
   "midpoint_distance_m": 288.0,
   "start_elevation_m": 134.57323529499942,
   "end_elevation_m": 134.7169456305018,
   "start_xy": [
    377570.1240302802,
    246749.45011293798
   ],
   "end_xy": [
    377573.83686009597,
    246740.16491636357
   ]
  },
  "min_20m": {
   "gradient_pct": 1.7132340615620478,
   "start_distance_m": 256.0,
   "end_distance_m": 276.0,
   "midpoint_distance_m": 266.0,
   "start_elevation_m": 134.0206947451858,
   "end_elevation_m": 134.36334155749822,
   "start_xy": [
    377560.1777957298,
    246774.55101823862
   ],
   "end_xy": [
    377567.5254797259,
    246755.94992294256
   ]
  },
  "min_25m": {
   "gradient_pct": 1.740310726454254,
   "start_distance_m": 249.0,
   "end_distance_m": 274.0,
   "midpoint_distance_m": 261.5,
   "start_elevation_m": 133.88686779677414,
   "end_elevation_m": 134.3219454783877,
   "start_xy": [
    377557.65080899274,
    246781.07898396056
   ],
   "end_xy": [
    377566.78306615015,
    246757.80702321482
   ]
  },
  "min_50m": {
   "gradient_pct": 2.0247692261173142,
   "start_distance_m": 243.0,
   "end_distance_m": 293.0,
   "midpoint_distance_m": 268.0,
   "start_elevation_m": 133.70456101744315,
   "end_elevation_m": 134.7169456305018,
   "start_xy": [
    377555.4846761395,
    246786.67432731812
   ],
   "end_xy": [
    377573.83686009597,
    246740.16491636357
   ]
  },
  "min_100m": {
   "gradient_pct": 2.6570600230786,
   "start_distance_m": 226.0,
   "end_distance_m": 326.0,
   "midpoint_distance_m": 276.0,
   "start_elevation_m": 133.2072203513089,
   "end_elevation_m": 135.8642803743875,
   "start_xy": [
    377551.08410547866,
    246800.85704913997
   ],
   "end_xy": [
    377551.8751134132,
    246756.06706055938
   ]
  }
 },
 "diagnostic_window_maxima": {
  "max_2m": {
   "gradient_pct": 28.1886696121461,
   "start_distance_m": 1806.0,
   "end_distance_m": 1808.0,
   "midpoint_distance_m": 1807.0,
   "start_elevation_m": 220.9153132338095,
   "end_elevation_m": 221.47908662605244,
   "start_xy": [
    376458.1950249086,
    247029.85134497136
   ],
   "end_xy": [
    376460.1032755836,
    247030.4501586997
   ]
  },
  "max_3m": {
   "gradient_pct": 25.36954503224725,
   "start_distance_m": 1837.0,
   "end_distance_m": 1840.0,
   "midpoint_distance_m": 1838.5,
   "start_elevation_m": 226.71349664421075,
   "end_elevation_m": 227.47458299517817,
   "start_xy": [
    376487.7721068172,
    247039.13552570174
   ],
   "end_xy": [
    376490.63434669736,
    247040.03418098798
   ]
  }
 },
 "diagnostic_note": "Windows <=3 m are at raster-noise scale (1-sigma raster noise alone is roughly +/-7 pp at 2 m and +/-5 pp at 3 m on a 1 m DTM). Diagnostic use only: never a headline or ranking value.",
 "quality_summary": {
  "overhead_obstruction": {
   "obstruction_threshold_m": 2.0,
   "obstructed_fraction": 0.015,
   "obstruction_max_height_m": 8.89,
   "flagged_windows_m": []
  },
  "review": [],
  "extent": [
   "may_continue_beyond_end"
  ]
 },
 "provenance": {
  "analysis_version": "0.1.0",
  "sample_interval_m": 1.0,
  "interpolation": "bilinear",
  "smoothing": "none",
  "gradient_windows_m": [
   5.0,
   10.0,
   20.0,
   25.0,
   50.0,
   100.0
  ],
  "diagnostic_windows_m": [
   2.0,
   3.0
  ],
  "elevation_crs": "EPSG:27700",
  "elevation_resolution_m": 1.0,
  "elevation_tiles": [
   "data/cache/england/bulk_dtm_1m/SO7545.tif"
  ],
  "calculated_at": "2026-08-19T18:42:24+00:00",
  "road_source": "OpenStreetMap (local PBF extract)",
  "road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
  "osm_pbf_path": "data/cache/pbf/england-2026-08-12.osm.pbf",
  "osm_snapshot": "2026-08-12T20:21:46Z",
  "elevation_provider": "Environment Agency",
  "elevation_dataset": "EA LIDAR Composite DTM 1m (2022)",
  "elevation_licence": "Open Government Licence v3 \u2014 \u00a9 Environment Agency",
  "elevation_coverage_id": "13787b9a-26a4-4775-8523-806d13af58fc__Lidar_Composite_Elevation_DTM_1m",
  "elevation_tile_ids": [
   "SO7545.tif"
  ],
  "climb_origin": "discovered",
  "notes": "Coarse pass: max 7.6% over 200 m (Terrain 50), gain 24.9 m over 343 m way. EXTENDED by graph walk: +6 segment(s) at base, +8 at top (stop: base=no_descending_continuation, top=no_ascending_continuation; min_avg=2.0%). Review before adopting. DEDUPE: absorbed 2 overlapping proposal(s): belvoir-bank, west-malvern-road ADOPTED (England launch slice 2026-08-16): clean-steep."
 },
 "area": {
  "place": "Great Malvern",
  "county": "Worcestershire"
 }
}