Scoring

Valuation and comparable sales

Read the model estimate, recorded sales and property facts to understand what supports a valuation.

Separate the two sources

pricing_model_arv_estimate is the model's after-repair-value estimate, rounded to the nearest thousand dollars. It comes from the model's own value distribution and does not move when comparable sales are added or removed.

comp_band comes from recorded comparable sales, size-normalised to the subject property, the house being underwritten, where square footage allows. Its low, median and high values are whole-dollar totals. It moves with the sales and is absent when too few carry usable prices.

rehab_adjusted_arv lifts the band's median toward its high value as the repair budget increases. Before rounding, it equals the median without a repair signal and never exceeds the high value. The published value rounds to the nearest thousand dollars, so it can differ from that median or exceed that high.

Its thresholds are policy assumptions, and it is absent without the band.

Read withheld model estimates

model_estimate_available and subject_property are always present on a successful underwriting answer. When the flag is false, the model estimate disagreed with comparable sales and was withheld. The sales-derived band and comparable sales are unaffected.

This remains a charged successful 200, meaning the call is charged to your balance. It still carries a valuation from sales.

valuation_quantiles carries the model's predicted value distribution. valuation_mean is an optional point estimate and can be null. effective_sample_size measures how much comparable evidence supported the model estimate; it can be fractional.

Those three members and pricing_model_arv_estimate are absent when the model estimate is withheld. A low effective sample size means thin model evidence. It is different from the number of sales passing the similar-sales filter below.

Check the resolved property

subject_property.property_id identifies the house that was underwritten. subject_property.address contains the county record's address, not an echo of submitted text. The stored city is published unchanged, without re-casing.

Missing address components are omitted; the whole address is absent when none exists. The identifier remains present. Check that this block describes the house you meant.

The seven possible facts are:

MemberMeaning
subject_property.facts.square_feetFinished living area in square feet.
subject_property.facts.bedroomsBedroom count.
subject_property.facts.bathroomsBathroom count as the property data service calculates it, published as stored; it can be fractional.
subject_property.facts.partial_bathroomsSeparately stored partial-bathroom count; partial does not necessarily mean a half bath.
subject_property.facts.year_builtYear the structure was built.
subject_property.facts.lot_size_square_feetLot size in square feet, never acres.
subject_property.facts.property_typeProperty type in the record's wording, or your supplied text.

Bathrooms and partial bathrooms are separate figures; this service does not add the two together. It makes no claim about what the calculated bathroom count already includes. A bathroom count of 2.5 and a partial count of 1 must not be read as a total of 3.5.

Each fact contains its value and source. The source has exactly two values: county-record means the stored county value; caller-stated means a value you supplied through overrides. A supplied value reads caller-stated even when unchanged; partial bathrooms always read county-record.

Missing usable facts are omitted, not replaced with null, zero or an empty string. The valuation ran without those facts. Recorded zero square feet is unusable living area and is omitted; genuine zero bedroom or bathroom counts remain valid.

Check the address and model range

subject_property.address_quality.code reports address checks. It is not a confidence score and not a probability. Both codes mean the house number matched exactly one complete county record.

CodeMeaning
zip-confirmedThe resolved address has a readable ZIP code matching the county record. This does not establish that the record is correct or current.
zip-unconfirmedThe resolved address has no readable ZIP, or the county record has a different ZIP or none at all.

The compared ZIP is the resolved one, which need not be one you typed. Branch on the code; the statement explains it for a person.

subject_property.outside_model_range is always present. Its flag is a caution about the estimate, not a claim about the house. Its reasons list is empty when unflagged.

ReasonMeaning
large-lotLot size exceeds the model's calibrated range.
large-structureLiving area exceeds the model's calibrated range.
property-typeThe effective type is poorly covered, such as multifamily, commercial, mixed-use or industrial.

Multiple reasons can apply; missing facts cannot raise their own reason. The checks use effective facts, including overrides. Size thresholds are policy figures chosen by judgment and intended to be tuned.

Read the per-square-foot evidence

as_is_similar_band states dollars per square foot, not the total dollars in comp_band. It feeds nothing: no other response number is computed from it. It can remain present when the model estimate is withheld.

The current similar-sales filter requires all three conditions:

FilterCurrent setting
SizeWithin ±15% of the subject's living area, inclusive.
AgeWithin ±20 years of the subject's build year, inclusive.
RecencyRecorded within 365 days before the request.

The recency window is this service's chosen setting. Missing or unreadable sale dates do not qualify; they are treated as neither recent nor old. Without usable subject size or build year, no sale qualifies and the range falls back.

With fewer than three qualifying sales, as_is_similar_band.basis changes from similar-sales to all-comparable-sales. The filters are dropped; the range covers every comparable with a usable sale price and square footage. Thin filters are ordinary, and the fallback remains dollars per square foot.

as_is_similar_band.qualifying_sales still counts sales passing the filter, never the size of the comparable list. Branch on as_is_similar_band.basis, not the human wording in as_is_similar_band.statement. With no usable price-and-size pair, the entire block is absent; no member inside it is null.

Read individual comparable sales

comps carries recorded sales and is absent when none were returned. The subject's own prior sale is removed before calculations. Entries carry available address, date, price, size, beds, baths and build year.

MemberMeaning
comps[].property_idIdentifier accepted by property history, which reports buyer kind, never a name. Single-property underwriting accepts an address or property identifier.
comps[].similarity_rankPosition in the returned list, starting at 1 without gaps after removal and capping.
comps[].price_per_square_footSale price divided by living area, rounded once.
comps[].distance_milesStraight-line distance from the subject, in miles to two decimals.
comps[].lotsizeRecorded lot size; its unit has not been established. Compare within the answer without assuming a unit.
comps[].property_typeRecorded type, unchanged.

Rank is a position, not a similarity score or percentage; rank 1 does not claim the most comparable sale. The ordering method is not published.

Missing coordinates omit distance; missing usable price or size omits price per square foot. Nominal transfer prices omit sale price and its ratio, contributing to neither the range nor qualifying count. Missing facts are not filled with zeros, nulls or unknown text; internal similarity scores are not published.

Saved locations

The single-property answer optionally carries paired numeric subject_property.latitude and subject_property.longitude. Each comparable can carry comps[].latitude and comps[].longitude. These use the supplier-resolved locations already used in underwriting, with latitude in [-90, 90] and longitude in [-180, 180].

Both coordinates are omitted when either is missing or invalid; zero is a valid coordinate. Older saved answers may lack these fields. Batch and History Call outputs are unchanged.

Next steps

Last modified on