Calculate the Downside Capture Ratio of an investment portfolio or asset’s returns.

The Downside Capture Ratio measures how well an investment portfolio or asset performs relative to a benchmark during periods in which the benchmark’s return is negative. A ratio below 1 (or 100%) indicates the asset lost less than the benchmark during those periods.

The formula is as follows:

\[\text{Downside Capture Ratio} = \text{Geometric Average Return in Down Periods} / \text{Geometric Average Benchmark Return in Down Periods}\] \[\text{Geometric Average Return} = (\operatorname{PRODUCT}(1 + \text{Return})) ^{1 / n} - 1\]

Where the down periods are the observations (days within each period) with a negative benchmark return and n is their number, following Morningstar’s definition. As with the Upside Capture Ratio, both ratios are computed from the daily returns within each period, while fund factsheets usually use monthly returns over three to five years.

Downside Capture Ratio in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_downside_capture_ratio as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["XLU", "SPLV", "ARKK"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2021-01-01",
    end_date="2025-12-31",
)

toolkit.performance.get_downside_capture_ratio()

Or, after setting up the Finance Toolkit MCP, ask:

How much of the S&P 500's losses on its down days did XLU, SPLV and ARKK capture in each year from 2021 to 2025?

Which returns:

Date XLU SPLV ARKK
2021 0.3911 0.5358 2.0537
2022 0.4698 0.4991 2.5005
2023 0.7024 0.6177 2.3265
2024 0.2051 0.3127 2.5483
2025 0.3459 0.3223 2.0919

Parameters

get_downside_capture_ratio accepts the following parameters.

ParameterTypeDescriptionExample
periodstrThe period to use for the calculation. Defaults to “quarterly” if the Toolkit is initialised with quarterly=True, otherwise “yearly”."quarterly"
roundingint | NoneThe number of decimals to round the results to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise).2
growthboolWhether to calculate the growth of the ratios. Defaults to False.True
lagint | list[int]The lag to use for the growth calculation. Defaults to 1.4
standardizeboolWhether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False.True
Share