The discrepancy

For the seven days ending 8 April 2026, my Sungrow inverter at a residential property near Launceston told me the home battery had discharged 101.2 kWh to power the house.

The actual figure, derived from the battery's own state-of-charge readings, was 131.23 kWh.

That's a 30 kWh gap. About 30% of my battery's actual work was missing from the official telemetry. At Aurora Tariff 93's peak/off-peak arbitrage of roughly 19 cents per kWh, the gap is worth about $5.64 a week, or $416 a year in battery savings the inverter dashboard never told me about.

A small enough number to ignore. A big enough number to change a payback calculation. And the kind of error that hides in plain sight because the discrepancy is between what the inverter says it did and what it actually did — and you'd never notice unless you cross-checked it against a different signal in the same data stream.

How I noticed

A 13 kW Sungrow array on a Tasmanian autumn morning isn't generating much before 9am. So I was looking at this morning's dishwasher cycle — a routine 2.2 kW load for about 25 minutes — expecting to see one of two things:

  1. The inverter would say the battery was discharging at ~2.2 kW for the duration of the wash, OR
  2. It would say the grid was importing ~2.2 kW for the duration.

It said neither. The battery_discharge_power metric stayed flat at zero for the entire wash. The grid_to_load metric was reading 0.116 kW peak, which is nowhere near 2.2 kW. According to the official telemetry, the dishwasher had drawn its power from nowhere.

But the battery's state of charge dropped from 13.2% at 07:35 to 7.4% at 07:55. On a 16 kWh usable battery, that's 0.928 kWh — almost exactly the energy a single dishwasher cycle consumes.

The battery had clearly powered the dishwasher. The inverter just hadn't registered it.

Why this happens

I dug into Sungrow's API documentation and the answer is mundane: battery_discharge_power is a low-resolution reading that effectively rounds sub-1 kW discharge to zero. It's accurate at 5 kW. It's accurate at 10 kW. For anything between 0 and ~1 kW — small loads, the kind a household runs through most of the day — it reads zero.

The state-of-charge metric, by contrast, is reported in 0.1% increments and updated every few minutes. On a 16 kWh battery, 0.1% of state of charge is 16 watt-hours. You can resolve a single LED bulb against that signal.

So the data to compute the truth is right there in the same telemetry feed. You just have to derive it instead of reading it.

The math

For any time interval where the battery's state of charge changed:

delta_kwh   = (soc_end_pct - soc_start_pct) / 100 × battery_usable_kwh
power_kw    = delta_kwh / interval_hours

Negative deltas are discharge. Positive are charge. The Sungrow SBR160's usable capacity is 16 kWh on the spec sheet, which matches what I see at the ends (the battery does empty fully and fill fully on the right days).

I ran this calculation against every consecutive pair of state-of-charge readings for the week. The total discharge came out at 131.23 kWh — 30 kWh more than the inverter's headline number. The total charge came out at 137.71 kWh, also higher than the inverter said.

I cross-checked the methodology against a single known load (this morning's dishwasher cycle): SOC delta said 0.928 kWh discharged in the 20 minutes the wash ran. The dishwasher's own smart-plug meter said 0.93 kWh consumed in that same window. They agree to the cent.

What it means for payback

Most home solar buyers care about one number: when does this thing pay for itself.

Mine cost $25,000 installed in February 2025. The battery savings figure is one of the four or five line items that goes into the payback calculation (generation value, export earnings, self-consumption value, battery arbitrage, and EV petrol displacement).

With Sungrow's reported discharge, my weekly battery savings came out at about $19. With the corrected SOC-derived figure, it's $24.70. That's a 30% improvement on a single line item, and once you propagate it through to the payback estimate:

Sungrow telemetry SOC-derived
Battery saved this week $19.02 $24.70
Estimated lifetime savings (since install) $4,942 $5,277
Payback progress 19.8% 21.1%
Estimated payback timeline (solar only) 5.7 years 5.3 years

Five months of payback, recovered from a calculation fix. Same hardware. Same weather. Same usage. The system was always paying back faster than the inverter said. I just couldn't see it.

(The "solar only" caveat in the table matters. Once you include the petrol displacement value of running an EV off the same system, the payback timeline gets much shorter again — closer to half. That's the subject of a separate piece for a different day.)

What you can do about it

If you have a Sungrow battery inverter (or any other brand with a similar discrepancy — and I'd bet most of them have something similar somewhere), the methodology is portable:

  1. Pull the time series of battery_soc over a period.
  2. For each consecutive pair, compute (soc_end - soc_start) / 100 × usable_battery_kwh.
  3. Sum the negative deltas — that's your real discharge in kWh.
  4. Sum the positive deltas — that's your real charge.
  5. Compare against whatever your inverter is telling you.

If the numbers diverge by more than a couple of kWh on a typical week, your battery is doing more work than the dashboard credits it for. If you plug that corrected number into your payback model, your timeline gets shorter. Possibly meaningfully shorter.

The deeper lesson is one I keep relearning: vendor telemetry exists to monitor the asset, not to advocate for the owner. The asset gets monitored just fine — Sungrow's instantaneous power readings are accurate at the ranges they care about, which are the ranges the inverter is designed to operate near. The owner gets monitored for what's convenient to report.

The owner's interest is in the small loads, the long tail, the cumulative work done by the system. That requires deriving rather than reading. And it requires not assuming the official number is the truth.

Footnote on methodology

The SOC delta approach has limits. It can't tell you what the battery was doing during a moment when no SOC sample exists. It depends on the battery's self-reported capacity being honest (it might not be after years of degradation). And it produces a power-equivalent number rather than a true instantaneous reading — so it's better at "how many kWh moved this hour" than "how many kW are flowing right this second".

For payback math, those limits don't matter. For real-time control loops, they matter a lot, and you'd still want the inverter's instantaneous reading for the latter — even knowing it's wrong at the small end.

Use the right tool for the right time scale. And cross-check the official numbers when they're load-bearing for a financial decision.

The data in this piece comes from a single 13 kW Sungrow array with an SBR160 battery on a residential property near Launceston, Tasmania, monitored continuously since February 2025.