Version 1.0

The BDF Specification

A simple, universal format for battery data. Just 3 required fields to get started, with optional extensions for any use case.

3
Required Fields
4
Recommended Fields
19
Optional Fields
Extensible

Core Principles

Single Cell per File

Each file contains time-series data for exactly one cell. Multiple files can describe the same cell.

Fixed SI Units

Units are locked to the spec — no conversion needed. Volts, Amps, Seconds, and so on.

Clear Column Headers

Headers follow 'Quantity / Unit' format (e.g. 'Voltage / V') so the data is self-describing.

Machine Readable

Every column has a human-readable label and a machine-readable name linked to the BDF standard vocabulary.

3

Required Fields

The essentials - every BDF file needs these

Test Time
s

Elapsed time since test start

test_time_second
Voltage
V

Instantaneous voltage measured

voltage_volt
Current
A

Instantaneous current applied

current_ampere
4

Recommended Fields

Strongly encouraged for most use cases

Unix Time
s

Timestamp in Unix format

Cycle Count
1

Monotonically increasing cycle index

Step Count
1

Step index within program

Ambient Temperature
degC

Environmental temperature

19

Optional Fields

Extend BDF for your specific needs

Capacity

5
Unit: Ah
ChargingDischargingStepNetCumulative

Energy

5
Unit: Wh
ChargingDischargingStepNetCumulative

Temperature

5
Unit: degC
T1T2T3T4T5

Other

4
Unit: various
PowerResistancePressureStep Index

File Formats

Supported Extensions

.bdf.csvCSV format - human readable, easy to inspect
.bdf.parquetParquet format - fast, compact, great for large datasets
.bdf.gzCompressed - for archival and transfer

Naming Convention

Pattern:
InstitutionCode__CellName__YYYYMMDD_XXX.bdf.csv
Example:
UCam__A0001__20241031_001.bdf.csv

Start Using BDF Today

Install the Python package and convert your first dataset in minutes.