Webneuron
Representative Case Study — Data Engineering

Building a grid asset data platform regulators can audit

Data engineering services for a utility whose asset and telemetry data lived in nine systems with no shared definitions: a governed lakehouse with end-to-end lineage replaced a quarterly reporting scramble and made condition-based maintenance possible.

9

Source systems consolidated into one governed data platform

Hours

Regulatory submission preparation, down from a multi-week reconciliation cycle

100%

Reported figures traceable to source through automated lineage

15 min

Telemetry freshness for condition monitoring, previously daily

The Challenge

The utility held asset data in nine systems: a geographic information system, two asset management systems inherited from an acquisition, a work management system, SCADA historians, a meter data platform, an outage management system, a finance ledger, and a substantial number of spreadsheets that had quietly become authoritative.

None of them agreed on what an asset was. The same transformer appeared under three identifiers with three different installation dates and two different capacity ratings. Analysts had learned which system to trust for which field, and that knowledge lived in people rather than anywhere queryable.

Regulatory submissions were assembled by hand each quarter. A team spent weeks reconciling figures across systems, and when the regulator asked how a number had been derived, answering meant reconstructing the reconciliation from email threads and working files.

Condition-based maintenance had been on the roadmap for three years. It kept failing at the same point: the telemetry was available and the asset register was available, but joining them reliably was not possible because the identifiers did not match and the telemetry arrived a day late.

A previous data warehouse project had delivered a set of reports rather than a platform. It solved the questions asked in its requirements document and could not answer the next one, so analysts had gone back to extracting to spreadsheets within a year.

The objectives: one governed source of asset truth, telemetry ingested continuously rather than daily, automated lineage from every reported figure back to source, regulatory reporting produced from the platform rather than assembled by hand, and a model analysts could extend without an engineering ticket.

The Solution

The platform was built as a lakehouse with clearly separated layers: raw ingested data preserved exactly as received, a conformed layer where entity resolution and standard definitions are applied, and a serving layer of governed data products that reporting and analytics consume.

Preserving the raw layer unchanged mattered more than it might appear. It is what allows a figure to be traced back to precisely what the source system sent on a given day, which is the question a regulator actually asks, and it means a definition change can be reprocessed historically rather than only applied going forward.

Entity resolution for assets was the hardest engineering problem in the programme. A deterministic matching layer using identifiers, geospatial location, and installation attributes resolved the large majority automatically; the remainder went to a stewardship queue where subject matter experts adjudicated, and every adjudication was retained as a permanent matching rule.

Telemetry from SCADA historians and meter data was moved onto a streaming ingestion path rather than a nightly extract, bringing condition monitoring data to fifteen-minute freshness and making the condition-based maintenance use case viable for the first time.

Data definitions were made explicit and owned. Every field in the serving layer has a documented business definition, a named owner, and automated quality tests that run on every load. A failing test blocks promotion to the serving layer rather than surfacing later as a wrong number in a report.

Regulatory reporting was rebuilt as code against the serving layer. Each submission is reproducible: rerun it for a past period and it produces the same figures, with lineage showing exactly which source records contributed.

Architecture Highlights

Ingestion runs on two paths. Batch extracts from the transactional systems land in the raw layer on a schedule with change data capture where the source supports it. Telemetry arrives on a streaming path from the historians and meter platform. Both write into the same storage layer using an open table format, so downstream consumers do not care which path a record arrived on.
The open table format provides transactional guarantees, schema evolution, and time travel over object storage. Time travel is what makes a regulatory question about a prior submission answerable without maintaining separate snapshots of every reporting period.
Entity resolution runs as a governed pipeline stage rather than as logic embedded in individual reports. The resolved asset identifier is assigned once and used everywhere downstream, which is what stopped the same transformer appearing three times in the same report.
Lineage is captured automatically from pipeline execution rather than documented manually, so it cannot drift from reality. Every column in the serving layer resolves back through its transformations to the originating source records.
Data quality tests are defined alongside the transformation code and versioned with it. Freshness, completeness, referential integrity, and range checks run on every load, and failures are surfaced to the owning steward rather than to a generic monitoring inbox.
Access is role-based with column-level controls, since asset location and customer-linked meter data carry different sensitivity to the operational telemetry sitting beside them. All access is logged, which the utility required for both regulatory and critical infrastructure obligations.

Timeline

Weeks 1–8

Data landscape assessment

Nine source systems profiled for content, quality, and update behaviour. Conflicting asset definitions catalogued and a target canonical model agreed with the asset management and regulatory reporting teams.

Months 3–7

Platform foundation and ingestion

Lakehouse storage, batch and streaming ingestion, raw layer preservation, and the quality testing framework delivered. Historical data backloaded so trend analysis was possible from day one.

Months 8–13

Entity resolution and serving layer

Asset entity resolution built, stewardship queue introduced, and the first governed data products published. Regulatory reporting rebuilt as reproducible code against the serving layer.

Months 14–18

Condition monitoring and enablement

Streaming telemetry brought to fifteen-minute freshness and joined to resolved assets, enabling the first condition-based maintenance use cases. Analyst enablement and platform handover completed.

Technology Stack

PythonApache SparkApache IcebergdbtApache KafkaAWSAmazon S3SnowflakeAirflowTerraformOpenLineageGreat ExpectationsGrafana

The previous project gave us reports. This one gave us the ability to answer a question we had not thought of yet. The difference shows up every time the regulator asks something slightly different from last quarter.

Director of Asset Management, A Regional Utility and Grid Operator

Let's build the system your business will run on next.

Tell us where it hurts. We'll bring the architects, engineers, and delivery model to fix it — and scale it.