Untruncation
Untruncation is a part of most revenue management systems. It is a mathematical process whereby we estimate the number of customers there would have been for a particular product, assuming we would have offered the product for sale to all comers. In the cases where we actually did offer the product to all, then there is nothing for this algorithm to do beyond counting our actual sales. However, many times our RM systems will limit the number of customers we actually accept, and our actual sales are "truncated". Untruncation is needed to approximate how many customers were lost.
In PassengerSim, untruncation is included as a step within an RM system, typically within the DCP process before any forecasting or optimization steps.
rm_systems:
basic_emsr_b: #(4)!
processes:
DCP:
- step_type: untruncation #(1)!
algorithm: em #(2)!
kind: leg #(3)!
- step_type: forecast
algorithm: additive_pickup
kind: leg
- step_type: emsr
algorithm: b
kind: leg
- The
step_type
must beuntruncation
, as this is how PassengerSim identifies what to do in this step. - Several different algorithms are available for untruncation, see below for details.
- Untruncation can be done at the leg or path level, see below for details.
- This is showing that
basic_emsr_b
is the name of this RM system. Elsewhere in the configuration (not shown in this example snippet) you will define carriers, and each will be assigned an RM system using these names.
UntruncationStep
Bases: RmStep
algorithm
instance-attribute
Untruncation algorithm.
There are several available algorithms:
none
applies no untruncation, and assumes that demand was the same as sales.
Applying this algorithm is still important even if no detruncation is
desired, as PassengerSim tracks historical demand separately from sales
and without "none" the historical demand used in forecasting would be
zero.
em
is an expectation-maximization model.
em_py
is an expectation-maximization model implemented in Python. It is slow
but useful for educational purposes.
naive1
is not recommended for use.
naive2
is not recommended for use.
naive3
is not recommended for use.
pd
is a projection-detruncation model, based on the method developed by
Hopperstad and described by Weatherford & Polt.