Skip to main content

BMW ZA Inventory Source

Status (2026-07-03): All ZA path mappings below are implemented in sources/za_inventory.py (_ZaInventoryProductEntity). Only rows where a ZA path exists are included here.

ZA (ZoneAvailability) is the US market inventory feed. BQ US InvSearch uses its own coding (single-letter codes, Title Case strings, short numeric codes) that differs from Stolo's EU enums.

BmwInventoryEntity field mapping

Columns: BQ (source of truth) | Entity field | ZA path | BQ backfill

Legend: ✓ = direct mapping · — = not available / not applicable · ✅ N = BQ check passed, N matching rows · ❌ fmt = concept maps but value format differs · ❌ EU = EU-only value

Manual check procedure: For each row, values were pulled from the ZA fixture and BQ public_invsearchvehicles and compared by eye. A ✓ in the manual check column means the mapping was confirmed by a human reviewer.


Fields with ZA source

BQ columnEntity fieldZA pathBQ backfillmanual checkcode note
vinvinvin
modelcodemanufacturer_codemanufacturerCode
modeldescriptionmodel_descriptiontitleZA title = e.g. X5 xDrive40i (✅ 15,155 rows in BQ)
modelyearmodel_yearmodelYearStolo has no model year; ZA is the source for this field
bodystyle_codebody_typebodyTypedifferent format (ZA: 2-letter abbreviation e.g. SH, BQ: numeric code e.g. 05)
fueltypefuel_typefuelTypedifferent format (ZA: Petrol, BQ: O)
enginedrivetype_namedrive_typedriveTraindifferent format (ZA: Rear Wheel Drive, BQ: xDrive)
exteriorgenericcolorexterior_colorexteriorColourZA exteriorColour gives specific paint name (Skyscraper Grey metallic), not a generic cluster — no better ZA field exists
interiorgenericcolorinterior_colorinteriorColourZA interiorColour gives specific upholstery name (Veganza perforated Black), not a generic cluster — no better ZA field exists
interiorupholsterytypeinterior_codeinteriorCodedifferent format (ZA: option code e.g. KUSW, BQ: Leatherette)
totalmsrppricecashPaymentOption.totalCost
mileagemileagemileageStolo has no mileage; ZA is the source for this field

Fields not available in ZA

The following entity fields have no ZA path — they come from Stolo or BQ backfill only:

  • model_range — ZA does not expose marketing model range
  • feature_refs[].code — ZA does not expose equipment option codes
  • All "New fields to add" from the inventory entity (production dates, order data, logistics fields, option detail fields) — ZA provides only the core inventory record

See stolo-source.md for the full new-fields mapping with Stolo paths and BQ backfill targets.