Configuration · Influence zones

Maps postal codes to named catchment zones (primary, secondary, tertiary and so on), so customer registrations can be analysed by catchment. Supports CSV import and export.

AreaConfiguration
Routesconfiguration.influence-zones · configuration.influence-zones.index · configuration.influence-zones.import
Centre modulesinfluence-zone
Staff levelsroot · admin
Modelsinfluence-zone · load
UI labeltitle.influence-zones / menu.navbar.configuration.influence-zones
Coverage3 use cases · 1 happy · 3 failure

Known issues (1)

How it works

Three fields only — id, postal code, zone — but it feeds the demographic dashboard’s influence-zone breakdown. fetchData is defensive: a failed query falls back to an empty table and a synthetic meta object ({ page: { number: 1, size: 15, total: 0 } }) rather than leaving the list in a loading state, though it also means a backend outage looks identical to ‘no data’. Export goes through load.export('influence', …) — note the model name sent to the API is influence, not influence-zone.

Use cases

Why someone opens this (3)

  • Loading a region’s postal-code-to-catchment mapping during onboarding.
  • Analysing what share of registrations comes from the primary catchment.
  • Correcting a mis-assigned postal code.

Path map

flowchart LR
    F(["Influence zones"]):::feat
    F --> H1["Mapping imported"]:::ok
    F -.-> X1["Query fails"]:::bad
    F -.-> X2["Duplicate column mapping on import"]:::bad
    F -.-> X3["Role insufficient"]:::bad
    classDef feat fill:#566066,stroke:#566066,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Mapping imported

  1. Admin opens Influence zones → import and downloads the three-column example.
  2. Uploads the filled CSV; columns auto-map to id, postal_code and influence_zone.
  3. The import runs and the list shows the mapping.
  4. The demographic dashboard’s influence-zone chart populates.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Mapping imported
  • ⛔ Query fails
  • ⛔ Duplicate column mapping on import
  • ⛔ Role insufficient

Implementation


Generated from doc/feature-inventory.json · id config-influence-zones · commit 276788ca6