# Homebuilders peer review

Descriptive comparison assembled from public SEC filings and verified companyfacts.

**Descriptive comparison -- not investment advice.** This feature-specific review is assembled from a frozen evidence pack of public SEC filing quotes and verified SEC companyfacts numbers. It is descriptive only and makes no judgment about which company is better.

## Companies

[DHI](/company/DHI/), [LEN](/company/LEN/), [PHM](/company/PHM/), [NVR](/company/NVR/), [TOL](/company/TOL/), [KBH](/company/KBH/), [MTH](/company/MTH/), [TMHC](/company/TMHC/)

## Methodology

The cluster is selected from public SEC SIC 1531 Operative Builders companies already present in grepcent's processed universe; LEN is retained as a disclosed requested adjacent homebuilder peer rather than relabeled. MTH and TMHC are included because their cached companyfacts support the required financial rows. Orders, backlog, and community count are treated as honest-absent when not cleanly available as standardized XBRL facts. The review publishes no proprietary index-membership labels.

Pack hash: `fee6a2fa45784d09c27abc5c901c6e9919d5cd3038cf743e96c75d2f3b6643c2`. Generated: 2026-06-27.

## Verified Quantitative Matrix

| Metric | DHI | LEN | PHM | NVR | TOL | KBH | MTH | TMHC | Comparability |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Revenue | 34,250,400,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_REVENUE_FY2025; concept us-gaap:Revenues | 34,186,934,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_REVENUE_FY2025; concept us-gaap:Revenues | 17,311,953,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_REVENUE_FY2025; concept us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | 10,323,959,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_REVENUE_FY2025; concept us-gaap:Revenues | 10,966,723,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_REVENUE_FY2025; concept us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax | 6,236,214,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_REVENUE_FY2025; concept us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | Not available | 8,121,480,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_REVENUE_FY2025; concept us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags mixed; concepts us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax, us-gaap:Revenues; concept mapping DHI -> us-gaap:Revenues; KBH -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; LEN -> us-gaap:Revenues; NVR -> us-gaap:Revenues; PHM -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; TMHC -> us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; TOL -> us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax |
| Gross margin | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Only 3 of 8 companies have a verified fact; threshold is 4. |
| Operating margin | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Only 1 of 8 companies have a verified fact; threshold is 3. |
| Net margin | 10.47%; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:Revenues | 6.08%; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:Revenues | 12.82%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | 12.98%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:Revenues | 12.28%; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax | 6.88%; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | Not available | 9.63%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_NET_MARGIN_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags mixed; concepts us-gaap:NetIncomeLoss, us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax, us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax, us-gaap:Revenues; concept mapping DHI -> us-gaap:NetIncomeLoss + us-gaap:Revenues; KBH -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; LEN -> us-gaap:NetIncomeLoss + us-gaap:Revenues; NVR -> us-gaap:NetIncomeLoss + us-gaap:Revenues; PHM -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; TMHC -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax; TOL -> us-gaap:NetIncomeLoss + us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax |
| Return on equity | 14.82%; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 9.46%; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 17.09%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 34.67%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 16.28%; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 10.99%; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 8.72%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | 12.43%; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_ROE_FY2025; concept us-gaap:NetIncomeLoss; us-gaap:StockholdersEquity | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags clean |
| Inventory / land | 25,287,300,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_INVENTORY_FY2025; concept us-gaap:InventoryRealEstate | 11,841,255,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_INVENTORY_FY2025; concept us-gaap:InventoryOperativeBuilders | 12,925,413,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_INVENTORY_FY2025; concept us-gaap:InventoryOperativeBuilders | 39,312,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_INVENTORY_FY2025; concept us-gaap:InventoryRealEstateLandAndLandDevelopmentCosts | 10,678,460,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_INVENTORY_FY2025; concept us-gaap:InventoryOperativeBuilders | 5,670,802,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_INVENTORY_FY2025; concept us-gaap:InventoryOperativeBuilders | 5,987,120,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_INVENTORY_FY2025; concept us-gaap:InventoryOperativeBuilders | 6,140,663,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_INVENTORY_FY2025; concept us-gaap:InventoryRealEstate | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags mixed; concepts us-gaap:InventoryOperativeBuilders, us-gaap:InventoryRealEstate, us-gaap:InventoryRealEstateLandAndLandDevelopmentCosts; concept mapping DHI -> us-gaap:InventoryRealEstate; KBH -> us-gaap:InventoryOperativeBuilders; LEN -> us-gaap:InventoryOperativeBuilders; MTH -> us-gaap:InventoryOperativeBuilders; NVR -> us-gaap:InventoryRealEstateLandAndLandDevelopmentCosts; PHM -> us-gaap:InventoryOperativeBuilders; TMHC -> us-gaap:InventoryRealEstate; TOL -> us-gaap:InventoryOperativeBuilders |
| Liabilities / equity leverage | 0.44; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.56; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.39; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.52; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.75; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.71; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Assets; us-gaap:StockholdersEquity | 0.47; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | 0.56; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_LIABILITIES_TO_EQUITY_FY2025; concept us-gaap:Liabilities; us-gaap:StockholdersEquity | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags mixed; concepts us-gaap:Assets, us-gaap:Liabilities, us-gaap:StockholdersEquity; concept mapping DHI -> us-gaap:Liabilities + us-gaap:StockholdersEquity; KBH -> us-gaap:Assets + us-gaap:StockholdersEquity; LEN -> us-gaap:Liabilities + us-gaap:StockholdersEquity; MTH -> us-gaap:Liabilities + us-gaap:StockholdersEquity; NVR -> us-gaap:Liabilities + us-gaap:StockholdersEquity; PHM -> us-gaap:Liabilities + us-gaap:StockholdersEquity; TMHC -> us-gaap:Liabilities + us-gaap:StockholdersEquity; TOL -> us-gaap:Liabilities + us-gaap:StockholdersEquity |
| Book value / equity | 24,190,400,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 21,959,417,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 12,985,442,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 3,864,869,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 8,270,663,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 3,900,858,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 5,195,643,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_EQUITY_FY2025; concept us-gaap:StockholdersEquity | 6,293,322,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_EQUITY_FY2025; concept us-gaap:StockholdersEquity | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags clean |
| Free cash flow | 3,283,500,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 28,183,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 1,748,533,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 1,096,812,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 1,026,216,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 287,282,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 92,566,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | 776,973,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_FREE_CASH_FLOW_FY2025; concept us-gaap:NetCashProvidedByUsedInOperatingActivities; us-gaap:PaymentsToAcquirePropertyPlantAndEquipment | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags clean |
| Share buybacks | 4,300,000,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 1,808,369,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 1,199,996,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 1,833,316,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_NVR_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 651,016,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 541,303,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_KBH_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 294,999,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | 381,016,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_SHARE_BUYBACKS_FY2025; concept us-gaap:PaymentsForRepurchaseOfCommonStock | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, KBH -31d offset, LEN -31d offset, MTH 0d aligned, NVR 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags clean |
| Cash and equivalents | 2,985,400,000; FY 2025; period end 2025-09-30; offset about 3 months before row reference (-92d) (offset); fact NUM_DHI_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | 3,756,305,000; FY 2025; period end 2025-11-30; offset -31d (offset); fact NUM_LEN_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | 1,980,869,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_PHM_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | Not available | 1,258,997,000; FY 2025; period end 2025-10-31; offset about 2 months before row reference (-61d) (offset); fact NUM_TOL_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | Not available | 775,157,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_MTH_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | 850,037,000; FY 2025; period end 2025-12-31; offset 0d (aligned); fact NUM_TMHC_CASH_FY2025; concept us-gaap:CashAndCashEquivalentsAtCarryingValue | period offset; reference 2025-12-31; offsets DHI about 3 months before row reference (-92d) offset, LEN -31d offset, MTH 0d aligned, PHM 0d aligned, TMHC 0d aligned, TOL about 2 months before row reference (-61d) offset; tags clean |
| Orders | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Only 0 of 8 companies have a verified fact; threshold is 3. |
| Backlog | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Only 0 of 8 companies have a verified fact; threshold is 3. |
| Community count | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Quarantined | Only 0 of 8 companies have a verified fact; threshold is 3. |

## Code-computed comparisons

- grepcent-computed gross margin range: Cross-company range not shown: fiscal period-ends span more than 14 days (TOL ends 2025-10-31; row reference 2025-12-31); artifact-time exclusions: DHI: period not aligned (2025-Q3 vs 2025-Q4); KBH: no gross_margin fact available; LEN: no gross_margin fact available; MTH: no gross_margin fact available; NVR: no gross_margin fact available; PHM: no gross_margin fact available. Computed from frozen review facts; no adjusted or interpolated values.
- Reported return on equity range: Cross-company range not shown: fiscal period-ends span more than 14 days (KBH ends 2025-11-30, LEN ends 2025-11-30, TOL ends 2025-10-31; row reference 2025-12-31); artifact-time exclusions: DHI: period not aligned (2025-Q3 vs 2025-Q4). Computed from frozen review facts; no adjusted or interpolated values.

Market-risk companion: [/compare/homebuilders/risk/](/compare/homebuilders/risk/).

## Gate summary

Facts: 83. Claims survived: 6. Claims dropped: 0. Cells quarantined: 42.
