Playbook › Playbook
Flat margins during share loss mean the damage is ahead, not that the moat held
Claim
analysis_notes.md §2 sets the quantitative moat test as "ROIC trend and gross-profit-margin
trend over time. Rising/stable high ROIC = a real moat throwing off returns. Margin compression =
moat erosion."
Run literally, that test passes a company in the middle of losing its franchise, because it is a one-variable test on a two-variable problem.
An incumbent facing a credible new entrant has exactly two responses:
| Response | Volume | Margin | What the moat test sees |
|---|---|---|---|
| Cut price to defend share | holds | falls | ✅ correctly flags erosion |
| Hold price and cede share | falls | holds | ❌ reads as an intact moat |
The second row is the trap. It is also the default corporate response, because cutting price is irreversible, visibly damages the P&L this quarter, and admits the competitor is real.
Evidence — ZTS, 2026-08-05
| Q1 2025 | Q1 2026 | |
|---|---|---|
| Gross margin | 71.9% | 71.7% |
| Operating margin | 36.9% | 36.3% |
| ROIC (annual, 2022→2025) | 18.8% → 23.1% (rising) | |
| US companion animal revenue | — | −11% |
| Total organic revenue growth | — | 0% |
On margin and ROIC alone, Zoetis passes the §2 test outright — ROIC rose over the period. Yet in the same quarter it lost 11% of its highest-margin revenue line to Elanco's Zenrelia, Befrena and Credelio Quattro, with generic oclacitinib still to arrive.
The 20bp of gross-margin decline is not evidence the moat held. It is evidence the price war has not started. Management's own Q1 language — "price has played a larger role in the decision process" — signals the move to row 1 is coming.
Why this matters for valuation, not just for scoring
The error is not academic; it propagates straight into the fair-value range. If margin is read as intact, the forward earnings base looks safe and the only question is the multiple. Reading the pair correctly reframes it: the earnings base itself is the uncertain variable, which widens the fair-value range and lowers the weight on any multiple-based scenario.
On ZTS this was the difference between "cheap quality" and "cheap, with the largest risk still unpriced." Sizing it: at 71.7% gross margin on ~$9.5B of revenue, 100bp of gross margin ≈ $95M of operating income ≈ 3.5% of net income. A retreat from 71.7% to the mid-60s — ordinary when a monopoly becomes a duopoly against a generic — is a ~20% earnings event that no margin-trend screen would have flagged in advance.
How to apply
- Never score the moat on margin alone. Always pull the volume/unit/organic-growth series alongside it and read them as a pair.
- Diagnostic: margin flat and volume falling → the company is ceding share. Ask "how long can they hold price?", not "is the moat intact?"
- Write the fork explicitly into the report. Name both branches (cede volume / cut price) and state that neither is benign. A moat section that reports "margins stable" without the fork is incomplete.
- Set the tripwire on margin, not on revenue. Revenue decline is the lagging confirmation that price was held; the first gross-margin break below the historical band is the signal that the company switched branches. On ZTS the tripwire was set at gross margin <70%.
- Applies symmetrically to the bull case. A company whose margin holds and whose volume holds is genuinely defending. The pair is the signal; either alone is noise.
What would falsify this
An incumbent that holds both price and volume through a credible entrant's launch — which would mean the entrant is not credible, or the market is expanding fast enough to absorb both. Zoetis management explicitly ruled the second out: "competition has not yet translated into overall market expansion" while "the derm market has declining patient volume in the clinic."
Related
- [[pattern-shortage-pricing-masks-share-loss]] — the same failure with the price variable doing the masking instead of the margin variable. These two are siblings.
- [[principle-story-vs-revenue]] · [[pattern-buyback-manufactured-eps-screens-as-growth]]
- [[pitfall-gate-cleared-by-adjective-not-arithmetic]]