EnableYourData.com

KPI · Finance

Return on assets (ROA): formula and example.

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.

Return on assets (ROA) formula

Net profit ÷ average total assets × 100%, where average total assets = (opening + closing total assets) ÷ 2

Worked example

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.

How to read this KPI

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.

Pitfalls with return on assets (ROA)

  • Not stating whether you use net profit or operating profit; the results differ considerably.
  • Using total assets on a single date when the balance sheet grew or shrank considerably during the year.
  • Comparing a business that leases its premises with one that owns them, without allowing for the difference in total assets.

SQL & DAX

Calculating return on assets (ROA) in SQL and 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.

SQL · PostgreSQL
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;
DAX · Power BI
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

Tracking this KPI in ENABLE

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.

Read more →

In your Power BI dashboard

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.

Read more →

Custom dashboards (pilot)

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.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate return on assets?

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.

Should ROA use net profit or operating profit?

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.

What is the difference between ROA and ROE?

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.

Use AI on your own data. Securely, and without the headache.

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.