HomeFinance › Payback Period Calculator

Payback Period Calculator

Computes how long an investment takes to recover its initial outlay from a list of periodic cash flows or a constant annual cash flow, both undiscounted (simple payback) and discounted at a given rate (discounted payback), interpolating within the recovery period.

When to use

You want a quick liquidity/risk measure of a project: the years until cumulative cash inflows equal the initial investment.

Do not use when: You need the value created over the whole life (use npv) or the rate of return (use irr); payback ignores cash flows after recovery.

Formula

Simple: payback = (k − 1) + (initial_investment − cumulative_{k−1}) / CF_k, where k is the first period with cumulative ≥ initial_investment. Discounted: same with CF_t / (1 + r)^t. Constant flow: payback = initial_investment / annual_cash_flow.

Cash flows arrive at the end of each period but the fractional part assumes they accrue evenly within the recovery period. Payback ignores cash flows after recovery and (in the simple form) the time value of money.

Inputs

ParameterTypeUnitRequiredDescription
initial_investmentnumberyesOutlay at time 0, entered as a positive number. Range: > 0, ≤ 1000000000000000
cash_flowsnumber_listnoNet cash inflow at the end of each period; takes precedence over annual_cash_flow.
annual_cash_flownumbernoUsed with `years` when cash_flows is omitted. Range: > 0, ≤ 1000000000000000
yearsintegeryearsdefault 20Length of the constant cash-flow series (ignored when cash_flows is given). Range: ≥ 1, ≤ 60
discount_rate_percentnumber% per perioddefault 0Rate for the discounted payback; 0 skips it. Range: ≥ 0, ≤ 100

Outputs

OutputTypeUnitDescription
payback_period_yearsnumberperiodsPeriods until cumulative undiscounted cash flow reaches the investment, interpolated within the final period.
payback_timestringpayback_period_years expressed in years and months.
discounted_payback_period_yearsnumberperiodsSame using cash flows discounted at discount_rate_percent (only when the rate is > 0).
payback_reachedbooleanFalse when the cash flows never add up to the investment.
cumulative_cash_flowsnumber_listRunning total of undiscounted cash flows after each period.
total_cash_flowsnumberΣ cash flows over the series.

Example

10,000 then 3,000, 4,000, 5,000, 2,000 at 8 %: {"initial_investment":10000,"cash_flows":[3000,4000,5000,2000],"discount_rate_percent":8}{"payback_period_years":2.6,"payback_time":"2 years 7 months","discounted_payback_period_years":2.96,"payback_reached":true,"cumulative_cash_flows":[3000,7000,12000,14000],"total_cash_flows":14000}

50,000 with 12,000 per year for 10 years at 10 %: {"initial_investment":50000,"annual_cash_flow":12000,"years":10,"discount_rate_percent":10}{"payback_period_years":4.17,"discounted_payback_period_years":5.67,"payback_reached":true}

GET https://tttkmbb.com/api/v1/calculate/payback-period?initial_investment=10000&cash_flows=3000%2C4000%2C5000%2C2000&discount_rate_percent=8

Machine access

Sources

FAQ

Why is the discounted payback longer?

Discounting shrinks later cash flows, so it takes more of them to add up to the investment: 2.96 instead of 2.6 years in the example at 8 %.

What if the investment is never recovered?

payback_reached is false and the payback outputs are omitted; the cumulative list shows how far the cash flows get.

Related calculators