Plain-language questions
Ask for return on assets (ROA) per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
KPI · Finance
Return on assets (ROA) is net profit divided by average total assets. It shows how much return a business earns on everything it owns, whether that is financed with equity or debt. Some analysts use operating profit instead of net profit, which gives a higher figure, so always check which version is used.
Net profit ÷ average total assets × 100%, where average total assets = (opening + closing total assets) ÷ 2
Acme Groothandel made a net profit of €450,000 in 2025. Total assets were €4,000,000 at the start of the year and €5,000,000 at the end, an average of €4,500,000. ROA is €450,000 ÷ €4,500,000 × 100% = 10%. Using operating profit of €720,000 instead gives €720,000 ÷ €4,500,000 × 100% = 16%.
Fictitious figures for Acme Groothandel, a sample wholesaler.
A higher ROA means the assets generate more profit. Businesses with a lot of stock, buildings or machinery have larger balance sheets and therefore a lower ROA than service companies with the same profit. Compare it mainly with previous years and with businesses that have a similar model, and read it alongside return on equity.
SQL & DAX
Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.
WITH profit AS (
SELECT SUM(CASE WHEN account_group = 'revenue' THEN amount ELSE -amount END) AS net_profit
FROM gl_entries
WHERE account_group IN ('revenue', 'cogs', 'personnel', 'other_opex', 'depreciation', 'interest', 'tax')
AND entry_date > current_date - interval '12 months'
), assets AS (
SELECT SUM(amount) FILTER (WHERE entry_date <= current_date) AS assets_now,
SUM(amount) FILTER (WHERE entry_date <= current_date - interval '12 months') AS assets_prev
FROM gl_entries
WHERE account_group IN ('cash', 'receivables', 'inventory', 'other_current_assets', 'fixed_assets')
)
SELECT profit.net_profit,
(assets.assets_now + assets.assets_prev) / 2 AS avg_total_assets,
ROUND(100.0 * profit.net_profit / NULLIF((assets.assets_now + assets.assets_prev) / 2, 0), 1) AS roa_pct
FROM profit, assets;Total Assets =
CALCULATE(SUM(GL[Amount]), GL[AccountGroup] IN {"cash", "receivables", "inventory", "other_current_assets", "fixed_assets"},
FILTER(ALL('Date'), 'Date'[Date] <= MAX('Date'[Date])))
ROA % =
VAR NetProfit = CALCULATE(SUM(GL[Amount]), GL[AccountGroup] = "revenue")
- CALCULATE(SUM(GL[Amount]), GL[AccountGroup] IN {"cogs", "personnel", "other_opex", "depreciation", "interest", "tax"})
VAR AssetsStart = CALCULATE([Total Assets], DATEADD('Date'[Date], -1, YEAR))
RETURN DIVIDE(NetProfit, (AssetsStart + [Total Assets]) / 2)In ENABLE
Ask for return on assets (ROA) per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.
Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.
Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.
With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.
FAQ
Divide net profit by average total assets and multiply by 100%. With €450,000 of net profit and average total assets of €4,500,000, ROA is 10%. Average total assets is the opening plus closing balance sheet total, divided by two.
Both are used, so always state which one you choose. Net profit is the most common version of ROA. Operating profit before interest is useful when you compare businesses with different financing, because interest on debt is then not deducted.
ROA measures the return on all assets, ROE the return on equity only. As long as the return on assets exceeds the interest rate on debt, ROE is higher than ROA. That gap is the effect of financial leverage.
In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.