All work

Real Estate Underwriting Software

Paste a listing.Get the underwriting.

A property underwriting scanner that takes a listing URL and returns a structured underwriting file: rent roll, operating statement, tax and insurance build-up, debt service and the resulting yield. It resolves the address to a parcel, pulls live market data, reads years of public record, and models the tax, insurance, hazard, operating cost and financing that decide whether the deal works. Every figure carries its source: a county record, a live listing, a comparable, or an assumption you supplied. Anything it couldn’t verify is labeled unaudited instead of averaged into the total.

Input
One listing URL
Reads
Live market data, county records, parcel history
Models
Tax on reassessment, insurance, hazard, operating cost, financing
Output
A sourced underwriting file, unaudited figures marked

Manual Property Underwriting

Underwriting is slow, andthe slowness is the cost.

Underwriting one property properly is slow manual work: match the address to a parcel, pull the rents and sanity-check them against comparables, read the county records for prior sales and assessment history, model the tax forward through reassessment, price the insurance against actual hazard exposure instead of a rule of thumb. Most of that is retrieval and arithmetic. It’s also expensive in hours, so plenty of deals never get it. They get a screening pass built on the listing’s own numbers and a cap rate someone remembered. That shortcut carries the seller’s tax bill into the buyer’s model. It’s the single most expensive cell in the spreadsheet.

  • A full underwriting is expensive in hours, so it tends to go to deals that are already half-decided. The ones that should have been surfaced don’t get it.
  • Listing figures get taken at face value: square footage, rent, expenses, and a tax line that’s the current owner’s and not yours.
  • Public records hold the answer to the tax question. They’re also tedious enough to read that they routinely go unread.
  • Screening and underwriting use different numbers. The deal that looked good in the screen isn’t the same deal once it’s underwritten.

How The Scanner Underwrites

Five stages between a URLand a decision.

Each stage takes a defined input and does one job. Then it hands the next stage something a person could check line by line.

resolve 01 market 02 records 03 model 04 output 05
  1. 01

    Resolve the address

    The listing URL is scraped for the address. Then the address is matched against parcel records to resolve it to a specific parcel. Where the records won’t support a match, the system says so instead of guessing. Listing text is treated as a claim, not a fact. Square footage, bed and bath counts and lot size are checked against the county’s own record of the parcel. Where the two disagree, both are kept.

  2. 02

    Pull the live market

    Current asking rents, closed comparables and vacancy are pulled for the submarket the parcel actually sits in, not the city it shares a name with. Comparables are filtered on unit type, size band and distance before anything is averaged. The spread is carried forward alongside the midpoint, because a midpoint with no dispersion attached hides how little the comparables agree.

  3. 03

    Read years of public record

    The system reads back through the parcel’s history: prior sales, assessed values, permit filings, and the local assessor’s own reassessment behavior. Records that far back are what expose an assessor who reassesses aggressively on transfer, and one who doesn’t. A parcel assessed at a fraction of its market value for a decade carries that gap into the buyer’s first tax bill. The history is where the size of the gap becomes visible.

  4. 04

    Model the carry

    Property tax is modeled forward including reassessment on sale. That’s where most spreadsheets go wrong. Insurance is priced against the hazard exposure of the specific parcel, not the state average. Operating costs, capital reserves and financing terms go in as explicit assumptions. Each one is visible and each one is editable.

  5. 05

    Return a sourced file

    The output has the sections an underwriting file normally has: rent roll, operating statement, tax and insurance build-up, debt service and the yield that falls out of them. Each figure carries the source it came from. Anything the system couldn’t verify gets labeled unaudited instead of rounded into the total. The whole file is the deliverable. It comes back in a form you can edit and re-run against your own assumptions.

Tax, Reassessment & Provenance

Three decisionsbehind the output file.

Tax is modeled, not copied

Most underwriting carries the seller’s current property tax line forward into the buyer’s first year. In a reassessment-on-sale jurisdiction, that one copied cell can misprice the deal outright. The system models the assessment the sale itself triggers. It uses the county’s own rules and its record of what it’s done to comparable parcels after transfer. Where the local behavior is inconsistent, it returns a range instead of pretending to a single figure.

Every number carries its source

A figure with no provenance can’t be argued with, only believed. Each line in the output points back to where it came from: a county record, a live listing, a closed comparable, or an assumption you supplied. Anything derived from thin or stale data is labeled unaudited. It stays labeled all the way to the summary.

Built for ADJL Capital first

This wasn’t built as a product and then sold as one. It was built for ADJL Capital, to do the underwriting that would otherwise be done a field at a time. It has been run on the firm’s own capital before anyone else’s. Development runs against live listings and live county records instead of synthetic test data, because the edge cases only live there. Off-the-shelf underwriting tools model the way their authors model. A tool that doesn’t match how you underwrite quietly imports someone else’s assumptions.

Contact

Send a listingand a set of assumptions.

If you underwrite property, run this against a deal you already know the answer to. Nothing else tells you as much. Send the URL and the assumptions you’d normally apply. Then compare the output against the file you built by hand.