More seriously the solution suggested of giving the 3 companies other unused prefixes like D* U* and A* to use with their codeshares and non rev flights to start seems the easiest.
Then on the ticket, there would be an extension section that tells you the alias of the person that is about to board. We can call it SNI or Sitter Name Indicator. Another section could be an indicator if the rider is alive when boarding. We can call the extension a heartbeat extension.
That would have the additional benefit of being able to tell at first glance if your flight is actually flown by the airline you are booking or by someone else. But I'm not sure airlines actually want this to be that obvious...
Not to mention, there are bits where if I buy a JAL ticket for AA internationally, I get 2 free checked bags while the same AA sold and operated flight has no free checked bags. The JAL code lets the airline systems quickly determine they can't force you to pay up at the luggage drop-off because you are under the other carrier's rules for the flights.
A lot of this is based on the pre-smartphone age but I don't think there's better solutions that are both computer, person and policy friendly either.
But I would think that this change could be made on the backend much easier than trying to add another number to the flight IDs.
if flightNumber.startsWith(OUR_AIRLINE_CODE)
that might be incredibly painful to fix on short notice.Especially if they got proper tests.
Certainly way easier than replacing use of a deprecated API (and people do this kind of stuff all the time).
That's exactly it. And what happens in merger situations where they keep operating some of the flights with the letters of the old companies
The A* space seems full, the D* space is almost full though, U* has some space https://en.wikipedia.org/wiki/List_of_airline_codes
Adding a prefix would mean that all software need to change at the same time in order to include the prefix. Adding translation layers can be done on top of existing old software.
Except SLAAC, but that wasn't part of the original design anyway. That was an accident when some major vendor implemented SLAAC before it implemented DHCPv6. The plan was to keep DHCP.
The folks that invented it must’ve never had to deal with a mission critical task during a DNS outage, for example.
This sounds like it's calling for trouble!
Whenever I hear that any IDs could be "recycled", I make a mental note to replace the person making such a proposal from all teams that I am involved in.
The worst is I once was put to work on a system where they even recycled GUIDs... I thought "which part of GUID do you not understand, the G part or the U part?" (from which it follows they also don't really understand what ID means)...
Those shorter codes will necessarily be reused, it's just a question of the time interval between re-uses of any particular code.
I faintly recall seeing two Southwest flights from ORD to BWI that had the same code a couple years ago, so I decided to look it up. And yes, it's a thing: Flight 1555 from ORD to BWI departs at 4PM today, and flight 1555 from ORD to BWI departs at 4:20PM tomorrow.
I'm curious, can anyone find a re-used code on a shorter time interval than that? It seems like 24 hours is perfectly reasonable, but how narrow can the window be? 12 hours? 6?
There is. It's called the Globally Unique Flight Identifier (GUFI), and it's essentially a UUIDv4[1].
[1]: https://docs.fixm.aero/#/general-guidance/flight_identificat...
Either way, when they talk about re-using flight numbers on the same day, what they mean is they create multi-stop flights to use the same number for each segment instead.
So you'll see flights like, hypothetically...
> AA 1325 ORD-LGA
> AA 1351 LGA-YUL
> AA 1352 YUL-LGA
> AA 1326 LGA-YUL
Getting converted into a single flight number.
> AA 1325 ORD-LGA-YUL-LGA-ORD
Basically converting this to a flight from Chicago to Chicago via New York and Montreal nets them a 4:1 reduction in numbers used.
You can still book each segment separately, and if they generally book the same plane, say some Envoy Air regional jet, for all four segments, there's little risk that irregular operations will lead to two planes in the air at the same time with the same number. Worst case they can give that one segment a new flight number for that day.
They've been doing this a lot in the last few years, especially on regional flights, and especially in the northeast where there's a ton of short hops.
[edit] If they want a bunch of their flight numbers back they can stop codesharing and switch back to relying on interline ticketing and sell the operating carriers flight number. I can't really think of anything good that's come of codesharing to individual passengers.
At least that's what I feel like I normally see.
Why do you find that remarkable? That's just the same flight departing at slightly different times on two different days.
My mother recently had an itinerary where both her flights were this flight - the PHL-ATL leg on a Sunday and the ATL-PHL leg on the following Saturday.
(It looks like as of Tuesday AA 1992 becomes a DFW-SEA-DFW flight, but it's the same sort of thing.)
I figure this isn't a problem as long as the two legs are flown by the same plane. But what if the PHL-ATL flight were delayed and American decided to fly the ATL-PHL flight as scheduled with a different plane (say because lots of people booked on that flight had connections at PHL?) That seems like it could create trouble.
It rarely causes problems, but very occasionally does.
You can change the aircraft and the flight code stays the same. Many flight codes happen on a regular schedule, like daily. But the same flight path and pattern at a different time on the same day will get a different flight code.
Some patterns have many flights per day along the same path — maybe ten or more. But they each get a different flight code.
All of this is within a single airline or codeshare, of course. Two different airlines can use the same four digit set of numbers for totally different flights, because the full flight code includes both the airline designator and the four digit number.
I understand the sentiment, but in this case, someone is trying to solve for constraints they didn't invent.
Flight number was fixed to 4 digits long ago and propagates out to a lot of different systems, many not in the same company as the airline, also many being government entities.
So they don't have a lot of great choices.
I'm sure it sucks that it's "four digits only" but the air travel industry isn't immune from changing specifications. I believe ancient cultures called this software maintenance.
https://www.nats.aero/news/nats-report-into-air-traffic-cont...
Mental note to not work for you.
This sounds pretty messed up to me. Someone makes a suggestion or throws out an idea you don’t like so you’re gonna essentially cut them out of your professional life or even fire them? Am I reading this right?
In some instances it’s simply because they are extremely junior and they can be taught, but most instances it’s because they have a habit of shortcuts.
Now that I think of it, this would make a great interview question.
It's interesting that this is called out, because there are frequently at multiple flights in the air with the same flight number
QF1 / QF2 is now over 24 hours, and has daily flights. It seems pretty feasible to have the SIN-LHR leg be delayed just enough so there's two SIN-LHR QF1s in the air at the same time.
Singapore Airlines has some 19 hour flights. Qantas hopes to have a 22 hour flight 'soon'. Very feasible that these can be delayed just long enough so there's two of the flights in the air at the same time.
They've competing constraints here: they need all flights to be uniquely identified while in the air, but also all flight identifiers need to be easily expressed over audio. So, even switching to e.g. hexadecimal could be difficult, because "A" can sound like "8". So maybe we use phonetic alphabet for those digits?
Oh but wait, this is to say nothing of the devices actually tasked with transmitting/receiving this info. If the software engineers correctly identified the risk here, then the flight numbers are being stored as two 16-bit integers inside the firmware, so there's plenty of headspace. But if not (say, they only gave 14 bits to the flight number, and 10 bits to the airline designator), then the firmware has to be updated. The FAA lists 648 air traffic control installations in the US, covering 19,000+ American airports. For what are probably obvious reasons, the lions's share of the equipment is not set up for firmware updates via a simple push mechanic, if its setup for remote update at all.
All of this to say, I agree, its dumb, but when this stuff was invented, the prospect of almost 20,000 airports in the US (so, probably on the order of 100,000 globally) likely seemed impossible. Future-proofing has a physical cost, and at the time, it may have been literally impossible to calculate the true cost.
We moved the system towards using arrays which are filled with object data and the index of the object in the array is now the id… the 32-bit ids were of course 4x smaller.
All this being said, we do not claim the objects to be “globally unique”.
Edit: if I could go back in time though, I still might give this pattern consideration https://lucassardois.medium.com/generational-indices-guide-8...
For example:
https://www.southwest.com/air/flight-status/path.html?depart...
There won't also be a SW981 today that say takes off from HOU to OKC.
Couldn't agree more, not even interested in debating it
And it's mostly a holdover from legacy systems airlines are entrenched in, so there isn't much else anyone can do here short of completely reinventing the mainframe reservation systems and heavily refactoring all the pieces that depend on it.
Given that the industry has rejected the natural but very expensive solution, and that airlines exist in a connected space, this information is shared with partners and external parties so they can't just change their internal systems, it doesn't seem like there are too many solutions.
One solution could be to assign multiple airline codes per airline, but I'm not sure of the downsides.
Do you have a solution you think would work?
You'll regret using natural keys https://news.ycombinator.com/item?id=40580549 (554 comments)
There's an EMR/EHR we use at my employer that reuses UUIDs. If an appointment is moved/rescheduled, the UUID is reused for that appointment meaning the UUID is no longer UU. It causes major issues with other apps that interact with the EMR/EHR, to the point we have to educate users to cancel and create new rather than rescheduling appointments.
Recycling unique IDs (more precisely: changing the underlying thing the ID points to) is not impossible; there’s lots of pathological failure modes; for certain ID-spaces it’s kinda a required use case; so we have to deal with it.
How many 192.168.1.1 devices are out there? How many different distinct physical boxes respond to traffic going to 1.1.1.1?
It is, and from what I hear it's routinely causing hiccups in the German freight train network with its sometimes really ridiculous delays that sometimes can add up to > 24 hours.
And if the answer isn't known by the sources the writer quotes, the writer should say so.
Someone hardcoded that field 50 years ago and it's impossible to change the type. It would be easier to just abandon planes altogether, and set up a parallel transportation system.
This suggestion is also obviously trivially discarded: it is safe to assume that many, many, many systems expect only numbers in those fields, and will blow up if they encounter letters.
What's the point of reading the news if not to muse about "what happens next" or "how we should deal with this" in the story of the humans.
Should we sit there going "Welp, I guess someone knows more about this than me". If we took that attitude you'd never speak about anything.
- a technical solution that is generally somewhat obvious or at least is picking which of 2 or 3 proposed solution makes the most sense
- a co-ordination problem that will require hundreds of different entities to agree on timelines, rollout plans etc etc
Now, this does happen (Sweden switching traffic side of the road [0] an Y2K) every so often but it's a LOT of work.
A quote by Fry from Futurama comes to mind:
> Zoidberg: All 6,000 hulls have been breached! > Fry: Oh, the fools! If only they'd built it with 6,001 hulls! When will they learn?
Stop codesharing with marketing flight numbers that are useless. Airlines do perfectly fine selling tickets without having the flight marketed by themselves and they can handle inter-airline agreements without it.
A problem posited without sufficient solutions is an invitation to them to provide a solution for that problem solving dopamine hit.
Nevermind that nobody has asked for such a thing or whether they’re familiar with the problem space themselves.
Problem is decades and decades of software with the assumption of 4 digit flight numbers baked in.
My hunch would be an additional airline code would probably be the easiest solution.
Why not just get rid of them and book on the original flight number? Is it needed somehow in their systems to know how a flight was booked or what flights are eligible? Can that be fixed instead of the flight numbers?
I can't buy an itinerary consisting of just BA238 on aa.com but I can buy AA6981 which is its codeshare. I can also buy an itinerary where I fly AA on BOS-JFK and connect to BA JFK-LHR, because there's at least one AA-marketed flight on the ticket.
The marketing carrier also can affect how the operating carrier gets paid -- codeshares can have different inventory which allows airlines that are partners but not super close to hold back inventory for themselves.
Dunno if that’s a requirement that AA has, but I’ve totally bought 100% Air France metal tickets that don’t even touch US soil on Delta because Delta sold the same itinerary for way less.
The other thing is airline points/status - sometimes you get no status points/miles on non-codeshare partner flight numbers but you do on the codeshare flight numbers.
If it's a connecting flight, and the incoming flight is running late, then the airline "sorts you out". Basically they know sboit your connection and make a plan.
I've been on a plane out of Heathrow that waited for a 30-min late incoming flight. I've also been on a late flight where my connection has been rebooked for me because we arrived late.
If you book "2 tickets" you're basically a no-show to the first flight, and you're on your own dealing with that airline.
Believe me when I say I was pissed and made sure everybody knew, including the travel agent that booked us that deals with high end corporate travellers.
Etihad lost a bunch of business from AU because of that.
Basically your travel agent is incompetent
That couldn't possibly work, as it will make it more difficult for airlines to play their bullshit games with inventories, differential pricing, status and bonus miles.
The legacy trading system (X Windows/Solaris/C++ based) was originally written in a time where market volumes were low so you couldn't have more than 10,000 orders (due to a limit on the size of the order id field).
As volumes increased in the late 2000's, there were days where we were in danger of running out of orders ids.
The fix? The system generated order ids 7 days a week even if trading only happened 5 days so we "borrowed" order ids from Saturday.
All of the above mentioned airlines are the size they are because of mergers.
Why don’t they use the IATA codes of the airlines they absorbed. For example Delta merged with Northwestern. In addition to DL, they could also use NW. American merged with USAirways. They could use US in addition to AA. United merged with Continental. They could use CO in addition to UA.
Northwest Airlines.
I'm sorry if I'm pedantic, but Northwest was my childhood airline flying with my dad on many of his business travels and I have many fond memories with them. My Delta SkyMiles account hails from Northwest WorldPerks, opened in 1998!
I might also have a soft spot for Delta because of that too.
Lesson: if you make your IDs easily decodable, people will decode them and use them directly instead of whatever API you intended them to use.
But, similar reasons: mixing branding is going to cause confusion (codeshares already do this enough without injecting a “third” airline into the mix).
And regardless of that we’re talking about codeshares anyways.
I'm hoping that behind the scenes they really are looking at a better plan than just "work around it", but the workaround can buy them time; and if their operations plan is strong, they'll be able to roll it out very slowly in parallel while all their back-end stuff gets upgraded. (This would require some aspect of the new system to make it immediately distinguishable from the old one, e.g. three-letter airlines or whatever, but that's a minor detail compared to all the other stuff they'd have to work out.) Bonus points if knowing the "old" number lets you algorithmically derive the new one somehow, and vice versa, to make the transition period easier. :)
(I worked on Library Management Software for 6 years).
Airline-IT is mostly just a big pile of workarounds to cope with limitations from 40+ year old systems. I've worked with reservation systems and seen their modernizations through the years. Modern xml-formats shoving megabytes of data for every reservation. They are very wasteful, generously designed with redundant fields, long feature-lists and all kind of annoying shit. But at the end, your whole booking can still drip on the passenger's name being one character too long. Even after decades and multiple iterations of interfaces, at the core the systems today still depend on whatever someone in the 1960s considered as good enough for the US-market.
Systems like Sabre are 60+ years old.
There's a photo in that article that shows the problem: the flip-tab sign that has space for four numerical digits. I was thinking they could just switch from 0-9 to 0-9A-Z but that photo showed why that would be a disaster.
Plus any solution has to be approved for use worldwide.
Fortunately the two-digit IATA codes have already switched to 0-9A-Z (e.g. JetBlue is B6) so allowing constrained airlines to use two codes should work fine.
And that's why they should have started thinking about this 20 years ago (or even before that)
Thinking of something like this: every new development and maintenance should be done with 5 digits in mind. While keeping it backwards compatible for 4 digits
I don't see why for instance you could do a slow roll out by using only letters for internal flights of countries that are ready for the switch. If you did that at first only for the USA that would probably leave enough room for Delta and the 2 other companies that need them in the short term. And then you upgrade the rest of north america: Mexico + Canada, then you continue the roll out. I am pretty sure all european countries could coordinate to do the switch at a specific date in the future as well.
I guarantee those signs could easily be updated for that. They’re built to allow replacement of each cell and routinely do so since cells break. Switching to 0-9A-Z would take one night for them.
And then there’s always that risk that some idiotic exec will cancel the project to chase a half billion dollar market instead. I can’t recall where the system needed up being sold to but I’m sure it died an ugly death thereafter. Writing the core in lisp was a risky move.
They were running out of train numbers.
Indian railways today operates 13,000 trains daily.
There is a PDF that talks about the problem, the solution, exceptions, and a rollout plan.
One fine day, IT systems seamlessly transitioned—-took some time to wipe the old numbers from passengers memories.
https://indianrailways.gov.in/railwayboard/uploads/directora...
Something like "DL1234" and "DZ1234" for Delta?
I know a lot of the two-letter codes are claimed too, and I'm sure there must be some reason this wouldn't work OK, but it would seem like they they would each have at least one code left over from the various airlines they've acquired over the years?
If an American Airlines regional flight started with "TW1234" again, for example, I don't think it would break the world.
I've worked on codebases like this -- I've seen it take a team of engineers years to add a single digit to an ID number in a multi-million LOC mixed language codebase that was written in the 60s.
It's not that it can't be done, it's that it costs millions of dollars and takes years and you're never sure it's actually done because nobody has ever written a single test for the system and if you tried that would take years as well.
That is, could you partition the flight network such that nobody has purchased or ever will purchase a single ticket that spans flights from both ranges? Assuming maybe that a significant number of “backbone” flights (e.g. between hubs) can themselves be “codeshared” between the new DL and DZ ranges. If so, how much new flight number space could you buy, considering the tradeoff between “codeshare all the new DL/DZ flights” and “free up the most new flight numbers”?
I sorted the airlines by two letter codes [1] and the list is pretty busy but hex 20 for Space is still available.
Attention passengers, flight 3467548742468759027225995322800483168368 to Dallas is now boarding.
The fact that no one just overhauls the system with backward compatibility and sets a deadline for the migration, is just insane for me. All these specific problems are solved, and in production (in freight for instance) for more than 2 decades now. But aviation just goes on with their 70s system.
Problems in 2D space are amazingly forgiving compared to those that occur in 3D space. The caution civil aviation has is because of the history of flying that is written in blood.
Now slightly unsure whether I did not dream up the whole episode, I did a web search and found https://travel.stackexchange.com/questions/157429/what-is-th...
So IATA seems to have formally introduced that in 1994. (Whether they have abandoned it again later I don't know.) So big airlines could just get a additional 3rd letter(s). The first 2 would not have to change, which makes it easier for humans.
Separately I also find code-sharing slightly confusing, especially if you're trying to find out who's actually operating your flight for things like checkin counter, etc.
UA-LGA-LAX-001
LH-LHR-FRA-012
/obviously/
UA001 from LGA to LAX
LH012 from LHR to FRA
I know airline systems have a lot of legacy code so it might be difficult, but at least logistically (having adequate space to print / display them), and for humans to deal with it's not too difficult.
I thought this was already common on a lot of airlines. For example, tomorrow, Southwest flight 1861 goes from MDW to DAL from 1:55pm to 4:10pm, then from DAL to SNA from 4:50pm to 5:55pm, then from SNA to PHX from 6:30pm to 7:50pm. I was on two legs of a similar flight a few years ago, and I didn't even have to get off the plane at Love Field.
> and it’s really only a problem for three airlines in the world.
I don't think there will be enough motivation from the rest of the world to solve this problem any time soon.
https://www.iata.org/en/programs/airline-distribution/retail...
If computers were like airplanes, programmers would show pointers to users.
Edit: A1 seems to be unassigned, which might be even better, to not create confusions.
Probably the issue is that lots of assumptions around AA exclusively being American Airlines is baked in somewhere. That said, it seems easier than any of the alternatives (and recycling seems excessively risky and confusing).
The is where we all say “not my problem” and don’t give it another thought. Don’t waste your time on these guys.
It's not like we're not in a climate crisis after all.
I don’t think alphanumeric flight numbers are a thing currently.
That's just a typo in the article, the actual flight number is AA777
https://www.airportia.com/flights/aa777/dallas-fort-worth/la...
Perhaps American Airlines could have both AA & AB, so they would then have 20k flight numbers to use?
Delta code sharing with Air France may limit direct competition on the few international routes they share, but in general it is also good for passengers because Delta cannot operate flights wholly within Europe and Air France cannot operate domestic US flights. Code sharing allows a passenger to buy one itinerary complete with rescheduling for missed connections and correctly handled baggage.
/s (just in case)
It's what this signals for the future of the planet's climate.
It means it’s the time to upgrade the system.
If it were just twice as fast, was given priority or had it's own tracks, and had enough trains that a following one could pick you up in a disaster, and without random bedrooms that just smell like the 1970s, I would take it almost exclusively.
Otherwise.. sadly.. Amtrak is for when I don't actually care if I arrive at my destination or not. If I'm lucky I get where I'm going and most of the time I get a steak on the way.
Blockchain Ai.
* adds a 5th digit