load_parameters
str
required
Path to the Excel workbook. Must contain sheets named
Parameters, Lookup_Crews, and Lookup_Speed.Dict[str, Any] — all scalar parameters from the Parameters sheet, plus:
calculate_annual_costs
Dict[str, Any]
required
Parameter dictionary returned by
load_parameters.AnnualCosts dataclass with every field populated except the optional life cycle fields (time_series, cumulative_costs, Life_Cycle_Total_Cost, Revenue_CASM, Fare_per_Pax_NM).
run_simulation
Dict[str, Any]
required
Parameter dictionary returned by
load_parameters.
State row index mapping:
calculate_metrics
AnnualCosts object.
Dict[str, Any]
required
Parameter dictionary returned by
load_parameters.AnnualCosts with all optional fields populated:
run_comparison
List[str]
required
List of paths to Excel workbooks. Each file is processed independently — errors are caught and printed without stopping the run.
DataFrame columns:
Aircraft, Revenue_CASM, Fare_per_Pax_NM, Total_Annual_Costs, Life_Cycle_Total_Cost, Annual_Fixed_Costs, Annual_Variable_Costs, Aircraft_Purchase_Price, Variable_Cost_per_Hour, Aircraft_Speed, Pilots_per_Aircraft, PAX_Seats
print_comparison_table
Revenue_CASM ascending.
pd.DataFrame
required
DataFrame returned by
run_comparison.create_comparison_charts
output_dir.
pd.DataFrame
required
Summary DataFrame from
run_comparison.Dict[str, AnnualCosts]
required
Full results dict from
run_comparison, used to access time series for the cumulative cost chart.Path
required
Directory where PNGs are written. Must already exist.
extract_aircraft_name
str
required
File path or name, e.g.
Joby_S4_Cost_Model_1500hrs.xlsx.str — strips _Cost_Model_<hours>hrs, replaces underscores with spaces. Example: "Joby S4".
AnnualCosts dataclass
All monetary values are in USD. All rate values are per flight hour unless noted.
Derived flight parameters
Acquisition
Annual fixed costs
Variable costs (per flight hour)
Totals
Optional life cycle fields
Populated bycalculate_metrics() and run_simulation().