Skip to main content

Timestamps and Position Time

Timestamps are receiver-stamped, not aircraft-stamped. The ADS-B protocol does not include a timestamp on position messages — aircraft transmit position data without a time. Every time field in this stream reflects when the ground receiver network received each update.

Each record carries its own now field — a Unix timestamp in seconds (with millisecond precision, e.g. 1743600000.123) marking when the receiver network generated that record. The other time fields (seen, seen_pos) are relative offsets, also in seconds, from that now.

To derive the absolute UTC time of the last known position for an aircraft, subtract the offset — everything is in seconds, so no scaling is needed:

position_time = now - seen_pos // seconds since the Unix epoch

For example, if now = 1743600000.000 and seen_pos = 2.5, the position was received at 1743599997.5 (multiply by 1000 if your language wants epoch milliseconds).