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?
I've been on both sides of this. I 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-priced line at $1,250.00/EA clamps to roughly $403.79/EA against the current list — a single line moving by more than $800. Files carrying hand-keyed or inflated prices on specialty items get corrected on import.
- Laminated shingle removal: a removal line hand-priced at $287.07/SQ reprices to roughly $59.58/SQ on the removal activity (-) — labor only. 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 $251.75/SQ instead of $59.58/SQ (4.2x). 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.
- Check the current list prices before you quote. Our free Xactimate Reprice Check lets you paste a few lines and see what they'd price at against current-list data — before you import anything.
- 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 see the mechanism on your own numbers? Try the free Reprice Check, 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.