Real Estate Investment Analyzer — Deal Score, Cap Rate & NOI
Pricing
Pay per usage
Real Estate Investment Analyzer — Deal Score, Cap Rate & NOI
Underwrite rental properties — cap rate, GRM, monthly cash flow, DSCR, Deal Score (1-10). Filter by price, beds, cash flow, cap rate, days on market. Part of Real Estate Intelligence Suite. MCP-native: 'Best cash flow deals under $200K in Cleveland.'
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Andrew Avina
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Real Estate Investment Intelligence MCP
The only Apify actor that combines live property listings with investment-grade financial analysis — cap rate, GRM, cash flow, cash-on-cash return, and a proprietary Deal Score (1-10) — all in a single API call.
Powered by Redfin property data + HUD Fair Market Rents + FEMA flood zone risk + investment metric engine. No API key required for core functionality.
Why this actor?
Every other property scraper gives you raw listing data. This one tells you whether the deal is worth your money.
| What it calculates | Why it matters |
|---|---|
| Cap Rate | Core yield metric used by every institutional investor |
| GRM (Gross Rent Multiplier) | Quick filter — GRM < 12 = worth underwriting |
| Cash Flow (monthly, post-debt) | The number that actually hits your bank account |
| Cash-on-Cash Return | ROI on deployed capital, apples-to-apples vs. stocks |
| Rent-to-Price Ratio | The "1% rule" metric — highest correlation with cash flow |
| Deal Score 1-10 | Proprietary weighted composite of all four factors |
Inputs
| Parameter | Type | Default | Description |
|---|---|---|---|
location | string | "78701" | ZIP code, city/state ("Austin, TX"), or address fragment |
price_min | integer | 0 | Minimum list price filter |
price_max | integer | — | Maximum list price filter |
beds_min | integer | 0 | Minimum bedrooms |
baths_min | number | 0 | Minimum bathrooms |
listing_type | string | "for_sale" | for_sale or for_rent |
days_on_market_max | integer | — | Max days on market (use 60+ to find motivated sellers) |
deal_score_min | integer | 0 | Minimum deal score filter (1-10; use 7+ for strong cash flow) |
limit | integer | 20 | Max properties to return (up to 100) |
Outputs (50+ fields per property)
Property Details
| Field | Type | Description |
|---|---|---|
zpid | string | Property identifier |
address | string | Street address |
city | string | City |
state | string | State abbreviation |
zip | string | ZIP code |
neighborhood | string | Neighborhood name |
latitude | float | Latitude |
longitude | float | Longitude |
price | float | List price (USD) |
beds | integer | Bedrooms |
baths | float | Bathrooms |
sqft | float | Interior square footage |
lot_size_sqft | float | Lot size in sqft |
year_built | integer | Year built |
property_type | string | SFR / Condo / Townhouse / MFR / Land |
listing_type | string | for_sale or for_rent |
days_on_market | integer | Calendar days listed |
price_per_sqft | float | Price ÷ sqft |
listing_url | string | Link to full listing |
photos_count | integer | Number of listing photos |
Valuation
| Field | Type | Description |
|---|---|---|
zestimate | float | Zillow Zestimate (if available) |
rent_zestimate | float | Zillow Rent Zestimate (if available) |
price_vs_zestimate_pct | float | (price - zestimate) / zestimate × 100 — negative = below market |
hud_fmr_2br | integer | HUD 2024 Fair Market Rent for 2BR in this market (USD/mo) |
Risk Assessment
| Field | Type | Description |
|---|---|---|
fema_flood_zone | string | FEMA flood zone designation (X=minimal, AE=high, V=coastal) |
flood_risk_category | string | Minimal / Moderate / High / Very High (Coastal) |
Walkability
| Field | Type | Description |
|---|---|---|
walk_score | integer | Walk Score 0-100 |
transit_score | integer | Transit Score 0-100 |
bike_score | integer | Bike Score 0-100 |
Schools
| Field | Type | Description |
|---|---|---|
elementary_school | string | Assigned elementary school |
middle_school | string | Assigned middle school |
high_school | string | Assigned high school |
school_rating | integer | School rating 1-10 |
Demographics
| Field | Type | Description |
|---|---|---|
median_household_income | integer | Median HH income (Census ACS) |
poverty_rate | float | Poverty rate % |
population | integer | ZIP population |
Investment Metrics ⭐
| Field | Type | Description |
|---|---|---|
estimated_monthly_rent | integer | Projected monthly rent (rent Zestimate → HUD FMR → 0.7% rule) |
annual_gross_rent | integer | Annual gross rental income |
annual_operating_expenses | integer | 45% of gross rent (vacancy+maint+mgmt+tax+ins) |
annual_noi | integer | Net Operating Income |
cap_rate | float | Cap rate % — NOI ÷ price |
grm | float | Gross Rent Multiplier — price ÷ annual gross rent |
monthly_mortgage_piti | integer | Principal+Interest on 80% LTV, 7.5% 30yr fixed |
monthly_tax_insurance_est | integer | Property tax + insurance estimate |
total_monthly_payment_est | integer | All-in monthly carrying cost |
monthly_cash_flow_est | integer | Monthly cash flow (rent − opex − mortgage) |
annual_cash_flow_est | integer | Annualized cash flow |
cash_on_cash_return_pct | float | Annual cash flow ÷ 20% down payment × 100 |
rent_to_price_ratio_pct | float | Monthly rent ÷ price × 100 (1% rule benchmark) |
deal_score | integer | 1-10 Deal Score (see algorithm below) |
deal_score_breakdown | string | JSON breakdown of score components |
Deal Score Algorithm
The Deal Score is a 0–10 composite based on four independently scored components:
| Component | Max Points | Thresholds |
|---|---|---|
| Rent-to-Price Ratio | 3 | ≥0.9% = 3pts, ≥0.7% = 2pts, ≥0.5% = 1pt |
| Cap Rate | 3 | ≥8% = 3pts, ≥6% = 2pts, ≥4% = 1pt |
| Days on Market | 2 | ≥60 = 2pts (motivated seller), ≥30 = 1pt |
| Monthly Cash Flow | 2 (min -2) | ≥$500 = 2pts, ≥$200 = 1pt, ≥$0 = 0pts, negative = penalty |
Score guide:
- 8-10: Strong cash-flow deal — underwrite immediately
- 6-7: Solid — worth deeper analysis
- 4-5: Marginal — appreciation play or needs value-add
- 1-3: Cash-flow negative — only viable for speculation or 1031 exchange
Example Use Cases
Find motivated sellers with cash flow potential
{"location": "44103","price_max": 200000,"beds_min": 3,"days_on_market_max": 45,"deal_score_min": 7,"limit": 20}
Screen multi-family properties in a market
{"location": "Kansas City, MO","price_min": 150000,"price_max": 500000,"beds_min": 4,"deal_score_min": 6,"limit": 50}
Scan a metro for SFRs near the 1% rule
{"location": "Memphis, TN","price_max": 250000,"beds_min": 3,"deal_score_min": 7,"limit": 30}
Market Intelligence It Provides
Cash flow markets (high deal scores, lower appreciation): Cleveland OH, Indianapolis IN, Memphis TN, Kansas City MO, Birmingham AL, Detroit MI
Appreciation markets (lower deal scores, high growth): Austin TX, Denver CO, Seattle WA, Sacramento CA
Balanced markets: Charlotte NC, Nashville TN, Columbus OH, Raleigh NC, Tampa FL
Pricing
| Volume | Price per 1,000 properties |
|---|---|
| 1–99 properties | $8.00/1,000 |
| 100–999 properties | $5.00/1,000 |
| 1,000+ properties | $3.00/1,000 |
Each property record counts as one event. Investment metrics are included at no additional cost.
Data Sources
| Source | Data Provided | Authentication |
|---|---|---|
| Redfin | Live listings, price, beds/baths, sqft, DOM | None required |
| HUD FMR 2024 | Fair Market Rents by state & bedroom count | Built-in |
| Investment Engine | Cap rate, GRM, cash flow, deal score | Calculated |
| FEMA NFIP | Flood zone designation | None required |
| Census ACS | Neighborhood demographics | Built-in |
Fallback Data
If live APIs are unreachable, returns 15 curated investment property records spanning 15 US markets (Cleveland OH, Indianapolis IN, Memphis TN, Birmingham AL, Charlotte NC, Austin TX, Scottsdale AZ, Kansas City MO, Cape Coral FL, Columbus OH, Greensboro NC, Sacramento CA, Atlanta GA, Nashville TN, Denver CO) — with all 50+ fields and pre-calculated investment metrics.