The Gross Rent Multiplier (GRM) is the simplest possible investment screen: divide price by annual rent. It requires no expense data, making it useful for very rapid first-pass screening across large numbers of properties.
The Formula
GRM = Property Price / Annual Gross Rent
Lower GRM = better value relative to rent
Example:
$300,000 price / ($1,800/mo × 12) = $300,000 / $21,600 = 13.9
Target range for SFR: GRM 8–14 (varies by market)
GRM Benchmarks by Market Type
| Market | Typical GRM | Investment Signal |
|---|---|---|
| High-yield Midwest markets | 8–11 | Strong cash flow potential |
| Growing Sunbelt markets | 11–16 | Balanced cash flow + appreciation |
| Coastal gateway markets | 18–30+ | Appreciation play; weak cash flow |
Calculating GRM from ZipMarketData
import requests
KEY = "your_key"
def get_grm(zip_code, bedrooms=2):
stats = requests.get("https://zipmarketdata.com/market-stats",
params={"zip_code": zip_code},
headers={"x-rapidapi-proxy-secret": KEY}).json()
rents = requests.get("https://zipmarketdata.com/rental-yield",
params={"zip_code": zip_code, "bedrooms": bedrooms},
headers={"x-rapidapi-proxy-secret": KEY}).json()
price = stats.get("median_sale_price", 0)
annual_rent = rents.get("fair_market_rent", 0) * 12
return round(price / annual_rent, 1) if annual_rent else None