The core data model treats the meter point, not the customer, as the primary unit of record, because contract terms, CED, settlement classification and consumption all attach at meter point level. Customer and site records exist as aggregation layers above it, which is what makes multi-site portfolio reporting reliable rather than reconstructed.
Rate and pricing calculations run as a distinct service from the CRM record layer, so commission and uplift rules can be updated, versioned and audited without touching the customer-facing data. This separation also makes it possible to plug in a dedicated quote and tender engine later without rebuilding the CRM.
Compliance evidence — LOA documents, call recordings, PECR consent logs — is stored with references held in the CRM rather than as binary blobs inside it, so retention policy and access control can be applied per document type without bloating the operational database.
Supplier connectivity is built as an adapter layer, because every supplier's quotation API or matrix file format is different and suppliers change formats without much notice. New suppliers are added by writing a new adapter against a stable internal rate model, not by reworking the pipeline logic.