Loading institutional data...
Loading institutional data...
Held by 518 of 6,047 reporting institutions (97th percentile) — extremely crowded.
Data as of Q2 2026
Loading snapshot...
Loading financials...
Loading valuation...
Loading analysis...
Loading dividends & returns...
Loading capital allocation...
Loading debt & leverage...
Loading performance...
Loading peer comparison...
Loading ownership map...
Loading crowding analysis...
Loading conviction analysis...
Loading buy/sell flow...
Loading ownership trends...
Loading top holders...
Loading top holders...
Total shares institutions bought (green) vs sold (red) each quarter across all holders.
Inferred from quarter-over-quarter change in each fund's 13F position (new stakes count as buys, exits as sells). Not tick-level trades.
Top 40 institutional holders — bubble size is position value, color is the move since last quarter. Hover any holder for detail.
Drag any bubble to rearrange · size = dollar value of the position
Ranked against 13 sector peers with collected financials. Valuation from latest close × latest fiscal-year fundamentals; 13F conviction as of 2026-06-30.
Percentile is “goodness” within the peer set (100 = best). For valuation and leverage that means cheaper / less-levered ranks higher.
| Company | Mkt cap ▼ | P/E | EV/EBITDA | P/S | Rev gr | Gross | Net | ROE | ROIC | Net D/EBITDA | 13F |
|---|---|---|---|---|---|---|---|---|---|---|---|
| DHI | $37.8B | 11.7× | 7.7× | 1.1× | -6.9% | 23.7% | 10.5% | 14.8% | 14.8% | -0.7× | 1,193 |
| PHM | $22.0B | 10.4× | 6.5× | 1.3× | -3.5% | — | 12.8% | 17.1% | 17.0% | -0.6× | 1,012 |
| NVR | $16.0B | 13.7× | — | 1.6× | -1.9% | — | 13.0% | 34.7% | 34.7% | — | 668 |
| TOL | $12.6B | 10.1× | 6.3× | 1.1× | 1.1% | 25.1% | 12.3% | 16.3% | 16.3% | -0.7× | 778 |
| TMHC | $6.7B | 9.3× | — | 0.8× | -0.6% | 23.0% | 9.6% | 12.4% | 9.1% | — | 422 |
| ECG | $6.3B | 31.2× | 22.4× | 1.7× | 31.5% | 12.1% | 5.4% | 32.0% | 22.1% | 1.0× | 518 |
| MHO | $3.4B | 9.1× | 6.5× | 0.8× | -1.9% | 23.0% | 9.1% | 12.7% | 12.7% | 0.0× | 339 |
| GRBK | $2.9B | 9.4× | 7.3× | 1.4× | -1.0% | 31.4% | 15.4% | 16.8% | 14.4% | 0.4× | 319 |
| KBH | $2.8B | 7.4× | — | 0.5× | -10.0% | — | 6.9% | 11.0% | 11.0% | — | 377 |
| CCS | $1.7B | 12.3× | 6.8× | 0.4× | -6.4% | — | 3.6% | 5.7% | 5.7% | -0.5× | 257 |
| LGIH | $1.1B | 15.4× | 33.0× | 0.7× | -22.6% | 20.7% | 4.3% | 3.5% | 1.9% | 19.7× | 244 |
| DFH | $973M | 5.0× | — | 0.2× | -2.9% | — | 5.0% | 15.2% | 7.2% | — | 202 |
| BZH | $891M | 22.0× | — | 0.4× | 1.8% | 14.2% | 1.9% | 3.7% | 2.0% | — | 186 |
| HOV | $693M | 15.6× | — | 0.2× | -0.9% | — | 2.1% | 7.7% | 3.7% | — | 177 |
Peers = companies sharing ECG's sector (Operative Builders) with collected SEC financials. Multiples use the most recent end-of-day close and latest fiscal-year fundamentals (trailing, not forward). Missing cells mean the peer never reported that line item, has no collected price, or has a non-positive denominator. Not investment advice.
What the company returns to shareholders — and whether it's covered by cash.
No dividend to cover. Last year: $0 dividends + $0 buybacks = $0 returned on $90.0M FCF.
Yields use the latest fiscal-year dividends/buybacks over current market cap. Dividends and buybacks from the SEC cash-flow statement; payout coverage vs net income and free cash flow. Educational — not a recommendation.
Solve the discounted cash flow backwards, then stress-test the assumptions.
Average free cash flow across the last 3 positive fiscal years (FY2023, FY2024, FY2025). Smooths the cycle. Stock compensation is NOT charged — it is added back inside operating cash flow.
To be worth $126.17 today, the market must believe free cash flow compounds 27.0%/yr for a decade (off $113.6M on the 3-yr avg basis).
On the basis ($110.7M) the requirement is 27.4%/yr. Shares issued to employees are added back in operating cash flow, so this basis treats them as free.
The market's 27.0% is more optimistic than its 2-yr track record.
Default is 12.0% — this company's computed cost of capital (computed WACC), the same rate the Analysis tab discounts at.
2-stage DCF · 0.05B shares (market data) · net debt $281.5M
mean -18.5% · volatility σ 5% · implied rate exceeded in 0/2 yrs
Central path = implied 27.0%/yr growth; shaded band = ±1σ (5%) of this company's historical FCF volatility, widening with time. The wider the band, the less certain the growth.
Reverse DCF: rather than guessing a fair value, we solve for the growth the current price implies, then you stress-test the assumptions. Enterprise value of the FCF stream, less net debt, ÷ shares. Educational — not a recommendation.
How much the company owes, how it's trended, and how comfortably it's serviced.
$22.5M of principal comes due within a year. Scheduled principal only (excludes interest & revolver draws). As of 2026-06-30 (10-Q). The cash figure is from 2025-12-31, so the two are not the same balance-sheet date — the schedule has not been refiled since.
Green ≤ 1.5× · amber ≤ 3× · red > 3× (leverage relative to cash earnings).
Interest is easily covered by operating profit. Effective rate ~7.6% on $281.5M of debt.
Cash vs short-term debt unavailable.
Mostly long-term debt (balance-sheet current vs non-current split). See the maturity ladder above for the year-by-year repayment schedule.
Debt, cash, interest and equity from the SEC balance sheet & income statement. Effective rate = interest ÷ average debt. Maturity ladder from the SEC long-term-debt repayment schedule. Educational — not a recommendation.
EOD close · as of 2026-10-05
How a revenue dollar becomes profit — FY2025
Dividends and buybacks are cash paid out, shown here against the same year's profit for scale — not funded from it.
Each value shows its share of revenue below it (common-size).
| Line Item | FY2025 | FY2024 | FY2023 | FY2022 |
|---|---|---|---|---|
| Revenue | $3.75B 100.0% | $2.85B 100.0% | $2.85B 100.0% | $2.70B 100.0% |
| Cost of Revenue | $3.29B 87.9% | $2.51B 88.1% | $2.53B 88.7% | $2.42B 89.8% |
| Gross Profit | $454.1M 12.1% | $339.5M 11.9% | $321.9M 11.3% | $276.0M 10.2% |
| Selling, General & Admin | $189.3M 5.1% | $149.5M 5.2% | $131.4M 4.6% | $111.4M 4.1% |
| Operating Income | $264.8M 7.1% | $189.9M 6.7% | $190.5M 6.7% | $164.6M 6.1% |
| Interest Expense | $21.5M 0.6% | $14.0M 0.5% | $17.0M 0.6% | $6.4M 0.2% |
| Interest & Investment Income | $4.6M 0.1% | $0 0.0% | $0 0.0% | — |
| Other Income (Expense), net | — | $4.9M 0.2% | $4.0M 0.1% | $1.4M 0.1% |
| Pretax Income | $257.8M 6.9% | $180.8M 6.3% | $177.6M 6.2% | $159.7M 5.9% |
| Income Tax Expense | $72.3M 1.9% | $49.5M 1.7% | $45.3M 1.6% | $40.8M 1.5% |
| Net Income | $201.8M 5.4% | $143.4M 5.0% | $137.2M 4.8% | $124.8M 4.6% |
| Per Share | ||||
| EPS (Basic) | $3.95 | $2.81 | $2.69 | $2.45 |
| EPS (Diluted) | $3.95 | $2.81 | $2.69 | $2.45 |
| Weighted Avg Shares (Basic) | 51.0M | 51.0M | 51.0M | 51.0M |
| Weighted Avg Shares (Diluted) | 51.1M | 51.1M | 51.0M | 51.0M |
Source: SEC EDGAR XBRL filings (annual, fiscal year). Quarterly flow items are derived from cumulative filings; balance-sheet figures are as-of each period end. Ratios and margins are computed, not reported.
EOD close · as of 2026-10-05
Is the profit real, and how strong is the balance sheet?
FY2025 · every deduction from revenue to net income
DuPont — the three levers
ROE 32% against ROIC 22% — 10% of the return on equity comes from leverage and buybacks rather than from the operating business.
Equity is the year-end figure. On average equity over the two year-ends, ROE is 38.3% — the two diverge when buybacks or issuance move equity during the year.
What the company owes vs. what it holds
This shows debt/cash structure and net leverage. The year-by-year maturity schedule is on the Debt & Leverage tab.
Latest year: profit growth vs revenue growth
Low operating leverage — profit tracks sales closely (stable, less cyclical).
Each line as % of revenue — the trend in color
| % of revenue | FY2022 | FY2023 | FY2024 | FY2025 |
|---|---|---|---|---|
| Cost of Revenue | 89.8 | 88.7 | 88.1 | 87.9 |
| Gross Profit | 10.2 | 11.3 | 11.9 | 12.1 |
| SG&A | 4.1 | 4.6 | 5.2 | 5.1 |
| Operating Income | 6.1 | 6.7 | 6.7 | 7.1 |
| Income Tax | 1.5 | 1.6 | 1.7 | 1.9 |
| Net Income | 4.6 | 4.8 | 5.0 | 5.4 |
Green = margin-favorable vs the row's own range · red = unfavorable.
The metrics that matter, over time
A 30-second read on ECG: price, valuation and headline fundamentals from SEC filings. The four questions at the top of the page are where the judgements live.
Earns 7.3pts above its cost of capital, without much margin of safety.
| Period | ROIC | Cost of capital | Spread |
|---|---|---|---|
| FY2022 | 31.4% | 12.0% (today's — no rate published for this year) | 19.4pts |
| FY2023 | 20.7% | 8.4% | 12.3pts |
| FY2024 | 17.6% | 10.9% | 6.7pts |
| FY2025 | 19.3% | 9.1% | 10.2pts |
| Now | 22.1% | 12.0% | 10.1pts |
| Fiscal year | Gross margin | Operating margin | Net margin |
|---|---|---|---|
| FY2022 | 10.2% | 6.1% | 4.6% |
| FY2023 | 11.3% | 6.7% | 4.8% |
| FY2024 | 11.9% | 6.7% | 5.0% |
| FY2025 | 12.1% | 7.1% | 5.4% |
Leverage and buybacks account for 10 points of the 32% return on equity in FY2025. The business earns 22% on the capital it employs; the rest is balance sheet.
ROE is on average equity; ROIC is NOPAT over average invested capital (debt plus equity less excess cash). The gap is not a single adjustment.
$212M of goodwill — 21% of invested capital. The gap is what was paid above the fair value of what was bought; it is real capital shareholders provided, so neither bar is the whole answer.
ROIC ex-goodwill is 24.49% against 19.3% reported — the return is earned on a capital base inflated by what was paid for acquisitions, not by the operating business alone.
Cash conversion of 0.44x sits below the level that would make the earnings clearly cash-backed.
Only 4 profitable years available, so the average is shorter than the five the threshold assumes.
Covers interest 8.6x even after a 30% EBITDA decline.
| EBITDA decline | Interest coverage |
|---|---|
| 0% | 12.34x |
| 5% | 11.72x |
| 10% | 11.11x |
| 15% | 10.49x |
| 20% | 9.87x |
| 25% | 9.26x |
| 30% | 8.64x |
| 35% | 8.02x |
| 40% | 7.41x |
| 45% | 6.79x |
| 50% | 6.17x |
| 55% | 5.55x |
| 60% | 4.94x |
Ladder as of 2026-06-30 (10-Q); cash from the 2025-12-31 balance sheet; FCF from FY2025. No cash figure on the matching balance sheet, so no coverage line is drawn.
Balance sheet at 2025-12-31. Undrawn revolving credit is not shown: the tag is collected but not yet mapped through to the API.
The maturity schedule is not part of this verdict — its filing anchor is often older than the balance sheet it sits beside, so a wall inside 24 months may not be visible here.
At $123.35, free cash flow must compound 26.87%/yr for 10 years. It has no positive compounding record to compare against.
| Fiscal year | FCF growth | Price requires |
|---|---|---|
| FY2024 | −15.2% | 26.9% |
| FY2025 | −21.8% | 26.9% |
The implied rate of 26.87% has not been achieved in any of the last 2 years.
| Step | Amount | Running total |
|---|---|---|
| Net income | $202M | $202M |
| Share-based comp | $6M | $208M |
| Other non-cash & working capital | −$51M | $157M |
| Operating cash flow | $157M | $157M |
| Capex | −$67M | $90M |
| Free cash flow | $90M | $90M |
| FCF after SBC | $84M | $84M |
| Fiscal year | Revenue growth | Receivables growth | Gap |
|---|---|---|---|
| FY2023 | 5.8% | not reported | not reported |
| FY2024 | -0.2% | not reported | not reported |
| FY2025 | 31.5% | not reported | not reported |
| Fiscal year | Accruals / assets |
|---|---|
| FY2022 | not reported |
| FY2023 | -3.2 percent |
| FY2024 | -1.6 percent |
| FY2025 | 2.6 percent |
SBC is added back inside operating cash flow, so reported free cash flow treats shares issued to employees as free. Percent of revenue says how expensive the payroll is; percent of operating cash flow says how much of the cash exists only because the charge was added back. The buyback offset is buybacks over SBC — below 1.0 the repurchase does not cover the shares issued.
Figures are the latest fiscal year (FY2025) from the company's own filings, not a trailing-twelve-month window — Q2 reads fiscal years throughout so the cash-conversion ratios and these share one basis. A blank is a line the filer did not report; it is never read as zero.