Skip to content

DuPont Decomposition

Return on equity is the most-watched single-line summary of capital efficiency, but it obscures more than it reveals. A company can expand ROE by becoming more profitable, by sweating its asset base harder, or by adding financial leverage — and these have very different implications for durability. DuPont decomposition unwraps the number into its driving components so that each lever can be studied separately.

ROE: the three-factor decomposition

The classic three-factor identity expresses ROE as the product of net margin, asset turnover, and the equity multiplier:

ROE=Net IncomeRevenueNet Margin×RevenueAvg AssetsAsset Turnover×Avg AssetsAvg EquityEquity Multiplier

The identity holds exactly: Revenue and Assets cancel when the three fractions are multiplied out, leaving Net Income / Avg Equity — the definition of ROE.

Reading the three factors:

  • Net Margin — how many cents of profit survive each dollar of sales. Pricing power, cost discipline, and tax efficiency all flow here.
  • Asset Turnover — how many dollars of revenue each dollar of assets generates. Asset-light businesses (software, consulting) score high; capital-intensive ones (utilities, semiconductors) score low.
  • Equity Multiplier — assets per dollar of equity, i.e., one plus the debt-to-equity ratio. High multipliers amplify both profits and losses; leverage-driven ROE expansions are structurally fragile.

EqtyTrk surfaces ROE alongside its two independently computable components — net margin and total asset turnover — in the DuPont card. The equity multiplier is derived from the other two and the headline ROE.

ROIC: a leverage-neutral view

ROE rewards leverage mechanically, which makes it hard to compare a balance-sheet-light company against a leveraged one. Return on invested capital strips out financing choices:

ROIC=NOPATAvg Invested Capital

Where:

NOPAT=Operating Income×(1τ)Invested Capital=Long-Term Debt+EquityCash

NOPAT uses operating income (EBIT) as the pre-tax proxy so that the numerator is independent of the capital structure. EqtyTrk applies a statutory tax rate of τ=0.21 (the U.S. federal corporate rate introduced by the Tax Cuts and Jobs Act). Invested capital uses the ending long-term debt, equity, and cash from the balance sheet, averaged across the current and prior fiscal year ends.

The ROIC formula implies a two-factor decomposition:

ROIC=NOPATRevenueNOPAT Margin×RevenueAvg Invested CapitalCapital Turnover

Both factors are available as standalone metrics. Together they identify whether ROIC strength comes from margin (pricing and cost) or from capital velocity (lean asset management).

The lever tree

Combining both framings produces a lever tree:

ROE
├── Net Margin         (income quality)
│   └── Gross Margin   (pricing power)
│   └── EBITDA Margin  (operating efficiency)
├── Asset Turnover     (balance-sheet productivity)
└── Equity Multiplier  (financial leverage)

ROIC (leverage-neutral parallel)
├── NOPAT Margin       (operating + tax efficiency)
└── Capital Turnover   (invested-capital velocity)

The DuPont card in the Attribution view presents roe, net_margin, and total_asset_turnover as the headline levers (income levers), and roic, roa, and roce as the returns-on-capital levers (balance levers).

Peer context

Lever values in isolation say little. EqtyTrk computes each lever for the subject company and for every peer in the selected peer set, then shows the subject value alongside the peer-set median and top quartile. The gap between subject and peer median reveals which levers are below industry norms and therefore the highest-potential improvement opportunities.

Limitations

  • Single fiscal year. The DuPont snapshot uses the latest completed fiscal year. Margin and turnover can shift significantly intra-year for seasonal businesses; cyclical companies should be assessed over a full cycle.
  • DEFAULT_TAX_RATE = 0.21. EqtyTrk uses the U.S. statutory rate as a universal default. Foreign-domiciled companies, companies with significant deferred-tax assets, and companies that benefited from tax-loss carryforwards may have effective rates far from 21%. The resulting NOPAT, and thus ROIC, will be over- or understated for those companies.
  • Negative equity. When average equity is negative (common in heavily leveraged or share-repurchase-heavy companies), the ROE formula produces a result that is arithmetically correct but directionally misleading. ROIC, which uses invested capital rather than book equity, is the more informative metric in these cases.
  • Invested capital with no cash. The formula subtracts cash from invested capital as an approximation of "operational" capital. For financial-sector companies, cash is an operating asset, not idle float; ROIC will be overstated for banks, brokers, and insurers.

Implementation notes

  • roe(), roa(), roic(), net_margin(), total_asset_turnover() in src/eqtytrk/metrics/ratios.py
  • DEFAULT_TAX_RATE = Decimal("0.21") defined at module level in the same file
  • roic() averages invested capital over the current and prior FY end using _prior_fy_end("equity", ...) as the anchor; the prior-year lookup allows a ±60-day window
  • DuPontResponse schema and /v1/companies/{ticker}/attribution endpoint in src/eqtytrk/api/routers/companies.py
  • Frontend rendering: frontend/src/components/AttributionView.tsx

EqtyTrk methodology reference. Data from SEC EDGAR.