Discretionary Cash Flow to Debt
Calculate the discretionary cash flow (DCF) to debt ratio, a supplementary ratio of S&P Global Ratings: the cash flow left after capital expenditure, dividends and share buybacks as a share of the debt.
Where FFO to debt (get_funds_from_operations_to_debt_ratio) measures the cash flow before the company’s spending choices, DCF to debt measures what is left after them, and so what could actually go to repaying debt. A negative value means the company spends more on investment and shareholders than its operations bring in, and funds the difference with cash or new debt.
The formula is as follows:
\[\text{DCF} = \text{Cash Flow from Operations} - | \text{Capital Expenditure} | - | \text{Dividends Paid} | - | \text{Common Stock Purchased} |\] \[\text{DCF to Debt} = \text{DCF} / \text{Total Debt}\]Capital expenditure, dividends and buybacks are reported as negative cash outflows, so their magnitudes are deducted. The dividends are those on common and preferred stock; S&P also deducts dividends to minority shareholders, which the statements do not separate. The debt is the reported total debt at the end of the period. DCF to debt is an annual measure, so with quarterly data the flows are those of the trailing twelve months by default. A total debt of zero or less gives NaN.
Also known as: DCF/debt, discretionary cash flow to debt.
Discretionary Cash Flow to Debt in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_discretionary_cash_flow_to_debt_ratio as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["T", "UNP", "HSY"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.ratios.get_discretionary_cash_flow_to_debt_ratio()
Or, after setting up the Finance Toolkit MCP, ask:
What discretionary cash flow, after capital expenditure and dividends, did AT&T, Union Pacific and Hershey have relative to their debt from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| HSY | 0.0824 | 0.1259 | 0.0777 | 0.0636 | 0.1229 |
| T | 0.0519 | 0.0107 | 0.0783 | 0.0716 | 0.0269 |
| UNP | -0.1269 | -0.1058 | 0.0262 | 0.0362 | -0.0131 |
Parameters
get_discretionary_cash_flow_to_debt_ratio 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 flows over; the total debt stays that at the end of the last period. Defaults to None, which uses the trailing twelve months (4 quarters) with quarterly data and single years with annual data. | 4 |