What solar engineers check in a LiFePO4 home battery

Ask a solar engineer what they check on a LiFePO4 home battery and the answer comes back in a fixed order: the cell voltage spread at rest, the current the pack is asked to deliver against its continuous C-rate, the temperature of the space it lives in, what the BMS reports about state of charge and whether the pack has been allowed to finish a full charge cycle, and then the trend — cycle count, amp-hour throughput and how much capacity it still holds. None of those five appear on a brochure, and between them they decide whether the battery is still worth what you paid for it.

Stand next to me at the inverter at 06:10 on a Highveld winter morning. The supply went at four, the house has been on battery for two hours, and the garage is about nine degrees. I have a headlamp on because the garage light is on the non-essential circuit. The BMS app has been connected for ten minutes — Bluetooth, one bar, do not move the phone. The number I look at before state of charge is the cell delta: the gap between the highest and lowest cell voltage in the pack. This morning it reads 0.041 V. Two winters ago it read 0.012 V.

That single number tells me more about the health of the pack than the capacity figure on the invoice.

The pack is sixteen cells pretending to be one battery

LiFePO4 — lithium iron phosphate — is a cathode chemistry. Iron and phosphate in the cathode instead of cobalt and nickel. Each cell sits at 3.2 V nominal, gets charged to somewhere between 3.45 V and 3.65 V, and is cut off at roughly 2.5 V. A 51.2 V home pack is sixteen of those in series. A 12.8 V one is four.

The other lithium-ion family in home storage is the nickel-manganese-cobalt group. Higher energy density per kilogram, higher cell voltage, and a lower thermal runaway threshold — the temperature at which a failing cell starts feeding itself. LFP gives up some energy density and accepts a heavier pack in exchange for a chemistry that is harder to push into thermal runaway and that tolerates being left part-charged for months.

Compared with lead-acid the differences that matter at home are three. It does not sulphate. It does not mind being left at partial charge. And its voltage curve is almost flat. Between roughly 20% and 80% state of charge a lead-acid cell moves through volts of change. An LFP cell moves through maybe 60 millivolts. The inverter loves that — stable voltage and full power right down to the end. The state-of-charge gauge hates it, because there is almost no voltage signal to read in the middle of the range. That is why the BMS has to count electrons instead of measuring a level.

What the spread actually means

Sixteen cells never age at the same rate. One sits closer to the warm side of the cabinet. One came off the line with marginally more electrolyte. One carries a slightly larger share of the load current. Over a few hundred cycles those differences accumulate, and holding them together is the BMS's job.

Passive balancing bleeds a few tens of milliamps out of the highest cell, but only during the top of the charge — the absorption window, when the pack is above about 3.4 V per cell and the current has tapered off. If the pack never gets there, balancing never happens. And a pack that never gets there is exactly what you get when the loads are still pulling hard at the moment the sun should be topping the battery up. The geyser runs at four, the pool pump at three, the aircon until sunset, and the battery sits between 55% and 85% for weeks on end.

The engineer who commissioned my system walked me through this in about ten minutes. Highest cell, lowest cell, delta. Then he asked how often the pack reaches 100% and holds there. That question, more than any other, is the one I now ask myself every week.

Depth of discharge, and why the old 50% rule does not cross over

Anyone who has owned a lead-acid bank knows the 50% rule. Take a lead-acid battery below half and its cycle life falls off a cliff. That is close to physics: deeper discharge means more active material shed from the plates.

LiFePO4 does not behave like that. Cycle life is usually quoted at 80% or 90% depth of discharge, and the degradation curve is far flatter. Deeper cycles cost you life, but not in the collapsing way lead-acid does. It is the reason a 10 kWh LFP pack is honestly sold as roughly 9 kWh usable while a 10 kWh lead-acid bank is honestly sold as 5.

What catches people out is that depth of discharge is not the only ageing mechanism. Calendar ageing — the slow degradation that happens whether you cycle the pack or not — gets worse with heat and with high state of charge. A backup battery that sits at 100% in a 38 °C garage for eight months of the year, cycling four times, can age faster than a daily-cycled pack living at 25 °C between 30% and 90%. The cycle count on the label is one input. It is not the answer.

C-rate is where most home systems get sized wrong

C-rate is current divided by capacity. A 100 Ah, 51.2 V pack is 5.12 kWh. At 0.5C it delivers 50 A, which is about 2.6 kW. At 1C it delivers 100 A, about 5.1 kW.

Now read the continuous discharge rating on the pack and read the inverter's rated output. A 5 kW inverter on a single 5 kWh pack rated for 0.5C continuous is asking for 1C at full load, and something will notice. Usually the BMS, which trips on over-current; the inverter then reports a DC bus fault; the homeowner then reports that the battery failed.

The load that matters is not the kettle on its own. It is the kettle, the microwave, the geyser element and the pool pump deciding to overlap at 18:30. Add up the worst realistic simultaneous load, convert it to amps at 51.2 V, and check it against the continuous rating with some margin. Motor starts — the fridge compressor, the borehole pump — add a surge on top of that, and the BMS has a peak rating as well as a continuous one. If the numbers are tight, the honest answer is more battery, not a bigger fuse.

Temperature, in a country that runs both extremes

Charging an LFP cell below 0 °C plates lithium onto the anode and permanently costs you capacity. Most home BMS units block charging somewhere between 0 °C and 5 °C. On a Highveld winter morning an unheated garage can sit at 2 °C, which means the pack will happily discharge but refuse to accept charge from the solar array until it warms up. That is not a fault. It is the BMS doing the single most valuable thing it does.

Discharge is fine at far lower temperatures, with more voltage sag and less usable capacity, which is why a cold morning can make a healthy pack look tired.

The South African problem is usually the other end. A garage in Polokwane, Upington or the Karoo can sit above 40 °C in January, and the pack runs a few degrees above ambient under load. Cells held above roughly 45 °C age noticeably faster. That makes where you mount the battery a long-term decision rather than an installation detail: shade, airflow, away from the north wall, and definitely not in the same cupboard as the inverter's exhaust.

On the coast, add humidity. Salt air and condensation attack terminals and BMS sense leads long before the cells give up, and a pack in a damp, unventilated garage will show corrosion on the wiring before it shows capacity fade.

What the BMS is actually doing

Four jobs. Protection — over-voltage, under-voltage, over-current, over- and under-temperature, all of which should trip before damage. Balancing, as described, only at the top of the charge. Reporting — state of charge, state of health, cycle count, cell voltages and temperatures. And communication with the inverter, which decides whether the two devices agree about what the pack can accept and deliver.

The reporting is the weakest part. State of charge is calculated mostly by coulomb counting, with voltage used to correct the drift, and on LFP the voltage signal is weak. That is why you see a pack sitting at 47% and then abruptly reading 39%, or why the gauge needs a full charge and an absorption hold every so often to resynchronise. If the pack never gets there, the percentage on your app slowly stops meaning anything.

Sizing for autonomy: the load list, not the brochure

The method is dull and it works. Write down every load you want to run through the night. Watts and hours. Multiply out to kilowatt-hours. Add something for inverter and wiring losses. Divide by the depth of discharge you are willing to use. Then check the result against the temperature of the room it lives in.

A worked version: 350 W of average essential load across twelve hours is 4.2 kWh. Add 10% for conversion losses and you have 4.6 kWh. At 90% depth of discharge that is about 5.1 kWh of nameplate. Then check the peak — the biggest simultaneous draw — against the C-rate, because a pack sized for energy but not for current will trip every evening at six.

Then think about load shedding specifically. Stage 2 gives most households a single discharge event a day. Stage 6 gives two, sometimes three. That changes how many cycles the pack actually sees in a year, and it changes how much of the day is available to recharge to full and let the BMS balance.

End-of-life indicators you can watch yourself

Capacity fade is the headline, but it arrives last. The earlier signals are these.

Widening cell delta at the top of charge. This usually moves first, often a year before the capacity does.

More voltage sag under the same load. If the pack dipped to 51.0 V at 2 kW when it was new and dips to 49.6 V now, internal resistance has climbed, and that is a real number you can write down.

Longer absorption time. The pack takes longer to taper to the point where the BMS declares it full.

Higher cell temperature under the same load. Resistance makes heat.

State of charge behaving strangely. Jumping, sticking at 99%, or needing a full cycle before it stops drifting.

And the one that needs a habit rather than a glance: a controlled capacity test once a year. Discharge from full to cutoff at a known, roughly constant load, at a similar ambient temperature, and log the kilowatt-hours. Do it on the same weekend each year and you have a trend line instead of a feeling about it.

Cycle count and cumulative amp-hour throughput in the BMS log will give you equivalent full cycles — throughput divided by nameplate capacity — and that is the number to compare against the datasheet. Just remember the datasheet figure was measured at one particular temperature, C-rate and depth of discharge. Change any of the three and the number moves. It is a test condition, not a promise.

Eighty percent of original capacity is the usual convention for end of life. It is a convention, not a cliff. A pack at 70% still runs a fridge, a router, lights and a television through a Stage 4 evening. What it will not do is run the geyser as well. The honest moment is when you decide whether to add capacity or shrink the essential load list, not when the app finally tells you the battery is finished.

Educational information only. Before acting on any solar, electrical, legal or financial matter, consult a qualified solar installer, registered electrician or other relevant professional.

The North-Facing Neighbours

The North-Facing Neighbours

The North-Facing Neighbours are South African homeowners and long-term renters who started with the same load-shedding questions and stayed for the slow work of reading municipal bills, roof measurements, inverter quotes, and battery choices.

Meet the team