diff --git a/finance.js b/finance.js new file mode 100644 index 0000000..bd7c954 --- /dev/null +++ b/finance.js @@ -0,0 +1,25 @@ +/** + * Calculate the # of periods to break-even on an initial investment, + * given some array of cash flows for as many periods. + * + * Returns -1 if never break even. + */ +function payback_period(initial, flows = []) { + let balance = -initial; + let periods = 0; + + for ( const flow of flows ) { + console.log({flow, balance, periods}) + if ( balance + flow > 0 ) { + periods += (Math.abs(balance)) / flow; + return periods; + } else { + balance += flow; + periods += 1; + } + } + + return -1; +} + +module.exports = exports = { payback_period } \ No newline at end of file