Skip to main content
DoneThat

AI Adoption GuidePropertyAcquire

Site Scoring & Deal Triage Model

ML scores acquisition targets on location, demographic trends, income growth, and competitive supply, producing a ranked shortlist from a large universe. (e.g., Cherre, Diald AI, Reonomy)

Property processAcquireLeaseOccupyMaintainBillRenewVacateDispose

By Don, DoneThat’s AI coach · updated

Overview

Acquisitions teams rarely lack inventory. They lack a reliable way to decide which sites deserve a first look when hundreds or thousands of candidates arrive from brokers, off-market outreach, and data vendors. A site scoring and deal triage model turns that universe into a ranked list by combining location quality, demographic direction, income growth, and competitive supply. The model does not buy anything. It ranks sites so an acquisitions analyst can shortlist with a consistent, inspectable order instead of scanning every packet the same way.

The job is triage, not underwriting. Scores tell you where to spend hours this week. They do not replace a site visit, a rent roll, or a capital-markets view. Platforms in this family (for example Cherre, Diald AI, and Reonomy) typically sit upstream of memo writing and diligence, which is why this page sits next to Automated Investment Memo Generation, Due Diligence Document Extraction & Risk Flagging, and Off-Market Deal Sourcing Agent.

What the model is for

The model exists to answer one operational question: given a large deal universe, which sites should an acquisitions analyst open first? That question is different from “what is this asset worth” and different from “should we close.” Ranking is a filter. Shortlisting is a human decision that uses the filter plus constraints the model does not own, such as relationship risk, sponsor appetite, and current portfolio concentration.

A useful score is comparable across the universe you actually run. If one batch is industrial infill and the next is suburban multifamily, a single global rank can mislead. Many teams train or calibrate by product type, geography, and hold period so that a 0.82 in one sleeve means something similar to a 0.82 in another. When those sleeves are mixed, the output should still show the sleeve label, not a false sense of one market-wide ranking.

Triage also has a time budget. Analysts cannot re-underwrite every listing that hits the inbox. The model’s value is the hours it returns: fewer dead-end OM reads, faster rejection of sites that fail location or supply screens, and a documented trail of why a name rose or fell. If the score cannot be explained in terms of the four input families (location, demographics, income, supply), it is hard to defend in IC prep and easy to game with noisy vendor fields.

Inputs the scoring run needs

Location is the spine. Without a resolvable site (address, parcel, lat/long, or a market polygon the team agrees to treat as the unit of analysis), the run should not invent a score. Market context is the second required family: the competitive set, pipeline, and demand proxies that make “this corner” comparable to others. Demographic trends and income growth sit on top of that geography. Competitive supply (existing stock plus known deliveries) is what keeps a pretty location from ranking as if it were unconstrained.

Input quality matters more than model novelty. Parcel IDs that do not match the listing, demographic vintages that lag a rezoning, and supply files that omit entitled pipeline will all move rank for the wrong reason. The analyst’s job before trusting a batch is to confirm the join keys and the as-of dates, not to re-derive every feature. When a feature is missing, the model should degrade in a declared way: drop the site, hold it in an unscored queue, or score a reduced feature set with a visible caveat. Silent imputation of a CBD walk-score or a county income series is how bad shortlists get into Monday pipeline meetings.

Vendor coverage is uneven. Some metros have rich parcel, permit, and mobility data. Others do not. The run should surface coverage, not hide it behind a single number. If two sites score similarly but one sits in a thin-data market, the analyst needs that fact before treating the ranks as interchangeable.

If location or market inputs are missing, the model returns empty output for that site (no score, no rank, no implied shortlist membership). An empty result is a control, not a failure of the analyst. It keeps unverified geography out of the ranked list and forces a data fix or a manual path instead of a guessed neighborhood.

How ranking and triage work in practice

A typical batch starts with a universe dump: listings, broker emails parsed into records, CRM names, and sourced off-market leads. Each row is geocoded and joined to demographic, income, and supply features. The model produces a score, a rank within the defined universe or sleeve, and a small set of drivers (for example, income growth in the trade area versus a worsening competitive pipeline). Drivers should be human-readable. “Feature 17” does not help an analyst reject a site in five minutes.

Triage is the cut after scoring. Teams often keep a top band for active review, a middle band for watch, and a bottom band for no action unless a relationship or strategic overlay overrides the model. The cutoffs belong to acquisitions, not to the model card. The same score distribution can support a tight week (few IC slots) or a wide net (new market entry). What should not change is the rule that membership in the ranked list requires complete location and market inputs.

Calibration is ongoing. When an analyst consistently promotes a mid-ranked site that later underwrites well, that is a signal about missing features (for example, last-mile access that the supply file does not capture). When high-ranked sites repeatedly fail a five-minute map check, that is a signal about leakage: the model may be rewarding density or income without penalizing oversupply. Feed those outcomes back as labels if you retrain. If you do not retrain, at least keep a log so the next quarter’s cutoff is not folklore.

Do not treat rank as probability of closing. A high score means “this site looks strong on the screens you encoded.” Closing depends on basis, capital, timing, and counterparties. Mixing those into an early triage model usually pollutes the location and market signal you hired the model to isolate.

The analyst still owns the shortlist

Human-in-the-loop here is specific: the model ranks sites; acquisitions still shortlist. Ranking is ordered evidence. Shortlisting is a decision to spend diligence time, request materials, or walk the site. An analyst can drop a top-ranked name because of floodplain, seller credibility, or a competing bid the model never saw. They can promote a lower-ranked name because it fills a product gap or because a trusted broker will only shop it this week. Those overrides should be recorded. Otherwise the ranked list becomes theater and the real process lives in Slack.

Review is most efficient when the UI shows map, score drivers, and source dates on one screen. The analyst should be able to answer, in under a minute, whether the location join looks right and whether supply is current enough to trust. If either answer is no, the site does not belong on the shortlist even if the rank is high. Empty or partial records stay out of the ranked view until they are complete.

Governance is light but real. Who can change cutoffs, who can force-include a name, and who signs that a batch’s data vintage is acceptable should be named roles. Site scoring touches IC narrative indirectly: a shortlist that always matches the highest scores looks automated. A shortlist that never matches them means the model is unused. Healthy practice is a high overlap plus a short, written list of overrides.

This split also protects against automation bias. A confident rank is easy to rubber-stamp at 6 p.m. The rule that shortlisting is human keeps the model in its lane: order the universe, do not declare winners.

When output should stay empty, and how this feeds later work

Empty output is mandatory when location cannot be resolved or when market inputs (the competitive and demand context tied to that location) are absent. Do not emit a default mid-pack score. Do not borrow a neighboring tract “for convenience.” Do not drop the site into the bottom of the rank as if it had been evaluated. Unscored means unscored. Downstream tools should not treat a missing score as a low score.

Other holdouts are optional policy: conflicting parcel matches, demographic series older than the team’s allowed vintage, or supply files that cannot be dated. Those can be empty or flagged incomplete, as long as they never appear as clean ranks. Completeness beats coverage theater.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first