PFProjectBenefitsProbDefault
[this page | pdf | back links]
Function Description
Returns an array showing the probability of sponsor default
over any given year in a pension fund projection.
If FactorDefaultAdjParam and WindUpDefaultAdjParam
are both zero then the computations are very straightforward, depending only on
BaseSponsorDefaultRates.
However, if FactorDefaultAdjParam or WindUpDefaultAdjParam
are non-zero then the probability of default is adjusted from the above in a
manner that reflecting the progression of the FactorDrivingDefault or by
how well funded on a discontinuance basis the scheme is projected to be at
future points in time, by applying a scaling factor to BaseSponsorDefaultRates
(min 0, max 1) defined as follows:

where: i = year in projection, F = FactorDefaultAdjParam,
r(i) = Actual return (movement) on Factor Driving Default(i),
e(i) = Expected return on Factor Driving Default(i), W
= WindUpDefaultAdjParam, V(i) = TotalBenefitValue(i)
(on a windup basis), A(i) = Total Asset Value(i)
(values of r(i), e(i), V(i)
and A(i) are computed using Nematrian’s approximate pension
projection algorithms)
NAVIGATION LINKS
Contents | Prev | Next
Output type / Parameter details
Output type: Double()
Parameter Name | Variable Type | Description |
iWindUp | Double() | Wind up yield curve (current and projected at each future year end) |
iFunding | Double() | Funding yield curve (current and projected at each future year end) |
NumberFactors | Integer | Number of economic factors in this run |
Factors | Double() | Values of economic factors in this run |
FactorDrivingDefault | Integer | Code for economic factor assumed to drive sponsor default rate (use 0 if not relevant, and also set FactorDefaultAdjParam to 0) |
StartingFundingLevel | Double | Scheme funding level at start of projection |
AmortisationFactor | Double | Factor indicating how rapidly surpluses/deficits are amortised |
TargetFundingLevel | Double | Trustees' target funding level |
AssetReturns | Double() | Simulated return on asset portfolio (for each year) |
StatusCreatesOutgo | Boolean() | Indicates whether membership status generates immediate benefit outgo |
StatusWindUpMap | Integer() | Indicates which status a given state gets switched to on wind up |
ProjectionLength | Integer | Projection Length (in years) |
AgeRange | Integer | Overall age range that members may exhibit (MaxAge - MinAge) |
MinAge | Integer | Minimum age applicable to any member in the projection |
CurrStatuses | Integer() | Status codes for arrays defining benefits arising from existing (current) members |
CurrAges | Integer() | Ages applicable to current member data |
CurrAccrued | Double() | Current benefit entitlements applicable to current member data |
CurrFutAcc | Double() | Future benefit accrual applicable to current member data |
AccrueFor | Integer | Number of years into the future to which future new benefit accrual applies |
NewStatuses | Integer() | Status codes for arrays defining benefits arising from new cohorts of members |
NewAges | Integer() | Ages applicable to new cohort data |
NewAccrued | Double() | Current benefit entitlements transferred in with new cohort data |
NewFutAcc | Double() | Future benefit accrual applicable to new cohort data |
DecrementTable | Double() | Decrement table (as per output of MnPFDecrementTable) |
ExpectedFactors | Double() | Expected values of economic factors corresponding to SimulatedFactors |
FactorDefaultAdjParam | Double | Parameter allowing default rate to vary according to the behaviour of a given economic factor |
WindUpDefaultAdjParam | Double | Parameter allowing default rate to vary according to the then solvency level of the scheme |
BaseSponsorDefaultRates | Double() | Base sponsor default rate before allowing for Factor and Windup adjustments as above |
SponsorRecoveryRates | Double() | market implied sponsor recovery rate |
NumberCats | Integer | Number of member category groupings used in output |
StatusAgeRanges | Integer() | Age ranges for individual statuses (using smaller values speeds up algorithm) |
NumberWindUpPriorities | Integer | Number of wind up priorities |
StatusWindupPriorities | Integer() | Array of Wind up priorities for individual statuses, 1 = highest, 2 = next highest etc. |
StatusCats | Integer() | Codes that define category in which a given membership status is deemed to fall |
SurplusDistFracs | Double() | Proportion of surplus that is provided to each individual category (if all zero then 100% of any surplus on wind up accrues to sponsor |
ExpStatuses | Integer() | Codes for statuses in 'Exposure' arrays indicating amount by which benefits for a given status depend on a given economic factor |
ExpFactAccrued | Integer() | Codes for factors corresponding to these statuses for benefits already accrued |
ExpFactFutAcc | Integer() | Codes for factors corresponding to these statuses for future benefit accrual |
ExpAccruedMin | Double() | Min value of factor used for benefits already accrued |
ExpAccruedFrac | Double() | Multiplier applied to factor for benefits already accrued, subject to min and max |
ExpAccruedMax | Double() | Max value of factor used for benefits already accrued |
ExpFutAccMin | Double() | Min value of factor used for future benefit accrual |
ExpFutAccFrac | Double() | Multiplier applied to factor for future benefit accrual, subject to min and max |
ExpFutAccMax | Double() | 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