Depth of Discharge, Capacity, SoC, SoH & Battery Degradation
The core state metrics that govern every lithium pack — what each one means, how they relate to one another, and what actually wears a battery out.
Battery Fundamentals · Part 2 — State, Health and Degradation · Chapter 3 · 34 min read
Four numbers describe the state of every lithium pack in service: how full it is, how big a swing it just took, how big it was to begin with, and how much of that it has permanently lost. They are routinely conflated — and conflating them leads to real mistakes in sizing, warranty terms and operating strategy.
This chapter separates them from first principles, then answers the question that most often gets asked about depth of discharge: is it a matter of voltage, of capacity, or of resistance? The short answer is all three, in three genuinely different ways. It closes with the practical version of the same question — if you want to hold a pack to 60% DoD, which setting do you actually change?
3.1 — State of charge (SoC)
State of charge is the percentage of a battery’s available capacity that remains, relative to its full-charge capacity, at a given moment:
SoC (%) = (Remaining capacity / Full-charge capacity) × 100
The number a BMS displays as the pack’s “fuel gauge” reading
SoC is a real-time, dynamic quantity — it changes continuously as a battery charges or discharges.
3.1.1 — How SoC is actually measured
Table 3.1 — SoC estimation methods
| Method | Principle | Strengths and weaknesses |
|---|---|---|
| Coulomb counting | Integrates measured current over time: SoC(t) = SoC(0) − ∫I·dt / Capacity | Accurate short-term, but accumulates drift error over time without periodic correction |
| Open-circuit voltage (OCV) lookup | Maps rested, no-load cell voltage to a known SoC-OCV curve | Simple, but requires the cell to be at rest; unreliable on LiFePO4’s flat mid-range plateau |
| Model-based (Kalman filter / EKF) | Combines coulomb counting with a battery-behaviour model, correcting drift in real time | Industry standard in modern BMS designs; most accurate, most computationally demanding |
Important
A LiFePO4-specific nuance. LiFePO4 cells have an unusually flat voltage plateau across roughly 20–90% SoC — voltage barely moves across most of the usable range. That makes OCV-based SoC estimation far less reliable for LiFePO4 than for chemistries with a more sloped discharge curve such as NMC, which is exactly why coulomb counting and the capacity learning cycles covered in Chapter 2 matter so much to LiFePO4 BMS accuracy.
3.2 — Capacity — not the same thing as SoC
Capacity is the total amount of charge a battery can deliver under specified conditions, measured in amp-hours (Ah) or, combined with voltage, watt-hours (Wh/kWh). Unlike SoC, capacity is approximately a fixed, absolute property of a given cell or pack at a given point in its life — it is the size of the tank, not how full it currently is.
Table 3.2 — Two capacity figures worth distinguishing
| Term | Meaning |
|---|---|
| Rated (nameplate) capacity | The manufacturer-specified capacity of a new cell under standard test conditions — “100Ah” |
| Actual (measured) capacity | The capacity a cell can currently deliver, which declines over life due to degradation (§3.5) — this is the numerator in the SoH calculation (§3.4) |
In plain English
Capacity and SoC answer two completely different questions. Capacity answers “how big is this battery?” SoC answers “how full is it right now?” A 5.12kWh pack at 50% SoC holds 2.56kWh; a 6.4kWh pack at 50% SoC holds 3.2kWh. Same percentage, different absolute energy — because they started from different capacities. §3.7 works through exactly that comparison.
3.3 — Depth of discharge (DoD)
Depth of discharge is the complement of SoC — the fraction of capacity that has been removed from the battery, relative to a starting point:
DoD (%) = 100% − SoC (%)
Only valid when the swing begins at a full charge
More generally, DoD describes the size of a specific discharge excursion — the gap between where a cycle started and where it ended — which in real-world usage very often does not start from 100% SoC:
DoD (%) = SoCstart − SoCend
General form, valid for any partial cycle
3.3.1 — Why DoD is the single most important cycle-life variable
DoD is not just a bookkeeping metric — it is the dominant factor determining how many cycles a battery can deliver before reaching end of life. The relationship is strongly non-linear: shallow cycles are disproportionately gentler on a cell than deep ones.
Why this matters
This single relationship is why so many BESS and EV systems deliberately reserve a buffer at both ends of the usable SoC range — never quite charging to a true 100% or discharging to a true 0%. A system operating between 10% and 90% SoC (an 80% DoD window) will typically achieve meaningfully more total cycle life than one that swings the full 0–100% range every cycle, even though the latter appears to deliver more energy per cycle.
3.4 — State of health (SoH)
State of health is a composite measure of how much a battery has aged relative to when it was new. Unlike SoC, which changes minute to minute, SoH changes slowly over weeks, months and years — and unlike SoC it cannot be read directly. It must be estimated from periodic capacity tests or resistance measurements.
Table 3.3 — Two common SoH definitions
| Metric | Formula | What it captures |
|---|---|---|
| Capacity-based SoH | SoH_C = (Actual capacity / Rated capacity) × 100% | How much usable energy storage remains — the most commonly quoted SoH figure |
| Resistance-based SoH | SoH_R = (Initial resistance / Actual resistance) × 100% | How much power delivery capability remains — internal resistance rises as cells age, and voltage sag under load gets worse with it |
Worked example 3.1 — Reading an SoH figure
A 100Ah-rated LiFePO4 cell, after 2,000 cycles, is capacity-tested and found to deliver only 82Ah under the same standard test conditions used when it was new.
SoH_C = (82 ÷ 100) × 100% = 82%
This cell is still usable, but is approaching the commonly-cited 80% industry end-of-life threshold for primary applications — though it may still have significant value in a second-life application such as stationary storage, where the performance requirements are less demanding than the original use case.
Technical framing
Because SoH cannot be measured instantaneously the way SoC can, real BMS and EMS platforms estimate it using a combination of periodic full-capacity tests — the capacity learning cycles of Chapter 2 — incremental capacity analysis, and model-based estimation that tracks resistance growth and other aging proxies continuously between those full tests.
3.5 — Battery degradation
Degradation is the underlying physical and chemical process whose cumulative effect SoH measures. It splits into two broad categories:
Table 3.4 — Calendar aging vs cycle aging
| Calendar aging | Cycle aging | |
|---|---|---|
| Driven by | Time at rest, regardless of use | Charge/discharge cycling |
| Accelerated by | High storage SoC, high temperature | High DoD, high C-rate, temperature extremes |
| Occurs even if | The battery is never used | Only occurs with active use |
3.5.1 — Primary degradation mechanisms
Table 3.5 — What is physically happening inside the cell
| Mechanism | Description | Primary driver |
|---|---|---|
| SEI layer growth | The Solid Electrolyte Interphase, a passivation layer on the anode, thickens over time, consuming cyclable lithium and increasing resistance | Calendar aging, high temperature, high storage SoC |
| Lithium plating | Metallic lithium deposits on the anode surface instead of intercalating properly — largely irreversible capacity loss, and a safety concern | Charging at low temperature or high C-rate |
| Active material loss | Electrode particles crack or lose electrical contact with the current collector due to repeated expansion and contraction | High DoD, high C-rate cycling |
| Electrolyte decomposition | Side reactions consume electrolyte and generate gas over time | High temperature, high voltage, calendar time |
| Current collector corrosion | Gradual degradation of the metal foils that current flows through | Calendar time, high voltage excursions |
Important
Degradation manifests as two distinct, separately-measurable effects: capacity fade (less energy storable — the SoHC metric) and power fade (more internal resistance, less power deliverable — the SoHR metric). A cell can experience meaningfully more of one than the other, depending on which mechanisms dominate its particular aging history.
3.6 — Is DoD related to voltage, capacity or resistance?
Yes — to all three, but through three genuinely distinct mechanisms worth separating clearly.
3.6.1 — DoD and capacity: a direct, definitional relationship
This is the most fundamental link. DoD is defined as a percentage of capacity:
DoD (%) = (Ah discharged / Rated Ah capacity) × 100
There is no DoD without a capacity to measure it against. This is not a correlation — it is the definition itself.
3.6.2 — DoD and voltage: an indirect relationship via the SoC-OCV curve
Because SoC and open-circuit voltage are related — weakly, for LiFePO4’s flat curve (§3.1.1) — and DoD = 100% − SoC, there is an indirect mapping between DoD and rested cell voltage. But that relationship is notably unreliable for LiFePO4 specifically, precisely because the voltage plateau is so flat across the middle of the range: two very different DoD values can correspond to nearly the same rested voltage, which is why voltage alone is a poor real-time proxy for DoD in this chemistry.
3.6.3 — DoD and resistance: a subtle, load-dependent relationship
This is the most interesting of the three, and it connects straight back to the Ohm’s law voltage-sag analysis behind Chapter 1. Under load, a real cell’s terminal voltage is reduced by its internal resistance:
Vterminal = VOCV − I × Rinternal
A BMS’s under-voltage cut-off is normally set on terminal voltage, not true open-circuit SoC. At high discharge current, resistive sag can push terminal voltage down to the cut-off threshold before the cell has actually reached its true capacity-based 100% DoD point — meaning the apparent, extractable capacity at high C-rates is somewhat lower than the capacity measured at a gentle, standard test rate. This rate-dependence of apparent capacity is a well-documented real effect, formally related to the century-old empirical Peukert’s law originally derived for lead-acid batteries. It is much less pronounced in LiFePO4, but not entirely absent.
Why this matters
As a cell ages and its internal resistance rises (§3.4), this effect compounds: the same discharge current causes progressively more voltage sag over the cell’s life, so the terminal cut-off voltage is reached at a progressively higher true SoC — a lower true DoD. Extractable capacity declines from rising resistance alone, before accounting for any genuine active-material capacity loss. That is precisely why both SoHC and SoHR matter, and why they do not always decline at the same rate.
3.6.4 — Other factors DoD interacts with
Table 3.6 — Secondary factors affecting the practical relationship between DoD and extractable capacity
| Factor | Effect |
|---|---|
| Temperature | Both capacity and internal resistance are temperature-dependent; cold cells deliver less capacity before hitting cut-off voltage at a given current |
| C-rate (discharge current) | Higher current → more IR sag → cut-off reached “earlier” in true SoC terms, per §3.6.3 |
| Cell age / SoH | Rising resistance with age compounds the effect above over the battery’s life |
3.7 — Worked comparison: 16-cell vs 20-cell 100Ah series packs
To make every concept above concrete, this section works through two realistic LiFePO4 pack configurations side by side: a 16S (16-cell series) 100Ah pack and a 20S (20-cell series) 100Ah pack, both built from cells with a nominal voltage of 3.2V and a representative internal resistance of 2.0mΩ per cell.
Table 3.7 — Base pack specifications
| Parameter | 16S pack | 20S pack |
|---|---|---|
| Cells in series | 16 | 20 |
| Nominal pack voltage | 16 × 3.2V = 51.2V | 20 × 3.2V = 64.0V |
| Rated capacity | 100Ah — a series string’s Ah rating equals a single cell’s Ah rating | 100Ah |
| Rated energy | 51.2V × 100Ah = 5.12 kWh | 64.0V × 100Ah = 6.40 kWh |
| Pack internal resistance (2.0mΩ/cell) | 16 × 2.0mΩ = 32mΩ | 20 × 2.0mΩ = 40mΩ |
In plain English
Both packs share the exact same “100Ah” headline number — but they are not the same size battery. The 20S pack stores 25% more total energy than the 16S pack, purely because it has four more cells stacked in series, raising voltage while capacity in Ah stays identical. This is the direct, practical consequence of the capacity ≠ SoC ≠ energy distinction from §3.2.
3.7.1 — SoC, DoD and remaining energy side by side
Table 3.8 — Remaining Ah and kWh at various SoC levels
| SoC | DoD (from full) | 16S pack — remaining | 20S pack — remaining |
|---|---|---|---|
| 100% | 0% | 100Ah / 5.12kWh | 100Ah / 6.40kWh |
| 80% | 20% | 80Ah / 4.10kWh | 80Ah / 5.12kWh |
| 60% | 40% | 60Ah / 3.07kWh | 60Ah / 3.84kWh |
| 50% | 50% | 50Ah / 2.56kWh | 50Ah / 3.20kWh |
| 40% | 60% | 40Ah / 2.05kWh | 40Ah / 2.56kWh |
| 20% | 80% | 20Ah / 1.02kWh | 20Ah / 1.28kWh |
| 0% | 100% | 0Ah / 0kWh | 0Ah / 0kWh |
Worked example 3.2 — Same DoD, different energy delivered
Both packs are cycled from 90% SoC down to 30% SoC — a DoD of 60% on both packs, identically.
16S pack: 60Ah × 51.2V = 3.072 kWh delivered
20S pack: 60Ah × 64.0V = 3.840 kWh delivered
Identical DoD (60%), identical Ah throughput (60Ah) — but the 20S pack delivers 25% more energy for that same DoD, purely because of its higher series voltage. This is exactly why DoD alone, without knowing pack voltage or energy, is insufficient to describe how much real-world work a discharge event represents.
3.7.2 — Does series count change the resistance effect on DoD?
§3.6.3 established that internal resistance affects how much of a cell’s true capacity is extractable before hitting a cut-off voltage. Does building a longer series string change that effect? The answer is a genuinely interesting “no” — at least not proportionally.
Worked example 3.3 — Comparing percentage voltage sag at 1C discharge
Both packs are discharged at 1C (100A), using the per-cell internal resistance of 2.0mΩ from Table 3.7.
16S: sag = 100A × 0.032Ω = 3.2V → 3.2 ÷ 51.2 = 6.25% of nominal
20S: sag = 100A × 0.040Ω = 4.0V → 4.0 ÷ 64.0 = 6.25% of nominal
The absolute voltage sag is larger on the 20S pack (4.0V vs 3.2V) — but the percentage sag relative to nominal voltage is identical. That is not a coincidence: because both total pack resistance and nominal pack voltage scale linearly with the number of series cells, assuming identical cells throughout, the ratio between them — and therefore the practical effect on how much of the “true” DoD is reachable before cut-off — is independent of series cell count.
Why this matters
This is a genuinely useful engineering result. For packs built from identical cells, simply adding more cells in series to raise system voltage — as is common when scaling from a 51.2V architecture toward a 64V, 400V or 800V system — does not, by itself, change the percentage impact of internal resistance on extractable capacity at a given C-rate. What does change that percentage is C-rate itself, cell temperature, and — critically — rising internal resistance as cells age (§3.4). Which is exactly why SoHR tracking matters regardless of how many cells a pack has in series.
3.7.3 — Cycle life implications
Because both packs use the same underlying cell chemistry, their percentage-based cycle-life-versus-DoD relationship (Figure 3.2) is expected to be essentially identical. Degradation mechanisms (§3.5) are fundamentally per-cell electrochemical phenomena, not properties of how many cells happen to be wired in series. A 16S pack and a 20S pack cycled at the same DoD, temperature and C-rate should reach the same SoH percentage after a similar number of cycles.
Important
The practical caveat. That equivalence assumes perfect cell balancing across the string. In practice, a longer series string offers more opportunities for manufacturing variation and uneven aging between individual cells — and because a series string’s usable capacity is ultimately limited by its single weakest cell, a longer string can show faster apparent pack-level capacity fade than a shorter one even when the average individual cell is aging identically, simply because there are more cells and therefore a higher statistical chance that at least one drifts further from the pack average. This is precisely why balancing quality and cell-matching at pack-build time matter more, not less, as series cell count increases.
3.8 — How a DoD limit is actually set: what you adjust in a real BMS
Everything so far has been about what DoD means. This section answers the practical question: if you want to hold a pack to, say, 60% DoD, what setting do you actually change — voltage, capacity, cycle count, or something else? The short answer is primarily SoC limits, which are themselves derived from coulomb-counted capacity and only loosely anchored to voltage — and definitely not cycle count. The full answer has three distinct levers, each with real trade-offs.
Table 3.9 — The three ways a DoD limit gets implemented
| Lever | What it actually does | Precision | Where it typically lives |
|---|---|---|---|
| SoC-window limiting | Software stops charging above X% SoC and stops discharging below Y% SoC, using the BMS’s coulomb-counted SoC value | High — it directly targets the quantity DoD is defined by | EMS, vehicle controller or charger logic reading the BMS’s reported SoC over UART/RS485/CAN |
| Voltage threshold narrowing | Raising the under-voltage cut-off and release, and/or lowering the charge target voltage, in the BMS’s own protection settings | Low to moderate for LiFePO4 (§3.8.1) — much better for chemistries with a sloped curve | BMS protection parameters, set through the board’s configuration software |
| Capacity derating | Telling the BMS a smaller “nominal capacity” than the cell’s true capacity, so its SoC calculation is based on a virtual, smaller tank | High if paired with SoC-window logic; does nothing on its own without a cut-off rule | BMS capacity and cycle-capacity registers, or pack/EMS firmware |
Important
What cycle settings are not for. Cycle count is not a lever for setting DoD at all. A BMS’s “cycle capacity” parameter — a separate field from “nominal capacity” in the configuration software — exists purely to define how much cumulative discharge throughput counts as one cycle, for tracking and warranty purposes. It increments a counter; it does not constrain how deep any individual discharge is allowed to go. Confusing the two is an easy mistake: cycle count is the odometer, not the fuel gauge.
3.8.1 — Why voltage-based limiting is the riskiest lever for LiFePO4
§3.6.2 already flagged that LiFePO4’s rested voltage curve is unusually flat across most of the usable SoC range. That matters enormously here: it means the voltage-threshold lever — the one most directly exposed as an adjustable BMS parameter — is also the least precise one for this particular chemistry.
Technical framing
This is precisely why coulomb counting, calibrated periodically by a full charge/discharge capacity-learning cycle (§3.1.1), is the industry-standard SoC method for LiFePO4, and why voltage-threshold adjustment is generally treated as a coarse safety backstop rather than a precise DoD-setting tool. It is also worth noting that a BMS’s protection thresholds trigger on real-time terminal voltage — which includes the I×R sag of §3.6.3 and short-term surface polarisation right after a charge or discharge — not the clean, rested OCV plotted in Figure 3.6. Under load, the same true SoC point can read at a noticeably different voltage depending on current and recent history, compounding the imprecision.
3.8.2 — Worked example: setting a 60% DoD window
Suppose the goal is to keep a pack cycling within a 60% DoD window — a common target, since Figure 3.2 showed that roughly doubles cycle life against a full 100% DoD regime. A natural choice is a 20%–80% SoC window (80% − 20% = 60% DoD), though any 60-point span works equally well; 15%–75% would do just as much good.
Worked example 3.4 — Applying a 20–80% SoC window to the 16S and 20S packs
Using the packs from Table 3.7 — 16S: 51.2V / 100Ah / 5.12kWh; 20S: 64.0V / 100Ah / 6.40kWh.
Usable Ah window, both packs: 80Ah − 20Ah = 60Ah
Identical, because DoD is Ah-based and both packs share the same 100Ah rating. In energy terms the two diverge again:
16S usable energy: 60Ah × 51.2V = 3.072 kWh of the pack’s 5.12kWh
20S usable energy: 60Ah × 64.0V = 3.840 kWh of the pack’s 6.40kWh
Implementation: the charger is configured to terminate at the SoC corresponding to 80% — not at a fixed voltage — and the load or inverter to disconnect at the SoC corresponding to 20%, both read from the BMS’s coulomb-counted SoC output rather than from a narrowed voltage protection threshold.
3.8.3 — A real BMS walkthrough: the JBD-SP24S007
It is worth grounding this in an actual board’s actual parameter set — the JBD-SP24S007 whose protection thresholds Chapter 1 works through. Its datasheet exposes exactly the parameter categories Table 3.9 describes, and inspecting them makes the practical picture concrete.
Table 3.10 — JBD-SP24S007 parameters relevant to DoD, as shipped
| Parameter | Typical factory value | Relevant lever |
|---|---|---|
| Under-voltage (over-discharge) protection | 2.20V/cell | Voltage threshold |
| Under-voltage release | 2.60V/cell | Voltage threshold |
| Over-voltage (overcharge) protection | 3.75V/cell | Voltage threshold |
| Charge voltage target | 3.60V/cell | Voltage threshold |
| Hardware OV/UV backup (independent of software) | 3.90V/cell / 2.00V/cell | Safety backstop, not a routine DoD tool |
| Nominal (rated) capacity | Set in software, e.g. 100,000mAh | Capacity derating |
| Cycle capacity | Set in software, e.g. 80,000mAh | Cycle counting, not DoD limiting — see the warning above |
| SOC-voltage calibration table (10 points, 100%→10%) | 3350mV → 3220mV per cell (130mV total span) | Calibrates the coulomb counter against rested voltage — not a cut-off control |
That last row is worth pulling out on its own. The board’s configuration software ships with a factory-example 10-point table mapping rested per-cell voltage to SoC in 10% increments — the concrete, board-specific version of the illustrative curve in Figure 3.6:
Technical framing
This table is not a DoD control — you cannot tell the BMS “stop at the row labelled 60%.” It exists so that the coulomb-counting SoC algorithm (§3.1.1) can periodically self-correct against rested cell voltage, exactly the model-based hybrid approach described in Table 3.1. But it is directly useful if you do take the voltage-threshold path below: these are real, board-specific anchor points to calibrate against, rather than an assumed generic curve.
Notably, beyond that calibration table, this board’s exposed parameter set — like most dedicated protection-board BMS designs — does not include a native “stop charging or discharging at X% SoC” field. Its job is cell-level voltage, current and temperature protection plus SoC and cycle reporting, not system-level DoD policy. That leaves two real implementation paths for a 60% DoD target on this board:
- 1Preferred — implement the SoC window upstream. Read the BMS’s coulomb-counted SoC over its UART, RS485 or CAN interface in the charger, inverter or vehicle/EMS controller, and have that external logic terminate charge and discharge at the target SoC boundaries. The BMS’s own 2.20V and 3.75V protection thresholds stay untouched as a true safety backstop rather than becoming a routine operating limit.
- 2Workable but coarser — narrow the voltage thresholds directly. Raise the under-voltage protection and release pair, and/or lower the charge voltage target, now anchored against the board’s own Figure 3.7 table rather than a generic assumption. The table’s 20% row (3266mV) and 90% row (3330mV) could inform where to place narrowed thresholds for a roughly 70% DoD window — but the result should still be validated against actual coulomb-counted throughput, since even this real table shows the curve is too flat in the middle to guarantee precision from voltage alone.
Why this matters
This is exactly why the capacity-learning sequence documented in Chapter 2 — fully charge to over-voltage protection, fully discharge to under-voltage protection, then charge once more — exists at all. It is what lets the BMS’s coulomb counter anchor “0%” and “100%” SoC to real, measured amp-hours, which is the prerequisite for any SoC-window-based DoD limit to be trustworthy in the first place.
Chapter summary
- ✓SoC is a real-time percentage — how full the battery is right now.
- ✓Capacity is an absolute quantity in Ah or kWh — how big the battery is. It is not the same thing as SoC, and comparing two packs’ SoC without knowing their capacities is misleading.
- ✓DoD is the size of a discharge swing, expressed as a percentage of capacity. DoD = 100% − SoC only when measured from a full charge; more generally it is the gap between a cycle’s start and end SoC.
- ✓DoD is the dominant driver of cycle life, and the relationship is convex, not linear — shallower cycles disproportionately extend usable life.
- ✓SoH measures accumulated aging, via capacity retention (SoH_C) and/or resistance growth (SoH_R), and must be estimated periodically rather than read instantaneously like SoC.
- ✓Degradation arises from calendar aging (time and storage driven) and cycle aging (usage driven), through SEI growth, lithium plating, active material loss and electrolyte decomposition.
- ✓DoD relates to capacity directly by definition, to voltage indirectly via the SoC-OCV curve — weakly, for LiFePO4 — and to resistance indirectly but importantly, via load-dependent voltage sag deciding when cut-off is reached.
- ✓That resistance effect, in percentage terms, is independent of series cell count for identical cells — though longer strings carry more practical balancing risk.
- ✓In practice, a DoD limit is implemented primarily through SoC-window control — charger or EMS logic stopping at target SoC boundaries, using the BMS’s coulomb-counted SoC. Not by narrowing voltage thresholds, which are imprecise on LiFePO4’s flat curve, and not via any cycle-count setting, which only tracks throughput and never limits depth.
Quick reference — core formulas
State of charge
SoC (%) = (Remaining capacity / Full capacity) × 100
Depth of discharge
DoD (%) = 100 − SoC
From full charge. General form: DoD = SoC_start − SoC_end
State of health (capacity)
SoH_C (%) = (Actual capacity / Rated capacity) × 100
State of health (resistance)
SoH_R (%) = (Initial resistance / Actual resistance) × 100
Terminal voltage under load
V_terminal = V_OCV − I × R_internal
Pack energy
Energy (kWh) = Voltage (V) × Capacity (Ah) / 1000
DoD limit (practical)
Set via SoC window (charger / EMS)
Not via voltage thresholds, and never via cycle count
Cycle life, degradation and capacity-fade figures throughout this chapter are representative/illustrative values for LiFePO4 chemistry drawn from widely-observed industry patterns, not measured data from a specific product. Always consult the actual cell manufacturer’s datasheet and conduct cell-specific testing before making design, warranty or safety decisions.
Frequently asked questions
What is depth of discharge (DoD)?+
Depth of discharge is the fraction of a battery’s capacity that has been discharged in a given cycle or event, expressed as a percentage. Measured from a full charge, DoD = 100% − SoC. More generally it describes the size of a discharge swing, which does not have to start at 100% SoC: a cycle running from 80% down to 20% is a 60% DoD cycle.
What is the difference between capacity and state of charge?+
Capacity is an absolute quantity in amp-hours or kilowatt-hours — the size of the tank. State of charge is a relative percentage — how full that tank is right now. Two packs can sit at an identical 50% SoC while holding very different amounts of energy: a 5.12kWh pack holds 2.56kWh at half full, a 6.4kWh pack holds 3.2kWh.
What is state of health (SoH)?+
State of health measures how much a battery has aged relative to when it was new. It is most commonly quoted as the percentage of original rated capacity still available, and sometimes as the percentage increase in internal resistance. SoH is 100% at beginning of life, and most industries define end-of-life somewhere between 70% and 80% SoH.
What causes battery degradation?+
Degradation is the gradual, largely irreversible loss of usable capacity and rise in internal resistance over a battery’s life. It comes from calendar aging, which happens over time even at rest and is accelerated by high storage state of charge and high temperature, and from cycle aging driven by use. The underlying mechanisms include SEI layer growth, lithium plating, active material loss, electrolyte decomposition and current collector corrosion.
Is depth of discharge related to voltage, capacity or resistance?+
To all three, but differently. DoD is defined directly in terms of capacity. It relates to voltage only indirectly through the SoC-OCV curve, and that link is weak for LiFePO4 because its voltage plateau is so flat. It is affected indirectly but importantly by internal resistance, because resistive voltage sag under load can pull terminal voltage down to a cut-off before the cell has reached its true capacity-based DoD point.
Does adding more cells in series change how much internal resistance affects a pack?+
Not in percentage terms. For packs built from identical cells, both total pack resistance and nominal pack voltage scale linearly with series cell count, so the percentage voltage sag at a given C-rate is the same. A 16S and a 20S 100Ah pack of 2.0mΩ cells both sag 6.25% of nominal at 1C. What does change the figure is C-rate, temperature and rising resistance as the cells age.
If I want to limit depth of discharge to 60%, what do I actually adjust in the BMS?+
Primarily SoC limits — configuring the charger, inverter or EMS to stop charging and discharging at target SoC percentages read from the BMS’s coulomb-counted SoC output, for example a 20% to 80% window. Not voltage thresholds as the primary tool, because LiFePO4’s rested voltage curve moves only about 30mV across 20–85% SoC and cannot resolve depth precisely. And not any cycle-count setting: a BMS’s cycle capacity parameter only defines how much throughput counts as one cycle, and never constrains how deep an individual discharge goes.
Reviewed by
Battery Fundamentals is an original educational series on lithium battery technology. Threshold tables, cycle-life curves and worked examples use representative values drawn from published product specifications and widely-observed industry patterns, not measured data from a specific product. Always consult the current manufacturer datasheet before making design, purchasing, warranty or certification decisions.