trinity-sim

0.4.0 • Public • Published

trinity-sim

Build Status

trinity-sim lets you run your own permutations on the classic Trinity Study.

Documentation


singleSim(options)

Runs a single simulation line.

Parameters

options: Object, Options object which contains the options necessary for simulation.

options.startingValue: Number, Starting portfolio value. Required.

options.startingYear: Number, Starting year for the simulation. Must be between 1914 and 2015. Required.

options.durationYears: Number, Duration of the simulation in years. Required.

options.allocation: Object, Object which contains the allocations for the starting value. All values must add up to 1.

options.allocation.equities: Number, Ratio of equities.

options.allocation.bonds: Number, Ratio of bonds. Defaults to 1-equities.

options.fees: Number, Fees on investments per year. Required.

options.spendingModel: Array.<Number> | Number, Spending model for the simulation. Required. If it is a list of yearly spending, it must be an array at least as large as the durationYears property. Each index says how much money is spent per year. If it is a number, that will be the spending per year, adjusted with inflation.

options.rebalance: Boolean, Whether to rebalance allocation annually. Defaults to false.

Returns: SingleSimReturn, result - Result of the sim. result.data: Array.<Object>, Array of objects containing adjustedNet, adjustedSharesBalance, and adjustedBondsBalance properties.

simulate(options)

Runs the entire simulation with multiple simulation lines starting in different years.

Parameters

options: Object, Options object which contains the options necessary for simulation.

options.startingValue: Number, Starting portfolio value. Required.

options.durationYears: Number, Duration of the simulation in years. Required.

options.allocation: Object, Object which contains the allocations for the starting value. All values must add up to 1.

options.allocation.equities: Number, Ratio of equities.

options.allocation.bonds: Number, Ratio of bonds. Defaults to 1-equities.

options.fees: Number, Fees on investments per year. Required.

options.spendingModel: Array.<Number> | Number, Spending model for the simulation. Required. If it is a list of yearly spending, it must be an array at least as large as the durationYears property. Each index says how much money is spent per year. If it is a number, that will be the spending per year, adjusted with inflation.

options.rebalance: Boolean, Whether to rebalance allocation annually. Defaults to false.

Returns: SimulationReturn, result - Result of the sim. result.successRate: Number, Number between 0 and 1 representing the proportion of cycles which succeeded. result.data: Array.<Array.<Object>>, Array of arrays of objects, each one containing adjustedNet, adjustedSharesBalance, and adjustedBondsBalance properties.


Sources

Data for archive.js is taken from Robert Shiller's book "Irrational Exuberance".

Specifically, data can be found here:

sp500: http://www.multpl.com/s-p-500-historical-prices/table/by-year

dividend: http://www.multpl.com/s-p-500-dividend-yield/table

cpi: http://www.multpl.com/cpi/table

treasuryrate: http://www.multpl.com/10-year-treasury-rate/table/by-year

Readme

Keywords

Package Sidebar

Install

npm i trinity-sim

Weekly Downloads

3

Version

0.4.0

License

MIT

Last publish

Collaborators

  • cakenggt