The ActionLevelPropensity strategy is responsible for applying an adaptive model for each action and calculating the propensity across eligible channels.
This strategy first expands the number of actions by the number of active and eligible channels using the CreateEligibileChannels strategy.
Actions can be designated as transactional in nature, i.e. they are always intended to be delivered and do not require any arbitration. Transactional actions are filtered out and bypass analytics processing.
Non-transactional actions are directed to the PredictActionPropensity Prediction strategy, and then to the ActionLevelPropensityExt extension point sub-strategy.
Finally, the actions are divided into adaptive and non-adaptive streams based on the ApplyAnalytics property, and the non-adaptive stream sets the propensity based on the action starting propensity, whereas for the adaptive stream these values are calculated by the PredictActionPropensity strategy.