Return Annualization and Deannualization
Install and import#
npm install fintech-algorithmsimport { returnAnnualizationAndDeannualization } from "fintech-algorithms/financial-mathematics-statistics-and-data-foundations/financial-arithmetic-time-value-and-returns/annualization-deannualization";Signature#
returnAnnualizationAndDeannualization(input)Worked example#
verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.
Input#
{
"principal": 1000,
"rate": 0.05,
"periods": 3,
"compoundsPerPeriod": 12,
"futureValue": 1200,
"cashFlows": [-1000, 400, 400, 400],
"startValue": 100,
"endValue": 110,
"returns": [0.1, -0.05, 0.08],
"frequency": 12,
"periodicReturn": 0.01
}Call#
returnAnnualizationAndDeannualization(input)Returns#
object with 2 fields: annualizedReturn, deannualizedReturn
{
"annualizedReturn": 0.12682503013196977,
"deannualizedReturn": 0.010000000000000009
}Diagrams#
Calculation flow#
Return Annualization and Deannualization — four-part map
flowchart LR
A["Name the input"] --> B["Apply: annualized = (1 + HPR)^(1/years) - 1; target period = (1 + annual rate)^(years) - 1"]
B --> C["Check units and boundary"]
C --> D["Explain the output"]
How it works#
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References#
- INVESTOR_RETURN - Annual Return — U.S. Securities and Exchange Commission
- CFA_QM - CFA Institute Quantitative Methods Study Session — CFA Institute
- CFA_TVM - Time Value of Money in Finance — CFA Institute
- Author-derived and synthetic boundary