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!
Did the new batteries actually work? Proving a storage upgrade with calculus
- Real customer data
- Measured, not guessed
- The maths shown in full
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 diagnosticCalled 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
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!
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
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.
Ron was really helpful. He remotely adjusted my battery settings on the same day I contacted him, and at a reasonable price. Great service.
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:
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:
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:
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:

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:
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.
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

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.
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.
Frequently asked questions
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.
We’re busier than ever. Thank you for your patience.
Due to unprecedented demand we’re currently only carrying out on-site work in Yorkshire, and replies are taking up to 7 days. Remote diagnostics continue for the whole UK as normal.
Every message is read and answered, so please don’t send it twice; that only slows the queue.
We use cookies to measure traffic and ads, sharing limited hashed data with Meta and Google. Decline keeps only essential cookies. Privacy policy
Got a solar fault or need a quick answer? Drop us a message and we usually reply within a few minutes. Mon–Fri, 9am–7pm.