Problems & solutions · Internal Tools

Airline Operations Control Software Problems: The 7 That Slow Recovery and Cost Real Money, and How to Avoid Them

Airline Operations Control Software workflow illustration showing common problems and fixes.
The short answer

The most expensive failure in an operations control centre is a good judgement call made without one piece of information. A controller swaps a tail to protect an evening departure, the swap is legal on the next sector and illegal on the fourth, or it consumes the maintenance opportunity engineering planned for Thursday night, or the new departure time sits outside a coordinated slot. Nobody was careless. The constraint lived in a system the controller does not have open, and it reached them by telephone from the department that owns it, twenty minutes after the decision. In a hub bank that twenty minutes is the difference between recovering the evening wave and cancelling into the next morning, and the cost lands as cancellations, duty of care and a rotation that starts tomorrow already broken.

Why does one screen for the duty manager become a network constraint engine?

The brief starts small: give the duty manager a single picture so nobody has to rebuild the day on a whiteboard. Then you list what has to be on that picture. Rotations with tail assignments. Crew rosters with legality state, evaluated forward across the whole pairing rather than the next sector. Maintenance status including deferred items and planned inputs. Airport and airspace constraints, meaning slots, curfews and stands. Movement data arriving continuously. Five sources, five owners, five refresh behaviours.

This is specific to airline operations because the constraints interact rather than stack. A tail swap changes crew legality, maintenance opportunity and slot position at the same time, and the change is only valid if all three still hold. A picture that shows the five things side by side without evaluating the interaction is a prettier whiteboard, and controllers will keep the real whiteboard next to it.

The fix is to fix scope around the interaction, not the display. One timeline with aircraft down one axis and time across, where a rotation block carries its crew legality, its maintenance constraint and its slot position as properties. When a controller drags a rotation to another tail, the consequences light up before anything is committed. Projects that scope a dashboard deliver a dashboard, and the twenty minutes at the start of every disruption that get spent assembling information do not go away. Say plainly at kickoff that the deliverable is a consequence preview, and everything else follows from that.

What goes wrong when schedule, rotation, crew and maintenance data are joined?

Each system is internally correct and they disagree at the edges, which is exactly where recovery happens. Flight identity is the first problem: the same flight is a flight number in the schedule, a leg in the rotation, a pairing segment in crew, and a movement message with a registration and an off block time. Joining them needs a key that survives a date change across midnight, an equipment substitution and a diversion, and most airlines discover mid build that no such key exists consistently.

The second is state timing. Crew legality is computed by the crew system against a roster that is being amended while you read it. Maintenance status reflects the last technical log entry that was actually entered, not the one the engineer is writing now. So a join taken at one instant can show a combination that was never simultaneously true.

The fix is an internal operational identity for every leg, created once and mapped to each source system's identifier, with the mapping maintained through substitutions and diversions rather than reconstructed. Then hold source values with their timestamp and show data age on screen. Where a value is being amended upstream, show it as in flux rather than as fact. Airlines that skip the identity work end up with duplicate legs after every diversion, and a controller who sees two of something loses trust in the whole screen within a week.

Why do real time feeds break after launch?

They rarely break loudly. Movement messages queue behind a slow consumer and arrive in bursts, so the screen is correct and eleven minutes late. A crew system integration keeps responding while the data behind it is being rebuilt after a roster publication, so legality answers are stale for an hour. A maintenance interface returns an empty set instead of an error when a session expires, which renders as no constraints rather than as unknown.

That last pattern is the dangerous one. In an operations control centre a stale display is worse than a blank one, because controllers act on it. The failure only surfaces during disruption, when everything is moving and nobody has spare attention to notice that a panel has not changed in twenty minutes.

The fix is to design for feed failure explicitly rather than as an exception. Every panel shows the age of its data. A feed that misses its expected cadence marks itself degraded and says so in words a controller can act on. An empty response is treated as unknown, never as none. Add a synthetic heartbeat on each interface so a quiet feed is distinguishable from a quiet operation at three in the morning. And build the replay path early, because after any outage you need to reprocess the messages that arrived while you were down, and an airline that cannot replay reconciles by hand at the worst possible time.

What happens when slots, curfews and downline crew legality are not covered?

These three are what turn a recovery plan into a second disruption. Downline legality is the most common. A swap is legal now, the crew goes illegal at sector four, and the plan collapses in the evening rather than the afternoon, when there are fewer options and more passengers already displaced. Curfews at noise restricted airports are absolute in a way that costs a diversion, and they are frequently held in a station manual rather than in any system. Coordinated airport slots and departure slots are hard constraints that a rescheduled departure can violate silently, and the violation is discovered by someone else.

The reason these gaps persist is ownership. Crew owns legality, network owns slots, station management owns curfews, and none of them is in the control centre at 15:40 when the hub closes.

The fix is to evaluate all three at the moment of the proposed change rather than after it. Crew legality has to be evaluated forward across the entire pairing, not the next sector, which means the integration has to support a hypothetical rather than only a current state. Slots and curfews belong in the system as data with effective periods, validated on every proposed movement, with the violation shown as part of the consequence preview. Maintenance opportunities become blocks on the same timeline so a controller can see the Thursday night input they are about to consume. This is unglamorous integration work and it carries most of the value, because expensive mistakes in a control centre are almost never bad judgement.

Should you build custom or configure what you already own?

Configure and stop if you already run a vendor's full suite and controllers trust it. If NetLine, Sabre AirCentre or NAVBLUE N-Ops and Crew owns your schedule, crew and operations together, building alongside creates a second source of truth, which in a control centre is genuinely dangerous rather than merely wasteful. Take the vendor's configuration path, and spend the budget on the training and process discipline that makes the existing tool authoritative.

Build nothing at all if you run under roughly twenty aircraft point to point with no bank structure. A duty manager, a whiteboard and a phone genuinely handle that operation, and software will not improve it enough to justify itself.

The build case appears in the middle: your crew system or maintenance system is not from the same vendor as your operations system, so constraints reach controllers by telephone. Controllers rebuild the day on paper during disruption. Your recovery decisions cannot be reconstructed afterwards, so post disruption reviews run on memory. Your reactionary delay bucket is large and unexamined. Or you have a hub bank where cascading failure is the dominant cost and nobody can see the cascade forming. In that situation the build is an integration and visualisation layer over the incumbents, not a replacement for them, and framing it that way is what keeps it from failing politically.

How do hidden costs get into an OCC software quote?

The largest hidden cost is not technical. It is access to upstream data from other vendors, which is a commercial negotiation with its own timeline and sometimes its own licence fee. Airlines quote the build and forget that the crew system vendor has to agree to expose a legality evaluation endpoint, and that conversation can take longer than the sprint that consumes it. Start it before the build starts, and treat a signed data access agreement as a milestone.

Second is the real time requirement itself. A screen that lags will be abandoned, so the latency budget drives architecture choices, load testing and infrastructure that a reporting tool never needs. Third is multi hub or multi certificate operations, since each carries its own bank structure, rules and station practices, and a second hub is close to a second configuration project.

Fourth is passenger data access, which usually means working through a reservation system integration with its own constraints. Fifth, and routinely omitted, is twenty four seven operational support, because a control centre system is on the critical path at three in the morning. In Digital Heroes delivery experience a first release giving controllers a single live timeline with constraints evaluated in place, plus manual recovery with consequence preview and a decision audit trail, runs 130,000 to 275,000 US dollars over 16 to 24 weeks, with a full platform at 400,000 to 1,000,000 over 12 to 20 months.

What separates an OCC build that works from one that fails?

The builds that work put the picture before the optimiser. In every control centre project we have delivered, the single timeline with live constraints removed most of the operational pain, and automated recovery added value much later and only once controllers already trusted the underlying picture. Vendors sell the optimiser because it demonstrates well. Controllers use the picture because it lets them work faster with less risk.

They also make every proposal explain itself. A recovery option presented as a score is ignored, because a duty manager has to defend the decision the next morning to a regulator, a union representative or a chief executive. Three ranked plans, each stating which flights are protected, which are cancelled, which crews are affected and how, what happens to tomorrow's first wave and an estimated cost, get used. Recording the alternatives that were on the table turns the post disruption review from an argument into evidence, and that audit trail is often worth more than the recovery logic.

The builds that fail share three habits. They are designed without anyone spending a shift in the control centre, so they miss the behavioural detail that governs adoption: how many screens a controller already has, what gets shouted across the room, which phone rings most. They capture delay codes after the fact from a movement log, which produces a large reactionary bucket nobody can decompose, when the controller knew the primary cause at the moment they held the departure. And they treat passenger impact as out of scope, so cancelling a flight with forty passengers and twelve connections looks identical to cancelling one with a hundred and sixty passengers and ninety connections onto long haul.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. The average developer spends more than 17 hours a week dealing with maintenance issues such as debugging and refactoring, and about four of those hours on 'bad code' - waste that equates to nearly $85 billion annually worldwide in opportunity cost. Source: Stripe (2018) →
  2. Technology 'Leaders' grow revenue at more than twice the rate of 'Laggards'; laggards surrendered 15% in foregone annual revenue in 2018 and stood to miss out on as much as 46% in revenue gains by 2023 if they did not change their enterprise technology approach. Based on a survey of more than 8,300 organizations across 20 industries and 20 countries. Source: Accenture (2019) →
  3. The performance gap between digital and AI leaders and laggards is widening: McKinsey reports leaders pull ahead on shareholder returns, and the average maturity spread between top and bottom performers jumped ~60% (from 10 points in 2016-19 to 16 points in 2020-22), reinforcing that the returns to transformation concentrate among top performers. Source: McKinsey & Company (2023) →
  4. Large companies globally have captured, on average, only 31% of the expected revenue lift and 25% of the expected cost savings from their digital and AI transformations - a significant gap between expected and realized value. Source: McKinsey & Company (2023) →
Theo W. · UX Researcher · UK · London

Theo runs the research that decides what a build should contain: interviews with the people who will use the software, usability sessions on prototypes and the analysis that turns a pile of opinions into a short list of problems. Useful reading before signing off any set of requirements.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why do our controllers still use the whiteboard after we bought an operations suite?
Because the whiteboard is the only surface where rotations, crew legality, maintenance constraints, slots and curfews appear at once. A suite that shows each dimension well on its own screen still leaves the join to a person under time pressure. The test of any replacement is whether dragging a rotation to a different tail immediately shows the crew going illegal at sector four, the maintenance input it consumes and the slot it now misses. If it does not, the whiteboard is doing real work and it will stay.
What makes crew legality checks unreliable during recovery?
Evaluating only the next sector. A swap that is legal now can put the crew out of limits downline, and the plan then collapses in the evening when there are fewer options and more displaced passengers. The integration has to support a hypothetical evaluation across the whole pairing, not just a query of current state, and that capability frequently has to be negotiated with the crew system vendor rather than built. Roster republication is a second trap, since legality answers can be stale while it runs.
How should the system behave when a feed goes quiet?
It should mark itself degraded in words a controller can act on, and show the age of the data on every panel. The specific trap is a source that returns an empty result instead of an error when a session expires, because that renders as no constraints rather than as unknown. Add a heartbeat to each interface so a quiet feed is distinguishable from a quiet operation at three in the morning, and build a replay path so messages that arrived during an outage can be reprocessed.
Why does joining our schedule, rotation and crew data produce duplicates?
Usually because there is no consistent identity for a leg across systems. The same flight is a flight number in the schedule, a leg in the rotation, a pairing segment in crew and a movement message with a registration, and the join has to survive a date change across midnight, an equipment substitution and a diversion. Create an internal operational identity once and map it to each source identifier, maintaining the mapping through substitutions rather than reconstructing it, or diversions will duplicate legs every time.
Can we fix delay attribution without changing the reporting process?
Only partly. The structural fix is to capture the primary cause at the moment of the decision, when the controller knows exactly why a departure was held, and to compute the reactionary chain automatically from the rotation graph instead of asking a human to attribute it afterwards. Reconstructing codes from a movement log later produces a distribution that is directionally true and specifically useless, with a large reactionary bucket that nobody can decompose into the primary events that caused it.
How much passenger detail belongs in an operations screen?
Only the part that changes the decision: passengers at risk, connections lost, how many can be reaccommodated inside a defined window and how many face an overnight. The full reaccommodation engine belongs in the passenger service system and should stay there. Without those few numbers, cancelling a thin flight with a handful of connections looks identical to cancelling a full one feeding long haul, and controllers will keep optimising the aircraft and crew network because that is what they can see.
Should we build alongside NetLine or Sabre AirCentre?
Not if that suite already owns your schedule, crew and operations together and controllers trust it, because a second source of truth in a control centre is dangerous rather than merely wasteful. The case for building appears when your crew or maintenance systems come from a different vendor, so constraints reach controllers by telephone. In that situation the build is explicitly an integration and visualisation layer over the incumbents, and framing it that way is what keeps the project from failing politically.
What should we insist on before a developer quotes an OCC project?
That they spend a shift in your control centre first, and that upstream data access from other vendors is treated as a milestone with a signed agreement rather than an assumption. The behavioural details govern adoption: how many screens a controller already has, what gets shouted across the room, which phone rings most. The commercial detail governs the schedule, since a crew system vendor agreeing to expose a legality evaluation can take longer than the sprint that depends on it.
How much does a custom internal tool cost to build?
Most custom internal tools cost $8,000 to $40,000 to build, based on Digital Heroes delivery data across 2,000+ client projects. A single-purpose tool like an approval dashboard or inventory tracker sits at the low end, while a multi-department platform with role-based access and several integrations pushes past $40,000. The three biggest cost drivers are the number of user roles, the number of systems the tool must connect to, and custom reporting requirements.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
How do I know when spreadsheets are no longer enough to run my operations?
Replace the spreadsheet once more than three people edit it, versions travel by email, or a single broken formula could cost real money. Other reliable signals: staff keep personal shadow copies, month-end reporting takes days of manual assembly, and nobody can say who changed a number or why. In Digital Heroes discovery calls the tipping point is almost always a specific expensive error, a mispriced quote, a missed order, or payroll built on a tab someone sorted wrong.
At what point does Retool cost more than building a custom tool?
The crossover usually lands between 25 and 50 daily users. At Retool's published Business rates of $50 per standard user and $15 per end user monthly, a 40-person deployment with a typical seat mix runs roughly $9,000 to $15,000 per year, every year, while a comparable custom tool built once for $20,000 to $30,000 carries no per-seat fees and costs about 15 to 20 percent of the build price annually to maintain. On a three-year horizon, custom comes out ahead for most growing teams in Digital Heroes engagements.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
What does it cost to keep an internal tool running after launch, and do we need to hire a developer?
Budget 15 to 20 percent of the build cost per year, so a $25,000 tool runs roughly $300 to $400 a month covering hosting, security patches, dependency updates, and small tweaks, figures drawn from Digital Heroes maintenance contracts. You do not need an in-house developer; a monthly retainer with the agency that built it covers the typical internal tool comfortably. Hosting itself is cheap for internal audiences, often $20 to $100 a month, because you serve dozens of users rather than the open internet.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
Who can build a custom internal tools system?

Digital Heroes builds custom internal tools systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other internal tools companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?