About the Interchange Updater

How URG combines Hollander interchange data, the ACES/AAIA vehicle catalog, and 95 million member-yard parts into one dataset that answers “what fits, and what does it interchange with?”

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

Hollander

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).

ACES / AAIA

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.

URG yards

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

Member yards upload inventory
public.out_urgnet95M parts · VIN, Y/M/M, part type
Daily ACES jobsdecode each VIN (DataOne) → exact vehicle, map to its Hollander interchange
aces_data.aces_build_data24M+ rows · the accumulated VIN→fitment map (append-only, years deep)
Hollander update .bak
MSSQL ENTERPRISEinterchange list, index, notes, carline…
This app parses & enrichessplit_hollander_app() → model / year / engine / VIN / L-R · get_aaia_position() → position · carline → make
urg_interchangelist~9M rows · interchange + structured fitment
▼   combined with ids2hol (OEM number → interchange)   ▼
Accurate part-request resolutionan incoming OEM number, VIN, or year/make/model resolves to the right interchange and the right inventory

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:

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.