You converted the carrier's PDF, imported the ESX into Xactimate, and the total came back… different. Sometimes higher. Sometimes brutally lower. If it's ever happened to you, you know the feeling: did I do something wrong? Is the file broken?
We've watched this happen on real scopes, and we can tell you exactly what's happening — and how to check your own file before you ship it.
Key Insight: Xactimate reprices every imported line against the price list currently loaded in your copy of Xactimate. The price-list stamp inside the file (e.g., OKAD8X_SEP24) records what the file was priced on — it does not control the reprice. Depending on the file and the codes, the total can move in either direction — sometimes by tens of thousands of dollars on a full roof replacement.
The Mechanism: It's the Price List, Not Your File
Here's the sequence every imported ESX goes through:
- Xactimate reads the line items and their CAT|SEL codes (e.g., RFG|300S for laminated shingles).
- For each code, it looks up the price in the price list currently loaded in your copy — not the list the file was priced on.
- It applies the price variant for the line's activity code: install (+), removal (-), or add (&).
- It writes the new unit prices and recalculates the total.
That's the whole mechanism. It's not corruption, not a converter bug, not Xactimate being out to get you. It's a repricing event, and it happens on every fresh import. The file's own priceList stamp (plus its plModifiedDateTime) is metadata about the past — Xactimate prices for the present.
What a Reprice Actually Does
A reprice is not one uniform percentage applied to your file — it's a line-by-line event. Xactimate takes each line's CAT|SEL code and activity variant, looks it up in the list currently loaded in your copy, and writes the new unit price. Lines whose codes moved between price-list editions change; lines that didn't stay put.
The direction isn't random. Files priced on older lists tend to reprice upward when material and labor costs have climbed since — which has been the norm in recent years. Files that carry hand-keyed or inflated prices on specialty items move the other way, clamping down to list. The same mechanism produces both outcomes, which is why "reprice" feels random until you know what's happening under the hood.
Where the Big Moves Come From
Repricing isn't uniform — it's driven by a handful of line types. The biggest movers on a typical reprice:
- Chimney flashing: a hand-keyed line priced well above list — common on specialty items — clamps down to the current list rate on import, and a single line can move by hundreds of dollars or more. Files carrying hand-keyed or inflated prices on specialty items get corrected on import.
- Laminated shingle removal: a removal line hand-priced well above list clamps to the removal-activity (-) rate — labor only, which is a small fraction of the install rate. Removal and install are not the same price, and the activity code decides which one you get.
- Steep roof, drip edge, vents: these move between list editions as labor and material components update monthly.
Pro tip: The single most common cause of a "wrong" reprice is an activity-code mismatch — a removal line coded as an install prices at the full install rate instead of the labor-only removal rate, and the gap can exceed 4x. Check the activity code before you import, not after.
What to Do About It
You can't stop Xactimate from repricing on import — it's how the platform works. But you can stop being surprised:
- Know what list you're on. Check the price list loaded in your copy of Xactimate. If you're importing files priced months ago on older editions, expect movement.
- Compare before you ship. After import, run the line-by-line comparison against the PDF total. Every line that moved, and why, should be explainable — list edition, activity code, or a flagged "not in price list" line.
- Fix activity codes first. If a tear-off priced as an install, that's the biggest single-line error available to you. Get removals as removals.
- Know why prices move. Xactimate prices against region-specific price lists — the same line can price differently by region and price month, and repricing only happens inside Xactimate against the right local list. See why Xactimate pricing varies by region.
- Use a converter that verifies. ESXPress surfaces the totals (RCV, O&P, tax, depreciation, ACV) straight from the PDF for every conversion, so you have the before-picture locked in before Xactimate ever touches the file.
The Bottom Line
Repricing on import is Xactimate working as designed. The file's price-list stamp is a record of the past; the reprice is the present. Know your list, check your activity codes, compare before you ship — and when a total moves by tens of thousands of dollars, you'll know exactly which lines did it and why.
Want to understand why the numbers move? Read why Xactimate pricing varies by region — and why we don't publish prices, see the full how repricing on import works explainer, then convert your full scope with ESXPress — free 14-day trial, card required, no charge until it ends. Plans and details on the pricing page.