Missing actual_out/actual_in when using event_code = out/in

Hello,

Our app relies heavy on the actual out and actual in alerts. We are seeing a few times where the actual_out or actual_in value respectively to the request is null (an example below) .

We put in a workaround to make an additional call to get the data which I would like to avoid, but we are finding sometimes the actual in from GET /flights/ident is null. (an example below) . I added a process to manually update the data by making a second GET /flights/ident call and I get the value. When we crossreference the FA website for the flight the actual in is present showing the flight arrived before we get the alert.

Is this expected behavior, and if so is there a way to hold off sending the alert until the actual in is populated? The actual out value we are not too concerned with because we get the alert it happened and we will get the value on the subsequent calls.

Thanks in advance.
Jim

Event Code: out

{“long_description”:“American Airlines / Envoy Air #3407 left the gate at Abilene Rgnl (KABI) at 10:19AM CST, en route to Dallas-Fort Worth Intl (KDFW) \n\nDestination (Dallas-Fort Worth Intl / KDFW): Terminal B, Gate B17”,“short_description”:“ENY3407 left gate at KABI at 10:19AM CST, en route to KDFW”,“summary”:“ENY3407 left gate KABI, en route to KDFW”,“event_code”:“out”,“alert_id”:66629979,“flight”:{“fa_flight_id”:“ENY3407-1705422716-airline-2111p”,“ident”:“ENY3407”,“registration”:“N265NN”,“atc_ident”:null,“aircraft_type”:“E75L”,“origin”:“KABI”,“destination”:“KDFW”,“route”:“SNGGL BOOVE6”,“position_only”:false,“blocked”:false,“cancelled”:false,“diverted”:false,“route_distance”:158,“filed_ete”:2340,“filed_altitude”:210,“filed_airspeed_kts”:425,“scheduled_out”:“2024-01-18T16:36:00Z”,“estimated_out”:“2024-01-18T16:36:00Z”,“actual_out”:null,“scheduled_off”:“2024-01-18T16:45:10Z”,“estimated_off”:“2024-01-18T16:45:10Z”,“actual_off”:null,“scheduled_on”:“2024-01-18T17:24:10Z”,“estimated_on”:“2024-01-18T17:24:50Z”,“actual_on”:null,“scheduled_in”:“2024-01-18T17:31:00Z”,“estimated_in”:“2024-01-18T17:34:50Z”,“actual_in”:null,“baggage_claim”:“B5”,“gate_origin”:“3”,“gate_destination”:“B17”,“terminal_origin”:null,“terminal_destination”:“B”,“ident_iata”:“MQ3407”,“ident_icao”:“ENY3407”,“origin_icao”:“KABI”,“origin_iata”:“ABI”,“origin_lid”:“ABI”,“destination_icao”:“KDFW”,“destination_iata”:“DFW”,“destination_lid”:“DFW”}}

Event Code : in

{“long_description”:“American Airlines / Envoy Air #3736 is at the gate at Dallas-Fort Worth Intl (KDFW) at 08:47AM CST, arriving from Lic. Jesus Teran Peredo Int’l (AGU / MMAS)\n\nDestination (Dallas-Fort Worth Intl / KDFW): Terminal B, Gate B1A”,“short_description”:“ENY3736 is at the gate at KDFW, arriving from AGU / MMAS”,“summary”:“ENY3736 at the gate at KDFW, arriving from AGU / MMAS”,“event_code”:“in”,“alert_id”:66630008,“flight”:{“fa_flight_id”:“ENY3736-1705408371-schedule-854p”,“ident”:“ENY3736”,“registration”:“N285NN”,“atc_ident”:null,“aircraft_type”:“E75L”,“origin”:“MMAS”,“destination”:“KDFW”,“route”:“GABLA UJ40 NLD J22 LRD J21 SAT GUTZZ BOOVE6”,“position_only”:false,“blocked”:false,“cancelled”:false,“diverted”:false,“route_distance”:839,“filed_ete”:7200,“filed_altitude”:270,“filed_airspeed_kts”:456,“scheduled_out”:“2024-01-18T12:20:00Z”,“estimated_out”:“2024-01-18T12:17:00Z”,“actual_out”:“2024-01-18T12:17:00Z”,“scheduled_off”:“2024-01-18T12:30:00Z”,“estimated_off”:“2024-01-18T12:55:24Z”,“actual_off”:“2024-01-18T12:55:24Z”,“scheduled_on”:“2024-01-18T14:30:00Z”,“estimated_on”:“2024-01-18T14:41:16Z”,“actual_on”:“2024-01-18T14:41:16Z”,“scheduled_in”:“2024-01-18T14:38:00Z”,“estimated_in”:“2024-01-18T14:51:32Z”,“actual_in”:null,“baggage_claim”:“D1”,“gate_origin”:null,“gate_destination”:“B1A”,“terminal_origin”:null,“terminal_destination”:“B”,“ident_iata”:“MQ3736”,“ident_icao”:“ENY3736”,“origin_icao”:“MMAS”,“origin_iata”:“AGU”,“origin_lid”:null,“destination_icao”:“KDFW”,“destination_iata”:“DFW”,“destination_lid”:“DFW”}}

GET /flights/ident

"{“type” : “Airline”,“terminal_origin” : null,“terminal_destination” : “B”,“status” : “Landed / Taxiing”,“seats_cabin_first” : null,“seats_cabin_coach” : null,“seats_cabin_business” : null,“scheduled_out” : “2024-01-18T12:20:00.000Z”,“scheduled_on” : “2024-01-18T14:30:00.000Z”,“scheduled_off” : “2024-01-18T12:30:00.000Z”,“scheduled_in” : “2024-01-18T14:38:00.000Z”,“route_distance” : 839,“route” : “GABLA UJ40 NLD J22 LRD J21 SAT GUTZZ BOOVE6”,“registration” : “N285NN”,“progress_percent” : 100,“position_only” : false,“origin” : {“timezone” : “America/Mexico_City”,“name” : “Lic. Jesus Teran Peredo Int’l”,“code_lid” : null,“code_icao” : “MMAS”,“code_iata” : “AGU”,“code” : “MMAS”,“city” : “Aguascalientes”,“airport_info_url” : “/airports/MMAS”},“operator_icao” : “ENY”,“operator_iata” : “MQ”,“operator” : “ENY”,“inbound_fa_flight_id” : “ENY3735-1705373462-schedule-39p”,“ident_icao” : “ENY3736”,“ident_iata” : “MQ3736”,“ident” : “ENY3736”,“gate_origin” : null,“gate_destination” : “B1A”,“foresight_predictions_available” : true,“flight_number” : “3736”,“filed_ete” : 7200,“filed_altitude” : 270,“filed_airspeed” : 456,“fa_flight_id” : “ENY3736-1705408371-schedule-854p”,“estimated_out” : “2024-01-18T12:17:00.000Z”,“estimated_on” : “2024-01-18T14:41:16.000Z”,“estimated_off” : “2024-01-18T12:55:24.000Z”,“estimated_in” : “2024-01-18T14:51:32.000Z”,“diverted” : false,“destination” : {“timezone” : “America/Chicago”,“name” : “Dallas-Fort Worth Intl”,“code_lid” : “DFW”,“code_icao” : “KDFW”,“code_iata” : “DFW”,“code” : “KDFW”,“city” : “Dallas-Fort Worth”,“airport_info_url” : “/airports/KDFW”},“departure_delay” : -180,“codeshares_iata” : [ “JL7225”, “QR9264”, “AA3736” ],“codeshares” : [ “JAL7225”, “QTR9264”, “AAL3736” ],“cancelled” : false,“blocked” : false,“baggage_claim” : “D1”,“atc_ident” : null,“arrival_delay” : 812,“aircraft_type” : “E75L”,“actual_runway_on” : “18R”,“actual_runway_off” : “35”,“actual_out” : “2024-01-18T12:17:00.000Z”,“actual_on” : “2024-01-18T14:41:16.000Z”,“actual_off” : “2024-01-18T12:55:24.000Z”,“actual_in” : null}

Our alert delivery already does make an effort to wait for a limited amount of time for certain “actual” fields to be populated for events, but sometimes the event needs to be delivered without being able to. In those cases, you can try doing another flight lookup on the fa_flight_id to see if the actual time has become available.

Ok good to know. Thanks for the response.

Hello. I experience the same issue. Can you guarantee for a duration after which the actual_* fields are sure to be available? In other words, how long should I wait to check again?

Unfortunately, it’s not possible to completely guarantee availability of actual timestamps simply by waiting longer. Sometimes we might never receive the actual gate times for a flight, particularly in low-coverage areas or with airlines that do not have data partnership agreements. In some cases we can derive actual timestamps based on ground-position data, but sometimes we can receive delayed satellite uplink events that had been held and batched up by the aircraft minutes after the event occurred.

However, as a rough worst-case guideline I would expect that no further updates to the actual timestamps would occur 5 minutes after the expected event occurred.