# Reading a score

A Scored Call returns two kinds of number: what the pricing model estimates, and what
the recorded comparable sales imply. They are different evidence, they move for
different reasons, and reading them as one number is the mistake this page exists to
prevent. The member-by-member schema, with the full description of every field, is in
the [API reference](/api) — this page is about what the numbers are and are not.

## Two numbers, two sources

- **`pricing_model_arv_estimate`** is read from the pricing model's own value
  distribution. It does **not** move when comparable sales are added or removed.
- **`comp_band`** is derived from the comparable sales themselves, size-normalised to
  the property where their square footage allows it. It is the number that **does**
  move with the comps.

If you display both, expect exactly one of them to change when the comparable
evidence changes. That is not a bug in either number; it is what each one is.

## When the model's estimate is withheld

`model_estimate_available` is the only member always present. When it is `false`, the
model's estimate and its distribution are withheld from the response: they were
checked against the comparable sales and did not agree with them, and a confidently
wrong valuation is worse than none. The Comp Band and the comparable sales are
unaffected.

**A response with `model_estimate_available: false` is a charged 200.** The Comp Band
it ships with is a valuation — derived from recorded sales, size-normalised, stated
with its evidence — so the call did what a Scored Call is for. One Credit was spent,
exactly as for any other Scored Call.

## What is verified, and what is not

Stated plainly, because the distinction matters.

**Verified:**

- The derived outputs are internally consistent and deterministic: the same response
  yields the same derived numbers, exactly.
- The Investor Price is the algebraic inverse of a flip pro forma, and the round-trip
  between them holds to the cent — a seller's suggested price and a buyer's
  underwriting agree by construction.
- The check that withholds a model estimate disagreeing with the comparable sales
  (the `model_estimate_available: false` path above) is exercised and tested.

**Not verified:**

- **There is no published back-test of predicted price against realized sale price.**
  Not for the model's estimate, and not for the derived Investor Price. If accuracy
  matters to your use case, budget for your own back-test.
- The margin and viability thresholds behind `flip_viability` and
  `likely_investor_price` are policy figures calibrated by judgment and intended to
  be tuned. They are not fitted to any data set.

## Accuracy caveats that survive every release

- **Residential only.** Large multifamily and commercial properties are outside what
  the model covers, and will diverge rather than error.
- **Tear-downs are unsupported.** There is no land-value estimate; analyze lot value
  separately.
- **Repair estimates are screening ranges, not bids.** Small homes skew high per
  square foot, and heavy-rehab figures are the least reliable in the set.
- **The band is only as good as the comps.** Show `effective_sample_size` alongside
  any band you publish: a low value means the number rests on thin evidence and
  should be read with caution.
- **Sparse property data yields confident-looking numbers.** A value computed from
  three missing inputs still renders with the same number of digits. The evidence
  members exist so you can tell the difference — use them.
