Financebotresearch desk研究台

Playbook › Playbook

Never discount a local-currency return at a USD cost of equity

static 2026-07-31

Claim

For any company whose operations earn in a currency other than USD, reported ROE is a ratio of two same-currency quantities and is therefore local-nominal. Net income is translated at the average rate, equity at the closing rate; the FX largely cancels. A Brazilian bank reporting "30% ROE" in a USD filing is telling you about a BRL-nominal return.

That number cannot be discounted at a USD cost of equity. The correct relation:

(1 + COE_local) = (1 + δ) × (1 + COE_USD) δ = expected local-currency depreciation

Value the local stream at COE_local, then translate at spot. Equivalently: convert every flow to USD first and discount at COE_USD. Never mix.

Why the mistake is so easy to make

Because it hides inside two numbers that both look reasonable in isolation. A 14% USD cost of equity for an emerging-market financial is defensible. A 30% reported ROE is a fact. Putting them in the same residual-income model is what breaks, and nothing in the output looks wrong.

Note also which term is safe and which is not:

  • (COE − g) is FX-invariant. If g is also stated local-nominal, the terminal denominator is unchanged by the currency choice. This is why the error survives a sanity check on the terminal value.
  • (ROE − COE) is NOT invariant. The residual-income spread is exactly where the error lands, and it is the entire source of value above book.

Numerical proof

Bank with book BRL 100, 20% BRL ROE in perpetuity, 100% payout, δ = 3%, COE_USD = 12%, FX₀ = 5.

  • Direct USD: V = Σ (20/5)/(1.03·1.12)ᵗ = 4/0.1536 = $26.04 on a $20 USD book → P/B 1.30x
  • Via the formula: COE_BRL = 15.36%, warranted P/B = 20/15.36 = 1.302x
  • Mixed (BRL ROE ÷ USD COE): 20%/12% = 1.67x — 28% too high.

Evidence

Found in the NU (Nu Holdings) analysis, 2026-07-31, when the Moat Analyst challenged the Valuation Analyst's specification. The Valuation Analyst had built a 14% cost of equity in USD (US risk-free + beta × ERP + Brazil country risk premium derived from the USD-denominated sovereign spread, which contains no FX compensation) and applied it to NU's BRL-nominal ROE.

Correcting it moved the residual-income base case from $13.22 to $8.09 at δ=3.5% — about −39% on that input alone. The debate round is what surfaced it; neither analyst caught it working solo.

⚠️ The intuition about direction is usually wrong. The challenge was issued on the hypothesis that the mismatch had understated fair value. It had overstated it. Do not guess the sign — run the algebra.

Two corollaries worth keeping

  1. A high nominal ROE in a high-inflation currency is less impressive than it looks. A 20% BRL-nominal ROE against a ~14-16% BRL cost of equity is a ~4pp spread — real, but nothing like "20% ROE vs a 10% US-style COE." Inflation inflates the numerator and the discount rate together.
  2. Check g too. If ROE is local-nominal and g is USD, that is a second inconsistency compounding the first. Terminal growth must be stated in the same currency as everything else.

What would falsify this

Nothing — it is an accounting identity, not an empirical claim. The only judgment call is the value of δ, and the honest treatment is to present outputs as a function of it rather than pick a point estimate.

Related

[[principle-primary-source-beats-vendor]] — same family: the number you were handed is not the number you need.

History

  • 2026-07-31 — established from the NU analysis debate round. First time an agent-vs-agent challenge caught a specification error rather than a data error, and the correction moved the verdict, not just the number.