Simple Exec Input Document

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.

The model is designed with default values for the majority of possible inputs. As such, it is entirely acceptable to provide only the information you are gathering for execution. Therefore a minimalistic example might look like this:

{
	"data": [{
		"id": "af5efe77-fb84-4faa-99c0-0631e86a91cb",
		"type": "profile",
		"attributes": {
			"tag": "minimal inputs",
			"strategy": {
				"strategies": [
					[],
					[
						{
							"productId": 1,
							"allocation": 0.1
						}
					]
				]
			},
			"primary": {
				"age": 55,
				"retirementage": 65,
				"gender": "Male"
			},
			"portfolio": [{
				"categorization": {
					"income": true,
					"type": "Tax-Advantaged Pre-Tax Account"
				},
				"cashflows": {
					"type": "savings",
					"amount": 1200000
				}
			},
			{
				"categorization": {
					"income": false,
					"type": "Basic Living Expenses"
				},
				"cashflows": {
					"type": "parameterized",
					"amount": 46000,
					"timeSteps": 120
				}
			}]
		}
	}]
}

The response for the above input document would appear as follows. Note that there are only two scores for the two strategies, the first of which has no guaranteed income:

{
	"data": [
		{
			"id": "93b0a90e-69cd-4c62-bb47-b6eb818e0b2a",
			"type": "incomesecurityscores",
			"attributes": [
				{
					"score": 693,
					"summary": "Your RISE of 693 represents your retirement security given your current portfolio without any insurance.",
					"description": "Your RISE of 693 is based on your client’s current portfolio, projected savings’ contributions, income sources, and expenses, without inclusion of any guaranteed income products. Your client’s overall savings portfolio is invested in 100% Equity/Growth and 0% Fixed Income Securities, based on your previous entries. An annual fund fee of 100bps has been assumed on that portfolio, which may differ from your client’s actual portfolio fund fees.",
					"products": [],
					"risk": {
						"inflationRisk": 10,
						"longevityRisk": 5,
						"marketRisk": 2
					},
					"details": {
						"largeCap": 60,
						"_largeCap": 60,
						"smallMidCap": 40,
						"_smallMidCap": 40,
						"developedIntlEquities": 0,
						"_developedIntlEquities": 0,
						"emergingMarketEquities": 0,
						"_emergingMarketEquities": 0,
						"usBonds": 0,
						"_usBonds": 0,
						"VAGLWB": 0,
						"_VAGLWB": 0,
						"DIA": 0,
						"_DIA": 0
					},
					"ages": {
						"primaryAge": 55,
						"secondaryAge": 0,
						"primaryRetirement": 65,
						"secondaryRetirement": 0,
						"primaryYearRetirement": 10,
						"secondaryYearRetirement": 0,
						"primaryLifeExpectancy": 88,
						"secondaryLifeExpectancy": 0
					},
					"stats": {
						"CTE0": 94,
						"CTE90": 66,
						"range": 12,
						"averageReturn": 0.04,
						"averageInflation": 0.0273
					}
				},
				{
					"score": 705,
					"summary": "Your RISE of 705 represents your retirement security given your current portfolio with a Variable Annuity with Guaranteed Lifetime Withdrawal Benefit.",
					"description": "Your RISE of 705 is based on your client’s current portfolio, projected savings’ contributions, income sources, and expenses, with a 10% allocation to a generic Variable Annuity with Guaranteed Lifetime Withdrawal Benefit beginning at retirement. At issue age, your client’s savings portfolio is reduced to 90% of the overall portfolio, and invested in 90% Equity/Growth and 10% Fixed Income Securities. An annual fund fee of 100bps is assumed on that remaining portfolio, which may differ from your client’s actual portfolio fund fees.",
					"products": [
						{
							"productId": 1,
							"allocation": 0.1
						}
					],
					"risk": {
						"inflationRisk": 10,
						"longevityRisk": 5,
						"marketRisk": 2
					},
					"details": {
						"largeCap": 60,
						"_largeCap": 54,
						"smallMidCap": 40,
						"_smallMidCap": 36,
						"developedIntlEquities": 0,
						"_developedIntlEquities": 0,
						"emergingMarketEquities": 0,
						"_emergingMarketEquities": 0,
						"usBonds": 0,
						"_usBonds": 0,
						"VAGLWB": 0,
						"_VAGLWB": 10,
						"DIA": 0,
						"_DIA": 0
					},
					"ages": {
						"primaryAge": 55,
						"secondaryAge": 0,
						"primaryRetirement": 65,
						"secondaryRetirement": 0,
						"primaryYearRetirement": 10,
						"secondaryYearRetirement": 0,
						"primaryLifeExpectancy": 88,
						"secondaryLifeExpectancy": 0
					},
					"stats": {
						"CTE0": 95,
						"CTE90": 69,
						"range": 12,
						"averageReturn": 0.04,
						"averageInflation": 0.0273
					}
				}
			]
		}
	],
	"meta": {
		"copyright": "Copyright 2019 Milliman Financial Risk Management LLC",
		"version": "1.0.0.0"
	}
}