Simulation Run Summaries¶
This page provides an overview of the summary visualizations available in PassengerSim.
The results from a simulation run are stored in a SimulationTables instance, which
is returned from Simulation.run or can be loaded from a stored database of results.
This object has a number of methods to generate visualizations for the results
of the simulation.
summary_us25.fig_carrier_revenues()
Carrier Mileage¶
SimulationTables.fig_carrier_mileage
Display the available seat miles (ASM) and average revenue passenger miles (RPM) by carrier.
summary_us25.fig_carrier_mileage()
Carrier Load Factors¶
SimulationTables.fig_carrier_load_factors
Display the average system load factors by carrier. The system load factor is calculated based on ASM and RPM figures for the carrier, which weights larger capacity vehicles and longer distance legs more heavily, to reflect their larger relative importance in evaluating carrier performance.
summary_us25.fig_carrier_load_factors()
Alternatively, this function can also display the average leg load factor, which considers the fraction of capacity sold on each leg, and weights all legs uniformly.
summary_us25.fig_carrier_load_factors(load_measure="avg_leg_lf")
We can also look at the distribution of leg load factors, instead of looking at aggregate system level measures.
SimulationTables.fig_leg_load_factor_distribution
Display the distribution of leg load factors.
summary_us25.fig_leg_load_factor_distribution()
Carrier Local Passenger Percentages¶
Display the percentage of local passengers by carrier. By default, this
is the percentage of bookings that are local (i.e. flying on only a single
leg). Alternatively, this method accepts a load_measure argument that
can be set to 'leg_pax', which will report the percentage of leg passengers
who are local -- the numerator of this ratio is the same, but the denominator
is larger (assuming there are any connecting passengers in the network).
summary_us25.fig_carrier_local_share()
summary_us25.fig_carrier_local_share("leg_pax")
Carrier Yields¶
SimulationTables.fig_carrier_yields
Display the average yield (revenue per passenger mile) by carrier.
summary_us25.fig_carrier_yields()
summary_us25.fig_fare_class_mix()
We can also display the fare class mix for individual markets. For example, here's a market where Bison offers non-stop service and Eagle only offers connecting service.
summary_us25.fig_od_fare_class_mix(orig="DEN", dest="ATL")
When one or more carriers don't serve a market at all, they are omitted.
summary_us25.fig_od_fare_class_mix(orig="DEN", dest="LAX")
Bookings by Timeframe¶
SimulationTables.fig_bookings_by_timeframe
Display the distribution of bookings across different time periods leading up to departure. This visualization shows how booking patterns vary over the advance booking timeframe, helping to understand passenger booking behavior and demand patterns at different points in the booking horizon.
By default, we view the bookings by timeframe, carrier, and passenger market segment (e.g. business/leisure).
summary_us25.fig_bookings_by_timeframe()
We can alse view the bookings by timeframe for an individual carrier, breaking out the bookings not only by passenger segment but also fare class.
summary_us25.fig_bookings_by_timeframe(by_carrier="Bison", by_class=True)
Bid Prices¶
SimulationTables.fig_bid_price_history
Display the history of average bid prices over the booking horizon. Bid prices represent the marginal value of capacity and are used in revenue management optimization to make booking control decisions. Higher bid prices indicate that capacity is more valuable, typically closer to departure when demand uncertainty is reduced and remaining capacity is limited.
The default figure show the average bid price over "all" legs. We say "all" in quotes because of the anomalous situation for sold-out legs, which have no capacity remaining and thus no bid price. For these legs, the average is using the last calculated bid price as of the moment the leg sold out. This tends to skew the averages, especially near the end of the booking horizon, as legs that sell out are generally high outliers at the moment they sell out, and by locking in that bid price there is no opportunity for that leg's value to revert towards the mean later.
summary_3mkt.fig_bid_price_history()
Users can choose instead to average only those legs where the bid price
exists (i.e. legs that are not yet sold out), by settings cap='some'.
This introduces an opposite bias, as the high outliers are thrown out,
but low outliers are retained.
summary_3mkt.fig_bid_price_history(cap="some")
Note that bid prices figures are only available for carriers that have an RM system that calculates a bid price. If you request bid prices for carriers that don't have any, you will get a blank figure.
summary_us25.fig_bid_price_history()
In addition to viewing aggregate average bid prices, we can also view the mean and standard deviation of bid prices on individual legs or paths. This is only available if those bid prices were traced during a simulation run; see tracing. By default no bid prices are traced as this is a lot of data to track.
In the 3MKT summary shown here, bid prices have been traced for two representative
legs (101 and 111) and three representative paths (1, 5, and 9).
from passengersim.tracers.bid_price import fig_leg_bid_prices
fig_leg_bid_prices(summary_3mkt)
from passengersim.tracers.bid_price import fig_path_bid_prices
fig_path_bid_prices(summary_3mkt)
Demand Segmentation Distribution¶
SimulationTables.fig_demand_segmentation_distribution
Display the distribution of passenger demand across different market segments (typically business and leisure travelers) by carrier. This visualization helps understand the relative distribution of different types of passengers across markets.
summary_us25.fig_demand_segmentation_distribution()
Leg Load Factor vs Distance¶
SimulationTables.fig_leg_load_v_distance
Display the relationship between leg load factors and flight distance. This scatter plot visualization helps identify patterns in how aircraft utilization varies with route length, which can provide insights into network efficiency and capacity allocation strategies across different market segments.
summary_us25.fig_leg_load_v_distance()
Select Leg Analysis¶
SimulationTables.fig_select_leg_analysis
Display detailed analysis for a specific leg, including passenger origins, destinations, and booking classes. This visualization provides a comprehensive view of individual leg performance, helping to understand how specific routes perform across different metrics and time periods.
summary_us25.fig_select_leg_analysis(leg_id=429)
summary_us25.legs.loc[429]
carrier Eagle flt_no 429 orig ORD dest PHX distance 1440.0 gt_sold 178410 gt_capacity 240000 gt_sold_local 81899 gt_revenue 19045652.844714 avg_load_factor 74.3375 avg_local 45.904938 Name: 429, dtype: object