| All Verbs | /calculator/projectedReturns |
|---|
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| PortfolioReturn | query | double | No | |
| PortfolioStandardDeviation | query | double | No | |
| YearsToGoal | query | int | No | |
| InitialInvestment | query | double | No | |
| AnnualInvestment | query | double | No | |
| AnnualInvestmentGrowthRate | query | double | No | |
| ExpectedInflationRate | query | double | No | |
| ZScore | query | double | No | |
| CurrentAge | query | int | No | |
| EffectiveFee | query | decimal | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| RequestObject | form | CalculateProjectedReturns | No | |
| MedianDiscreteReturns | form | List<ProjectedReturnSeriesData> | No | |
| OptimisticDiscreteReturns | form | List<ProjectedReturnSeriesData> | No | |
| PessimisticDiscreteReturns | form | List<ProjectedReturnSeriesData> | No | |
| MedianProjectedBalances | form | List<ProjectedReturnSeriesData> | No | |
| OptimisticProjectedBalances | form | List<ProjectedReturnSeriesData> | No | |
| PessimisticProjectedBalances | form | List<ProjectedReturnSeriesData> | No | |
| OptimisticProjectedBalances2 | form | List<ProjectedReturnSeriesData> | No | |
| PessimisticProjectedBalances2 | form | List<ProjectedReturnSeriesData> | No | |
| OptimisticProjectedBalances3 | form | List<ProjectedReturnSeriesData> | No | |
| PessimisticProjectedBalances3 | form | List<ProjectedReturnSeriesData> | No | |
| Cashflows | form | List<CashFlow> | No | |
| AgeRunOutOfMoney | form | string | No | |
| PessimisticAgeRunOutOfMoney | form | int | No | |
| OptimisticAgeRunOutOfMoney | form | int | No | |
| Status | form | string | No | |
| BalanceAtLifeExpectancy | form | double | No | |
| CurrentAge | form | int | No | |
| PessimisticBalanceAtLifeExpectancy | form | double | No | |
| OptimisticBalanceAtLifeExpectancy | form | double | No | |
| TargetProjectedBalances | form | List<ProjectedReturnSeriesData> | No | |
| AgeTargetIncomeNotMet | form | string | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| PortfolioReturn | form | double | No | |
| PortfolioStandardDeviation | form | double | No | |
| YearsToGoal | form | int | No | |
| InitialInvestment | form | double | No | |
| AnnualInvestment | form | double | No | |
| AnnualInvestmentGrowthRate | form | double | No | |
| ExpectedInflationRate | form | double | No | |
| ZScore | form | double | No | |
| CurrentAge | form | int | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Value | form | double | No | |
| Year | form | int | No | |
| Income | form | double | No | |
| TargetIncome | form | double | No |
| Name | Parameter | Data Type | Required | Description |
|---|---|---|---|---|
| Value | form | double | No | |
| Year | form | int | No | |
| Type | form | string | No | |
| Scenario | form | string | No |
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /calculator/projectedReturns HTTP/1.1
Host: api.portfoliolink.co.za
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
portfolioReturn: 0,
portfolioStandardDeviation: 0,
yearsToGoal: 0,
initialInvestment: 0,
annualInvestment: 0,
annualInvestmentGrowthRate: 0,
expectedInflationRate: 0,
zScore: 0,
currentAge: 0,
effectiveFee: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
requestObject:
{
portfolioReturn: 0,
portfolioStandardDeviation: 0,
yearsToGoal: 0,
initialInvestment: 0,
annualInvestment: 0,
annualInvestmentGrowthRate: 0,
expectedInflationRate: 0,
zScore: 0,
currentAge: 0
},
medianDiscreteReturns:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
optimisticDiscreteReturns:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
pessimisticDiscreteReturns:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
medianProjectedBalances:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
optimisticProjectedBalances:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
pessimisticProjectedBalances:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
optimisticProjectedBalances2:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
pessimisticProjectedBalances2:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
optimisticProjectedBalances3:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
pessimisticProjectedBalances3:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
cashflows:
[
{
value: 0,
year: 0,
type: String,
scenario: String
}
],
ageRunOutOfMoney: String,
pessimisticAgeRunOutOfMoney: 0,
optimisticAgeRunOutOfMoney: 0,
status: String,
balanceAtLifeExpectancy: 0,
currentAge: 0,
pessimisticBalanceAtLifeExpectancy: 0,
optimisticBalanceAtLifeExpectancy: 0,
targetProjectedBalances:
[
{
value: 0,
year: 0,
income: 0,
targetIncome: 0
}
],
ageTargetIncomeNotMet: String
}