Pricing API
Request
Endpoint
POST https://www.clarinetlive.com/api/latest/valuationAndRiskCalculator
Role
Pricing API
Request
The request defines the cases, insureds, scenarios and settings used to create a valuation. See full definition of fields in the Schema section.
Example request:
json
{
"ValueDate": "2023-01-01",
"Cases": [
{
"CaseReference": "example-case",
"InsuredLives": [
{
"InsuredReference": "example-insured",
"Gender": "M",
"DateOfBirth": "1935-09-16",
"DateOfDeath": null,
"UnderwriterReports": [
{
"Underwriter": "UserDefined",
"ReportDate": "2014-05-21",
"SmokingStatus": "NonSmoker",
"Mortality": null,
"MeanLE50": 75.0,
"MedianLE50": null,
"LE85": null,
"AnnualDeaths": null
}
]
}
],
"Policy": {
"UniversalDeathBenefitType": "Level",
"UniversalReturnType": "NonVariable",
"Conversion": null,
"PolicyType": "UniversalLife",
"PolicyDate": "2000-08-28",
"FaceAmount": 500000.0,
"MaturityAge": 100,
"MaturityDate": null,
"CoverageEndDate": "2035-08-28",
"AgeBasis": "ANB",
"JointLifePayoutType": null,
"CoverageEndPaymentType": "None",
"LapseBasis": "CSV",
"NonGuaranteedCreditingRate": 0.0,
"SurrenderChargeType": "Annual"
},
"CaseProjection": {
"TotalPremiumsPaidAmount": null,
"AccountValueAtCoverageEnd": 0.0,
"Premiums": [
{
"Date": "2023-01-28T00:00:00",
"Amount": 2661.08
},
{
"Date": "2023-02-28T00:00:00",
"Amount": 2661.08
},
{
"Date": "2023-03-28T00:00:00",
"Amount": 2661.08
},
{
"Date": "2023-04-28T00:00:00",
"Amount": 2661.08
},
],
"NDBs": [
{
"Date": "2014-04-14T00:00:00",
"Amount": 500000.0
}
],
"LoanPayments": null,
"CashWithdrawals": null
},
"PaymentHistory": [],
"Purchase": {
"PurchaseDate": "2014-05-22T00:00:00",
"PurchaseCost": 120518.0,
"OriginationFee": 0.0,
"PurchaseOtherCosts": 0.0,
"RetainedDeathBenefit": null,
"RetainedDeathBenefitSchedule": null
},
"Disposal": null,
"Maturity": null
}
],
"Scenarios": [
{
"ScenarioReference": "Base Scenario",
"IRR": 0.15
},
{
"ScenarioReference": "13%",
"IRR": 0.13
},
{
"ScenarioReference": "14%",
"IRR": 0.14
}
],
"ValuationSettings": {
"PricingType": 0,
"DefaultActuarialTable": "2008 VBT",
"DefaultAgeBasis": "ANB",
"DayCountConvention": "30/360",
"QxAdjustment": null,
"CalculateRealizedIRR": false,
"DeterministicBreakevenCalculationType": 0,
"CalculateDeterministicResults": false,
"ExcludePaidPremiums": false,
"IncludePayments": false,
"AllowNegativeCSVInOptimizer": false,
"UsePurchaseDateForValueDate": false,
"CashflowBucketingType": "EndOfMonth",
"FloorPolicyValuesAtZero": false,
"NPVCap": 0.0
},
"PerPolicyFees": null,
"PortfolioFees": null,
"CarrierSettings": {
"NDBCollectionLag": 2,
"NDBCollectionLagRate": null,
"ApplyNDBCollectionLagInterest": false,
"UsePreviousMonthNDB": false
},
"ImprovementSettings": {
"MNSRate": 0.0,
"MSRate": 0.0,
"MARate": 0.0,
"FNSRate": 0.0,
"FSRate": 0.0,
"FARate": 0.0,
"AgingType": "Regular",
"StartType": "TableStartDate",
"ApplyBeforeMortalityCalculation": true
},
"IRRSettings": {
"IncludeOriginationFee": false,
"IncludeOtherPurchaseCosts": false
},
"LEReportSettings": {
"CalculationType": "Mean",
"SmokingStatusOverride": "NonSmoker",
"ReviewDateBlendingType": "Oldest",
"LongevityBlendingType": "Mortality",
"OverrideDateToPolicyMonthiversary": false,
"SubtractFromLE50": 0.0,
"FallbackToFirstReport": false
},
"LESelectionAndBlendingSettings": null,
"SurvivalCurveSettings": {
"InterpolationType": "PiecewiseConstantQx",
"LongevityType": "Exact",
"JointLifeType": "Frasierized",
"VBTInterpolation": false,
"UseFasanoIfAvailable": false,
"ValueDateShift": "None"
},
"UnderwriterSettings": [
{
"InsuredReference": "example-insured",
"UnderwriterWeightings": [
{
"Weighting": 100.0,
"MortalitySpecifier": "LE50ActuarialMean",
"ApplyImprovementBeforeImpliedMF": false,
"ActuarialTable": "2008 VBT",
"AgeBasis": "ANB"
}
]
}
]
}
Response
The response HTTP status code will be set appropriately. I.e. 400 for a bad request and 200 for a successful request.
json
{
"IsSuccess": true,
"Result": {
"Valuations": [
{
"CaseReference": "example-case",
"ScenarioReference": "S1",
"NPV": 51615.519988105916,
"UsedLE": 35.217906606316333,
"AgedLE": 34.808884227787367,
"ImpliedMortality": 3.0,
"CashFlows": {
"CashWithdrawalCfs": [
0.0,
...
0.0
],
"FeesCfs": [
0.0,
...
0.0
],
"LoanInterestPaymentCfs": [
0.0,
...
0.0
],
"LoanRepaymentCfs": [
0.0,
...
0.0
],
"NDBCfs": [
0.0,
3303.0420754897041,
...
],
"PremiumCfs": [
0.0,
...
0.0
],
"AggregateCfs": [
0.0,
3303.0420754897041,
...
],
"AggregateLoanPaymentCfs": [
0.0,
...
0.0
],
"AggregatePremiumAndLoanPaymentCfs": [
0.0,
...
0.0
]
},
"SurvivalProbabilities": [
1.0,
0.9966969579245103,
...
]
}
],
"BucketSchedule": [
"2023-01-01T00:00:00",
"2023-01-01T00:00:00"
]
}
}
Schema
PortfolioPricingRequestDto
Name | Type | Required |
---|---|---|
ValueDate | string | |
Cases | Array[CaseDto] | Yes |
Scenarios | Array[ScenarioDto] | Yes |
ValuationSettings | ValuationSettingsDto | Yes |
PerPolicyFees | Array[RecurringFeeDto] | |
PortfolioFees | PortfolioFeesDto | |
CarrierSettings | CarrierSettingsDto | |
ImprovementSettings | ImprovementSettingsDto | |
IRRSettings | IRRSettingsDto | |
LEReportSettings | LEReportSettingsDto | |
LESelectionAndBlendingSettings | LESelectionAndBlendingSettingsDto | |
SurvivalCurveSettings | SurvivalCurveSettingsDto | |
UnderwriterSettings | Array[InsuredUnderwriterSettingsDto] |
CaseDto
Name | Type | Required |
---|---|---|
CaseReference | string | Yes |
InsuredLives | Array[InsuredLifeDto] | Yes |
Policy | PolicyDto | Yes |
CaseProjection | CaseProjectionDto | Yes |
PaymentHistory | Array[PaymentDto] | |
Purchase | LifeSettlementDto | |
Disposal | PolicyDisposalDto | |
Maturity | PolicyMaturityDto |
ScenarioDto
Name | Type | Required |
---|---|---|
ScenarioReference | string | Yes |
IRR | number | Yes |
LE50Floor | integer | |
PremiumMultiplier | number | |
LE50RiskBump | RiskBumpDto | |
MortalityRiskBump | RiskBumpDto |
ValuationSettingsDto
Name | Type | Required | Potential Values |
---|---|---|---|
PricingType | string | Yes | Probabilistic |
DeterministicAgedJointLE | |||
DeterministicValueDate | |||
DeterministicIndividualLE | |||
DefaultActuarialTable | ActuarialTableDto | Yes | |
DefaultAgeBasis | string | Yes | ALB |
ANB | |||
DayCountConvention | string | ||
PremiumPaymentShift | PremiumPaymentShiftDto | ||
QxAdjustment | QxAdjustmentDto | ||
CalculateRealizedIRR | boolean | ||
DeterministicBreakevenCalculationType | string | None | |
PurchasePrice | |||
CurrentValuation | |||
PurchasePriceAndCurrentValuation | |||
CalculateDeterministicResults | boolean | ||
ExcludePaidPremiums | boolean | ||
IncludePayments | boolean | ||
AllowNegativeCSVInOptimizer | boolean | ||
UsePurchaseDateForValueDate | boolean | ||
CashflowBucketingType | string | None | |
EndOfMonth | |||
RawCashflows | |||
FloorPolicyValuesAtZero | boolean | ||
NPVCap | number |
RecurringFeeDto
Name | Type | Required | Potential Values |
---|---|---|---|
Amount | number | ||
MinimumAmount | number | ||
Duration | number | ||
Interval | number | ||
Frequency | string | Yes | Monthly |
Annual | |||
Acquisition | |||
Maturity | |||
PaymentType | string | Yes | Fixed |
AcquisitionPrice | |||
NDB | |||
NPV |
PortfolioFeesDto
Name | Type | Required | Potential Values |
---|---|---|---|
Amount | number | ||
Frequency | string | Yes | Monthly |
Quarterly | |||
SemiAnnual | |||
Annual |
CarrierSettingsDto
Name | Type | Required |
---|---|---|
NDBCollectionLag | integer | |
NDBCollectionLagRate | number | |
ApplyNDBCollectionLagInterest | boolean | |
UsePreviousMonthNDB | boolean |
ImprovementSettingsDto
Name | Type | Required | Potential Values |
---|---|---|---|
MNSRate | number | ||
MSRate | number | ||
MARate | number | ||
FNSRate | number | ||
FSRate | number | ||
FARate | number | ||
AgingType | string | Regular | |
BeforeBlending | |||
Straight | |||
RollDown | |||
StartType | string | TableStartDate | |
UnderwritingDate | |||
UnderwritingDateWithExtraYear | |||
ApplyBeforeMortalityCalculation | boolean |
IRRSettingsDto
Name | Type | Required |
---|---|---|
IncludeOriginationFee | boolean | |
IncludeOtherPurchaseCosts | boolean |
LEReportSettingsDto
Name | Type | Required | Potential Values |
---|---|---|---|
CalculationType | string | Mean | |
Median | |||
SmokingStatusOverride | string | NonSmoker | |
Smoker | |||
Aggregate | |||
ReviewDateBlendingType | string | Oldest | |
Newest | |||
Blended | |||
LongevityBlendingType | string | Mortality | |
MeanLE50 | |||
Mqx | |||
Lx | |||
OverrideDateToPolicyMonthiversary | boolean | ||
SubtractFromLE50 | number | ||
FallbackToFirstReport | boolean |
LESelectionAndBlendingSettingsDto
Name | Type | Required |
---|---|---|
Rules | Array[LESelectionAndBlendingRuleDto] | |
PreventUnderwriterReselection | boolean |
SurvivalCurveSettingsDto
Name | Type | Required | Potential Values |
---|---|---|---|
InterpolationType | string | PiecewiseConstantForceOfDeath | |
PiecewiseConstantQx | |||
PiecewiseLinearForceOfDeath | |||
PiecewiseLinearQx | |||
LongevityType | string | Exact | |
ExactWithOneMonthNDBDelay | |||
Monthly | |||
ExactWithFullYearMqx | |||
JointLifeType | string | ShortestLE | |
LongestLE | |||
Frasierized | |||
VBTInterpolation | boolean | ||
UseFasanoIfAvailable | boolean | ||
ValueDateShift | string | None | |
Next | |||
ThisMonth |
InsuredUnderwriterSettingsDto
Name | Type | Required |
---|---|---|
InsuredReference | string | Yes |
UnderwriterWeightings | Array[InsuredUnderwriterWeightingDto] | Yes |
InsuredLifeDto
Name | Type | Required | Potential Values |
---|---|---|---|
InsuredReference | string | ||
Gender | string | M | |
F | |||
DateOfBirth | string | ||
DateOfDeath | string | ||
UnderwriterReports | Array[UnderwriterReportDto] |
PolicyDto
Name | Type | Required | Potential Values |
---|---|---|---|
PolicyType | string | Yes | UniversalLife |
WholeLife | |||
TermLife | |||
Endowment | |||
PolicyDate | string | Yes | |
FaceAmount | number | Yes | |
MaturityAge | integer | ||
MaturityDate | string | ||
CoverageEndAge | integer | ||
CoverageEndDate | string | ||
AgeBasis | string | ALB | |
ANB | |||
ANBm | |||
JointLifePayoutType | string | FirstToDie | |
SecondToDie | |||
CoverageEndPaymentType | string | None | |
NDB | |||
AV | |||
LapseBasis | string | CSV | |
AV | |||
NonGuaranteedCreditingRate | number | ||
SurrenderChargeType | string | Annual | |
MonthlyGraded | |||
AnnualWithDelay | |||
MonthlyGradedWithDelay |
CaseProjectionDto
Name | Type | Required |
---|---|---|
TotalPremiumsPaidAmount | number | |
AccountValueAtCoverageEnd | number | |
Premiums | Array[PremiumProjectionRowDto] | |
NDBs | Array[NDBProjectionRowDto] | Yes |
LoanPayments | Array[LoanPaymentProjectionRowDto] | |
CashWithdrawals | Array[CashWithdrawalProjectionRowDto] |
PaymentDto
Name | Type | Required | Potential Values |
---|---|---|---|
PaymentType | string | Yes | Premium Fee |
LoanDrawdown | |||
LoanRepayment | |||
CashWithdrawal | |||
PaymentDate | string | Yes |
LifeSettlementDto
Name | Type | Required |
---|---|---|
PurchaseDate | string | Yes |
PurchaseCost | number | Yes |
OriginationFee | number | |
PurchaseOtherCosts | number | |
RetainedDeathBenefit | RetainedDeathBenefitDto | |
RetainedDeathBenefitSchedule | Array[Row] |
PolicyDisposalDto
Name | Type | Required | Potential Values |
---|---|---|---|
DisposalDate | string | Yes | |
DisposalType | string | Sold | |
Surrendered | |||
Lapsed | |||
Expired | |||
DisposalAmount | number | Yes | |
PremiumReimbursement | number |
PolicyMaturityDto
Name | Type | Required |
---|---|---|
PaymentDate | string | |
NDB | number | Yes |
Interest | number | |
ReturnOfPremium | number | |
OtherAmount | number |
RiskBumpDto
Name | Type | Required |
---|---|---|
Add | number | |
Multiply | number | |
Expression | string |
PremiumPaymentShiftDto
Name | Type | Required | Potential Values |
---|---|---|---|
ShiftType | string | Yes | Following |
Preceding | |||
Next | |||
Previous | |||
DayOfMonth | integer |
QxAdjustmentDto
Name | Type | Required |
---|---|---|
Months | integer | Yes |
Addition | number | |
Multiplication | number | |
Expression | string |
LESelectionAndBlendingRuleDto
Name | Type | Required | Potential Values |
---|---|---|---|
SelectionType | string | MostRecent | |
ShortestMeanLE50 | |||
LongestMeanLE50 | |||
MostRecentOnOrBeforeValueDate | |||
MostRecentBeforeSpecifiedDate | |||
MostRecentAfterSpecifiedDate | |||
ShortestMedianLE50 | |||
LongestMedianLE50 | |||
HighestMortality | |||
LowestMortality | |||
ShortestMeanLE50StraightAged | |||
LongestMeanLE50StraightAged | |||
SelectionDate | string | ||
Underwriter | string | UserDefined | |
TWENTY_FIRST | |||
AUS | |||
ELEVATION | |||
AVS | |||
PREDICTIVE_RESOURCES | |||
LSI | |||
FOCUS | |||
CONVERGENCE | |||
EMSI | |||
FASANO | |||
LAPETUS | |||
ISC | |||
GLOBAL_LIFE | |||
POLARIS | |||
MortalitySpecifierSelectors | Array[string] | ||
BlendWeighting | number | ||
ApplyImprovementBeforeImpliedMF | boolean | ||
ActuarialTable | ActuarialTableDto | ||
AgeBasis | string | ALB | |
ANB |
InsuredUnderwriterWeightingDto
Name | Type | Required | Potential Values |
---|---|---|---|
Weighting | number | ||
MortalitySpecifier | string | LE50ActuarialMean | |
Median | |||
Mortality | |||
FullCurve | |||
ApplyImprovementBeforeImpliedMF | boolean | ||
ActuarialTable | ActuarialTableDto | ||
AgeBasis | string | ALB | |
ANB |
UnderwriterReportDto
Name | Type | Required | Potential Values |
---|---|---|---|
Underwriter | string | AUS | |
AVS | |||
CONVERGENCE | |||
ELEVATION | |||
EMSI | |||
FASANO | |||
FOCUS | |||
GLOBAL_LIFE | |||
ISC | |||
LAPETUS | |||
LSI | |||
PREDICTIVE_RESOURCES | |||
POLARIS | |||
TWENTY_FIRST | |||
UserDefined | |||
ReportDate | string | Yes | |
SmokingStatus | string | NonSmoker | |
Smoke | |||
Aggregate | |||
Mortality | number | ||
MeanLE50 | number | ||
MedianLE50 | number | ||
LE85 | number | ||
AnnualDeaths | Array[number] |
PremiumProjectionRowDto
Name | Type | Required |
---|---|---|
Date | string | Yes |
Amount | number | Yes |
NDBProjectionRowDto
Name | Type | Required |
---|---|---|
Date | string | Yes |
Amount | number | Yes |
LoanPaymentProjectionRowDto
Name | Type | Required |
---|---|---|
Date | string | Yes |
Principal | number | |
Interest | number |
CashWithdrawalProjectionRowDto
Name | Type | Required |
---|---|---|
Date | string | Yes |
GrossPaymentAmount | number | |
SurrenderCharge | number | |
NetPaymentAmount | number |
RetainedDeathBenefitDto
Name | Type | Required |
---|---|---|
Amount | number | |
Percentage | number |
Row
Name | Type | Required |
---|---|---|
Date | string | Yes |
Amount | number | |
Percentage | number |