Playbook › Playbook
Never discount a local-currency return at a USD cost of equity
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.04on 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
- 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.
- 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.