Rental yield is the annual return a property generates as a percentage of its purchase price. Understanding yield at the ZIP code level lets investors compare micro-markets quickly and screen out underperforming areas before running deeper analysis.

Gross Rental Yield Formula

The simplest version uses annual rent and purchase price:

Gross Yield = (Annual Rent / Purchase Price) × 100

For example, if a 2-bedroom property in ZIP code 78701 rents for $1,850/month and costs $425,000, the gross yield is (22,200 / 425,000) × 100 = 5.22%.

Where to Get Rent Data by ZIP Code

HUD publishes Small Area Fair Market Rents (SAFMRs) — the most authoritative free dataset for zip-level rents in the US. ZipMarketData ingests this dataset daily and exposes it via the /rental-yield endpoint, covering studio through 4-bedroom units across 28,000+ ZIP codes.

To fetch rent estimates programmatically:

GET https://zipmarketdata.com/rental-yield?zip_code=78701&bedrooms=2 { "zip_code": "78701", "bedrooms": 2, "fair_market_rent": 1850, "median_sale_price": 425000, "gross_yield_pct": 5.22, "annual_gross_rent": 22200 }

Net Yield vs Gross Yield

Gross yield ignores expenses. Net yield accounts for vacancy, property management (typically 8–10%), maintenance (1% of value/yr), insurance, and taxes. A common rule of thumb: net yield ≈ gross yield × 0.65 for a single-family home managed professionally.

MetricFormulaTypical Range
Gross Yield(Annual Rent / Price) × 1003–9%
Net YieldGross Yield × (1 − Expense Ratio)2–6%
Cash-on-CashAnnual Cash Flow / Cash Invested1–8%

What Is a Good Rental Yield?

In high-cost metros (NYC, SF, Seattle), gross yields of 3–4% are common and often accepted by long-term appreciation investors. In cash-flow focused markets (Memphis, Indianapolis, Cleveland), investors expect 7–9% gross yield. A yield below 5% in a flat-appreciation market is generally considered weak for a pure rental play.

ZIP Code Yield Comparison Workflow

Use ZipMarketData's API to build a screening table: pull /rental-yield for a list of target ZIP codes, sort by gross yield, then cross-check against /market-stats for days-on-market and year-over-year price change to filter for both yield and stability.