Looked right.

Each episode is a number that looked right and was wrong, told with energy data.

Sah richtig aus.

01: Sunday had 25 hours.

On the last Sunday of October the local day has 100 quarter hours, not 96.

Der Sonntag hatte 25 Stunden. Die Uhr ging zurück, 02:00 gab es zweimal.

Looked right.

The dashboard's day

96
quarter hours expected
96
quarter hours stored
100 %
complete

Four rows at 02:00 overwrote four others. The check passed.

Checked

The day as it happened

100
quarter hours expected
100
quarter hours stored
100 %
complete

Both say complete. One of them dropped an hour.

Synthetic example.

Three quiet mistakes

  • Local timestamps without offset: an import keyed on local time keeps 96 of 100 and reports complete.
  • A fixed offset: one hour out until March, same daily total.
  • An expected count of 24 × 4 instead of the calendar.

The rule: store the interval start in UTC, cut the day by local time, take the expected count from the calendar.

Send one plant, one month.

You get performance ratio and availability as a base row with the rules written down, the difference against each reported number with what explains it and what stays open, a method card next to every number and a 30-minute walkthrough. Nothing changes in your monitoring.

Send one plant, one month