How to calculate Return on Equity (ROE)

Return on equity measures how much profit a company earns for each unit of shareholders' equity.

Formula

ROE = net income ÷ average shareholders' equity

SQL query

This example assumes: annual_financials(year int, net_income numeric, shareholders_equity numeric). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.

SELECT year,
       net_income,
       net_income / NULLIF((shareholders_equity + LAG(shareholders_equity) OVER (ORDER BY year)) / 2, 0) AS roe
FROM annual_financials
ORDER BY year;

Common mistakes that make Return on Equity (ROE) wrong

  • Using year-end equity instead of the average overstates or understates ROE when equity changes a lot.
  • Negative equity makes the ratio meaningless even though it can be calculated.
  • Buybacks shrink equity and can raise ROE without any improvement in profit.

Ask for Return on Equity (ROE) in plain English

Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.

  • What was our return on equity for each year?
  • How did net income and equity change year over year?

Frequently asked questions

What is Return on Equity (ROE)?
Return on equity measures how much profit a company earns for each unit of shareholders' equity.
How do you calculate Return on Equity (ROE)?
ROE = net income ÷ average shareholders' equity. The SQL example on this page shows the same calculation against a simple table.
What commonly goes wrong when calculating Return on Equity (ROE)?
Using year-end equity instead of the average overstates or understates ROE when equity changes a lot.