PROProduction
Workflow-grade Pro analysis with audit-ready outputs.
workflow pro
Market Access and Site Planning
Commercial real estate, retail operations, healthcare network planning, franchise development.
| Parameter | Type | Required | Description |
|---|---|---|---|
| `network` | LineVector path | Required | Street/transit network for routing |
| `sites_existing` | PointVector path | Required | Existing own or benchmark competitive sites |
| `sites_candidates` | PointVector path | Required | Candidate expansion site locations |
| `demand_surface` | PointVector path | Required | Demand locations (customers, population centroids) |
| `competition_sites` | PointVector path | Optional | Competitor locations (separate from own/benchmark) |
| `ring_costs` | array[float] | Required | Drive-time costs for catchments (e.g., [5, 10, 15]) |
| `catchments_output` | vector path | Required | Output drive-time catchment polygons |
| `overlap_analysis_output` | vector path | Required | Output competitive overlap analysis layer |
| `candidate_rank_csv` | path | Required | Output CSV: ranked candidates with KPIs |
| `executive_summary_json` | path | Required | Output JSON: market metrics and decision gate |
| `market_action_queue_csv` | path | Optional | Optional prioritized expansion action queue CSV |
Important input roles: `sites_existing` is the incumbent baseline used for existing coverage and coverage-gain calculations. `competition_sites` is an optional separate competitor layer used for overlap pressure. If `competition_sites` is omitted, overlap falls back to `sites_existing`.
| Output | Type | Contents |
|---|---|---|
| `catchments_output` | Vector | Drive-time catchment polygons per candidate |
| `overlap_analysis_output` | Vector/GeoJSON | Candidate-level overlap visualization with coverage gain and opportunity band |
| `candidate_rank_csv` | CSV | rank, site_id, x, y, demand_coverage_pct, coverage_gain_pct, avg_distance_to_demand, competitive_overlap_pct, accessibility_score, composite_rank_score, opportunity_band |
| `executive_summary_json` | JSON | total_candidates, market_metrics, top_candidates, recommendation, decision_gate, decision_rationale |
| `market_action_queue_csv` | CSV | Prioritized expansion actions by candidate/opportunity band |
Map interpretation: `catchments_output` contains one candidate-level polygon per candidate (not separate ring-band polygons). Catchments are convex-hull trade areas of covered demand plus candidate location; if a hull cannot be formed, a small fallback square polygon may be written. `overlap_analysis_output` is a point layer, and square symbols there are usually marker style.
env = WbEnvironment(license_tier="pro")
result = env.run_tool("market_access_and_site_intelligence_workflow",
network="city_network.gpkg",
sites_existing="existing_retail.gpkg",
sites_candidates="candidate_expansion_sites.gpkg",
demand_surface="customer_demand_points.gpkg",
competition_sites="competitor_locations.gpkg",
ring_costs=[5, 10, 15],
catchments_output="output/candidate_catchments.gpkg",
overlap_analysis_output="output/competitive_overlap.gpkg",
candidate_rank_csv="output/candidate_ranking.csv",
executive_summary_json="output/market_summary.json",
market_action_queue_csv="output/market_action_queue.csv",
)
print(result)
Use of this function requires a license for Whitebox Workflows Professional (WbW-Pro). Please visit www.whiteboxgeo.com to purchase a license.