Skip to content
Field note · Method + case study · Battery storage · Jun 2026

Did the new batteries actually work? Proving a storage upgrade with calculus

Mike had two battery packs added and asked if they were doing anything. The app's percentage can't tell you. So we ran one full discharge, integrated the power curve, and let the maths answer it.
  • Real customer data
  • Measured, not guessed
  • The maths shown in full
Had a battery added recently?

If you've just had storage added — or yours doesn't seem to last like it used to — a single full-discharge test tells you exactly how much usable capacity you really have. Measured, not guessed.

Ask about a capacity testRemote diagnostic

Fantastic support. We have a Givenergy system where one of our batteries was not working. Ronald successfully helped us get it back up. His perseverance was amazing….and it shows what REAL customer service means. Can’t thank you enough Ron!

Martin · Aug 2026 Google

Called spoke to Ron. Was very informative and more importantly listen to the issues regarding my system. Was very professional and tackled the problem and had my system back on it's way. Thank you once again Ron

Shawn Carmichael · Aug 2026 Google

I contacted Solar Tech Support with an issuewith my solar and Ron went out of his way to help me. Despite the fact that I'm situated hundreds of miles away and he knew there'd be no business opportunity from my inquiry, Ron still chased solutions and helped me get an understanding of what I needed to do. I love working with people like this, people with integrity and service at the heart of what they do. I just wish hew was nearer!

Kevin O'Hara · Aug 2026 Google

Ron is a life saver sorted out a connectivity problem and had to replace one of my inverters all good now so I can stop stressing. Thank you again

Glenn Hempstead · Oct 2026 Google

We moved from BT to Vodafone recently. Unfortunately our GivEnergy AIO would no longer appear on the App. Additionally our GivEnergy EV charger stopped working. Vodafone insisted that their dual 2.4ghz and 5ghz compatibility mode would work with the 2.4ghz system. Unfortunately it doesn't. After nearly two weeks of trying to sort this, which also involved searching on various chat forums, I sent an email for help to STS. Within a very short time the same day I got a call from Ash, who is only 45 minutes away from us. He came and quickly got the AIO appearing on the app, so we could once again see the state of the battery. The EV charger presented more of a challenge as the QR code fixed on the side of the charger had worn away. Ash was able to find the necessary information to restore the EV charger to working order. I have a copy of the QR code and other information should we have an issue another time. I had bought a TP-Link TL-WA850RE that just works on 2.4ghz and this is linked permanently to the GivEnergy kit. STS are definitely the people to contact if you find yourself in a similar situation. We are very happy with the service STS provided.

Colin Niblock · Jul 2026 Google

Ron was really helpful. He remotely adjusted my battery settings on the same day I contacted him, and at a reasonable price. Great service.

Jackie Palman · Jun 2026 Google

Mike had two extra battery packs added to his storage system, and asked a fair question: are they actually doing anything? You can't answer that from the percentage on the app — it swings from 0 to 100% no matter how much real capacity sits behind it. So we did what an engineer does. We ran one full discharge, measured how much energy actually came out, and compared it to what four healthy packs should give. The tool for turning a wiggly power graph into a single, defensible number is the same definite integral you met in first-year calculus. Here is the method, the maths in full, and Mike's result.

The question the app can't answer

After you have storage added, the obvious instinct is to open the app and look at the battery percentage. The problem is that the percentage tells you almost nothing about capacity. State of charge is a normalised gauge: the battery management system (BMS) scales it so that "full" is 100% and "empty" is 0%, whatever the true amount of energy in the pack. Lose half a pack and the gauge still climbs to 100% at the top and falls to 0% at the bottom — it just gets there faster.

The only honest way to test capacity is to measure energy directly: charge to full, run the system flat under load, and count the kilowatt-hours that come out. Mike's system is two original packs — 8.2 kWh and 5.2 kWh — plus the two freshly-added 2.6 kWh packs. Four healthy batteries should deliver a specific, predictable amount of energy. If the new pair is doing nothing, the total falls short in a way we can calculate in advance.

Power is a rate; energy is the total

First, the distinction the whole method rests on. Power (in watts) is an instantaneous rate — how fast energy is flowing right now. Energy (in watt-hours) is the accumulated total. If the power were constant, you would just multiply: a steady 3 kW for 2 hours is 6 kWh — the area of a rectangle, base times height.

But a real discharge is not a rectangle. It holds a plateau near the inverter's maximum, then steps down as the cells empty. The "height" of the graph changes with time, so there is no single number to multiply by. To get the total energy you need the area under a curve whose height varies — and the exact tool for that is the definite integral:

E = ∫0T P(t) dt

In plain words: the total energy E is the integral of power P over the discharge, from the start (t = 0) to the end (t = T). The integral sign is, quite literally, an elongated "S" for "sum" — which is the clue to how we actually compute it.

From Riemann sums to the integral — the bit I enjoy

Here is the catch: the monitoring portal does not hand you a tidy formula P(t) to integrate. It hands you readings at instants in time. So we rebuild the area the way the integral is defined in the first place — as a limit of sums. Slice the discharge into thin strips of width Δt, take the power in each strip, and add up power times width:

E ≈ Σk Pk Δt

That is a Riemann sum. Make the strips thinner and, for any well-behaved signal, the sum converges on the true area. That limit is the definition of the definite (Riemann) integral — ever-finer pieces melting into the smooth area under the curve:

E = limΔt→0 Σk Pk Δt = ∫0T P(t) dt

Ordinarily the next move would be the Fundamental Theorem of Calculus: find an antiderivative of P(t) and evaluate it at the two endpoints. But the portal never hands us a formula for P(t) — only samples — so there is nothing to antidifferentiate. That is exactly why we compute the area numerically instead.

We can do better than flat-topped rectangles for free. Instead of pretending the power is constant across each strip, join consecutive readings with a straight line. Each strip becomes a trapezium, and its area is the average of the two end heights times the width:

Diagram of the trapezoidal rule: a smooth power curve with the area beneath it split into vertical strips. Each strip is a trapezium whose area equals one half times the sum of its two end heights times the strip width.
The trapezoidal rule. Each strip's area is ½(Pk + Pk+1) Δt. Because the straight chords hug a gently curving line closely, the sum of the strips is a very good estimate of the true area underneath.
E ≈ Σk ½(Pk + Pk+1)(tk+1 − tk)

Why this is exactly the right tool here: the trapezoidal rule is exact whenever the signal is a straight line across the strip. Mike's discharge is a near-flat plateau for most of its length, so over that stretch the approximation is essentially perfect. The only real curvature is at the step-downs near the very end, and those are short.

And on the smooth stretches the error is not a mystery — it has a known shape. Wherever the power varies smoothly, the composite trapezoidal rule carries an error bounded by:

|E − Etrap| ≤ (T / 12) · Δt² · max|P″(t)|

Two useful things fall straight out of that. The error shrinks with the square of the strip width — halve Δt and you quarter the error — and it is proportional to P″, the second derivative: the curvature of the line. Along the long, near-straight plateau P″ ≈ 0, so that whole section is captured almost exactly.

The one place that bound does not formally apply is at the sharp corners, where the power steps down and the second derivative is effectively undefined — it would be wrong to claim the formula holds there. But the corners are handled by where we put the samples: drop a reading directly on each corner, and every segment between two readings is itself almost a straight line — precisely the case the trapezoidal rule integrates with no error at all. So the corners, far from wrecking the estimate, are pinned down exactly. That is why a figure read by eye off this graph is trustworthy to within a few percent — and why we still quote a band rather than pretend to a single exact number.

An aside for the control-theory nerds: the percentage is an integral too

While we are here — the dashed state-of-charge line on these graphs is itself the output of an integration. The standard way a BMS tracks charge is coulomb counting: start from a known state and integrate the current flowing in and out over time.

SoC(t) = SoC(0) − (1 / Qnom) ∫0t I(τ) dτ

It is a pure open-loop integrator, and that is its weakness: any small bias in the current measurement gets integrated along with the real signal, so the estimate drifts over hours and days. It is the textbook problem of integrating a noisy measurement without feedback. Real systems treat the 0% and 100% rails as anchors — fixed points where they re-zero the integrator — and the better ones blend in a voltage-based estimate, a simple observer, to pull the drift back out. Which is exactly why, for a capacity test, we trust the energy integral of measured power over the reported percentage. One is a direct measurement of energy leaving the cells; the other is an estimate that has been quietly accumulating its own error.

How we run the test

The procedure is deliberately simple. Charge to 100%. Put the house on the battery and let it discharge in one clean run down to 0%, logging Battery Power throughout. Then sample the curve at the points where it actually changes — the corners are what matter, the flat stretches you can take in a single long strip — and apply the trapezoidal rule.

One detail stops the result being argued with. The quantity the portal labels Battery Power is measured at the battery terminals, on the DC side. So its integral is the energy that left the cells — not the smaller amount that reached the house after the inverter took its cut. That means we can compare it directly with the batteries' usable kWh, with no fudge factor for inverter efficiency. Had we measured on the AC side instead, we would have to gross the number up for conversion losses, and the conclusion below would only get stronger.

Mike's numbers

Graph of Mike's battery system discharging from 100% to 0% over about five and a half hours. Battery power holds a plateau near 3.85 kW for roughly four and a quarter hours, then steps down to zero. The shaded area under the power curve is labelled as the integral of power, approximately 17.8 kWh.
Mike's system over one full discharge. Power held ~3.85 kW — the inverter's discharge ceiling — for about four and a quarter hours, then stepped down as the cells emptied, reaching 0% near 19:00. The shaded area is the energy delivered.

Running the trapezoidal rule over the logged points gives a measured total of about 17.8 kWh, with a sensible reading band of 17.2–18.5 kWh.

Now the yardstick. Usable capacity is each pack's nameplate multiplied by the depth of discharge (DOD) it is allowed to use:

  • 8.2 kWh pack at 100% DOD = 8.20 kWh
  • 5.2 kWh pack at 80% DOD = 4.16 kWh
  • 2.6 kWh pack at 80% DOD = 2.08 kWh (the first new one)
  • 2.6 kWh pack at 80% DOD = 2.08 kWh (the second new one)
  • Total usable, all four healthy = 16.5 kWh (nameplate 18.6 kWh)

So 17.8 kWh measured is about 108% of the 16.5 kWh you would expect from four healthy packs — full capacity, and a shade more, because the system ran the cells slightly deeper than the conservative 80% figures assume.

And here is the clincher, the part that actually settles whether the new packs work. The two original packs can supply at most 13.4 kWh between them — and that is only if you drain them stone dead, well past their normal limits. Mike's system delivered 17.8 kWh: about 4.4 kWh beyond anything the originals could produce on their own. That surplus has to come from somewhere, and the two new 2.6 kWh packs are rated at exactly 4.16 kWh usable between them. The arithmetic closes almost to the decimal. Had the new pair been dead, the system would have hit 0% at around 16:40 — more than two hours sooner — and handed over only about 12.4 kWh.

All four packs are pulling their weight. The two newly-added 2.6 kWh modules are delivering their full share — the measured energy is roughly 4.4 kWh more than the original two packs could ever provide alone, which is precisely what two healthy new packs should add.

The verdict, from one full discharge and a definite integral.

Why this beats "it looks fine on the app"

A capacity test like this is worth running after any battery addition, or whenever a system "doesn't seem to last as long as it used to". The app's percentage genuinely cannot see a weak or idle pack — it normalises the very thing you want to measure. The maths can, and it needs nothing more than the data the system already records plus one full cycle to look at. Power in, integrate over time, compare to what four healthy packs owe you. The curve does not lie.

Field note by Ron Vitova, Solar Tech Support. Customer name changed; figures read from the system's own monitoring and integrated by the method described above.

FAQ

Frequently asked questions

No. The percentage on the app is a normalised gauge — the battery management system rescales it so the top reads 100% and the bottom reads 0%, whatever the true capacity behind it. A weak pack and a healthy one can both show 100%. The only honest test of capacity is to measure the energy that comes out of a full discharge.
Multiplying power by time only works if the power is constant — that's the area of a rectangle. A real discharge holds a plateau near the inverter's limit and then tails off as the cells empty, so the power changes with time. The area under a curve whose height varies is, by definition, a definite integral. In practice we approximate it with the trapezoidal rule.
Accurate enough to draw a firm conclusion. The trapezoidal rule's error shrinks with the square of the time-step and is proportional to the curve's second derivative — its curvature. Across the long, almost-straight plateau the curvature is near zero, so that stretch is essentially error-free. We still quote a band (here 17.2–18.5 kWh) rather than a single false-precision figure.
No, and that is the neat part. The figure the portal calls Battery Power is measured on the DC side, at the battery terminals — so its integral is the energy that left the cells, not the energy that reached the house. That makes it directly comparable with the batteries' usable kWh, with no need to guess at inverter efficiency. Measuring on the AC side would only make the battery's figure look larger.
It needs nothing more exotic than the data your system already logs and one full charge-then-discharge cycle to look at. If you have recently had storage added, or your battery does not seem to last like it used to, we can run the test and write up the result. It is the kind of check worth doing whenever capacity is in question.

Want to know if your battery is really delivering?

Tell me what you have and what changed — a recent battery addition, or a system that feels like it does not last. A full-discharge capacity test measures what is actually there.

By submitting you agree to be contacted about your diagnostic request. We don't share your data with 3rd parties.

Call 07944 877 329 Book free diagnostic