CSV Summary
CSV Summary is the CSV you get with Summary. It has one row for each flight or detection. It doesn't contain the positions.
The file name ends in -summary.csv.
Flights and detections use the same 37 columns in the same order. The figures are calculated from the whole track, exactly as in a With tracks export.
Columns
The Who column says which kind fills the column. F means flights, D means detections.
Identity
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 1 | id | F D | ID of the flight or detection | Never | id | |
| 2 | status | F D | See Status values | Not reported | summary.status | |
| 3 | sensor_ids | D | Receivers that heard it, separated by | | Flights | summary.source.sources[].name | |
| 4 | serial_number | F D | Serial number. For a flight, the Dronetag device's. | Not reported | Identifier of type serial_number | |
| 5 | callsign | F D | Name the pilot gave the flight, or a manned aircraft's callsign | Not set | Identifier of type custom_callsign, otherwise callsign | |
| 6 | caa_assigned | D | Registration number from the aviation authority | Not broadcast | Identifier of type caa_assigned |
Aircraft and Operator
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 7 | aircraft_manufacturer | D | Manufacturer, such as DJI | Unknown | summary.aircraft_manufacturer | |
| 8 | aircraft_model | F D | Model, such as DJI Mavic 3 | Unknown | summary.aircraft_model | |
| 9 | aircraft_category | D | Kind of aircraft, such as rotorcraft | Unknown | summary.aircraft_category | |
| 10 | ua_classification | D | EU category and class, such as open class_1 | Not broadcast | summary.ua_classification category and class | |
| 11 | uas_operator_id | F D | Operator registration number | Not reported | summary.uas_operator_id | |
| 12 | pilot_id | F | Pilot's ID in the Dronetag platform | Detections | summary.pilot.id | |
| 13 | pilot_name | F | Pilot's name | Detections | summary.pilot.name | |
| 14 | message_count | D | Messages heard by all receivers together | Flights | summary.message_count |
When
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 15 | duration | F D | From the first to the last position | s | No positions | summary.duration |
| 16 | time_first_telemetry | F D | Time of the first position, UTC | No positions | summary.time_first_telemetry | |
| 17 | time_last_telemetry | F D | Time of the last position, UTC | No positions | summary.time_last_telemetry |
Where
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 18, 19 | take_off_latitude, take_off_longitude | F (D rarely) | Take-off location | degrees | Not reported | summary.take_off.location |
| 20, 21 | first_latitude, first_longitude | F D | First position | degrees | No positions | summary.first |
| 22, 23 | last_latitude, last_longitude | F D | Last position | degrees | No positions | summary.last |
| 24, 25 | min_latitude, max_latitude | F D | Southern and northern edge of the track | degrees | No positions | summary.bbox[1], summary.bbox[3] |
| 26, 27 | min_longitude, max_longitude | F D | Western and eastern edge of the track | degrees | No positions | summary.bbox[0], summary.bbox[2] |
The first and last positions are where the record starts and ends. They are often not the take-off and landing, because a receiver starts hearing a drone when it comes into range.
How Far and How Fast
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 28 | point_count | F D | Number of positions | No positions | summary.point_count | |
| 29 | total_distance | F D | Distance flown over the ground | m | Fewer than 2 positions | summary.total_distance |
| 30 | max_horizontal_speed | F D | Highest ground speed | m/s | No speed reported | summary.max_horizontal_speed |
| 31 | operator_track_kind | D | operator, take_off or mixed, see below | No pilot position | summary.operator_track_kind | |
| 32 | max_operator_distance | D | Largest distance between drone and pilot | m | No pilot position | summary.max_operator_distance |
| 33 | operator_movement_extent | D | How far the pilot moved | m | No pilot position | summary.operator_movement_extent |
| 34 | transmission_technologies | D | How the drone was heard, such as wifi_beacon, separated by | | Flights | summary.source.transmission_technologies |
operator_track_kind tells you what the pilot position is. operator is the pilot's real position. take_off means the drone sent only its take-off location, so the distances are measured from there. mixed is some of each.
Altitudes
| # | Column | Who | Meaning | Unit | Empty when | In JSON |
|---|---|---|---|---|---|---|
| 35 | max_alt_ato | F D | Highest height above take-off | m | Not in the track | summary.max_altitudes[] of type ATO |
| 36 | max_alt_msl | F D | Highest altitude above sea level | m | Not in the track | summary.max_altitudes[] of type MSL |
| 37 | max_alt_agl | F D | Highest height above the ground | m | Not in the track | summary.max_altitudes[] of type AGL |
There are no minimums. See Altitudes Explained.
Status Values
| Value | Kind | Meaning |
|---|---|---|
planned | Flight | Created ahead of time and not started yet |
current | Flight, detection | Still in progress when you exported it. The track may still grow. |
inactive | Flight | Still open, but the device stopped reporting |
uploading | Flight | Recorded offline and still being uploaded |
processing | Flight | Over, and still being processed |
error | Flight | Processing failed, so the record may be incomplete |
finished | Flight | Over and processed |
cancelled | Flight | Planned and never flown |
past | Detection | Over |
upcoming | Detection | Announced and not started yet |
Only in JSON
CSV Summary keeps to the fields most people need. These are only in JSON:
- Accuracies.
- Start and end times as the source states them. These can differ from the first and last position.
- The return-to-home point and the declared operation area of a flight.
- Rare identifiers, the Self-ID text and the flight's colour.
Example
One example flight and one example detection (synthetic data):
id,status,sensor_ids,serial_number,callsign,caa_assigned,aircraft_manufacturer,aircraft_model,aircraft_category,ua_classification,uas_operator_id,pilot_id,pilot_name,message_count,duration,time_first_telemetry,time_last_telemetry,take_off_latitude,take_off_longitude,first_latitude,first_longitude,last_latitude,last_longitude,min_latitude,max_latitude,min_longitude,max_longitude,point_count,total_distance,max_horizontal_speed,operator_track_kind,max_operator_distance,operator_movement_extent,transmission_technologies,max_alt_ato,max_alt_msl,max_alt_agl
3f6b1c2e-8d4a-4b7f-9e21-5a0c7d3e9b14,finished,,1596CEXAMPLE00001,EXAMPLE-FLIGHT-1,,,DJI Matrice 350 RTK,,,CZEexampleoper01,9b6b1c2e-8d4a-4b7f-9e21-5a0c7d3e9b14,Tomáš Example,,260.963047,2026-09-17T07:42:13.350390Z,2026-09-17T07:46:34.313437Z,49.1679989,16.4950113,49.1679989,16.4950113,49.168003,16.4949982,49.167991,49.1699201,16.4949881,16.4979653,262,1373.6529667703585,10.14401301260995,,,,,80.33,364.0258824461374,83.32078650204227
6d2f8a41-93c7-4e0b-b5d2-1f7a9c3e8b60,past,SCT-EXAMPLE-01|SCT-EXAMPLE-02,1581FEXAMPLE00000004,,OK-UAS-EXAMPLE-4,DJI,DJI Mavic 3,rotorcraft,open class_1,CZEexampleoper04,,,194,192.977,2026-09-22T15:31:04.048000Z,2026-09-22T15:34:17.025000Z,,,49.9599978,14.4999964,49.9599977,14.4999876,49.9599864,49.9620193,14.4999838,14.5036452,194,973.7599886011964,12.16,operator,261.9408504975598,44.46384785221796,wifi_beacon|wifi_nan,95.1,449.4,97.37793678299658

The same columns for three flights. The detection-only columns stay empty.

Joining It With CSV Telemetry
id here and operation_id in CSV Telemetry hold the same value. Put both files in one workbook, with the summary on a sheet called Summary. In the telemetry sheet, add a column with this formula:
=XLOOKUP(A2, Summary!A:A, Summary!H:H)
It copies aircraft_model (column H) into each position row. If your Excel separates formula arguments with semicolons, use semicolons instead of the commas.
Cells With Several Values
sensor_ids and transmission_technologies can hold several values separated by |. If a value itself contains | or \, a backslash is written in front of it.
Reading It in a Program
The rules are the same as for CSV Telemetry. The file is UTF-8 with a byte order mark, lines end in CRLF and times are in UTC. The header always has the same 37 columns.