← Back

Flight Planning Rules Engine

Mid-2018 – early 2019 · UX Designer, Lido Flight 4D · Automation Management

Designed the experience of writing rules for Lufthansa Systems’ Lido/Flight 4D: how much fuel to add, what speed to fly, which airspace to avoid, when to warn someone. The system already ran on these rules. I redesigned how airlines create and read them.

Why rules exist

Airlines run on rules

Every flight needs the same small decisions made for it: how much extra fuel to carry, what speed to fly, which airspace to avoid, when to warn a pilot. Lido/Flight had automated these decisions for years, by following rules each airline set up in advance.

A rule is simple: if this happens, do this. For example:

If the destination is Tel Aviv

Review the flight plan before filing it.

If the flight is under 500 NM

Cap the cruise altitude at FL230.

If the new arrival time slips by 20+ min

Send a delay message.

If it's a mid-haul flight

Have the flight plan ready 6 hours before departure.

The problem

Only a few specialists per airline could use these screens with confidence

The old screens for writing rules, in Lido Classic, were dense grids of filters and codes. Three things made them risky to use:

Split in two

Flight-plan rules and monitoring rules lived in two separate systems, so nobody had one place to see what would actually happen to a flight.

Built for specialists

Even the back-office staff whose job this was touched these screens once or twice a year at most, so proficiency never really built up.

No way to check your work

You saved a rule and hoped it was right. There was no way to see which real flights it would actually match before it went live.

Get a rule wrong, and a real flight either got no help from the automation, or the wrong help.

Flight Planning Rules: list of flight legs and actionsFlight Planning Actions: IFPL/AOS parameters for a ruleAOS Recalculation Parameter dialogIFM Action: dispatch event definition

Lido Classic: the screens I audited with domain experts

Not “rebuild Classic in the new design system”, but let the people who already know the airline’s policy set it themselves, without needing a separate specialist just to operate the tool.The brief, as I framed it

How I solved it, simply

Every rule, broken into the same three questions

I didn't change what a rule could do. I changed how someone creates and reads one. Take a real example: “If a flight is under 500 NM, cap the cruise altitude at FL230.” Every rule, no matter the topic, answers the same three questions:

Which flights?

Flights under 500 NM. Saved once as a reusable group, so the same “which flights” can be reused by other rules too.

Do what?

Cap the cruise altitude. Written as a plain sentence, not a code.

At what value?

FL230. The specific number or setting for this rule.

All the rules for one topic are shown as a simple list, in order. The system reads down the list and uses the first rule that matches. If none of them match, there's always one last rule at the bottom that catches everything else, so a flight never goes unhandled.

My role

My role

I was the UX designer on Automation Management from mid-2018 to early 2019, working with Lufthansa Systems’ product owners and domain experts. A second designer, Johannes Doenicke, took the most complex authoring cases so we could test one model across simple and hard rules.

I owned rule maintenance, flight leg groups, the dispatcher override, and six action editors, from discovery to high-fidelity concepts. My approach had four steps: learn the domain through use-case pages, expert walkthroughs and an audit of Classic; study ten products that already let people build rules; map users and tasks until the hard part shows itself; then explore concepts, drop the weak one and detail the rest.

A flag up front: this shipped as signed-off, high-fidelity concepts. I don't have launch metrics or usability results to share here, only the reasoning that got me there.

Who it’s for

Three users, two different rhythms

IT and back office touch this area once or twice a year, so the screen has to be easy to relearn after months away — nobody builds muscle memory at that pace. Dispatchers are the opposite: they override a rule daily, under pressure, so they need speed inside safe guardrails, not a fresh mental model every time.

IT

Sets default rules once. Needs completeness.

Back office

Writes long-term rules once or twice a year. Needs confidence the rule hits the right flights.

Dispatcher

Overrides one leg, daily, under pressure. Needs speed, without breaking the master rule.

This split shows up in the rules themselves too. Back office writes long-term rules: the standing policy, with lower priority. A dispatcher's override is a temporary rule: it beats the long-term rule while it's active, but only for that one flight leg, and it expires the moment that flight lands.

Task flow: three tiers, three paths, one shared rule model
Task flow: three tiers, three paths, one shared rule model

Research

Research: learning from existing products

Before scoping the work myself, I looked at how other products already let people build rules. I studied ten of them (Teramind, Adobe, iTunes, Apple Mail, Outlook, Facebook Ads, Salesforce, Jira and Microsoft notifications) and picked what we could use. Three patterns kept recurring.

Nested rules

Several levels deep. Powerful, and quickly unreadable. Left behind.

Step-wise wizards

Filter, then condition, then action. Clear, but slow to edit later. Left behind.

Built one entity at a time

Events, conditions and actions added incrementally. Used: the Add Criteria menu.

The full competitive audit

The 24 rule builders I reviewed before settling on the three patterns above, from Teramind to Microsoft.

Building out rules for a rules engine (video walkthrough)
Behaviour rules: new rule dialog
Behaviour rules: category selection
Behaviour rule: trigger, conditions and risk level
Adobe Marketing Cloud: tracking code rules, matching condition and classification action
Apple Mail: smart mailbox conditions
Outlook: rule conditions, actions and exceptions
Facebook Automated Ad Rules tool (video)
Facebook Ads: create rule with action, conditions, schedule
Facebook Ads: manage rules list with row actions
Email automation tool: trigger, action, status rules
Business Rules Designer: list of business rules
Business Rules Designer: create business rule
Business Rules Designer: parameters and logical process steps (video)
Salesforce: all workflow rules
Salesforce: new workflow rule, select object
Salesforce: configure workflow rule, criteria
Salesforce: workflow actions and time triggers
Jira Service Desk: automation rules list
Jira Service Desk: build-it-yourself automation rules (video)
Jira Service Desk: When / If / Then builder
Search for automation rule UI examples
Microsoft Social Engagement: automation rules, filters and actions
Data normalisation: rule detail

24 rule builders I reviewed, from Teramind to Microsoft

What we took from the market

The principle I wrote down as non-negotiable: a good rule reads like a sentence. If the user can read the rule back in plain language, they can trust it.

The insight

The hard part wasn't the action. It was picking the right flights.

Talking to the same back-office staff and dispatchers who used Classic every day, one complaint came up again and again, no matter which rule set we were discussing. Each rule set only has a few actions to pick from. Tankering has three. Speed has two. They already knew these cold. What they kept struggling with, every time, was picking exactly which flights the rule applies to.

Say a fuel rule, a tankering rule, and a monitoring rule all need the same flights: our Frankfurt A320s in the evening. Before, someone had to type that list out every single time. So I saved it once and gave it a name, the Flight Leg Group. Now any rule can just use it.

One group, three rule sets
One group, three rule sets

Scoping the work

Mapping the list, then ranking it

With the model settled, two quick planning steps before any screens: map every capability each role needed, by role, so nothing from Lido Classic got dropped by accident, then decide what to build first. Not every rule set deserved the same effort, so I ranked them on how often a rule changes, how long it stays valid, and how much business value it carries.

Feature list mind map for Automation Management Rules
The feature map I worked from: Back Office, Dispatcher and shared actions
High Frequency of
Modification
Short Validity
Prio 1
Prio 2
Prio 3
Prio 4
Long Validity
Low Frequency of
Modification
High Frequency of
Modification
High
Business Value
Prio 1
Prio 2
Prio 3
Prio 4
Low
Business Value
Low Frequency of
Modification

Left: temporary rules have short validity. Right: business value depends on the airline's general planning policy.

What I set aside

The path I set aside

Concept A put the filter (If) and action (Then) on one screen, with multiple pairs and drag to reorder. It was the fastest thing I drew for simple cases.

Concept A: single-page rule setup
Concept A: single-page rule setup

It lost because real rules have a filter, several conditions and structured instructions with units, which either hid fields or made the line huge. And the same filter was retyped in every rule. The idea survived as the rule list, not the editor.

The design

One screen per rule set, one model underneath

1. Rules that read as sentences

The left navigation mirrors the product team’s rule-set taxonomy: monitoring, planning parameters, publishing, thresholds. Pick a set and see only its rules. Five columns (rule name, flight legs, conditions, actions, priority) with values in bold and plain-English connectors, so a manager can audit the set by reading down. Priority is visible and draggable, and the last row is a locked default rule for all flights, so nothing falls through.

2. Flight Leg Groups: build the filter, then watch it work

Each group shows how many legs it catches and how many rules use it. Criteria are added one at a time from four categories: flight, time window, airport and aircraft. “View flight legs selected” lists the real flights a filter catches, replacing Classic’s dummy-flight test with a live answer to “did I select the flights I meant?”

Building a group
Building a group
Preview: the real flights the filter catches
Preview: the real flights the filter catches

3. Add and edit in place

A drawer opens over the list with three stacked steps: group, conditions, actions. Name and priority sit in a fixed footer. New groups and the legs preview open as extra layers, so users never lose their place.

4. Action editors shaped to each domain

Experts know what they want, so each editor is shaped to its domain instead of forcing everything through one generic form.

Tankering
Tankering
Restrictions
Restrictions
Calculation variants fold several profiles into tabs (Minimum Fuel, On Time, Optimize), so one long form became three short ones
Calculation variants fold several profiles into tabs (Minimum Fuel, On Time, Optimize), so one long form became three short ones

5. The dispatcher’s path

Dispatchers never enter Rules Maintenance. From a flight leg they see its rules by topic and override for that leg only. The master rule is untouched, and the override expires with the flight.

Outcome

Outcome

High-fidelity concepts for the rule list, the add/edit drawer, flight leg groups with live preview, the dispatcher override, and action editors for six rule sets.

What I can’t tell you. I left at concept stage, so there are no launch metrics or usability results. What I would do differently: test the Flight Leg Group builder with two or three back-office users before going high-fidelity on the action editors. That is where the risk lives.

Reflection

What I learned

Appendix

Appendix: the wireframes

A selection of the 24 wireframes, grouped by flow.

Rules for Airport Monitoring, with default rule
Add rule: name, flight leg group, conditions, actions
Choosing a flight leg group
Add flight leg group: criteria categories
Flight legs in the group, preview
Tankering default rule
Speed procedure default rule
Restrictions default rule
Calculation variants with grouped values
Flight groups with rule and flight leg counts
Group builder: weekly repeat, distance, time
Flight legs matching the group

12 wireframes from the signed-off set, covering rule maintenance, tankering, restrictions and flight groups