← Back to Enerplain

ENERPLAIN / FIELD NOTES

Missing vs Zero in PV Monitoring Exports

How to check PV monitoring exports for missing intervals, preserve measured zeros and keep unknown generation separate from confirmed data gaps.

A PV monitoring export can contain a measured zero, omit an interval or include a zero inserted during processing. These are different kinds of evidence. Before accepting a solar portfolio's monitoring records, check which one the supplied data represents.

The useful distinction: a measured zero is an observation. A missing record is not an observation of zero. A transformation that silently replaces the missing record with a zero has changed the evidence.

This is a synthetic teaching example, not a finding about a customer, inverter or OEM.

Check missing PV data against an agreed reporting rule

A gap is only confirmed when you know which site or device should have reported, for which interval, in the supplied export. For a read-only data completeness check:

  1. Match the records to the agreed register. Use the site and device identifiers provided for the review. Keep ambiguous IDs unresolved; do not silently drop unmatched rows.
  2. Define the window and expected cadence. Record the timezone, timestamp meaning, export filters and reporting rule. An assumed 15-minute cadence or overnight reporting can create false gaps.
  3. Separate absent records from recorded values. Compare expected intervals with the records actually supplied. Preserve measured zero, missing, invalid and estimated states where the source distinguishes them.
  4. Keep the limits with the finding. State the review cutoff and unresolved source rules. A site absent from an export is not proof that it is absent from the monitoring portal; that needs a permitted portal inventory.

Declare the contract first

For the example below, our fictional PV device reports interval energy in kWh every 15 minutes, including overnight. Timestamps label the start of each interval. The test window runs from 25 October 2026 at 00:00 UTC to 02:00 UTC, with the end excluded. That creates eight expected interval starts.

The expectation of overnight reporting is invented for this example. Real integrations must use the actual source contract: some systems omit nighttime records, delay them, aggregate them or distinguish unavailable and invalid states.

Compare what actually arrived

The source contains seven records, each with an observed value of 0.00 kWh. The record starting at 00:30 UTC is absent. The application contains eight records after filling that gap with a zero.

One fictional device. Interval energy in kWh, labelled by interval start. The window is 25 October 2026, 00:00–02:00 UTC; the end is excluded. Expected overnight reporting is a rule of this invented example, not an OEM claim.
Interval start · UTC Warsaw local time Source · kWh Application · kWh Comparison
02:00 +02:00 0.00 0.00 Observed zero
02:15 +02:00 0.00 0.00 Observed zero
02:30 +02:00 — No observation 0.00 Gap filled with zero
02:45 +02:00 0.00 0.00 Observed zero
02:00 +01:00 0.00 0.00 Observed zero
02:15 +01:00 0.00 0.00 Observed zero
02:30 +01:00 0.00 0.00 Observed zero
02:45 +01:00 0.00 0.00 Observed zero

The two 02:15 entries are different instants: their UTC offsets are +02:00 and +01:00. They are not duplicate UTC records.

A row-count check can report eight records downstream while missing the changed meaning. Comparing the declared identities and states exposes the difference.

Keep the total honest

The seven observed source values sum to 0.00 kWh. That is an observed subtotal. It does not establish the complete-window total, because one interval is unknown. In the downloadable example, the complete source-window total is explicitly null.

If the missing source record later arrives with a measured zero, the evidence changes: all eight values are then known and the complete total can be calculated. A downstream filler cannot establish that fact on its own.

Make the treatment explicit

What this example cannot tell you

It does not establish why the source record is absent, whether a later export will contain it, or whether equipment is faulty. A recorded zero does not by itself establish equipment health. The example does not prove lost generation or financial loss. Those questions need other evidence.

A bounded check of PV monitoring data completeness

The Portfolio Blind-Spot Snapshot compares an agreed PV site and device register with supplied monitoring records for one historical 30-day window, covering up to 10 commercial rooftops across two portals. The written exception list distinguishes records present, stale records, missing records and unresolved cases. Export suitability and reporting rules are agreed before the work starts.

This is a read-only records review, not continuous monitoring, an electrical inspection or a diagnosis of equipment faults. See the synthetic portfolio exception list for the output format, or write to discuss the scope of a PV data check without sending credentials or customer data.

Download the synthetic JSON, check it against the published schema, or read the Markdown reference.

Next: the local hour that happens twice.