Free Cash Flow Margin
Calculate the free cash flow margin, a profitability ratio that measures the percentage of revenue that is converted into free cash flow.
Unlike the net profit margin, which can be distorted by non-cash accounting items (e.g. depreciation, stock-based compensation, deferred taxes) and by working capital timing, the free cash flow margin reflects the cash a company actually generates, after capital expenditures, for every dollar of revenue. A persistently low or declining free cash flow margin relative to the net profit margin can be a quality-of-earnings warning sign.
The formula is as follows:
\[\text{Free Cash Flow Margin} = \text{Free Cash Flow} / \text{Revenue}\]Free Cash Flow Margin in Python or via the MCP
Install the Finance Toolkit with:
pip install financetoolkit -U
Then call get_free_cash_flow_margin as shown below.
from financetoolkit import Toolkit
toolkit = Toolkit(
["MCO", "SPGI", "MSCI"],
api_key="FINANCIAL_MODELING_PREP_KEY",
start_date="2021-01-01",
end_date="2025-12-31",
)
toolkit.ratios.get_free_cash_flow_margin()
Or, after setting up the Finance Toolkit MCP, ask:
How much of their revenue did Moody's, S&P Global and MSCI convert into free cash flow from 2021 to 2025?
Which returns:
| 2021 | 2022 | 2023 | 2024 | 2025 | |
|---|---|---|---|---|---|
| MCO | 0.3001 | 0.2178 | 0.3178 | 0.3557 | 0.3336 |
| MSCI | 0.4322 | 0.4547 | 0.4528 | 0.5139 | 0.4942 |
| SPGI | 0.4294 | 0.2248 | 0.2854 | 0.3917 | 0.3558 |
Parameters
get_free_cash_flow_margin 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 |