The job it does
When a customer needs a part, URG has to answer two questions at once: which vehicles does this part fit, and what other part numbers is it interchangeable with. Get that right and a request finds the correct salvaged part in a member’s yard; get it wrong and the part doesn’t fit.
The Interchange Updater builds and maintains the master dataset behind that answer. It does not invent fitment from scratch — it fuses three independent sources of truth and layers URG’s own real-world inventory on top, so the result is sharper than any one source alone.
Three sources of truth
The interchange catalog
The industry standard for part-to-part interchangeability — which parts swap
across which vehicles. Hollander ships periodic updates as a SQL Server backup
(.bak); each is a full snapshot of the current interchange universe (~750k numbers).
The vehicle language
The Auto Care Association’s standardized catalog — VCDB (every vehicle, engine and transmission), PCDB (part types and positions) and QDB (qualifiers). It is the common vocabulary for describing exactly what a vehicle is.
The real-world ground truth
95 million parts that member yards have actually inventoried
(out_urgnet) — each with a VIN, year / make / model and part type. This is URG’s
proprietary evidence of what really came off which vehicle.
How it flows
public.out_urgnet95M parts · VIN, Y/M/M, part typeaces_data.aces_build_data24M+ rows · the accumulated VIN→fitment map (append-only, years deep).bakENTERPRISEinterchange list, index, notes, carline…urg_interchangelist~9M rows · interchange + structured fitmentids2hol (OEM number → interchange) ▼Why the yard data is the advantage
ACES and Hollander are generic — they describe the industry’s view of vehicles and interchange. URG’s
edge is the 95 million real parts in out_urgnet. Every day, the ACES jobs
decode each part’s VIN to an exact vehicle and record which Hollander interchange that real part maps to.
Accumulated over many years (aces_build_data alone is 24M+ rows, and the raw yard-match feed
aces_build_data_frm_urgnet is 17M+ and only ever grows), those millions of observations
become hard evidence of what actually fits what — correcting and tightening the generic data
with URG’s own inventory. That fused mapping can’t be bought or regenerated; it is the asset.
What this application rebuilds
When a new Hollander update arrives, this app ingests it and rebuilds the
urg_interchangelist — the interchange table enriched with structured vehicle fitment:
- Parse — each free-text application string (e.g.
“FORD PASS. 76 8-460, R.”) is broken bysplit_hollander_app()into model, year range, engine, VIN-digit filters and left/right. - Position —
get_aaia_position()derives the AAIA part position (front/rear, inner/outer, left/right) per part type. - Make — a 435-rule brand engine assigns the correct make to every vehicle.
- One-to-one rows — parts that don’t interchange still get a synthetic “NON-INTERCHANGE” row per vehicle, so they resolve to their exact carline.
- VIN explosion — VIN-digit ranges are expanded into discrete, matchable rows.
- OEM cross-reference —
ids2holmaps manufacturer (OEM) part numbers to the correct left/right interchange.
See the Hollander index for the command-by-command pipeline and live build output.
Rebuilt vs. preserved
The interchange list itself is rebuilt fresh from each Hollander version — it tracks
whatever Hollander currently publishes. What is never thrown away are the accumulating
assets: the urg_stock part-number registry (persistent IDs) and the years-deep
ACES fitment map built from yard data. The updater regenerates the interchange, but always carries the
accumulated knowledge forward.