What this calculator does
The Present Value of Uneven Cash Flows Calculator finds today's worth of a series of future cash flows. Each "line" describes a cash flow amount that repeats for a chosen number of consecutive periods, so you can describe both even annuities and irregular streams compactly. It is conceptually equivalent to Excel's NPV() for end-of-period flows, with an annuity-due adjustment for beginning-of-period timing, and it also supports compounding more than once per period.
How to use it
Enter the discount rate per period, how many times interest compounds within one period, whether cash flows occur at the beginning or end of each period, and how many lines you need. For each line, give the number of consecutive periods and the cash flow amount (commas allowed). The tool expands the lines into a chronological stream and discounts every period.
The formula
First convert the nominal per-period rate into an effective per-period rate accounting for compounding m times per period: $$r = \left(1 + \frac{i}{m}\right)^m - 1,$$ where \(i = \text{ratePercent} / 100\). For end-of-period flows, \(\text{PV}[t] = CF[t] / (1 + r)^t\). For beginning-of-period flows (annuity-due), \(\text{PV}[t] = CF[t] / (1 + r)^{t-1}\). The total present value is the sum of all \(\text{PV}[t]\).
Worked example
With rate 4%, \(m = 12\), end-of-period, and three lines (5 periods of 925.00, 5 periods of 725.25, 1 period of 2,500.00), the effective rate is $$r = \left(1 + \frac{0.04}{12}\right)^{12} - 1 \approx 0.0407415$$ (about 4.07415%). Discounting all 11 periods gives a total present value of about $8,359.44.
FAQ
What if the rate is zero? Each discount factor becomes 1, so the present value equals the simple sum of all cash flows.
What does compounding times per period mean? It splits one period into m sub-intervals (e.g. monthly compounding within an annual period), raising the effective per-period rate above the nominal rate.
How do beginning and end timing differ? Beginning-of-period treats each flow as occurring one period earlier, so \(\text{PV}_{\text{beginning}} = \text{PV}_{\text{end}} \times (1 + r)\).