All chapters
State of chargeDepth of dischargeState of healthDegradationSetting a DoD limit

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.1State 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.1How SoC is actually measured

Table 3.1 — SoC estimation methods

MethodPrincipleStrengths and weaknesses
Coulomb countingIntegrates measured current over time: SoC(t) = SoC(0) − ∫I·dt / CapacityAccurate short-term, but accumulates drift error over time without periodic correction
Open-circuit voltage (OCV) lookupMaps rested, no-load cell voltage to a known SoC-OCV curveSimple, 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 timeIndustry 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.2Capacity — 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

TermMeaning
Rated (nameplate) capacityThe manufacturer-specified capacity of a new cell under standard test conditions — “100Ah”
Actual (measured) capacityThe 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.3Depth 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:

Full-depth cycleSoC 100% → 0%  (DoD = 100%)Partial cycle (typical real-world usage)SoC 80% → 20%  (DoD = 60%)020406080100State of charge, SoC (%)
Figure 3.1A full-depth cycle (100% → 0% SoC) has DoD = 100%. A partial cycle (80% → 20% SoC), typical of real-world BESS or EV usage that avoids both extremes, has DoD = 60% — computed as the size of the SoC swing, not as “100% minus the ending SoC.”

DoD (%) = SoCstart − SoCend

General form, valid for any partial cycle

3.3.1Why 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.

03,5007,00010,50014,00050% DoD≈ 6,000 cycles100% DoD≈ 2,600 cycles2030405060708090100Depth of discharge, DoD (%)Cycle life to 80% SoH (cycles)
Figure 3.2Representative LiFePO4 cycle life against depth of discharge. Halving DoD from 100% to 50% more than doubles achievable cycle life — the relationship is convex, not linear, which is why BESS operators frequently restrict the usable SoC window (10–90%, say) specifically to extend service life. Values are illustrative and vary by cell design and manufacturer.

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.4State 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

MetricFormulaWhat it captures
Capacity-based SoHSoH_C = (Actual capacity / Rated capacity) × 100%How much usable energy storage remains — the most commonly quoted SoH figure
Resistance-based SoHSoH_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.1Reading 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.

6070809010080% SoH — common industry end-of-life thresholdslow, near-linear fade regionaccelerated “knee-point” region05001,0001,5002,0002,5003,000Cycle numberState of health, SoH (%)
Figure 3.3State of health typically declines in two distinct regimes: a slow, near-linear fade region across most of the battery’s life, followed by an accelerated “knee-point” region as multiple degradation mechanisms begin to compound — a pattern widely observed across lithium-ion chemistries.

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.5Battery 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 agingCycle aging
Driven byTime at rest, regardless of useCharge/discharge cycling
Accelerated byHigh storage SoC, high temperatureHigh DoD, high C-rate, temperature extremes
Occurs even ifThe battery is never usedOnly occurs with active use

3.5.1Primary degradation mechanisms

Table 3.5 — What is physically happening inside the cell

MechanismDescriptionPrimary driver
SEI layer growthThe Solid Electrolyte Interphase, a passivation layer on the anode, thickens over time, consuming cyclable lithium and increasing resistanceCalendar aging, high temperature, high storage SoC
Lithium platingMetallic lithium deposits on the anode surface instead of intercalating properly — largely irreversible capacity loss, and a safety concernCharging at low temperature or high C-rate
Active material lossElectrode particles crack or lose electrical contact with the current collector due to repeated expansion and contractionHigh DoD, high C-rate cycling
Electrolyte decompositionSide reactions consume electrolyte and generate gas over timeHigh temperature, high voltage, calendar time
Current collector corrosionGradual degradation of the metal foils that current flows throughCalendar 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.6Is DoD related to voltage, capacity or resistance?

Yes — to all three, but through three genuinely distinct mechanisms worth separating clearly.

3.6.1DoD 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.2DoD 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.3DoD 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.4Other factors DoD interacts with

Table 3.6 — Secondary factors affecting the practical relationship between DoD and extractable capacity

FactorEffect
TemperatureBoth 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 / SoHRising resistance with age compounds the effect above over the battery’s life

3.7Worked 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

Parameter16S pack20S pack
Cells in series1620
Nominal pack voltage16 × 3.2V = 51.2V20 × 3.2V = 64.0V
Rated capacity100Ah — a series string’s Ah rating equals a single cell’s Ah rating100Ah
Rated energy51.2V × 100Ah = 5.12 kWh64.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.1SoC, DoD and remaining energy side by side

Table 3.8 — Remaining Ah and kWh at various SoC levels

SoCDoD (from full)16S pack — remaining20S pack — remaining
100%0%100Ah / 5.12kWh100Ah / 6.40kWh
80%20%80Ah / 4.10kWh80Ah / 5.12kWh
60%40%60Ah / 3.07kWh60Ah / 3.84kWh
50%50%50Ah / 2.56kWh50Ah / 3.20kWh
40%60%40Ah / 2.05kWh40Ah / 2.56kWh
20%80%20Ah / 1.02kWh20Ah / 1.28kWh
0%100%0Ah / 0kWh0Ah / 0kWh
012345675.126.40100%4.105.1280%3.073.8460%2.563.2050%2.052.5640%1.021.2820%0.000.000%16S pack (51.2V nominal)20S pack (64.0V nominal)State of charge (%)Remaining energy (kWh)
Figure 3.4At every identical state of charge, the 20S pack holds more absolute energy than the 16S pack. The Ah figure — and therefore DoD measured in Ah terms — is identical between them; it is energy that scales with voltage, and voltage that scales with series cell count.

Worked example 3.2Same 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.2Does 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.3Comparing 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.

Absolute sag differs……but percentage sag is identical03690.250.511.52Discharge rate (C)Absolute voltage sag (V)03.5710.5140.250.511.52Discharge rate (C)Voltage sag (% of nominal)16S pack — 32mΩ, 51.2V20S pack — 40mΩ, 64.0V (overlaps on the right)
Figure 3.5Absolute voltage sag scales with series cell count (left) — but percentage sag, the figure that actually determines how close a pack gets to its cut-off voltage under load, is identical between the two configurations (right). Both pack resistance and nominal pack voltage scale linearly with series count, so the ratio between them does not move.

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.3Cycle 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.8How 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

LeverWhat it actually doesPrecisionWhere it typically lives
SoC-window limitingSoftware stops charging above X% SoC and stops discharging below Y% SoC, using the BMS’s coulomb-counted SoC valueHigh — it directly targets the quantity DoD is defined byEMS, vehicle controller or charger logic reading the BMS’s reported SoC over UART/RS485/CAN
Voltage threshold narrowingRaising the under-voltage cut-off and release, and/or lowering the charge target voltage, in the BMS’s own protection settingsLow to moderate for LiFePO4 (§3.8.1) — much better for chemistries with a sloped curveBMS protection parameters, set through the board’s configuration software
Capacity deratingTelling the BMS a smaller “nominal capacity” than the cell’s true capacity, so its SoC calculation is based on a virtual, smaller tankHigh if paired with SoC-window logic; does nothing on its own without a cut-off ruleBMS 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.1Why 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.

2.42.73.03.33.6BMS under-voltage release (typ. 2.60V)20–85% SoC: about 30mV across 65 points of SoCvoltage cannot resolve DoD in here0–10%: steepvoltage is a useful proxy90–100%: steep too020406080100State of charge (%) — at rest, after relaxationRested open-circuit voltage per cell (V)
Figure 3.6A representative LiFePO4 rested open-circuit voltage curve. Across roughly 20–85% SoC, per-cell voltage moves only about 30mV in total — so a BMS voltage threshold set anywhere in that flat window could correspond to a wide, uncertain range of actual SoC. At the two ends of the curve voltage becomes a much sharper, and therefore much more trustworthy, proxy for SoC.

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.2Worked 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.4Applying 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.3A 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

ParameterTypical factory valueRelevant lever
Under-voltage (over-discharge) protection2.20V/cellVoltage threshold
Under-voltage release2.60V/cellVoltage threshold
Over-voltage (overcharge) protection3.75V/cellVoltage threshold
Charge voltage target3.60V/cellVoltage threshold
Hardware OV/UV backup (independent of software)3.90V/cell / 2.00V/cellSafety backstop, not a routine DoD tool
Nominal (rated) capacitySet in software, e.g. 100,000mAhCapacity derating
Cycle capacitySet in software, e.g. 80,000mAhCycle 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:

2200260030003400“average empty voltage” = 2.50Vunder-voltage release (typ. 2.60V)under-voltage protection trip (typ. 2.20V)3220326632803291330133223325332933303350100%–10% SoC — 90 points of capacity — spans only 130mV020406080100State of charge (%)Per-cell voltage (mV)
Figure 3.7The JBD-SP24S007’s own factory-example SOC-voltage calibration table, as exposed in its configuration software — board-specific reference points rather than a generic illustration. Ninety points of SoC, from 10% to 100%, span just 130mV. The dashed segment below 10% is not part of the published table and is shown only for context, anchored to the datasheet’s separate “average empty voltage” (2.50V) and under-voltage protection (2.20V typical) figures.

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:

  1. 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.
  2. 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

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

SG

Sahil Goyal

Co-founder, Wingzman

LinkedIn
SG

Sourabh Goyal

Co-founder, Wingzman

LinkedIn

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.