top of page

ElectricalTS: Structuring Time Series Data for Smarter, Context-Rich Energy Insights

Updated: Sep 2

ree

In the world of distributed energy resources (DERs), time series data isn’t just “a data type” — it’s the pulse of the system. Every inverter output, voltage reading, current measurement, and power factor point tells part of an operational story.

It fuels performance monitoring, predictive maintenance, and operational optimization across solar, storage, and hybrid portfolios. But in the real world, these datasets come from heterogeneous sources — each with its own structure, naming quirks, and missing context. Without consistency and metadata, they’re harder to trust, integrate, and act on.

That’s why we created ElectricalTS — our first composite time series concept for the electrical domain, designed to standardize context and metadata while remaining flexible enough to fit real-world workflows.



Why ElectricalTS Matters

Operators and analysts face the same daily challenge: a constant flow of power, voltage, current, and energy readings — with little uniformity in how that data is represented. ElectricalTS solves this by embedding context directly alongside the values.

It delivers:

  • Context-Aware Data — pairing values with rich metadata that defines where they came from, which device produced them, and under what conditions.

  • Structured Flexibility — a standardized schema that avoids overly prescriptive column names or rigid formats, so it works with your existing mapping logic.

  • Cross-Domain Reusability — reusing familiar objects like Device and Scope so teams can adopt it without re-learning the basics.

The result? More reliable pipelines, higher AI model accuracy, and faster, more confident decision-making.



Inside ElectricalTS

ElectricalTS is both a container for your measurements and the contextual data that gives them meaning.

  1. Metadata Layer Captures descriptive and traceability details — from file locations and dataset descriptions to IDs and classifications.

  2. Scope & Location Scope defines what the data represents; location pinpoints where it originated. Geographic coordinates, altitude, and determination methods enable precise geospatial analysis.

  3. Device Context Every time series belongs to a device, which retains:

    • Manufacturer IDs and product codes

    • Service and calibration dates

    • Firmware versions and warranties

    • Subcomponent references

  4. Time Series Arrays ElectricalTS supports multiple parallel datasets, each with its own device and scope references:

    • EnergyTSArray — cumulative or interval energy readings

    • PowerTSArray — active, reactive, or apparent power

    • VoltageTSArray — single-phase, three-phase, or phase-to-phase voltage

    • CurrentTSArray — current by phase

    • PowerFactorTSArray — efficiency and quality metrics

Because each array retains its own context, you can extract, aggregate, or correlate them later without losing meaning.


ree

Before & After: What ElectricalTS Changes

Raw inverter output (CSV):

timestamp,kw,vdc,idc,temp

2025-08-13 10:00:00,45,600.2,75.3,38.1

2025-08-13 10:01:00,46,599.8,76.0,38.3


The same data inside ElectricalTS:

{"ElectricalTS": {

"Scope": {

"ScopeID": {"Value": "abc123"},

"ScopeType": {"Value": "Device"},

"Location": {"Elevation": {"Unit": "ft","Value": 100},

"Latitude": {"Unit": "Degree","Value": 34.0522},

"Longitude": {"Unit": "Degree","Value": -108.5203597}}},

"FileFolderURL": {

"Value": "https://oballiance.org/ElectricalTS.xlsx"},

"PowerTSArray": [

{"PowerType": {"Value": "Active"},

"Device": {"DeviceName": {"Value": "Inverter_01"},

"DeviceType": {"Value": "Inverter"},

"DeviceUUID": {"Value": "abc123"}},

"PowerArray": [{

"Value": 45,

"Unit": "kW",

"StartTime": "2025-08-13T10:00:00Z",

"EndTime": "2025-08-13T10:04:59Z"},

{"Value": 46,

"Unit": "kW",

"StartTime": "2025-08-13T10:05:00Z",

"EndTime": "2025-08-13T10:09:59Z"}]}],

"VoltageTSArray": [

{"PowerType": {"Value": "Direct"},

"Device": {"DeviceName": {"Value": "Inverter_01_Input1"},

"DeviceType": {"Value": "Inverter"},

"DeviceUUID": {"Value": "abc123"}},

"VoltageArray": [{

"Value": 600.2,

"Unit": "V",

"StartTime": "2025-08-13T10:00:00Z",

"EndTime": "2025-08-13T10:04:59Z"},

{"Value": 599.8,

"Unit": "V",

"StartTime": "2025-08-13T10:05:00Z",

"EndTime": "2025-08-13T10:09:59Z"}]}],

"CurrentTSArray": [

{"PowerType": {"Value": "Direct"},

"Device": {"DeviceName": {"Value": "Inverter_01_Input1"},

"DeviceType": {"Value": "Inverter"},

"DeviceUUID": {"Value": "abc123"}},

"CurrentArray": [{

"Value": 75.3,

"Unit": "A",

"StartTime": "2025-08-13T10:00:00Z",

"EndTime": "2025-08-13T10:04:59Z"},

{"Value": 76,

"Unit": "A",

"StartTime": "2025-08-13T10:05:00Z",

"EndTime": "2025-08-13T10:09:59Z"}]}],

"TemperatureTSArray": [

{"TemperatureType": {"Value": "Internal"},

"Device": {"DeviceName": {"Value": "Inverter_01"},

"DeviceType": {"Value": "Inverter"},

"DeviceUUID": {"Value": "abc123"}},

"TemperatureArray": [{

"Value": 38.1,

"Unit": "C",

"StartTime": "2025-08-13T10:00:00Z",

"EndTime": "2025-08-13T10:04:59Z"},

{"Value": 38.3,

"Unit": "C",

"StartTime": "2025-08-13T10:05:00Z",

"EndTime": "2025-08-13T10:09:59Z"}]}

]}}


How ElectricalTS Removes Ambiguity

Raw inverter CSV data only shows numbers and headings: kw, vdc, idc, temp — with no explanation of where the data came from, what device produced it, or how it should be interpreted.

ElectricalTS wraps the same values with rich contextual metadata so that every reading is traceable and meaningful:

  1. Device Identity

    • Each time series is tied to a specific device with name, type, and UUID.

    • No confusion about which inverter or sensor produced the values.

  2. Geospatial & Scope Context

    • ScopeID and ScopeType define whether data belongs to a device, subsystem, or site.

    • Latitude, longitude, and elevation pinpoint the exact physical location.

  3. Units & Measurement Windows

    • Every value carries its unit (kW, V, A, °C) and time boundaries (StartTime / EndTime).

    • Removes guesswork about whether readings are instantaneous or aggregated.

  4. Categorized Arrays

    • Data is organized into PowerTSArray, VoltageTSArray, CurrentTSArray, TemperatureTSArray.

    • Each array explicitly states what type of measurement it represents (Active power, Direct voltage, Internal temperature, etc.).

  5. Traceability & Governance

    • FileFolderURL links to the source dataset for auditing.

    • Metadata ensures long-term reproducibility and validation.



The Clarity Gain

With ElectricalTS, the same numbers now tell a complete story:

  • 45 kW active power, produced by Inverter_01 at 10:00–10:04:59, located at 34.0522°N, –108.5203°W, elevation 100 ft, measured in kW, linked to file reference for validation.

Instead of a flat row of numbers, ElectricalTS creates a self-describing, context-rich dataset that can be trusted, reused, and integrated across platforms — eliminating ambiguity at every step.



Practical Benefits

  • Reduced Data Prep — Ingest from multiple devices without rewriting ETL logic from scratch.

  • Better Data Governance — Context travels with the values, making audits easier.

  • Future-Proofing — Scope and device metadata support long-term correlation and AI applications.

  • Interoperability — Fits naturally into existing systems while enabling cross-platform integration.



The Bigger Vision: A Reusable Design Pattern

ElectricalTS is just the first example of a reusable time series design pattern that will extend into other domains. The same structural principles, metadata approach, and flexibility will apply to upcoming datasets — bringing the industry closer to consistent, interoperable, and analytics-ready time series frameworks.

Think of it as the first building block in a much larger foundation for clean energy data exchange — one that will accelerate AI adoption, improve digital twin modeling, and enable context-aware analytics.



What’s Next

We’ve published the full ElectricalTS schema in OBEditor. Explore it, map it to your own datasets, and see how it can streamline your workflows.

More patterns are on the way — each designed to unify messy, multi-source data into something usable, scalable, and future-ready.

💡 Your turn: Kick the tires. Imagine how your future datasets could follow the same pattern. And get ready — the next evolution in standardized time series data is just getting started.


 
 
 

Comments


bottom of page