Tax Rate Divergence
Calculate the tax rate divergence, which measures the difference between the cash tax rate and the accrual-based effective tax rate.
A persistently positive divergence indicates the company is paying more in cash taxes than it is recognizing as tax expense (e.g. due to the reversal of deferred tax liabilities), while a persistently negative divergence indicates the opposite and can be a quality-of-earnings red flag if it stems from aggressive tax deferral rather than timing differences.
The formula is as follows:
\[\text{Tax Rate Divergence} = \text{Cash Tax Rate} - \text{Effective Tax Rate}\]Because the divergence is the cash tax rate minus the effective tax rate, a year without reported income taxes paid shows a divergence equal to minus the effective tax rate (-0.27 against an effective rate of 0.27), so check get_cash_tax_rate for zeros before reading a large negative value as aggressive tax deferral. The measure is unstable when income before tax is small and NaN when it is zero or negative.
Also known as: cash-accrual tax gap.
Tax Rate Divergence in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_tax_rate_divergence as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["AAPL", "HD", "V"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.ratios.get_tax_rate_divergence()
Or, after setting up the Finance Toolkit MCP, ask:
How far did the cash tax rates of Apple, Home Depot and Visa diverge from their effective tax rates from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| AAPL | 0.0994 | 0.0023 | 0.017 | -0.0295 | 0.1706 |
| HD | 0.0092 | 0.0028 | 0.0121 | -0.0488 | 0.0216 |
| V | -0.0461 | 0.031 | -0.0157 | 0.067 | 0.0167 |
Parameters
get_tax_rate_divergence accepts the following parameters.
| Parameter | Type | Description | Example |
|---|---|---|---|
rounding | int | None | The number of decimals to round the results to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise). | 2 |
growth | bool | Whether to calculate the growth of the ratios. Defaults to False. | True |
lag | int | list[int] | The lag to use for the growth calculation. Defaults to 1. | 4 |
compound | bool | Whether 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 |
standardize | bool | Whether to standardize (Z-Score) the result. When combined with growth=True, standardizes the growth values instead of the raw values. Defaults to False. | True |
trailing | int | The number of periods to sum flows (income and cash flow statement items) over, with balance sheet items averaged over the same number of period ends. E.g. 4 with quarterly data gives the trailing twelve months (TTM) and 3 with annual data a three-year cumulative figure. Defaults to None, which uses single-period flows (per quarter and not annualized with quarterly data). | 4 |