New home sales rose in June as builders worked through inventory, though median prices fell amid persistent elevated mortgage rates that continue to dampen buyer demand.
The uptick reflects a shift in market dynamics. Builders accumulated stock during the spring months and accelerated sales efforts to clear inventory before summer cooling. This inventory-driven sales bump contrasts with earlier 2024 performance, when supply constraints kept sales muted and prices elevated.
Median prices declined as builders offered more aggressive incentives to move units. Concessions now include rate buydowns, closing cost assistance, and direct price reductions. These tools help offset the impact of mortgage rates still hovering around 6.5 to 7 percent, making monthly payments substantially higher than they were two years ago.
For buyers, the shift creates meaningful negotiating power. New construction offers more leverage than the resale market, where inventory remains tight in many regions. Buyers shopping new homes can push back on pricing and demand upgrades included in deals. The lower median price reflects this reality, not a collapse in values.
For sellers of existing homes, new construction competition intensifies. The combination of builder incentives and lower new-construction pricing pulls buyers away from the resale market, particularly at the entry and move-up price points where new construction clusters.
Builders like Lennar, D.R. Horton, and Pulte Group benefit from higher sales velocity, even at lower margins. Moving inventory matters more than per-unit profit when carrying costs mount. Mortgage lenders see broader access to qualified borrowers as rate buydowns lower effective borrowing costs, expanding the pool of buyers who can qualify.
Landlords and investors watch this trend closely. When new construction sales spike at lower price points, it reduces rental demand in entry-level segments. Younger renters who might otherwise stay in apartments for longer push toward homeownership as builder incentives make entry
