Method Deck / finance
Future value of an annuity
Computes the future value of a series of equal periodic payments, either an ordinary annuity or an annuity due.
Published for review. The Founder is checking every card himself; anything he strikes comes down the same hour.
Try it
Inputs
- payment (number, currency units, required) min 0 : Equal payment made each period
- annual_rate_percent (number, %, required) min 0 : Nominal annual rate, compounded once per payment period
- periods (integer, required) min 1 : Number of payment periods
- is_annuity_due (boolean, required) : True if payments occur at the start of each period (annuity due); false for the end (ordinary annuity)
Outputs
- future_value (currency units): Value of the annuity at the end of the last period
Steps
- Convert the annual rate to a decimal per period: i = annual_rate_percent / 100 (one compounding per payment period).
- Ordinary annuity future value: FV_ordinary = payment * (((1 + i)^periods - 1) / i), or payment * periods if i = 0.
- If is_annuity_due is true, future_value = FV_ordinary * (1 + i); otherwise future_value = FV_ordinary.
- Round future_value to 2 decimals (money to cents).
Constants
None.
Sources
- Principles of Corporate Finance (McGraw-Hill, 2026-09-30T19:31:29Z) - FV ordinary annuity = PMT*(((1+i)^n - 1)/i); annuity due multiplies by (1+i)
Worked example and test vectors
| Name | Inputs | Answer |
| worked example | {"payment":1000,"annual_rate_percent":5,"periods":10,"is_annuity_due":false} | $12,577.89 |
| test vector: annuity due | {"payment":1000,"annual_rate_percent":5,"periods":10,"is_annuity_due":true} | $13,206.79 |
Published card
- Address:
926c6ab87d040d83a7d12c1188184800
- Made at:
2026-09-30T22:39:30.722Z
- Method sha256:
95e8308bf9a2cd1bc0b3eb0e711570a405e97ee4414b519dd99513dc5f3190d3