The bug that costs small firms the most isn't a missing comp. It's a silently wrong value that flowed in from three different sources, none of which agreed, and nobody noticed until a lender kicked the file back asking why the GLA on your subject was 1,842 in the MLS pull but 1,910 in the public record and 1,876 in your report.
That mismatch didn't happen because your appraiser was careless. It happened because three data feeds — MLS, county public‑record, and the AMC order file — each said something slightly different, and there was no rule deciding who wins. Most small shops treat data integration as "we pulled it, it's in the file." The firms that stop getting burned treat it as a set of explicit reconciliation rules with a clear tie‑breaker for every field.
This post is about those rules. Not a philosophy of data quality — the actual handshake patterns, reconciliation windows, per‑field confidence scoring, and alert examples you can wire into your workflow this quarter.
The core problem: three sources, one field, no referee
Take a single suburban assignment. The subject's living area shows up in at least three places:
-
MLS listing (agent‑entered, sometimes rounded, sometimes copied from a prior listing)
-
County public record / assessor data (authoritative on lot and legal, often stale on interior updates)
-
AMC order file (whatever the lender's system says, which is frequently pulled from an AVM or a prior appraisal)
Each of these is "correct" from someone's point of view. The MLS number reflects what the listing agent measured or guessed. The assessor number reflects the last permitted change they recorded. The AMC number reflects whatever their system inherited. When your software just grabs the first value it finds — or worse, overwrites one with another based on load order — you get a field that's technically populated and quietly unreliable.
In real operations, this shows up most on four fields: gross living area, year built, bedroom/bath count, and sale price/date on comps. Those four account for the large majority of "why don't your numbers match" exceptions that land back on small firms.
The fix isn't picking a "best source" once and trusting it forever. GLA, year built, and legal description each have a different best source. Source priority is per‑field, not per‑feed — that's the whole insight.
Handshake patterns: define what "successfully received" actually means
Most integration failures aren't dramatic outages. They're partial pulls that look successful. The MLS feed returns a record but the GLA field is null. The public‑record API times out on one parcel but returns fine on the other three. Your system marks the pull "complete" because it got a response.
Manage every appraisal with confidence and clarity.
Rateoly helps you coordinate inspections, generate reports, and communicate seamlessly with clients.
- Comprehensive appraisal tracking
- Automated client notifications
- Integrated scheduling & report management
No credit card required
A handshake pattern is just the contract for what counts as a real, usable delivery. For each source, define three states instead of two:
| State | What it means | What the system should do |
|---|---|---|
| Confirmed | Record returned, all required fields present and within sane ranges | Accept, timestamp, move to reconciliation |
| Partial | Record returned, but one or more required fields missing/null/out‑of‑range | Accept the good fields, flag the missing ones, do NOT let blanks overwrite existing values |
| Failed | No usable response, timeout, or auth error | Retry per policy, alert if still failed after window, never mark the field as "checked" |
The mistake small shops make is collapsing "partial" into "confirmed." A partial pull that silently writes null over a previously good value is how a subject loses its year built two days before the report is due.
> A public‑record response is Confirmed only if it returns a parcel ID, a lot size, and a year built, and the year built is between 1850 and the current year + 1. If year built is null or outside that range, the field is marked Partial and the prior value (if any) is retained and flagged, not overwritten.
That single range check catches the classic "year built = 0" and "year built = 2103" garbage that some county feeds emit when a record is incomplete.
Reconciliation windows: give the sources time to agree
Data doesn't arrive at once. Your AMC order file lands at intake. The MLS pull happens when the appraiser starts research. The public‑record pull might be a day later. If you reconcile the instant the first source arrives, you're reconciling against nothing.
A reconciliation window is a defined period during which the system waits for the expected sources before deciding a field's final value. It doesn't need to be long. For most residential work, a window of a few hours to end‑of‑day is plenty. The point is that reconciliation is a scheduled event, not a race.
-
T+0 (intake) AMC order file loads. Fields marked provisional — usable for scheduling, not for final value.
-
T + research start MLS pull runs. Now two sources exist for overlapping fields.
-
T + public‑record pull Third source lands.
-
End of reconciliation window System compares all sources per field, applies priority and confidence rules, and produces a reconciled value with a confidence score.
The pattern that trips people up: treating the AMC order file as truth because it arrived first and came from the client. AMC order files are the least reliable source for physical characteristics — they're frequently inherited from an AVM or a five‑year‑old prior appraisal. First to arrive is not most authoritative.
Here's a quick visual of that reconciliation flow.
If a source hasn't reported by the end of the window, the field is reconciled from whatever's available and flagged as "single‑source." That flag matters at review time, because a single‑source GLA deserves a second look before it anchors your adjustments.
Confidence scoring, per field
This is the part that actually changes review behavior. Instead of a field being "filled" or "empty," give every reconciled field a confidence score based on agreement and source authority.
A simple, defensible scoring model that small firms can maintain by hand or in software:
-
High confidence Two or more sources agree within tolerance, and the highest‑priority source for that field is one of them.
-
Medium confidence Sources disagree slightly (within a defined tolerance band) OR only the priority source reported.
-
Low confidence Sources disagree beyond tolerance, or only a non‑priority source reported, or the value came in as Partial.
Tolerance is per‑field, and this is where firms get sloppy. GLA that's off by 15 square feet is a rounding difference. GLA off by 200 is a different house. Year built off by 1 might be a permit‑vs‑construction distinction. Off by 30 is a data error.
A starting tolerance table:
| Field | Priority source | Agreement tolerance | Low‑confidence trigger |
|---|---|---|---|
| Gross living area | Appraiser measurement > public record > MLS | ± 50 sq ft | Spread > 100 sq ft across sources |
| Year built | Public record > MLS > AMC | ± 1 year | Spread > 3 years |
| Bed/bath count | Public record > MLS | Exact match | Any disagreement |
| Comp sale price | MLS closed > public record | ± $0 (should be exact) | Any disagreement |
| Comp sale date | MLS closed > public record | Same date | Any disagreement |
| Lot size | Public record > MLS | ± 3% | Spread > 5% |
The insight buried in that table: for sale price and date on closed comps, there should be zero tolerance. Those are recorded facts. If your MLS closed price and the public record deed don't match to the dollar, something's wrong — a concession, a data entry error, or a non‑arm's‑length transfer — and that's exactly the kind of thing you want surfaced, not averaged away.
Prioritization rules: who wins when sources fight
Confidence scoring tells you how much to trust a reconciled value. Prioritization rules tell you which value to use when they disagree. These are separate decisions and small firms constantly blur them.
The rule set that holds up in review:
-
Physical measurement beats everything for GLA. If the appraiser measured on site, that value wins and the MLS/public record become corroboration, not competition.
-
Public record beats MLS for legal, structural, and permitted facts — lot size, legal description, year built, permitted additions.
-
MLS closed data beats public record for transaction terms — sale price, sale date, financing concessions, days on market. The deed lags and lacks concession detail.
-
AMC order file is provisional for everything physical. Use it to schedule and to sanity‑check, never as the tie‑breaker.
-
When the priority source is missing, drop to the next source AND lower the confidence score. Don't promote a backup source to full confidence just because the primary was silent.
A worked example. Subject GLA:
-
AMC order file
1,910
-
MLS
1,842
-
Public record
1,876
-
Appraiser on‑site measurement
1,868
Rule 1 applies — the measured value (1,868) wins. Public record (1,876) is within tolerance, so it corroborates. MLS (1,842) is off by 26, still within the ± 50 band, fine. The AMC's 1,910 is the outlier and gets ignored for value but noted, because that inflated number is probably what a lender's AVM will spit back, and you want to be ready to explain the difference. Reconciled GLA: 1,868, high confidence, with a note that the order file disagreed by 42 feet.
Alert examples that are worth firing
Alerts are only useful if they're rare enough that people actually read them. Flood every file with warnings and appraisers learn to click past all of them — including the one that mattered. The goal is a handful of alerts per file, each tied to a real decision.
Alerts worth having:
-
Hard mismatch — transaction terms "Comp 2 closed price disagrees between MLS ($412,000) and deed ($398,500). Verify concessions or non‑arm's‑length." Fire always. This is money.
-
GLA spread exceeds tolerance "Subject GLA sources span 68 sq ft (1,842–1,910). Confirm measured value before adjustments." Fire when spread > 100.
-
Stale public record "Public record last updated 2016; MLS notes remodel 2022. Structural fields may be outdated." Fire when record age exceeds a threshold and MLS mentions renovation keywords.
-
Single‑source field at window close "Year built is single‑source (MLS only); public record did not return. Verify before finalizing." Fire when priority source missing.
-
Impossible value caught at handshake "Public record returned year built = 0; value rejected, prior value retained." Fire on range violation.
Notice what's not on that list: an alert every time two sources differ by any amount. A 12‑square‑foot difference is not an event. Confidence scoring exists precisely so you don't alert on noise.
A real scenario
A two‑appraiser firm doing mostly suburban residential and a steady stream of AMC work was averaging somewhere around 9–11 lender exceptions a month tied to data mismatches — GLA off from the AVM, year built disagreeing with the order file, a couple of comp price discrepancies per month that turned into rush revisions.
They didn't buy anything fancy. They wrote down a per‑field priority list, set tolerance bands roughly like the ones above, and added an end‑of‑day reconciliation step with about five possible alerts instead of "check everything manually." Over the following couple of months, data‑mismatch exceptions dropped to two or three a month. The ones that remained were legitimate discrepancies worth documenting, not clerical noise. One flagged a comp with a $13k concession the MLS buried in remarks that would have inflated their adjusted value.
Turn time on affected files improved by roughly a day, mostly because reconciliation caught problems during research instead of after submission. Not a revolution. A steady leak sealed.
When this level of structure makes sense — and when it doesn't
When it's worth building: You do repeat volume with AMCs, you pull from MLS and public record on nearly every file, and you've had lender pushback on characteristic mismatches. The rule set pays for itself in avoided revisions quickly.
When it's overkill: If you're doing a handful of complex commercial or litigation assignments a month where every field gets hand‑verified anyway, formal reconciliation windows add ceremony you don't need. You're already reconciling manually with more rigor than any scoring model.
Who should not bother yet: A brand‑new solo appraiser doing five files a month. Get your measurement and comp‑verification habits solid first. Reconciliation rules organize a process you already have; they don't replace judgment you haven't built.
Building it into your actual workflow
You don't need to automate everything on day one. The rules above work as a laminated checklist beside the monitor. But once volume climbs, the manual version breaks down — nobody remembers the tolerance bands at 6pm on a deadline.
This is where operational software that supports field‑level source rules earns its place. The valuable capability isn't "AI reads your data." It's that reconciliation rules run the same way every file, every appraiser, at the same window, with the same alerts — so a tired researcher on a Friday gets the same GLA tie‑break logic as your best appraiser on a Monday. AI automation is genuinely useful for the narrow, boring part: flagging that a public‑record year built came back as zero, or that two closed prices disagree by dollars, before a human ever opens the file. It removes the "nobody caught it" failure mode without removing the appraiser's judgment on what the reconciled value should mean.
Consistency here compounds. Reliable per‑field reconciliation feeds directly into everything downstream — cleaner comps, fewer revisions, and defensible files. It pairs naturally with the kind of lightweight data governance that beats one‑off fixes for reliable comps, and when your source data is trustworthy, your modular narrative templates stop needing manual corrections every time a field disagreed.
Where to start this week
Pick one field — GLA is the highest‑leverage — and do three things:
-
Write down its source priority
measured > public record > MLS > AMC.
-
Set a tolerance
± 50 square feet, spread over 100 triggers a look.
-
Add one alert
"GLA sources disagree beyond tolerance — confirm before adjustments."
Run it manually for two weeks. Count how many real problems it surfaces versus how many times it cried wolf. Then add year built, then comp price, then dates. Cover those four fields and you've eliminated the source of most of the "why don't your numbers match" exceptions that quietly cost small firms revision hours all year.
The point of MLS data integration for appraisal work isn't pulling more data faster. It's making sure that when three sources disagree, a rule — not a rushed guess at 6pm — decides which one your report stands behind.
Ready to elevate your appraisal operations?
Join 500+ appraisal firms using Rateoly to enhance accuracy, save time, and improve client satisfaction.