Skip to content
Finance & Accounting · Investment appraisal

How do I calculate NPV when the cash flows are different every year?

  • Expert answer
  • Undergraduate
  • Asked

The question

My corporate finance assignment gives a project costing £100,000 with cash inflows of £30,000, £40,000, £50,000 and £20,000 over four years. The required return is 10%.

Every example in my notes uses an annuity with the same cash flow each year, so I do not know how to handle it when they change. Do I still use one formula?

Short answer

Discount each year's cash flow separately using 1 / (1 + r)^t, add the present values together, then subtract the initial investment. For this project the NPV is about £11,557, so it should be accepted at a 10% required return.

Full expert answer

Corporate finance tutor

MSc Accounting and Finance, ACCA

The annuity formula is a shortcut that only works when every cash flow is identical. When they differ, you go back to first principles and discount each year on its own. It is more arithmetic, not a different idea.

Step 1: find the discount factor for each year

The discount factor for year t is 1 / (1 + r)^t. At 10% that gives 0.9091 for year 1, 0.8264 for year 2, 0.7513 for year 3 and 0.6830 for year 4.

Step 2: discount each cash flow

  • Year 1: £30,000 × 0.9091 = £27,273
  • Year 2: £40,000 × 0.8264 = £33,058
  • Year 3: £50,000 × 0.7513 = £37,566
  • Year 4: £20,000 × 0.6830 = £13,660

Step 3: add them up and subtract the investment

The present values total £111,557. Subtract the £100,000 paid today, which is not discounted because it happens at time zero, and the NPV is roughly £11,557.

This answer explains a method for you to apply to your own work. Copying it into a submission would count as plagiarism, and it is indexed by similarity checkers.

All questions

Still stuck

Send the brief and get an honest answer

A subject expert will read it, price it, and tell you straight away if the deadline is not realistic.

  • Fixed quote in about 30 minutes
  • No payment until you accept
  • Confidential by default
Chat now