Guides

The XPeng data export, file by file and column by column

A reference to the CSV files XPeng sends under the EU Data Act: how they are named, how they are split, and what each column measures.

Updated

In brief

The export is up to three CSV streams — driving_status, driving_operation and driving_power_energy — with one row per second while the car is awake, over the last thirty days. Every row carries the VIN, the model, a timestamp and a date. There is no location data. A month is roughly 340 MB and 3.6 million rows.

File names

Every file is named after the request ID, which starts with DA, and the stream it holds:

DA<request-id>_dwd_opp_gdpr_veh_driving_status_di.csv, …_driving_operation_di.csv and …_driving_power_energy_di.csv.

Each file holds at most 1,000,000 data rows. A stream that runs longer continues in _part1, _part2 and so on. The file without a suffix is the earliest, and parts must be ordered by number rather than alphabetically, so that _part10 comes after _part9.

Columns in every stream

Four columns appear in all three streams and tie them together:

  • vin — the vehicle identification number, on every row.
  • vmodel — the model designation.
  • timer — the moment of the sample.
  • ds — the date partition the row was exported from.

Driving operation

What the car and driver are doing:

  • esp_vehspd — speed, km/h.
  • esp_vehlongaccel, esp_vehlateralaccel — longitudinal and lateral acceleration, in g.
  • cdcu_totalodometer — odometer, km.
  • eps_steeringangle, eps_steeringanglespd — steering angle in degrees and steering rate in degrees per second.
  • ldcu_accpedalsig — accelerator pedal position, %.
  • ldcu_brkpedalst — brake pedal pressed or not.
  • ldcu_currentgearlev — gear: D, N, R or P.

Power & energy

The drivetrain and the battery:

  • ipuf_actrotspd, ipur_actrotspd — front and rear motor speed, rpm.
  • ipuf_acttorq, ipur_acttorq — front and rear motor torque, Nm.
  • ipuf_rotoracttemp, ipur_rotoracttemp — front and rear rotor temperature, °C.
  • bms_battvolt, bms_battcurr — pack voltage (V) and current (A). Multiplied, they give the power going in or out of the battery.
  • ldcu_chrgpwr — charging power, kW.
  • ldcu_bms_soc_disp — displayed state of charge, %.
  • ldcu_dstbatdisp_dynamic — estimated range, km.
  • bms_batttempmax_gb, bms_batttempmin_gb — highest and lowest pack temperature, °C, with the numbers of the sensors that read them.

Driving status

The body of the car:

  • Four door signals: driver, passenger, rear left and rear right — open or closed.
  • Four window positions, % open.
  • The tailgate opener.
  • Tyre pressure per wheel: front left, front right, rear left, rear right.

Pitfalls when reading the files yourself

Some columns use fixed codes to mean "signal not available" rather than a measurement — a speed of 255 km/h or a range of 1,638 km are placeholders, not readings. Plotted as they are, they make charts unreadable, so filter them out first.

The car samples only while it is awake. Gaps between rows are the car asleep, not missing data, and charging sessions are often interrupted by short naps that have to be joined back together.

Nothing in the export is a trip or a charging session: both have to be detected from the signals. LogbooX does this in the browser, and its signal explorer plots any column — including ones it has never seen before.

Questions

Does the XPeng data export contain GPS locations?
No. There is no location data in it at all. Door, charging and driving times still reveal a lot about a daily routine.
How big is the XPeng data export?
Roughly 340 MB and 3.6 million rows for a full month, at one sample per second while the car is awake.
What does _part1 mean in the file name?
Each stream is split every million rows. The file without a suffix is the first part, then _part1, _part2 and so on.

Have your export already?

Drop it on the start page and it becomes trips, charging, battery and a logbook — read in your browser, never uploaded.