# Fleet Battery Life Forecasting Platform

A per-block digital twin of the entire fleet: field readings are captured on a tablet or phone, normalised and temperature-corrected by an n8n pipeline, and written to TimescaleDB (chosen over a vector store because impedance and discharge curves are numeric time-series needing continuous aggregates, and it is a mature open-source Postgres extension) while Neo4j holds the structure — which block sits in which string, at which site, of which generation, with what criticality. An Ollama-hosted model fits each block's impedance and capacity trend to forecast its 80% date; forecasts feed a wave planner that groups whole-string replacements, flags gen-one blocks worth redeploying to lower-criticality sites, checks contracted supplier stock, and drafts purchase orders in ERPNext far enough ahead of the ten-week China lead time. The same forecasts drive a rolling three-year capex view and route the two test teams to the strings closest to end of life first, with the existing DNP3 charger 'battery fail' alarms ingested as an early-warning overlay.

**Category:** Intelligence

## The problem

Hundreds of dual-string VRLA banks across NSW age at block-level rates that nobody can see: discharge tests live on paper forms, impedance surveys pile up in spreadsheets, and the 80%-capacity moment arrives as a surprise — colliding with a supplier who is sometimes eight to ten weeks from having stock. Every year the capex bid for replacements is an educated guess, and the two battery teams route themselves across the state by calendar rather than by which strings actually need attention.

## What it does

### Field Test Capture

Discharge test voltages and Celltron impedance readings entered on a tablet or phoned in by the battery teams, replacing the paper forms.

- Cell-by-cell discharge logging
- Impedance survey upload
- Works offline at remote sites

### Ingest & Normalise

Parses readings, temperature-corrects to 25°C, validates against the block's expected range and links every measurement to a unique block ID.

- Temperature correction
- Outlier flagging
- Block ID resolution

### DNP3 Alarm Feed

Existing charger battery-fail alarms ingested over the corporate DNP3/TCP network as an early-warning overlay on the forecasts.

### TimescaleDB History

Every impedance reading and discharge curve for every block since installation, with continuous aggregates for trending.

### Degradation Forecaster

Fits each block's impedance and capacity trend to forecast the date it crosses 80% of manufactured capacity, with a confidence band.

### End-of-Life Gate

Routes each string: forecast inside 24 months goes to replacement planning; healthy strings go back to the risk-ranked maintenance schedule.

### Replacement Wave Planner

Groups end-of-life strings into quarterly replacement waves, never mixes generations, and flags gen-one blocks with residual life for redeployment to lower-criticality sites.

### Route Scheduler

Sequences the two battery teams' state-wide routes by forecast risk and bundles regional-depot basic maintenance, instead of calendar-driven touring.

### Supplier Stock Bridge

Checks contracted vendor stock against the forecast demand curve and publishes the rolling forecast to the supplier so stockouts are visible months out.

### ERPNext Procurement

Drafts purchase orders 14+ weeks ahead of the forecast replacement date so the 10-week China lead time never causes a gap. Nothing is sent without manager approval.

### Capex Forecast Portal

Asset planners see a rolling three-year, string-by-string replacement forecast with costs, for budget bids and regulatory reporting.

### Neo4j Fleet Graph

The structural model: which block sits in which string at which site, block generation, site criticality and regional depot ownership.

- Generation tracking
- Site criticality tiers
- Redeployment candidates

## What it is worth

Substation and asset planners get something the utility has never been able to give them: a named replacement date for every string in the fleet, a defensible three-year capex forecast instead of an annual guess, and a standing commitment that no critical DC system will be running on a string forecast inside twelve months of end of life. The supplier gets a rolling demand forecast feed, which turns the period contract from a stockholding gamble into a scheduled pipeline — and turns the eight-week lead time from a crisis into a non-event.

Estimated elimination of most surprise string failures (currently the dominant cause of emergency callouts), an estimated 15-25% reduction in test-team kilometres by routing on forecast risk rather than calendar, and an estimated one-cycle improvement in capex accuracy — replacement budgets bid against forecast dates rather than averages, with purchase orders raised an estimated 14+ weeks ahead of need so the 10-week China lead time never bites.

## Strategic fit

The paper forms and the spreadsheets are not the problem; they are the symptom of a fleet whose knowledge lives in two four-person teams and a filing cabinet. Any planner today can ask a general-purpose model what a VRLA design life is or what IEEE 1188 says about impedance trending — that knowledge is free now. What no model can tell them is when block NB-2214-17 at Dubbo zone substation will cross 80% capacity, because the only place that answer can exist is in the utility's own decade of readings, joined block by block across every survey and discharge test ever run. That history is the asset; today it is unreadable.

Once it is readable, the money moves. Replacement stops being a maintenance line item negotiated annually and becomes a scheduled, forecast-backed capital programme the regulator and the finance team can audit — which is what a network operator is actually paid to stand behind: not battery testing, but a guarantee that protection and control never lose DC. The supplier relationship inverts too: instead of hoping the vendor held stock, the utility publishes its own demand curve and holds the vendor to it, which is a far stronger position at the next period-contract renewal.

And the redeployment logic — gen-one strings with life remaining moved intact to lower-criticality sites — only works if block generations and residual capacity are tracked precisely. Done by memory it is risky; done from the twin it becomes a systematic way to extract the last paid-for years from every block, which is value nobody can offer the utility from outside because nobody else has the data.

## The stack

- ERPNext
- n8n
- TimescaleDB
- Neo4j
- Ollama

## Where to look

- The showcase: https://ethospower.ai/solutions/fleet-battery-life-forecasting-platform-1789595280046
- The deck: https://ethospower.ai/deck/fleet-battery-life-forecasting-platform-1789595280046
- The live demo: https://ethospower.ai/solutions/demo/fleet-battery-life-forecasting-platform-1789595280046
- The diagram: https://ethospower.ai/walkthrough/fleet-battery-life-forecasting-platform-1789595280046
- Book a 20-minute scoping call: https://book.ethospower.ai/vanya
