Hurdle Rate
All work

Real estate investor

Automated underwriting engine

A pipeline that ingests listings across metros, enriches every property, underwrites it and screens out bad deals before an analyst ever looks.

properties underwritten automatically in about 16 months
30,000+
properties underwritten automatically in about 16 months
properties underwritten in a peak month
4,000+
properties underwritten in a peak month
the volume of a four-person manual team (~200 deals a week)
~5x
the volume of a four-person manual team (~200 deals a week)
from new listing to a full underwriting
2 hrs → <10 min
from new listing to a full underwriting

The challenge

Acquisitions ran on a four-person team: two analysts screened listings, and two more dug into the survivors, pulling comps and filling out a model one property at a time. Together they got through about 200 deals a week.

Most of that work went into deals that were never going to pass, and a quick manual screen missed what kills a rental: a busy street, a steep lot, a flight path. The good deals were found too late.

What we built

  1. 01

    Ingest and resolve

    Listings and sold and rental comps flow in on a schedule for every target metro. Addresses are resolved and de-duplicated into one property record.

  2. 02

    Enrich every property

    Each home runs through in-house data services we built: a national flood-zone lookup, a sound score for highways, rail and airports, lot slope and corner-lot detection from 1-meter elevation data, and market scores across 1,020 metros. Property tax is estimated from county records, alongside neighborhood income and housing mix and school quality. These are things an analyst would miss or skip.

  3. 03

    Value it with models

    Machine learning valuation models estimate after-repair value and rent, and AI vision rates the condition of each room from listing photos to estimate renovation cost.

  4. 04

    Underwrite and screen

    The engine computes the full underwriting (renovation, taxes, yield) and automatically screens out deals that fail the buy box. Analysts see only the deals worth their time, with the work already done.

What we learned

Speed was the obvious win; accuracy was the bigger one. The engine checks a dozen deal-killers on every property, every time, which no human screen does at 200 a week.

Stack

  • TypeScript
  • PostgreSQL + PostGIS
  • Google Cloud Run
  • Cloud Tasks
  • React
  • Google Apps Script

What would you build with one more great operator on the team?

A 30-minute call. We'll ask where the time goes and tell you honestly whether AI can help.