Interpreting battery behaviour from VRM data – small experiment

Hi,

VRM shows a lot of useful data (voltage, current, SoC, temperature, energy etc.), but I sometimes find it difficult to interpret what the battery behavior over time actually means.

So I started experimenting with a small script that analyzes VRM CSV data and tries to highlight possible behaviour signals such as:

  • frequent low SoC operation

  • voltage sag under load

  • temperature stress

  • energy trends over time

The goal isn’t to estimate real battery SoH, just to point out observations that might be interesting to investigate.
If anyone is curious, you can try it with a VRM CSV here:

I’m mostly interested in feedback — especially if the observations don’t make sense.

Can any of this be useful?

Process and site navigation

After uploading the VRM file you will be transferred to the Dashboard where you see the analyze results including a bunch of graphs. Then don’t forget to check Report and Observations.

Best regards Mattias

One VRM CSV file example.

Top of the dashboard

Dashboard

Graphs over time that are zoomable

Dashboard

Distributions in histogram form and Voltage Sag under load (zoomable)

Observations

Included the first 8 out of 62.

Report

What do you think. Can any of this be useful?

I can’t see any benefit of this over what VRM already does with advanced widgets and fleet view for larger numbers of installations.
No one I know will use a graphical representation for battery health beyond cell variations and the obvious issues seen with batteries.
People are more concerned with overall consumption and usage across loads.
There is such a thing as too much data, it becomes unhelpful and confusing.
What problem are you trying to fix? To me it seems a bit over-engineered imo.

Nick,

That’s a fair point.

VRM already exposes a lot of raw data and the advanced widgets are very powerful if you know what you’re looking for.

The idea behind this tool wasn’t to replace VRM or replicate its dashboards.
What I noticed when looking at long-term VRM datasets is that many of the signals that indicate battery stress or unusual behaviour are spread across different views and are not always easy to spot over time.

So the experiment was basically to see if patterns such as:

  • repeated deep discharge behaviour

  • unusual voltage sag under similar load

  • changes in charge behaviour over long periods

could be highlighted automatically from exported VRM data.

It’s still very experimental, and the feedback here has already helped clarify where it may or may not add value.

I appreciate the input.

VRM exports turned out to be more complex than I initially expected.
Testing with real datasets helped reveal this — thanks Geomancer86 for sharing data.
The next step will be to improve the import so the tool can read raw VRM exports directly.

I’ll post an update when that version is ready.

Thanks for the feedback!

If anyone wants to quickly see how it works:

Go to History in the left menu and select “Test CSV data.csv”.
That loads a small example dataset so you can explore the tool without uploading your own VRM data.

Update — good news

The CSV import has been adjusted and now works with real VRM exports.

VRM datasets turned out to have more variation in column names than expected, so the importer now matches common fields automatically.

Thanks to Geomancer86 for sharing test data. Feedback is welcome if anyone wants to try it with their own VRM export.

That is a good idea but a challenging one.
Battery health is an abstract concept, it is heavily dependent on context.
For the most part most users can’t change their usage or necessary environmentals - mobile installs for example will be more thermally constrained than others.
Extended weather patterns limit charge, increases in demand due to grid failure can put different stresses on a battery.
These can all be seen in the data and will be a deviation but is not an indication of health.
For the most part, users will start to notice errors appearing, alerts, unusual behaviours and then go investigate.
VRM itself only contains a snapshot of data as it is limited by the CAN spec. For an intelligent battery if you want the full picture, typically when strange things start to happen, you would use the BMS tool and connect to the battery where logs, histograms etc exist.

Someone might get concerned their cell differential is increasing.
Is the cell bad?
Depends if it is the same cell being reported, has it been allowed time to sufficiently charge/balance, were there external factors?
It isn’t easy to correlate the data points for that, if it were the state of health metric batteries provide would be meaningful.
Most struggle just to calculate a SOC, which you might think of as being simple. Yet it isn’t.

Keep up the work, interested to see where it goes.
Just Keep it Simple. Less is more.

1 Like

Thanks Nick, appreciate the input. The goal is simply to highlight patterns in VRM data that might be worth investigating.

Best regards Mattias

Maybe there is a radar chart or heatmap that could make visual interpretation intuitive for users of varying skill?
I actually have a site with unhealthy batteries, so happy to try.

1 Like

Sounds like a good idea Nick. I’ve been thinking about something similar, since the current solution is still somewhat technical.
Do you mean a visual overview that makes the data easier to interpret?

Correct.

1 Like