Facility-review product fit: documented planning requirements
9 October 2026. Prioritize a separately scoped weighted, rectangular plan checker before browser polish. The first local release is a useful exact-model demonstration; it cannot yet cover the documented public planning workflow below. This review adds no customer evidence or solver benchmark.
Public baseline and current gap
PySAL's p-median tutorial, reviewed today, generates 100 clients and ten candidates, a 100-by-10 network-cost matrix and integer demand weights totaling 579. It compares network/Euclidean costs, requires existing sites in one variant and adds capacities in another. It is a synthetic tutorial, not an operational customer dataset.
The PMedian API, also reviewed today, accepts origin-destination costs, demand weights, a facility count, required sites and optional capacities. Its model includes explicit client assignment variables. The documented capacitated formulation assigns each client's whole demand to one open site.
| Requirement | Current local release | Consequence for the next build |
|---|---|---|
| Rectangular client-site costs | Complete strict metric over up to 48 shared locations | Add a separate cost-matrix contract; do not invent missing client-client or site-site distances |
| Demand weights | Unit demand only | Preserve exact weights in costs and model identity |
| Existing required sites | Explicitly unsupported | Check submitted site membership against required IDs |
| Capacities | Explicitly unsupported | Require assignments and check loads; nearest-site assignment is insufficient |
| Exact facility count | Nonempty at-most-k contract | Distinguish the submitted selection rule, even where objective minima can coincide |
| Geographic/network preprocessing | No GIS or route reconstruction | Preserve upstream origin, units and ID mapping; exact arithmetic does not validate geography |
What this changes
The first paid experiment should assess an independently checked planning review, with a clear accepted input contract. A user interface around the existing strict metric checker alone would not resolve these model gaps. Keep that checker for its mathematical source eligibility and exact bounds; add ordinary planning checks as a distinct module whose acceptance does not imply the source theorem applies.
For a fixed uncapacitated open-site set, recomputing weighted nearest-site cost is straightforward and does not require triangle inequalities. With capacities, the submitted assignment becomes essential: clients may need to use a farther open site. A feasible assignment and its cost do not certify optimal assignment or optimal facility selection. A solver adapter must preserve both decisions and any splitting convention, rather than merely return selected sites.
Do not convert floating GIS values to a rounded integer model and label the result exact for the original geography. Preserve input bytes, stated numeric representation, transformation provenance and the precise frozen values checked. When scaling a solver objective, record the conversion or explicitly refuse unsupported bounds.
Concrete next acceptance contract
- Separate client IDs and site IDs; exact nonnegative demand/cost strings and complete client-to-site pairs.
- Explicit exactly-k/at-most-k rule, required sites and capacity/whole-client-assignment convention.
- Submitted selected-site list and, for capacities, exactly one assignment per client.
- Independently checked membership, assignments, loads and objective; no theorem-eligibility badge inferred from a rectangular cost matrix.
- Solver proposals remain distinct from the submission and from independently certified optimality.
- Evaluate false alarms, missing constraints and preparation/review time on a permissioned study before subscriptions or a broader build.
This is an implementation priority inferred from a public software baseline, not proof that buyers want it or that existing tools lack review features. PySAL was not installed or executed in this turn. No costs, runtime or map results from its tutorial were reproduced. Current local release.