GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!
Watch the launch videoWatchFlight Rebooking Fee Calculator
Dynamic fee system for airline booking modifications that adjusts charges based on fare class, time to departure, loyalty status, and change history.
Solution
This automated flight modification system determines appropriate rebooking fees through a multi-factor approach that balances airline revenue protection with customer satisfaction. The calculator evaluates the original booking's fare class, setting base fees that increase as you move from premium to economy classes. It analyzes the time remaining before departure, with longer notice periods receiving more favorable rates across all fare categories.
The system incorporates customer loyalty standing by applying significant discounts for higher-tier members, including complete fee waivers for platinum travelers. It also tracks modification history, applying scaled surcharges for repeated changes to discourage excessive rebooking. For last-minute changes, special same-day processing fees apply, with considerations for premium customers. This balanced approach ensures fees remain fair to customers while covering airline administrative costs and potential revenue impacts from seat inventory changes.
How it works
The decision graph evaluates booking modifications through these sequential steps:
- Base Fee Determination: Analyzes the original fare class (First/Business/Economy) and days remaining to departure, establishing an initial fee according to a tiered structure.
- Change Frequency Assessment: Checks how many previous modifications have been made to this booking, applying increasing multipliers for repeated changes.
- Loyalty Status Evaluation: Applies discounts based on the customer's loyalty tier, with Platinum members receiving full waivers, Gold receiving 50% off, and Silver receiving 25% off.
- Fee Calculation: Combines the base fee with applicable multipliers and discounts to determine the adjusted modification charge.
- Final Fee Rules: Applies special considerations like same-day change minimum fees, maximum fee caps, and final eligibility checks.
Where teams use it
- Airline booking modification systems
- Travel agency rebooking platforms
- Corporate travel management tools
- Online travel agency modification interfaces
- Airline customer service systems
- Mobile app flight change functionality
Inside the decision model
Flight Rebooking Fee Calculator ships as a JDM decision graph with 6 nodes, 4 decision tables and 23 rules. Download it, load it into GoRules, and run it as-is on Zen Engine.
Booking Modification Request
inputChange requests arrive with fareClass, daysToDeparture, changeFrequency, and loyaltyTier at top level, plus passengerDetails and the original and new departure dates; those four scalar fields are what every fee table keys on.
Sample requestJSON
{
"bookingId": "BK-12345678",
"fareClass": "Economy",
"originalDepartureDate": "2025-05-15T10:30:00Z",
"newDepartureDate": "2025-05-20T14:15:00Z",
"daysToDeparture": 12,
"passengerDetails": {
"firstName": "Jane",
"lastName": "Smith",
"loyaltyTier": "Silver",
"loyaltyNumber": "LM789012"
},
"changeFrequency": 2,
"loyaltyTier": "Silver"
}Base Fee Calculation
tableBase fees form a matrix over fareClass and daysToDeparture, resolved with first hit: 'First' changes are free beyond 14 days and cost 50 inside it, 'Business' steps 75, 100, and 150 across the over-21, 7-21, and 7-or-fewer day bands, 'Economy' climbs 100, 150, 200, 250 as the window shrinks from over 30 days down to 3 or fewer, and an unmatched fare class defaults to 300.
Cheaper cabins paying higher and earlier-rising change fees is standard fare-fencing logic: flexibility is part of what a premium fare buys, so economy tickets carry the tightest restrictions. Fees stepping up as departure approaches track the airline's shrinking chance to resell the vacated seat; the specific bands and amounts are commercial policy, not regulation.
| Fare ClassfareClass | Days to DeparturedaysToDeparture | Base FeemodificationFee.baseFee | Base Fee ReasonmodificationFee.baseFeeReason |
|---|---|---|---|
| 'First' | > 14 | 0 | 'No fee for First Class with >14 days to departure' |
| 'First' | <= 14 | 50 | 'Minimal fee for First Class with ≤14 days to departure' |
| 'Business' | > 21 | 75 | 'Standard fee for Business Class with >21 days to departure' |
| 'Business' | > 7 and <= 21 | 100 | 'Medium fee for Business Class with 7-21 days to departure' |
| 'Business' | <= 7 | 150 | 'Higher fee for Business Class with ≤7 days to departure' |
| 'Economy' | > 30 | 100 | 'Standard fee for Economy with >30 days to departure' |
+4 more rows in the downloadable template
Frequency Multiplier
tableRepeat behavior scales the fee next: a changeFrequency of at most 1 keeps the frequencyMultiplier at 1 with 'No additional charge for first change', 2 to 3 changes raise it to 1.25, more than 3 raises it to 1.5 as a '50% surcharge for frequent changes', and a missing value defaults to 1.
Escalating surcharges for serial rebooking discourage treating changes as free options on seat inventory, a real cost since every change reopens revenue accounting and inventory control. The 25% and 50% steps are deterrence tuning rather than any industry standard.
| Change FrequencychangeFrequency | Frequency MultipliermodificationFee.frequencyMultiplier | Frequency ReasonmodificationFee.frequencyReason |
|---|---|---|
| <= 1 | 1 | 'No additional charge for first change' |
| > 1 and <= 3 | 1.25 | '25% surcharge for 2-3 changes' |
| > 3 | 1.5 | '50% surcharge for frequent changes' |
| - | 1 | 'Default multiplier' |
Loyalty Factor
tableStatus pays off here: a loyaltyTier of 'Platinum' zeroes the fee through a loyaltyFactor of 0, 'Gold' halves it at 0.5, 'Silver' takes 25% off at 0.75, and everyone else keeps a factor of 1 with 'No loyalty discount applied'.
Concentrating full fee waivers at the top tier mirrors how change-fee forgiveness is marketed as an elite benefit in real frequent-flyer programs, since the fee revenue given up is small next to the retention value of high-yield flyers. The 50 and 25 percent ladder below it is plausible program design, not a rule.
| Loyalty TierloyaltyTier | Loyalty FactormodificationFee.loyaltyFactor | Loyalty ReasonmodificationFee.loyaltyReason |
|---|---|---|
| 'Platinum' | 0 | 'Platinum members receive fee waiver' |
| 'Gold' | 0.5 | 'Gold members receive 50% discount' |
| 'Silver' | 0.75 | 'Silver members receive 25% discount' |
| - | 1 | 'No loyalty discount applied' |
Calculate Adjusted Fee
expressionOne line settles the arithmetic: adjustedFee rounds modificationFee.baseFee * frequencyMultiplier * loyaltyFactor. Multiplying instead of adding keeps both the surcharge and the discount proportional to the base fee, so a Platinum factor of 0 wins regardless of change history.
round(modificationFee.baseFee * modificationFee.frequencyMultiplier * modificationFee.loyaltyFactor)Final Fee Assessment
tableOverrides get the last word through ordered conditions: loyaltyTier == 'Platinum' with daysToDeparture > 1 waives everything, an adjustedFee of 0 passes through as 'No fee applicable', same-day 'First' changes still pay a 100 minimum, any other change with daysToDeparture <= 1 pays max([200, adjustedFee]), and the default row carries adjustedFee forward as the 'Standard modification fee', in every case with modificationFee.allowed set true.
A same-day floor exists because last-minute changes hit operations hardest, leaving no time to resell the seat, so even heavily discounted fees are clamped upward. Exempting Platinum members from that floor only while more than a day out puts a deliberate limit on the waiver; the 200 and 100 floors are business amounts, not mandated fees.
| Condition | Final FeemodificationFee.finalFee | Fee DescriptionmodificationFee.description | Modification AllowedmodificationFee.allowed |
|---|---|---|---|
| loyaltyTier == 'Platinum' and daysToDeparture > 1 | 0 | 'Waived - Platinum member benefit' | true |
| adjustedFee == 0 | 0 | 'No fee applicable' | true |
| fareClass == 'First' and daysToDeparture <= 1 | 100 | 'Minimum fee for same-day changes' | true |
| daysToDeparture <= 1 | max([200, adjustedFee]) | 'Same-day change fee applied' | true |
| - | adjustedFee | 'Standard modification fee' | true |
Other Aviation templates
View all templatesFlight Dispatch Decision System
Rules-based aviation system that evaluates weather, aircraft, crew, and weight factors to ensure regulatory compliance and safe flight operations.
AviationDynamic Airline Ticket Pricing Engine
Automated fare optimization system that sets ticket prices based on time to departure, seat availability, market demand, and competitor pricing.
AviationBooking Personalization System
Dynamic flight booking platform that tailors UI, discounts, and features based on customer loyalty status, device type, booking history, and traffic source.
Make this template
your own.
Load Flight Rebooking Fee Calculator into GoRules, adjust the rules to your policy, and ship it behind your own API.