Calculate the Return of an investment portfolio or asset for a given period based on the daily historical returns.

The period Return is obtained by compounding the daily returns within each period, following the formula:

\[\text{Period Return} = ((1 + \text{Return} 1) \cdot (1 + \text{Return} 2) \cdot ... \cdot (1 + \text{Return} N)) - 1\]

If cumulative is set to True, the period returns are compounded further into a cumulative return over time instead. The cumulative return is always rebased to start at 1 at the beginning of the selected date range.

Also known as: periodic return.

Returns in Python

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_returns as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(["AMZN", "TSLA"], api_key="FINANCIAL_MODELING_PREP_KEY")

toolkit.performance.get_returns(period="yearly")

Which returns:

Date AMZN TSLA Benchmark
2021 0.0236 0.4983 0.2701
2022 -0.496 -0.6503 -0.1949
2023 0.8089 1.0174 0.2429
2024 0.4449 0.6255 0.2339
2025 0.0516 0.1129 0.1638
2026 0.0508 -0.1254 0.0918

Parameters

The function accepts the following parameters:

  • period (str, optional): The data frequency for returns (weekly, monthly, quarterly, or yearly). Defaults to “quarterly” if the Toolkit is initialized with quarterly=True, otherwise “yearly”.
  • cumulative (bool, optional): Whether to return the cumulative return over time instead of the discrete return per period. Defaults to False.
  • rounding (int | None, optional): The number of decimals to round the results to. Defaults to 4.
  • growth (bool, optional): Whether to calculate the growth of the Return values over time. Defaults to False.
  • lag (int | list[int], optional): The lag to use for the growth calculation. Defaults to 1.
  • standardize (bool, optional): Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.
Share