v2.0

GoRules Version 2 is here - redesigned, now with managed cloud.GoRules Version 2 is here!

Watch the launch videoWatch

Flight 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:

  1. 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.
  2. Change Frequency Assessment: Checks how many previous modifications have been made to this booking, applying increasing multipliers for repeated changes.
  3. 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.
  4. Fee Calculation: Combines the base fee with applicable multipliers and discounts to determine the adjusted modification charge.
  5. 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.

Decision graph6 nodes · read-only
input bookingModificationRequesttable baseFeeCalculationtable frequencyMultipliertable loyaltyFactorexpression calculateAdjustedFeetable finalFeeAssessment
01

Booking Modification Request

input

Change 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"
}
02

Base Fee Calculation

table

Base 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.

Decision tablefirst hit policy
Fare ClassfareClassDays to DeparturedaysToDepartureBase FeemodificationFee.baseFeeBase Fee ReasonmodificationFee.baseFeeReason
'First'> 140'No fee for First Class with >14 days to departure'
'First'<= 1450'Minimal fee for First Class with ≤14 days to departure'
'Business'> 2175'Standard fee for Business Class with >21 days to departure'
'Business'> 7 and <= 21100'Medium fee for Business Class with 7-21 days to departure'
'Business'<= 7150'Higher fee for Business Class with ≤7 days to departure'
'Economy'> 30100'Standard fee for Economy with >30 days to departure'

+4 more rows in the downloadable template

03

Frequency Multiplier

table

Repeat 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.

Decision tablefirst hit policy
Change FrequencychangeFrequencyFrequency MultipliermodificationFee.frequencyMultiplierFrequency ReasonmodificationFee.frequencyReason
<= 11'No additional charge for first change'
> 1 and <= 31.25'25% surcharge for 2-3 changes'
> 31.5'50% surcharge for frequent changes'
-1'Default multiplier'
04

Loyalty Factor

table

Status 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.

Decision tablefirst hit policy
Loyalty TierloyaltyTierLoyalty FactormodificationFee.loyaltyFactorLoyalty 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'
05

Calculate Adjusted Fee

expression

One 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.

Expressions1 fields
adjustedFeeround(modificationFee.baseFee * modificationFee.frequencyMultiplier * modificationFee.loyaltyFactor)
06

Final Fee Assessment

table

Overrides 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.

Decision tablefirst hit policy
ConditionFinal FeemodificationFee.finalFeeFee DescriptionmodificationFee.descriptionModification AllowedmodificationFee.allowed
loyaltyTier == 'Platinum' and daysToDeparture > 10'Waived - Platinum member benefit'true
adjustedFee == 00'No fee applicable'true
fareClass == 'First' and daysToDeparture <= 1100'Minimum fee for same-day changes'true
daysToDeparture <= 1max([200, adjustedFee])'Same-day change fee applied'true
-adjustedFee'Standard modification fee'true

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.