Owner earnings calculator
The Buffett floor: value a stock as a multiple of the cash a 100%-owner could pull out each year without impairing operations — net income plus depreciation, less maintenance capex. The "cash-owner floor" lens, a deliberate cross-check against the forward DCFs rather than an intrinsic anchor.
Owner earnings is a floor for many growth companies. Because growth capex is excluded by design, it can understate value when reinvestment is deliberate and returns are high. Above 15% five-year growth the model flags is_floor_value and drops reliability — read it as the no-growth floor, never as intrinsic value.
Owner earnings · Mature compounderrequired for archetype
Five-year growth of 8% is at or below the 15% threshold, so owner earnings is a reasonable cash-yield read and reliability holds at the clean 0.75. The wide 15–50× envelope still signals this is a cross-check, not a precision anchor.
Net income → owner earnings → per share
Owner EPS $11.73 × [15, 25, 40, 50]
No usable LLM policy supplied — most mature businesses spend ~70% of total capex on maintenance, so the kernel falls back to the disclosed 70%-of-capex default.
A current-state cash-yield model, not a forward DCF — there are no growth or discount-rate inputs. Owner earnings is most useful triangulated against the intrinsic DCFs: if all three roughly agree and owner earnings sits well below price, the stock is cheap even in the no-growth case.
Every step, derived
- maint_capex = |capex| 5000 × 0.7 = 3500.0 (fallback.owner_earnings — disclosed default)
- owner_earnings = NI 21000 + |D&A| 4200 − maint_capex 3500.0 = 21700.0
- note: SBC is NOT subtracted — net income already deducts it. Dilution is tracked via share-count growth.
- owner_eps = owner_earnings 21700.0 / shares 1850 = 11.730
- values = owner_eps × [15, 25, 40, 50] = [175.95, 293.24, 469.19, 586.49]
- low = 15× = 175.95 · mid = avg(25×, 40×) = 381.22 · high = 50× = 586.49
- is_floor_value = (5Y growth 8% > 15%) = false · reliability = 0.75
One stable kernel contract, same as the reports
Reference the model by its stable id owner_earnings, not the display label. The dedicated page, the all-model workbook, and the report pipeline all hit the same endpoint and reconcile to the same fair value.
| Slug | /en/tools/owner-earnings-calculator |
| Kernel model id | owner_earnings · role cross_check |
| Valuation lens | Buffett owner earnings × 15–50× multiple envelope · cash-owner floor |
| Primary input | Net income + D&A + total capex + shares (revenue optional) |
| Run endpoint | POST /api/v1/valuation-calculators/run · model_id: "owner_earnings" |
| Sensitivity | POST /api/v1/valuation-calculators/sensitivity · multiple × maint_capex_pct grid |
| Response contract | result.status (computed / excluded / failed) + result.fairValue (low / mid / high) + is_floor_value + maintenance_capex_policy + reliability |
This surface is stateless. The same kernel powers the per-stock reports, so the fair value here reconciles exactly with the report's owner_earnings output for the same inputs. Owner earnings is most useful as a sanity floor against the forward-looking intrinsic DCFs: discounted earnings and FCFF DCF. If those intrinsic anchors roughly agree and owner earnings sits well below the current price, the stock is undervalued even in the conservative no-growth scenario.