/

PFProjectBenefitsPVSingleRun

[this page | pdf]

Function Description

Returns, for an illustrative pension scheme with benefit and other characteristics approximated by the input parameters, an array containing (for each aggregate membership category):

 

(1)    The present value of members' future benefits allowing for the possibility of the scheme sponsor will default in the future, but assuming that when the sponsor defaults any shortfall in the cost of providing these benefits from elsewhere is met (e.g. by the sponsor’s bankruptcy estate)

 

(2)    The present value of members' future benefits allowing for the possibility of the scheme sponsor will default in the future, and allowing for the possibility that when the sponsor defaults there may be a shortfall in the assets available to meet the cost of providing these benefits from elsewhere (e.g. because there are insufficient assets available in the sponsor’s bankruptcy estate)

 

(3)    The equivalent implied spread on the benefits attributable to that category of members (i.e. the addition to the yield curve needed to result in a value as per (2) given cash flows as per (1)

 

(4)    The present value of members’ future benefits ignoring the possibility of the scheme sponsor defaulting in the future (which differs from (1) because some members’ benefits, e.g. for active members, may uprate more rapidly as long as the sponsor has not defaulted / scheme has not been wound up)

 

The impact of setting FactorDefaultAdjParam or WindUpDefaultAdjParam to non-zero values is explained further in MnPFProjectBenefitsProbDefault.

 


NAVIGATION LINKS
Contents | Prev | Next


Output type / Parameter details

Output type: Double()
Parameter NameVariable TypeDescription
iWindUpDouble()Wind up yield curve (current and projected at each future year end)
iFundingDouble()Funding yield curve (current and projected at each future year end)
NumberFactorsIntegerNumber of economic factors in this run
FactorsDouble()Values of economic factors in this run
FactorDrivingDefaultIntegerCode for economic factor assumed to drive sponsor default rate (use 0 if not relevant, and also set FactorDefaultAdjParam to 0)
StartingFundingLevelDoubleScheme funding level at start of projection
AmortisationFactorDoubleFactor indicating how rapidly surpluses/deficits are amortised
TargetFundingLevelDoubleTrustees' target funding level
AssetReturnsDouble()Simulated return on asset portfolio (for each year)
StatusCreatesOutgoBoolean()Indicates whether membership status generates immediate benefit outgo
StatusWindUpMapInteger()Indicates which status a given state gets switched to on wind up
ProjectionLengthIntegerProjection Length (in years)
AgeRangeIntegerOverall age range that members may exhibit (MaxAge - MinAge)
MinAgeIntegerMinimum age applicable to any member in the projection
CurrStatusesInteger()Status codes for arrays defining benefits arising from existing (current) members
CurrAgesInteger()Ages applicable to current member data
CurrAccruedDouble()Current benefit entitlements applicable to current member data
CurrFutAccDouble()Future benefit accrual applicable to current member data
AccrueForIntegerNumber of years into the future to which future new benefit accrual applies
NewStatusesInteger()Status codes for arrays defining benefits arising from new cohorts of members
NewAgesInteger()Ages applicable to new cohort data
NewAccruedDouble()Current benefit entitlements transferred in with new cohort data
NewFutAccDouble()Future benefit accrual applicable to new cohort data
DecrementTableDouble()Decrement table (as per output of MnPFDecrementTable)
ExpectedFactorsDouble()Expected values of economic factors corresponding to SimulatedFactors
FactorDefaultAdjParamDoubleParameter allowing default rate to vary according to the behaviour of a given economic factor
WindUpDefaultAdjParamDoubleParameter allowing default rate to vary according to the then solvency level of the scheme
BaseSponsorDefaultRatesDouble()Base sponsor default rate before allowing for Factor and Windup adjustments as above
SponsorRecoveryRatesDouble()market implied sponsor recovery rate
NumberCatsIntegerNumber of member category groupings used in output
StatusAgeRangesInteger()Age ranges for individual statuses (using smaller values speeds up algorithm)
NumberWindUpPrioritiesIntegerNumber of wind up priorities
StatusWindupPrioritiesInteger()Array of Wind up priorities for individual statuses, 1 = highest, 2 = next highest etc.
StatusCatsInteger()Codes that define category in which a given membership status is deemed to fall
SurplusDistFracsDouble()Proportion of surplus that is provided to each individual category (if all zero then 100% of any surplus on wind up accrues to sponsor
ExpStatusesInteger()Codes for statuses in 'Exposure' arrays indicating amount by which benefits for a given status depend on a given economic factor
ExpFactAccruedInteger()Codes for factors corresponding to these statuses for benefits already accrued
ExpFactFutAccInteger()Codes for factors corresponding to these statuses for future benefit accrual
ExpAccruedMinDouble()Min value of factor used for benefits already accrued
ExpAccruedFracDouble()Multiplier applied to factor for benefits already accrued, subject to min and max
ExpAccruedMaxDouble()Max value of factor used for benefits already accrued
ExpFutAccMinDouble()Min value of factor used for future benefit accrual
ExpFutAccFracDouble()Multiplier applied to factor for future benefit accrual, subject to min and max
ExpFutAccMaxDouble()Max value of factor used for future benefit accrual

Links to:

-          Interactively run function

-          Interactive instructions

-          Example calculation

-          Output type / Parameter details

-          Illustrative spreadsheet

-          Other Cash-Flow Projection functions

-          Computation units used


Note: If you use any Nematrian web service either programmatically or interactively then you will be deemed to have agreed to the Nematrian website License Agreement


Desktop view | Switch to Mobile