Exec Endpoint

The web service will initially expose an endpoint for model invocation at a URL of the form:

Note that web service requests to the exec endpoint should use the POST HTTP/S method, with the data payload populated with a JSON expression of the inputs. The client request should assign a MIME content-type of application/json to the POST, and ensure the same MIME type is included in the Accept header. As an example, a simple post via ajax might look like:

$('#postResults').click(function () {
    $.ajax({
        type: "post",
        headers: {
            "Authorization": "bearer " + $("#token").val()
        },
        dataType: "json",
        contentType: 'application/json',
        url: "http://chicrise1.cloudapp.net/frmws/ism/v1/exec",
        data: $("#postjson").val(), // Put your json document here
        success: function (value) {
            // Do Something with the json response (this just prints it to text box)
            $('#resultsbox').val(JSON.stringify(value, null, '\t'));
        }
    });
 });

Request

Inputs for the web service (and ultimately for the income security score model) are described in the table below. Note that the JSON example provided in the final section conveys the overall structure of the input payload – this table is meant to detail the individual data points, complete with data type, allowable values, defaults, etc. Note also that all parent objects other than data/id and data/type reside under the “attributes” parent. This was excluded for brevity.

Parent Object Name Description Data Type Required Allowable Values Default Value
data id Unique identifier for the entire request String Yes N/A N/A
data type The type of request. String Yes “profile” N/A
tag Tag Free–form field used only for demo web site referencing. String No Any string Name of Primary account holder
strategy socialsecurity An override for the taxable amount for social security. If omitted, default tax rates apply. Name, Attributes, Allocation No   0.85
strategy tax An override for the tax rates applied. Can be a single value, or an array of annual rates. If omitted, default tax rates apply. Decimal[] No 0 – 1.00 Included in Model
strategy state An override for the state in which taxes apply. If omitted, default tax rates apply. String No   Profile State
strategy / strategy1 [] productId Reference to deferred income product. Integer No 1 = “VA”, 2 = “DIA”, N/A
strategy / strategy1 [] allocation Percentage to allocate to the given deferred income product. Decimal No 0 – 1.00 Strategy1 = No deferred income; Strategy 2 = 10% VA; Strategy 3 = 10% DIA
strategy / strategy1 [] issueAge Age of issue. Integer No 50 - 85 65
strategy / strategy1 [] withdrawalAge Age at which withdrawals start. Integer No 65 – 85 65
strategy / strategy1 [] equityAllocation For VA’s only: Percentage of underyling funds invested in equities. Decimal No 0 – 1.00 0.6
strategy / strategy1 [] bondAllocation For VA’s only: Percentage of underyling funds in bonds. Decimal No 0 – 1.00 0.4
strategy / strategy1 [] fundFees For VA’s only: Management fees on underyling funds as a percentage. Decimal No 0 – 1.00 0.01
strategy / strategy1 [] meCharge For VA’s only: Maintenance and expense charge as a percentage. Decimal No 0 – 1.00 0.003
strategy / strategy1 [] riderCharge For VA’s only: Rider charges as a percentage. Decimal No 0 – 1.00 0.0085
strategy / strategy1 [] riderChargeBasis For VA’s only: Rider charge basis – account value or bonus base. Integer No 0 = Account Value; 1 = Bonus Base 1
strategy / strategy1 [] withdrawalRate For VA’s only: Expected rate of withdrawal. Decimal No 0 – 1.00 0.05
strategy / strategy1 [] ratchet For VA’s only: Flag for whether or not a ratchet is in place. Boolean No True or False TRUE
strategy / strategy1 [] bonusPeriod For VA’s only: Years of bonus period. Integer No 0 -120 0
strategy / strategy1 [] bonusPercentage For VA’s only: Bonus percentage. Decimal No 0 – 1.00 0
strategy / strategy1 [] bonusType For VA’s only: Type of bonus (simple or compound). Integer No 0 = Simple, 1 = Compounded 1
strategy / strategy2 [] Repeat properties listed under strategy 1          
strategy / strategy3 [] Repeat properties listed under for strategy 1          
primary age The current age of the policy holder. Integer Yes 0 – 120 N/A
primary retirementage The planned retirement age of the policy holder. Integer Yes 0 – 120 N/A
primary gender Gender of the policy holder. String Yes “male” or “female” N/A
secondary age The current age of the policy holder. Integer No 0 – 120 N/A
secondary retirementage The planned retirement age of the policy holder. Integer No 0 – 120 N/A
secondary gender Gender of the policy holder. String No “male” or “female” N/A
portfolio*/ categorization income Income or expense indicator (true for income, false for expense) Boolean Yes true or false N/A
portfolio*/ categorization type The type of income or expense “account”. String Yes Goals, Social Security, Other Retirement Income, Investment Assets - Employer Retirement Plans, Investment Assets – Individual Retirement Accounts, Investment Assets – Annuities & Tax-Deferred Products, Investment Assets - Taxable and/or Tax-free Accounts, Other Assets - Pension and Deferred Compensation, Other Assets - Future Assets – Cash N/A
portfolio*/ categorization subtype A subtype of the income or expense type, as necessary. String No 457, 401K, 403b, Account, Additional Savings Amount, Alimony, Annuity Income, Basic Needs, Death Benefit, Deferred Compensation (Future), Deferred Compensation (Receiving Now), Employee Contributions, Employer Contributions, Fixed Annuity , Gift, Health care, Indexed Annuity, Inheritance, Living Expenses, Lump Sum Distribution, Money Purchase, Other Employer, Other Future Assets, Other Income, Other Irrevocable Trust Income, Other Qualified, Other Tax-Deferred, Part-time Employment, Pension Income, Profit Sharing, Rental Property Income, Retirement - Basic Living Expense, Reverse Mortgage, Roth IRA - Account, Roth IRA - Fixed Annuity, Roth IRA - Inherited IRA, Roth IRA - Variable Annuity, Roth IRA - Variable Annuity with GMWB, Royalties, SARSEP-IRA, Settlement/Award, Simple-IRA, Social Security Benefit, Traditional IRA - Account, Traditional IRA - Fixed Annuity, Traditional IRA - Inherited IRA, Traditional IRA - SEPP IRA - 72t, Traditional IRA - Variable Annuity, Traditional IRA - Variable Annuity with GMWB, Variable Annuity, Variable Annuity with GMWB  
portfolio*/ categorization useForPurchase Optional override to pro-rata allocation to specify how much of this particular account should be used to buy guaranteed income products. Decimal No 0 – 1.0 0
portfolio/ cashflows ** type A text-based declaration of the explicit or parameterized (or specialized) cash flows to be used (see UML diagram below). This can be omitted and inferred from the categorization type and subtype. String No Explicit, Parameterized, livingExpense, healthCare, additionalSavings, pension, royalties, annuity, retirementIncome, lumpSumDistribution, deferredCompensation, cash N/A
portfolio/ cashflows ** timeStep Frequency treatment for cash flow generation. EndOfPlan denotes a value payable only at death, which in turn requires “ownership” to be set. String No Daily, Weekly, Monthly, Quarterly, Annual Annual
portfolio/ cashflows ** startTime The starting point, offset from time 0 (current age) for cash flow generation. Integer No 0 - 1000  
portfolio/ cashflows ** itemKey An external identifier for the type of account, predominately used for tax treatment purposes. (The external identifier will be mapped internally.) String No TBD. N/A
portfolio/ cashflows ** ownership Specifies who “owns” the cashflow. If omitted, assumed to be “joint”. String No primary, secondary, joint joint
             
If cashflow type = explicit** vector An array of fully expressed cash flows assumed to begin at startTime and conform in interval to the frequency specifier. Decimal[] No Negative (i.e. expenses, such as basic living expenses) or positive (i.e. income, such as social security). N/A
             
If cashflow type = “savings” amount The starting amount of the savings “account”. Decimal Yes > 0 N/A
If cashflow type = “savings” growthRate The rate of income growth to apply at each time step. If this is populated, then scenario-based account value projection will not apply. Decimal No 0 – 1.00 0
If cashflow type = “savings” contributions Additional contributions to the account over time. cashflow No Nested cashflow object; all cashflow specifications apply, but an “explicit” or “parameterized” cash flow is expected. N/A
If cashflow type = “savings” inclinationToSave TBD. Decimal No 0 – 1.00 0
If cashflow type = “savings” portfolio*/ allocation**/ assetclass Asset class associated with a particular account allocation. String No Cash & Cash Alternatives, Short Term Bonds, Intermediate Term Bonds, Long Term Bonds, Large Cap Value Stocks, Large Cap Growth Stocks, Mid Cap Stocks, Small Cap Stocks, International Developed Stocks, International Emerging Stocks, Any other additional asset classes TBD with PIEtech and clients N/A
portfolio*/ allocation** portfolio*/ allocation**/ Weight The target allocation of the asset class, expressed visually as a percent, but within the web service as a decimal. Decimal no 0.00 – 1.00 N/A
             
If cashflow type = “parameterized” amount The starting amount of the income or expense “account”. Decimal Yes > 0 N/A
If cashflow type = “parameterized” timeSteps The time step horizon for cash flow generation. Integer Yes 0 - 120 N/A
If cashflow type = “parameterized” inflationRate The rate of inflation to apply at each time step. “default” will apply a default fixed rate, “scenario” will apply scenario-based inflation rates. Decimal or String No 0 – 1.00, “default”, or “scenario” N/A
If cashflow type = “parameterized” inflationSpread The rate of spread above ‘inflationRate’ to apply at each time step, often used in conjunction with default or scenario-based inflation. Decimal No -1.00 to 1.00 N/A
If cashflow type = “parameterized” growthRate The rate of income growth to apply at each time step. If this is populated, then ‘inflationRate’ and ‘inflationSpread’ will not apply. Decimal No 0 – 1.00 0
If cashflow type = “parameterized” taxFree Tax-free indicator. Boolean No true or false FALSE
If cashflow type = “livingExpense” residencyChangeAtRetirement Indicator or whether or a residency change will occur at retirement. Boolean No true or false FALSE
If cashflow type = “livingExpense” survivalRatio The ratio of expenses that continue after death. Decimal No 0 – 1.00 1
If cashflow type = “healthCare” increase TBC Decimal No    
If cashflow type = deathBenefit payEndOfPlan DB indicator. (Pays only upon death.) Boolean No true or false N/A
If cashflow type = pension, royalties, or annuity jointLife Joint-life cash flow indicator. Boolean No true or false N/A
If cashflow type = pension or annuity benefitAfterSpouseDies Reduction to joint-life benefit after spouse dies. Decimal No 0 – 1.00 N/A
If cashflow type = lumpSumDistribution, deferredCompensation, deathBenefit, or cash payToSpouse Primary client or spouse indicator. Boolean No true or false N/A
If cashflow type = pension socialsecurityReduction Reduction to social security benefit indicator. Boolean No true or false N/A
If cashflow type = annuity exclusionRatio Portion of annuity benefit that is tax-free. Decimal No 0 – 1.00 N/A
If cashflow type = annuity incomeGuarantee Type of income guarantee. String No Period Certain, Lifetime Only, Installment Refund, Cash Refund N/A
If cashflow type = lumpSumDistribution pretax Pre or post tax indicator Boolean No true or false N/A

* The portfolio object is an array and can contain any number of income or expense accounts, where the individual categorization, allocation and cash flows for each income/expense account conform to the semantics described in the table above.

** The allocation object is a sub-array within the portfolio accounts and can contain any number of allocations, where the individual allocation and fees conform to the semantics described in the table above. Note that while the number of allocations is not prescribed, the sum of the weights, however, must equal unity (1.0). The allocation array is optional.

*** The cashflows object is designed to inform the RISE model with respect to cash flow generation. The cashflows object reflects the UML diagram listed below, and therefore contains many sub-types, each of which may require different elements to be present in the JSON document. The structure will be validated accordingly, but note that this document is a work-in-progress and some specialized cash flow items remain to be documented in the table above.

**** The majority of cash flows will be in objects other than ‘explicit’. Further, the majority of cash flows are expected to be basic ‘parameterized’ representations.

Response

Outputs for the web service (derived from the income security score model) are described in the table below. Note that the JSON example provided in the last section of this document conveys the overall structure of the output payload – this table is meant to detail the individual data points, complete with data type, allowable values, defaults, etc.

Parent Object Name Description Data Type Required Allowable Values Default Value
data id Pass-through of the ID assigned to the corresponding request, allowing for instance tracking (if desired). String Yes N/A N/A
Data Type The type of response. String Yes “rise result” N/A
data / attributes* score The RISE score for the product. Decimal Yes 0 – 100.0 N/A
data / attributes* summary Text-based summary of the chosen strategy.        
data / attributes* description Test-based detailed description of the chosen strategy.        
data / attributes / products** productId The id of the product in question (references product list available from the below get methods). Integer Yes N/A N/A
data / attributes / products** allocation The aggregate allocation of portfolio assigned to the product as part of the chosen strategy. Decimal Yes 0 – 100.0 N/A
data / attributes / risk inflationRisk Percentage impact of inflation risk on the given profile and strategy. Decimal Yes 0 – 100.0 N/A
data / attributes / risk longevityRisk Percentage impact of longevity risk on the given profile and strategy. Decimal Yes 0 – 100.0 N/A
data / attributes / risk marketRisk Percentage impact of market risk on the given profile and strategy. Decimal Yes 0 – 100.0 N/A
meta copyright Static copyright text. String Yes N/A N/A
meta version The current version of the RISE web service. String Yes [Major].[Minor].[Revision].[Build] N/A

* The attributes object is an array and may convey income security scores for any number of product/allocation combinations.

** The products object is an array under attributes – there can be multiple products and allocations associated with a single score.