Solution · Intelligence
Fleet Battery Life Forecasting Platform
- ERPNext
- n8n
- TimescaleDB
- Neo4j
- Ollama
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
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.
The logic flow
Click any node for what it does, what it hands on, and where a person is required.
What it lets you offer
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.
What it returns
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.
Why it fits
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.
See it run
Want one of these?
Every part of it is open source and self-hostable. What I bring is the failure record and the judgement about where your gates should sit.