Percent Accruals
Calculate the percent accruals of Hafzalla, Lundholm and Van Winkle (2011): the accruals, the part of the net income that is not received in cash, as a share of the net income itself.
Sloan (1996) scaled the accruals by total assets, which mostly sorts companies by the size of their earnings changes. Hafzalla, Lundholm and Van Winkle scale them by the absolute net income instead, which measures how much of the earnings consists of accruals: the companies whose earnings are mostly accruals earn markedly lower returns afterwards, and the companies with the most negative percent accruals (cash flows well above earnings) higher returns, a larger spread than that of the accruals scaled by total assets. With a loss, a positive value still means the accruals make the loss smaller than the cash flow would.
The formula is as follows:
\[\text{Percent Accruals} = (\text{Net Income} - \text{Cash Flow from Operations}) / | \text{Net Income} |\]The paper takes the income before extraordinary items, which is the net income here. A net income of zero gives NaN. It is an annual measure, so with quarterly data the flows are those of the trailing twelve months by default.
Also known as: percent operating accruals, PctAcc, accruals to earnings.
Percent Accruals in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_percent_accruals as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["AAPL", "MSFT", "KO", "XOM"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.ratios.get_percent_accruals()
Or, after setting up the Finance Toolkit MCP, ask:
How large were the accruals of Apple, Microsoft, Coca-Cola and ExxonMobil relative to their net income from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| AAPL | -0.0988 | -0.2239 | -0.1397 | -0.2616 | 0.0047 |
| KO | -0.2921 | -0.1547 | -0.0826 | 0.3599 | 0.4348 |
| MSFT | -0.2525 | -0.2241 | -0.2103 | -0.3451 | -0.3371 |
| XOM | -1.0889 | -0.3778 | -0.5376 | -0.6337 | -0.8018 |
Parameters
get_percent_accruals 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 the net income and cash flow from operations over. Defaults to None, which uses the trailing twelve months (4 quarters) with quarterly data and single years with annual data. | 4 |