Partial-SOC Cycling and Recalibration Scheduling for LFP BESS
Frequency regulation, peak shaving, and other grid-services duty cycles keep a BESS cycling between roughly 20% and 80% state of charge. That partial-SOC band protects LFP cells from deep-discharge stress. But it also means the estimator rarely sees a true 0% or 100% anchor point. Recalibration scheduling is the deliberate plan for correcting SOC drift when the operating profile itself won’t do it for you.
| Quick Answer Grid-services BESS rarely touch 0% or 100% SOC, so the anchor points that reset Coulomb-counting drift never occur naturally. Recalibration scheduling forces periodic full-range excursions, or substitutes softer in-band anchors, to correct that drift on a set cadence without giving up cycling revenue. |
Why This Needs a Scheduling Plan, Not Just an Anchor Point
Coulomb counting drift and the anchor-point fix are covered in depth in The 20/80 Rule for Batteries: an open-circuit voltage reading at a true 0% or 100% SOC resets the estimator and prevents error from accumulating.
So, the short version: a grid-services BESS often can’t count on that reset happening naturally. A frequency-regulation asset can spend months inside a 20-80% band, since the estimator has nothing to reset against until something schedules a true excursion. This article picks up from there, building the actual recalibration scheduling logic. See our guide to EKF SOC estimation design for how the underlying estimator works.
Soft Anchors vs. True Anchors

Recalibration scheduling generally comes down to two correction options inside a partial-SOC operating window: a soft anchor, or a true anchor.
A soft anchor uses a local voltage extremum, the highest or lowest point the pack reaches inside its normal band, as a weaker reference signal. It costs no cycling capacity, but it is less reliable than a full anchor, since the flat LFP voltage curve blurs the reading. Voltage-based correction methods can sharpen that signal near the charge end, but our EKF SOC estimation design treats it as one input among several, not a standalone fix.
A true anchor, on the other hand, is a scheduled deep excursion to near 0% or 100% SOC. It fully resets the estimator, but it also costs cycling capacity and, therefore, revenue. So the trade-off is the entire scheduling problem in miniature. How often can a fleet afford to give up a true anchor before drift becomes the bigger cost?
Building a Recalibration Scheduling Cadence

Most fleets land on one of three cadence styles.
| Cadence Type | Trigger | Strength | Trade-off |
|---|---|---|---|
| Drift-triggered | EKF divergence crosses a set threshold | Only recalibrates when actually needed | Requires a mature, well-tuned estimator |
| Fixed-calendar | Every set number of weeks, regardless of drift | Simple, easy to plan around revenue contracts | Can waste capacity if drift is genuinely low |
| Hybrid | Fixed-calendar backstop plus early drift-triggered excursions | Balances predictability with accuracy | More logic to implement and tune |
Drift-Triggered Scheduling
Drift-triggered scheduling waits for the estimator itself to flag a problem, typically when the EKF’s own confidence bounds widen past a threshold. So it is efficient, but it also leans hard on estimator quality.
Fixed-Calendar and Hybrid Recalibration Scheduling
Fixed-calendar scheduling, by contrast, ignores drift signals entirely and recalibrates on a regular, pre-set schedule. It is predictable and easy to coordinate with revenue commitments, though occasionally it recalibrates earlier than the pack strictly needs.
A hybrid approach keeps the fixed-calendar backstop but allows an early trigger if drift crosses a threshold sooner. This is close to the logic behind degradation-aware fleet scheduling, where a control policy weighs the cost of an excursion against the degradation and drift risk of skipping it, rather than treating every fleet asset on an identical fixed clock. It caps the worst case without discarding the efficiency of drift-based triggers.
Whichever cadence a project picks, log every recalibration event alongside its trigger reason. An operations team reviewing dispatch anomalies six months later needs that record to tell a genuine fault from an overdue anchor.
DCIR and SOH Milestones in Recalibration Scheduling
Recalibration scheduling should also not rely on SOC alone. Internal resistance and state of health both drift with age, so both can be tracked independently of the SOC estimator.
Pairing a scheduled true anchor with a DCIR measurement gives two independent readings at once, one for charge state, one for cell condition. Our guide to DCIR-adaptive cutoff design covers how resistance data feeds directly into cutoff-voltage decisions.
This cross-check matters most late in project life. Because cells age, the OCV-SOC relationship itself shifts, so a stale voltage-to-SOC table can mask real drift even right after a true anchor. Tying recalibration scheduling to SOH milestones, not just calendar time, catches that.
A practical rule: refresh the OCV-SOC lookup table on SOH milestones, not a fixed calendar. Early in life, fade is slow, so refreshes are rare. Later, as fade accelerates, they need to happen more often. In other words, the milestone, not the clock, should set the pace.
None of this requires exotic hardware. A BMS that already runs Coulomb counting and logs voltage at rest has what it needs. What is usually missing, instead, is the scheduling logic itself: the explicit rule set that decides when a true anchor is worth the lost cycling revenue and when a soft anchor or a calendar tick will do.
Frequently Asked Questions
How Often Should Recalibration Scheduling Run for a Grid-Services BESS?
There’s no universal number. Because fleets differ, most commercial operators set a fixed-calendar backstop, then allow an early trigger if the estimator’s drift crosses a set threshold sooner. The right recalibration scheduling interval depends on Coulomb-counting sensor quality, how tightly the SOC band is held, and how the fleet weighs lost cycling revenue against estimation risk.
Does partial-SOC cycling shorten the interval between full-range cycles, or lengthen it?
It lengthens it, in the sense that a well-run partial-SOC program deliberately avoids full-range cycles to protect cycle life. Because of that, recalibration scheduling reintroduces them only as often as drift correction requires, not as often as the duty cycle would otherwise allow.
Further Reading
EKF SOC Estimation Design for LFP BESS
Designing an LFP BESS Against SOC Drift, Cell Imbalance, and Premature Cutoffs
Battery Management System (BMS) Explained
References
Full citations for the sources linked inline above:
Gismero, A., Schaltz, E., & Stroe, D.-I. (2020). Recursive State of Charge and State of Health Estimation Method for Lithium-Ion Batteries Based on Coulomb Counting and Open Circuit Voltage. Energies, 13(7), 1811.
Abdollahi, A., Li, J., Li, X., Jones, T., & Habeebullah, A. (2022). Voltage-Based State of Charge Correction at Charge-End. arXiv:2201.02282.
Srinivasa, T. R., Deulkar, V., Bhargava, J., Hajiesmaili, M., & Shenoy, P. (2026). Degradation-Aware Frequency Regulation of a Heterogeneous Battery Fleet via Reinforcement Learning. arXiv:2601.22865.












Leave a Reply
Want to join the discussion?Feel free to contribute!