Methodology

How we compute your numbers.

Every input is pulled from a public federal data source. Every formula is published below. No black boxes, no marked-up data, no lender ads stapled to the bottom.

Data sources
Mortgage rate
FRED MORTGAGE30US

The 30-year fixed mortgage rate published weekly by Freddie Mac via the St. Louis Fed FRED API. We pull the latest reading on every page load — no caching beyond 1 hour — so the number you see is what real lenders are quoting this week.

Property tax
CENSUS B25103

Effective property tax rate by state median from the U.S. Census Bureau ACS 5-year estimate (table B25103). We default to your state median; you can override per property in the calculator.

Rent CPI adjustment
BLS CUUR0000SEHA

The Bureau of Labor Statistics "Rent of primary residence" CPI sub-index (series CUUR0000SEHA). Used in the What-If scenarios to project rent growth or contraction over the 5-year horizon.

Operating expense ratio
INDUSTRY DEFAULT

We assume 30% of gross rental income covers vacancy, maintenance, property management, and minor repairs. This is the long-standing landlord rule of thumb and roughly matches BiggerPockets reader surveys. You can override per property.

Formulas
Cap rate
(Annual rent × 0.70) ÷ Purchase price

Net operating income divided by price. The 0.70 accounts for the 30% op-ex assumption above.

Cash-on-cash return
(NOI − Annual debt service) ÷ Cash in

Cash in = down payment + $8,000 closing costs. Debt service = monthly P&I × 12.

Monthly P&I
L × r ÷ (1 − (1+r)⁻ⁿ)

L = loan amount, r = monthly interest rate, n = 360 (for 30-year) or 180 (for 15-year).

DSCR
NOI ÷ Annual debt service

Used by commercial lenders. ≥1.25 is "lendable", ≥1.5 is "comfortable".

What we don't do
  • We don't take referral fees from mortgage lenders or insurers.
  • We don't store your property details or contact info — every calculation runs in your browser.
  • We don't inflate cap rates by using gross rent or excluding vacancy.
  • We don't auto-renew, upsell, or bundle. The $19 AI Report is one-time.