Calculate the degree of operating leverage (DOL), the percentage change in operating income for each percentage change in revenue.

Operating leverage comes from fixed operating costs: when revenue rises, the fixed costs stay the same, so operating income rises faster, and the reverse when revenue falls. A DOL of 3 means that a 1% change in revenue went with a 3% change in operating income. Companies with high fixed costs (airlines, manufacturers, software with high development costs) have a high DOL, which makes their earnings more sensitive to the business cycle (business risk).

The formula is as follows:

\[\text{DOL} = \%\Delta \;\text{Operating Income} / \%\Delta \;\text{Revenue}\]

The changes are period over period with annual data and year over year with quarterly data (a quarter against the same quarter a year earlier), so seasonality does not enter. Each change is (Value - Previous Value) / |Previous Value|, so a change from a negative base keeps its sign. The ratio is unstable when the denominator barely changes: a small change in it gives a very large degree, and no change gives NaN.

Also known as: DOL, operating leverage, operating gearing.

Degree of Operating Leverage (DOL) in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_degree_of_operating_leverage as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(
    ["AAPL", "F", "DAL"],
    api_key="FINANCIAL_MODELING_PREP_KEY",
    start_date="2021-01-01",
    end_date="2025-12-31",
)

toolkit.ratios.get_degree_of_operating_leverage()

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

What was the degree of operating leverage of Apple, Ford and Delta Air Lines from 2021 to 2025?

Which returns:

  2021 2022 2023 2024 2025
AAPL 1.935 1.2352 1.5355 3.8574 1.2421
DAL 1.5371 1.3605 3.4421 1.3863 -1.0336
F 29.0263 1.7165 -1.4021 -1.0535 -40.905

Parameters

get_degree_of_operating_leverage accepts the following parameters.

ParameterTypeDescriptionExample
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
compoundboolWhether the growth is the compound annual growth rate over the lag (e.g. lag=5 for the five-year CAGR) instead of the total change. Defaults to False.False
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
trailingintThe number of periods to sum the flows over before their changes are compared, e.g. 4 with quarterly data compares trailing twelve months with those a year earlier. Defaults to None, which uses single-period flows.4
Share