Cost taxonomy
Fixed cost calculations
Financing
The model uses a standard amortizing loan formula:Depreciation
Straight-line over the service life:Autonomous aircraft adjustments
WhenNumber_of_Pilots = 0:
Automation_Cost_Baseis added to the purchase price- Liability insurance is multiplied by 1.10 (10% surcharge)
- Pilot salaries and pilot training are zero
Personnel
Variable cost calculations
All variable costs are expressed per flight hour and then multiplied byFlight_Hours_per_Year to get annual totals.
Amortised reserve costs
Replacement/overhaul costs are spread across the interval between events:Landing fees
Life cycle simulation
Annual costs are constant (no inflation model by default), so the ODE right-hand side is a constant vector. The state vector tracks ten cumulative quantities:
Initial conditions include the down payment (purchase price × (1 − Finance_Percent)) and the first-year training cost as upfront charges at t = 0.
Integration runs from year 0 to
Life_Cycle_Time using SciPy’s solve_ivp with RK45 (relative tolerance 1e-6, absolute tolerance 1e-8).
Revenue metrics
After simulation,calculate_metrics() derives two revenue-facing metrics:
Revenue CASM
Cost per available seat-nautical mile — the standard airline profitability metric:Fare per passenger-nautical mile
The
/5 factor normalises CASM to a per-passenger basis assuming an average load factor. This is a planning-level estimate — adjust Aircraft_PAX_Seats and your profit margin to model different load scenarios.Comparison outputs
run_comparison() returns a DataFrame with one row per aircraft, sorted by Revenue CASM: