deal-lens

DealView (Beta)

The “Bullshit Detector” for Zillow. Stop guessing and start underwriting like a pro—directly on the listing page.

Why DealView?

Zillow’s “Estimated Monthly Payment” is designed for homeowners, not investors. It misses the variables that kill cash flow: closing costs, repair budgets, and the inevitable 2026 property tax reassessment. DealView bridges the gap between a Zillow listing and a professional spreadsheet.


Key Features

Search Results — Gross Yield Badge

Every listing card gets a gross yield badge before you click in. Gross yield is annual rent ÷ list price — the fastest way to filter deals at a glance.

Rent data comes directly from Zillow’s own Rent Zestimate — no external API, no cost, no guessing. Listings with no rent data (new construction, etc.) show no badge.

Listing Detail — Full Investor Analysis


Privacy & Security


How to Use

  1. Install: (Chrome Web Store link coming soon)
  2. Open Zillow: Navigate to any search results page — yield badges appear automatically on every card.
  3. Click a listing: The DealView panel loads automatically with the full investor breakdown.
  4. Adjust Your Inputs: Edit the rent estimate, toggle 30yr/15yr/custom rate, or add a repair budget.
  5. Read the DSCR First: If it’s red, a bank likely won’t finance it — regardless of how the CoC looks.
  6. Save & Rank: Click “Save Analysis” to compare your top deals in the list view.

Metrics Explained

Metric What it means
Gross Yield Annual rent ÷ purchase price. The quick-scan filter. ≥ 6% passes the 1% rule.
Cap Rate Annual NOI ÷ purchase price. Financing-independent return. 5%+ is solid for residential.
Cash-on-Cash Annual cashflow ÷ total cash invested (down + closing costs + repairs). Your real return.
DSCR NOI ÷ annual mortgage. Lenders require ≥ 1.25 for investment loans.
Monthly NOI Rent minus operating expenses (excl. mortgage).
GRM Price ÷ annual rent. Under 15× is strong; over 25× is expensive for cash-flow investors.

Expense ratio default: 40% of gross rent — split into property management (7%), vacancy (5%), and taxes/insurance/maintenance (28%). All three are editable in the panel.


Data Sources

Every number in the panel traces back to one of these sources:

Data Source Cache
List price, beds/baths/sqft, status, address Zillow DOM (data-testid selectors) Live
Rent Zestimate Zillow __NEXT_DATA__ SSR blob (hard load) or DOM element (SPA nav) Live
Mortgage rate (30yr / 15yr) FRED API — series MORTGAGE30US / MORTGAGE15US 24 hours
HUD Fair Market Rent HUD API — SAFMR zip-level, falls back to county average 30 days
Census median rent + household income Census ACS 5-year estimates (2023), variables B25064_001E + B19013_001E 90 days
Annual property tax Zillow Facts & Features module (DOM regex on data-testid="facts-and-features-module") Live

ZIP code and state are extracted from the listing address h1, with a fallback to the Zillow URL path (e.g. /homedetails/123-Main-St-Austin-TX-78749/...) for reliability when the DOM is slow to render.


Calculations

Mortgage Payment (P&I only)

Standard amortizing loan formula:

M = P × [r(1+r)^n] / [(1+r)^n − 1]

P = listPrice × (1 − downPaymentPct)   (loan amount)
r = annualRate / 12                     (monthly rate)
n = termMonths                          (360 for 30yr, 180 for 15yr)

Example: $500K home, 20% down, 6.85% rate, 30yr → $2,626/mo


Operating Expenses

totalExpenseRatio = pmFeePct + vacancyRatePct + otherExpenseRatio

monthlyExpenses = rentEstimate × totalExpenseRatio

Defaults: 7% (PM) + 5% (vacancy) + 28% (taxes/ins/maint) = 40% total

When Zillow provides the actual annual property tax, the taxes/ins/maint field pre-fills as:

adjustedOther = min(round(annualTax / 12 / rent × 100) + 13, 45)

The 13% is a fixed allowance for insurance + maintenance. The actual tax % replaces the estimated tax within the 28% default.


Gross Yield

grossYield = (rentEstimate × 12) / listPrice

The “1% rule” in yield terms: monthly rent ≥ 1% of price → 12% gross yield.


Net Operating Income (NOI)

monthlyNOI = rentEstimate × (1 − totalExpenseRatio)
annualNOI  = monthlyNOI × 12

NOI is independent of financing — it measures the asset’s income as a business.


Cap Rate

capRate = annualNOI / listPrice

The return assuming all-cash purchase. Lets you compare properties independent of how each is financed.


Monthly Cashflow

monthlyCashflow = rentEstimate − monthlyMortgage − (rentEstimate × totalExpenseRatio)
               = monthlyNOI − monthlyMortgage

Negative = net out-of-pocket cost every month.


Cash-on-Cash Return

totalInitialInvestment = (listPrice × downPaymentPct) + (listPrice × closingCostPct) + repairBudget

cashOnCash = (monthlyCashflow × 12) / totalInitialInvestment

Your actual return on every dollar brought to closing — accounts for leverage, all expenses, and real out-of-pocket cost.


DSCR

dscr = annualNOI / (monthlyMortgage × 12)

Min rent for 1.25× DSCR (shown when DSCR < 1.25):

minRent = ceil((1.25 × monthlyMortgage) / (1 − totalExpenseRatio))

Derived by solving (rent × (1−expenses) × 12) / (mortgage × 12) = 1.25 for rent.


GRM (Gross Rent Multiplier)

GRM = listPrice / (rentEstimate × 12)

Inverse of gross yield × 100. Under 15× is strong; over 25× is expensive for cash-flow investors.


Rent-to-Income Ratio

rentToIncome = (rentEstimate × 12) / censusMedianHouseholdIncome

Measures tenant affordability in the ZIP. Above 30% = housing burden threshold, higher vacancy risk. Source: Census ACS B19013_001E.


HUD Fair Market Rent

U.S. Dept. of Housing and Urban Development publishes FMRs annually. Represents the 40th percentile of gross rents — what HUD will pay for Section 8 housing. A government-set floor: the lowest the market is expected to sustain. Good conservative underwriting baseline.

Tier shown in the panel matches the listing’s actual bed count (efficiency / 1BR / 2BR / 3BR / 4BR+).


Development

cd extension
npm install
npx wxt dev     # builds + watches for changes

Built with WXT · React · TypeScript · Chrome MV3


Disclaimer

DealView is an estimation tool. Real estate investing involves significant risk. Always verify your final numbers with a licensed lender and local tax assessor.


Feedback & Bugs

Found a bug? Zillow changed their layout? Email caleb@mazowventures.com or open an Issue on this repo.