NPV Function
NPV (Net Present Value) is a formula function in Weissr cash-flow models. It tells you what a series of future yearly cash flows is worth today, using a discount rate you choose. NPV works in every model in both Capex Strategy and Capex Management, and you write it the same way you would in Excel.
What the NPV function does
NPV discounts each yearly value in a range back to today and adds the results together.
Each year column counts as one year.
The first year in the range is discounted one full year. Excel's NPV function works the same way.
📌 Note: NPV uses the rate you give it. It does not discount at WACC (Weighted Average Cost of Capital) or adjust for inflation on its own. To discount at WACC, point the rate to a row whose formula is
=SYS_WACC.
How to write an NPV formula
=NPV(rate; range)
Part | What to enter | Example |
|---|---|---|
| Every formula starts with an equals sign. | |
| The discount rate, as a percentage, a decimal, or a single cell. |
|
| The cells holding the cash flows, in one row, from the first year to the last. |
|
Separate the rate and the range with a semicolon (
;).8%and0.08give the same result. Typing8means a rate of 800%.You can see your formula in the grid and in the Formula builder side panel.
⚠️ Warning: NPV only uses the first range. Anything you add after it is ignored. To discount several rows, add separate NPV functions together, for example
=NPV($M3;$M5:P5)+NPV($M3;$M8:P8).
How the result is calculated
Each cash flow is divided by (1 + rate), raised to its position in the range. The first year in the range is always position 1.
Example: at a rate of 10%, three yearly cash flows of 100 give:
Year in range | Cash flow | Divided by | Present value |
|---|---|---|---|
1 | 100 | 1.10 | 90.91 |
2 | 100 | 1.21 | 82.64 |
3 | 100 | 1.331 | 75.13 |
NPV | 248.69 |
Choosing the years in the range
Each year in the grid is shown with its column letter, for example 2026 (M). The first year column is always M. A $ before a column letter locks that end of the range to the start or end year of a period.
In the examples below, the rate is in row 3, the cash flows are in row 5, and Period 1 runs from column M to column V.
What you want | How to write it (in column P) | What each year shows |
|---|---|---|
Value development over time |
| The NPV from the first year up to that year. The last year shows the NPV of the whole period. |
One total for the period |
| The same number every year, the NPV of the whole period. |
Remaining value |
| The NPV of the cash flows still to come. |
Start year and end year functions
A locked column (with $) must be the first or last year of a period. To point to a period's start or end explicitly, use SY (start year) or EY (end year):
SY(cell; period) EY(cell; period)
The cell gives the row and the year. Its column picks the year.
The period is the period number, from 1 to 4. It is optional. If you leave it out, the period that the formula itself is in is used.
For example, EY(AB5;4) points to row 5 at the end year of period 4.
NPV in Capex Management requests
A request's cash-flow model usually has a Value Development row with an NPV formula, for example =NPV(10%;$N5:P5). The last year of that row is the request's value development figure. The NPV, pre-decision and NPV, post-decision charts on the request dashboard show this figure.
📌 Note: The profitability index is calculated separately. It discounts the whole model at the WACC of the organisational node.
Ending the range at the last year of the request
The length of a Capex Management model varies from request to request, because it follows each request's analysis period. Period 4 is the last period, and it is the one whose length changes. To make the range always end at the request's last year, end it with EY and period 4:
=NPV(10%;$N5:EY(AB5;4))
EYmeans end year.AB5is the cash-flow cell in the last year column of the model. Row 5 is the row to discount.4is the period number, the last period.
Every request then discounts up to its own last year, whether its analysis period is short or long.
💡 Tip: Use the cell in the last year column inside
EY. If you pick an earlier column, the range ends that many years before the end of period 4 in every request.
Related functions
Function | How to write it | What it does |
|---|---|---|
IRR |
| Finds the rate at which the NPV of the range is zero. |
MIRR |
| Modified IRR, using separate rates for financing and reinvestment. |
SYS_WACC |
| Returns the WACC, to use as the NPV rate. |
Troubleshooting
What you see | What to check |
|---|---|
The formula is rejected | The rate must be one value or one cell. The range must be included. Comparisons such as |
"The chosen column … is not at the beginning or end of a period" | A locked column (with |
"Range param refers to unavailable source" | The range points to a row that no longer exists. |
The result is 0 | The range starts after it ends, or the cells in the range are empty. |