FlightAware Discussions

FXML3 AirportBoards Feedback: Fringe Cases, Duplicate Flight IDs

Not sure if arrival time == departure time (discussed here and here has been resolved yet, but, was thinking about it recently and had a couple of other suggestions along similar lines…

It’d be nice if there was a flag we could provide in our query to FXML3’s AirportBoards that would include flights that previous queries for an airport would have picked up, but have since gone away, for cases where the plans just drop out of the system, the unconfirmed arrivals (as mentioned at top of this post), flights that divert to another airport, etc.

For example, if a flight plan drops out of the system, add ability to keep it in the results but set the status indicator to dropped. If a flight diverts to another airport, keep it in the results set, but indicate it’s diverted… otherwise we need to do additional queries on flights that have stale data, and pinging each one against the API can get pretty expensive, especially if monitoring a large number of airports - it’s an impractical solution.

Also - not sure if it’s supported by data, but I’ve been noticing more duplicate flights lately, where AirportBoards or push alerts are coming through with different FA flight IDs for the same flights - it’d be cool if there was an added field you could include when/if your system catches the flights as duplicates that would just be a set of FA flight IDs for other flights that ended up being the same. I can do a fair amount of duplicate detection on my end, but, it’d be nice if there was so help coming from your end too.


For the cases concerning the FRU status some updates were made specifically to how the boards arrivals list is generated so an estimated arrival doesn’t unintentionally hide the flight in the recent arrivals list.

Currently in the case of diversions the original flight plan is considered cancelled as well as being marked diverted. This state makes it ineligible to appear in airport boards. However, the diverted (new) flight plan will appear in a boards query. Holding the old plan may prove challenging since its state doesn’t fit into any of the boards states and will no longer receive updates and exist as a stale entry in boards. Would an ideal scenario have the old flight entry remain in enroute for some amount of time?

Do you have some examples of a few recent duplicate flight entries? This is to see if a root cause can be found. Ideally we should be catching these before they are even visible in FlightXML.

1 Like

That’s great to hear, thank you!

Yeah, and that behavior totally makes sense from your system’s perspective, but on my end, I’m caching each flight from AirportBoards, it’s very problematic; once one of those flights becomes “ineligible” for inclusion from AirportBoards queries, the data just gets stale on my end.

As I said in my previous comment, I think a good solution might be adding an input parameter like include_expired_data to the AirportBoards API, which defaults to false, but when set as true, could be used to provide information on flights that otherwise have become ineligible for display on the boards.

In cases where a diversion happens, that might also be a good opportunity to for the “duplicateFaFlightIDs” field idea, to tie the two records together, so they can get reconciled on my system’s end.

I’ll provide a few of these as time allows, thank you!

A few duplicates for your filtering pleasure; I’ve got some code that detects them as they get displayed on my site, I’ll see if I can update the code so I can keep a log of detected duplicates, as that might be helpful on your end. Thanks!

  • SWA4946-1579996114-3-11-29 and SWA4946-1579758374-airline-0014
  • BAW219-1579931139-airline-0265 and BAW219V-1580107178-ed-0008
  • AAL178-1579931137-airline-0188 and AAL178-1580160179-10-0-200
  • AAL2367-1579931137-airline-0580 and AAL2367-1580138176-5-0-230

Thanks for those examples. There seems to be something unexpected happening with the delay handling for the flights (SWA and AAL) that were operating entirely within US airspace. I’ve passed the details on to the flight tracking team.

@dogrock Here’s another set of FA Flight IDs my software tagged as duplicates; I tried to get a good mix of different cases… apologies in advance to the devs who get to comb through this. Again, I don’t need follow-up on any of these specific cases, just providing examples as requested to improve the service going forward. Cheers!

  • SKW3526-1580103935-airline-0166 || SKW3526-1580275915-9-7-61
  • ENY4163-1580103939-airline-0078 || RPA4163-1580103936-airline-0134
  • SKW3608-1580103935-airline-0593 || SKW3608-1580318293-28-9-53
  • RPA4676-1580218200-schedule-0002 || AAL4676-1580190378-airline-0081
  • SWA9007-1580415053-9-10-140 || SWA9007-1580420028-adhoc-0 || SWA1480-1580419988-airline-0315
  • SKW3048-1580190373-airline-0351 || ENY3048-1580190377-airline-0249
  • SWA9010-1580275526-adhoc-0 || SWA9010-1580272349-3-6-135 || SWA1602-1580274486-airline-0718 || SWA1602-1580275374-airline-0779
  • ASH5795-1580103932-airline-0234 || ENY5795-1580103936-airline-0156
  • CTA306-1580295583-5-3-159 || 1200-1580365504-adhoc-0
  • N62GA-1580363398-1-0-128 || N62GA-1580371436-adhoc-0
  • AAL1658-1580103932-airline-0213 || AAL1658-1580387661-3-5-228
  • AAL868-1580103932-airline-0144 || AAL868-1580409084-adhoc-0
  • CPZ6020-1580103939-airline-0035 || AAL6020-1580103937-airline-0083
  • N276CA-1580344381-8-5-9 || LYM173-1580344610-0-0-9
  • JBU994-1580192400-schedule-0000 || JBU994A-1580366315-12-1-60
  • LYM515-1580387411-1-2-73 || LYM173-1580393458-8-0-167
  • KAP852-1580395705-9-0-23 || KAP852-1580397583-4-6-108
  • LOF4723-1580103938-airline-0231 || GJS4723-1580103935-airline-0262
  • SKW5604-1580103940-airline-0006 || GJS5604-1580103935-airline-0005
  • ASQ4181-1580103940-airline-0100 || GJS4181-1580103935-airline-0082
  • JIA5027-1580292239-4-6-206 || JIA5027-1580103932-airline-0365
  • MHO756-1580103938-airline-0343 || FDY756-1580231145-7-0-195
  • MHO720-1580103938-airline-0002 || FDY720-1580231145-11-0-162
  • CFHNS-1580336260-7-5-234 || CFHNS-1580346538-8-4-234
  • CNK771-1580336067-dlad-7015449 || CNK771-1580370073-39-4-97
  • SOO949-1580279747-4-7-16 || PAC949-1580103938-airline-0205
  • HRT24-1580279551-1-2-226 || CGTRG-1580299905-adhoc-0
  • UAL2211-1580103940-airline-0509 || GJS2211-1580103935-airline-0366
  • DAL2101-1580362069-3-1-117 || DAL2101-1580190375-airline-0404
  • GEC8170-1580256346-1-0-139 || DLH8170-1580017583-airline-0118 || GEC8170-1580274861-adhoc-0 || DLH8171-1580112600-schedule-0000
  • CPA2091-1580103934-airline-0318 || CPA2091-1580318301-airline-0973
  • THY31-1580230701-2-0-127 || THY31-1580305400-5-13-126
  • DLH8175-1580103938-airline-0006 || GEC8175-1580337560-3-0-120
  • EJM427-1580214652-1-0-245 || N427GW-1580214652-1-1-125
  • TAI536-1580103934-airline-0057 || AVA536-1580103936-airline-0069
  • ETH3516-1580291165-10-6-21 || ETH3516-1580103936-airline-0157
  • CSQ964-1580343013-adhoc-0 || DSQ964-1580337641-adhoc-0
  • AJT760-1580358006-fa-0000 || AJT760-1580370305-fa-0000
  • TPA4132-1580319423-1-0-219 || TNO4132-1580356481-adhoc-0
  • NFA8430-1580103938-airline-0001 || LTG8430-1580183400-schedule-0000
  • BOV767-1580190379-airline-0341 || ASZ767-1580355052-5-0-104
  • N52326-1580308433-adhoc-0 || N52326-1580310194-adhoc-0
  • CYO277-1580310051-17-3-153 || N277AL-1580321451-adhoc-0
  • CKK227-1580305730-10-8-164 || CKK227-1580103934-airline-0293
  • CCA1045-1580112600-schedule-0001 || CAO1045-1580320694-adhoc-0
  • SQC7972-1580241354-3-0-166 || SIA7972-1580103939-airline-0039
  • KAL277-1580103937-airline-0208 || KAL277-1580324475-airline-0608
  • NAC401-1580376266-5-2-73 || N401YK-1580384246-adhoc-0
  • AER145-1580405853-8-6-162 || AER145-1580411750-adhoc-0
  • SQC7952-1580325952-2-0-148 || SIA7952-1580190380-airline-0059
  • WEN3290-1580398679-14-2-46 || WEN3290-1580190376-airline-0046
  • COO1-1580316447-adhoc-0 || FIRE1-1580318649-adhoc-0
  • FIRE1-1580316885-adhoc-0 || FIRE1-1580320431-adhoc-0

@dogrock - any idea if my “include_expired_data” tag is something that could be considered/implemented in the near-ish future? I’ve got a client it’d be very helpful for, otherwise I need to look at doing follow-up queries on a flight-by-flight basis.


@dogrock? @bovineone? Any feedback on this?

We’re considering it, but we don’t have a timeline. In general the Boards functions only consider non-cancelled flights, but the original plan of a diverted flight is considered cancelled. Changing that baseline concept is likely to have a bit of unforeseen challenge. I’d recommend not waiting on a near-ish future change.

That’s a pretty major oversight - I appreciate the technical challenge it might pose on your end, but this sort of information is what airport boards are for.

What’s the proposed workflow for having a functional real-world airport board if your AirportBoard doesn’t do it? Review all of the flights we have cached information for, if no recent update came via a recent AirportBoards call, query FlightInfoStatus with the faFlightID? When we do that and status is diverted, will it return the new destination, or will that require an additional query too?

@dogrock / whoever else from FlightAware - what’s the proposed workflow work-around?

@dogrock / @bovineone - can someone please answer my question?

If a faFlightId represents a diverted flight FlightInfoStatus will return the new version of the flight first followed by the originally planned flight in the same response. FlightInfoStatus can be used to check on the unexpected absence of a flight in boards.

1 Like