{
 "ocl_version": "0.1.0",
 "name": "Ball Hill",
 "slug": "ball-hill",
 "confidence": "A",
 "reported_claims": [],
 "ladder": [
  {
   "window_m": 2.0,
   "max_gradient_pct": 39.56081770963351,
   "diagnostic": true,
   "flags": [],
   "start_distance_m": 139.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 128.90208614327614,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -19.09313643590167
  },
  {
   "window_m": 3.0,
   "max_gradient_pct": 36.232162299567484,
   "diagnostic": true,
   "flags": [],
   "start_distance_m": 138.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 128.60633762848178,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -16.02717297541858
  },
  {
   "window_m": 5.0,
   "max_gradient_pct": 35.34253384246938,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 136.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 127.92617580534534,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -10.644042765449058
  },
  {
   "window_m": 10.0,
   "max_gradient_pct": 30.62477437380082,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 130.0,
   "end_distance_m": 140.0,
   "start_elevation_m": 126.24567679577261,
   "end_elevation_m": 129.3081542331527,
   "min_gradient_pct": -7.402984070979528
  },
  {
   "window_m": 20.0,
   "max_gradient_pct": 24.77250494315129,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 121.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 124.73880150883855,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -6.980612382333362
  },
  {
   "window_m": 25.0,
   "max_gradient_pct": 23.1378785170391,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 116.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 123.90883286820903,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -6.67715892785202
  },
  {
   "window_m": 50.0,
   "max_gradient_pct": 20.656708730187855,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 91.0,
   "end_distance_m": 141.0,
   "start_elevation_m": 119.36494813237488,
   "end_elevation_m": 129.6933024974688,
   "min_gradient_pct": -5.859279974112269
  },
  {
   "window_m": 100.0,
   "max_gradient_pct": 18.03597707487208,
   "diagnostic": false,
   "flags": [],
   "start_distance_m": 57.0,
   "end_distance_m": 157.0,
   "start_elevation_m": 114.29350865900241,
   "end_elevation_m": 132.3294857338745,
   "min_gradient_pct": -3.618397636235784
  }
 ],
 "shape": {
  "ascent_concentration": 0.533,
  "concentration_window_frac": 0.25,
  "longest_pitch_10pct_m": 130.0,
  "shape_class": "stepped"
 },
 "length_m": 694.4301671586834,
 "start_elevation_m": 110.34813323936481,
 "end_elevation_m": 152.77376145629847,
 "endpoint_gain_m": 42.42562821693366,
 "overall_gradient_pct": 6.109416068504268,
 "accumulated_ascent_m": 47.734817492761195,
 "window_maxima": {
  "max_5m": {
   "gradient_pct": 35.34253384246938,
   "start_distance_m": 136.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 138.5,
   "start_elevation_m": 127.92617580534534,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    287998.8327144173,
    107664.69197116558
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  },
  "max_10m": {
   "gradient_pct": 30.62477437380082,
   "start_distance_m": 130.0,
   "end_distance_m": 140.0,
   "midpoint_distance_m": 135.0,
   "start_elevation_m": 126.24567679577261,
   "end_elevation_m": 129.3081542331527,
   "start_xy": [
    287998.4520832626,
    107670.67988565427
   ],
   "end_xy": [
    287999.08646852046,
    107660.7000281731
   ]
  },
  "max_20m": {
   "gradient_pct": 24.77250494315129,
   "start_distance_m": 121.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 131.0,
   "start_elevation_m": 124.73880150883855,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    287998.1807993478,
    107679.67045126749
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  },
  "max_25m": {
   "gradient_pct": 23.1378785170391,
   "start_distance_m": 116.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 128.5,
   "start_elevation_m": 123.90883286820903,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    287998.208164253,
    107684.67037638313
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  },
  "max_50m": {
   "gradient_pct": 20.656708730187855,
   "start_distance_m": 91.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 116.0,
   "start_elevation_m": 119.36494813237488,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    288001.2615918221,
    107709.3307925432
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  },
  "max_100m": {
   "gradient_pct": 18.03597707487208,
   "start_distance_m": 57.0,
   "end_distance_m": 157.0,
   "midpoint_distance_m": 107.0,
   "start_elevation_m": 114.29350865900241,
   "end_elevation_m": 132.3294857338745,
   "start_xy": [
    288017.66688386846,
    107738.90555716194
   ],
   "end_xy": [
    288000.16492345877,
    107643.7342704551
   ]
  }
 },
 "window_minima": {
  "min_5m": {
   "gradient_pct": -10.644042765449058,
   "start_distance_m": 207.0,
   "end_distance_m": 212.0,
   "midpoint_distance_m": 209.5,
   "start_elevation_m": 137.14484692144345,
   "end_elevation_m": 136.612644783171,
   "start_xy": [
    288004.1150899224,
    107593.91471185115
   ],
   "end_xy": [
    288004.81627904146,
    107588.96412261153
   ]
  },
  "min_10m": {
   "gradient_pct": -7.402984070979528,
   "start_distance_m": 309.0,
   "end_distance_m": 319.0,
   "midpoint_distance_m": 314.0,
   "start_elevation_m": 137.32275014243484,
   "end_elevation_m": 136.5824517353369,
   "start_xy": [
    288012.3014642574,
    107492.95951704556
   ],
   "end_xy": [
    288010.77999464306,
    107483.07593822954
   ]
  },
  "min_20m": {
   "gradient_pct": -6.980612382333362,
   "start_distance_m": 303.0,
   "end_distance_m": 323.0,
   "midpoint_distance_m": 313.0,
   "start_elevation_m": 137.67294849235358,
   "end_elevation_m": 136.2768260158869,
   "start_xy": [
    288013.214346026,
    107498.88966433518
   ],
   "end_xy": [
    288010.17140679737,
    107479.12250670312
   ]
  },
  "min_25m": {
   "gradient_pct": -6.67715892785202,
   "start_distance_m": 298.0,
   "end_distance_m": 323.0,
   "midpoint_distance_m": 310.5,
   "start_elevation_m": 137.94611574784992,
   "end_elevation_m": 136.2768260158869,
   "start_xy": [
    288013.9750808332,
    107503.83145374319
   ],
   "end_xy": [
    288010.17140679737,
    107479.12250670312
   ]
  },
  "min_50m": {
   "gradient_pct": -5.859279974112269,
   "start_distance_m": 286.0,
   "end_distance_m": 336.0,
   "midpoint_distance_m": 311.0,
   "start_elevation_m": 138.59558354724646,
   "end_elevation_m": 135.66594356019033,
   "start_xy": [
    288015.1938780035,
    107515.69540186535
   ],
   "end_xy": [
    288008.1934962987,
    107466.27385424229
   ]
  },
  "min_100m": {
   "gradient_pct": -3.618397636235784,
   "start_distance_m": 266.0,
   "end_distance_m": 366.0,
   "midpoint_distance_m": 316.0,
   "start_elevation_m": 138.7909744185448,
   "end_elevation_m": 135.17257678230902,
   "start_xy": [
    288012.38912152726,
    107535.49775882377
   ],
   "end_xy": [
    287999.8923626376,
    107437.57108480058
   ]
  }
 },
 "diagnostic_window_maxima": {
  "max_2m": {
   "gradient_pct": 39.56081770963351,
   "start_distance_m": 139.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 140.0,
   "start_elevation_m": 128.90208614327614,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    287999.0230299947,
    107661.69801392122
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  },
  "max_3m": {
   "gradient_pct": 36.232162299567484,
   "start_distance_m": 138.0,
   "end_distance_m": 141.0,
   "midpoint_distance_m": 139.5,
   "start_elevation_m": 128.60633762848178,
   "end_elevation_m": 129.6933024974688,
   "start_xy": [
    287998.9595914689,
    107662.69599966933
   ],
   "end_xy": [
    287999.14990704623,
    107659.70204242498
   ]
  }
 },
 "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.023,
   "obstruction_max_height_m": 6.57,
   "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/SS8505.tif"
  ],
  "calculated_at": "2026-08-15T04:35:28+00:00",
  "road_source": "OpenStreetMap (local PBF extract)",
  "road_attribution": "\u00a9 OpenStreetMap contributors, ODbL",
  "osm_pbf_path": "data/cache/pbf/england-2026-08-12-roads.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": [
   "SS8505.tif"
  ],
  "climb_origin": "discovered",
  "notes": "Coarse pass: max 12.7% over 200 m (Terrain 50), gain 30.7 m over 557 m way. EXTENDED by graph walk: +0 segment(s) at base, +1 at top (stop: base=no_descending_continuation, top=no_ascending_continuation; min_avg=2.0%). Review before adopting."
 },
 "area": {
  "place": "Upham",
  "county": "Devon"
 }
}