Operator workspace
DEMO · seeded data
CANONICAL MIGRATION

Legacy crosswalk & identity continuity

Keep every source identifier while mapping customers, accounts, premises, meters, payments and configuration into canonical WaterPesa identities.

Exceptions remain
Source IDs are never overwritten or reused as WaterPesa primary keys. A collision or orphan must be resolved or explicitly exceptioned before cutover.
Records
6
Critical coverage
60%
Canonical collisions
1
Unmapped + orphan
2
SOURCE → CANONICAL

Identity crosswalk

Source keyKindCanonical IDStatusEvidence
meide-demo:customer:CUS-00188
sha256:customer188
customerCUS-WP-188mapped1
meide-demo:account:ACC-00188
sha256:account188
accountACC-WP-188mapped1
meide-demo:meter:MTR-784240
sha256:meter784240
meterMTR-WP-784240mapped1
meide-demo:ciu:CIU-44081
sha256:ciu44081
ciu—unmapped1
meide-demo:payment:PAY-9923
sha256:pay9923
payment—orphanLegacy reference does not resolve to active account1
legacy-billing:meter:MTR-LEG-7
checksum pending
meterMTR-WP-784240duplicateSame physical meter appears in two source systems1

Migration invariants

1Preserve source identityAlways retain source system + source ID + checksum.
2Separate customer from meterCustomers move and meters change without destroying service history.
3Exception visiblyUnknown records enter a queue; they are never silently dropped.
4Reconcile totalsPopulation counts and financial totals must reconcile before cutover.

Collision queue

collision

meter:MTR-WP-784240
MTR-784240 · MTR-LEG-7