BMW RIS Source
RIS (Retail Information System) provides feature/option data including packages and phrases. RIS endpoints: options, packages, phrases, prices.
BmwFeatureEntity field mapping (RIS)
Composite primary key: feature_code + model_code
Note on extraction: BmwFeatureEntity records are built directly in extractor functions — there is no Pydantic alias subclass. extract_features handles all RIS endpoints.
Note on RIS availability: RIS is credential-scoped rather than inherently limited
to a fixed market list. The current pipeline only wires Serbia (sr-rs) with
source=datafox; other markets need credential validation before onboarding.
Field × source matrix (RIS columns)
| Entity field | BQ column | RIS options/packages/phrases path | RIS prices path | manual check | code note |
|---|---|---|---|---|---|
| feature_code | code | items[*].id | pricings[*].optionCode | ✓ | codes are 5-char alphanumeric (S05DM, P0C6R); format consistent across all sources |
| model_code | product_code | request param model_id | request param model_id | ✓ | supplied as request parameter |
| brand | — | request param brand | request param brand | ✓ | not in BQ raw_feature_metadata — must be set from request context |
| name | name | items[*].name | — | ✓ | BQ: English; RIS may return locale-specific text |
| description | long_description | — | — | ✓ | not populated by RIS — use UCP or GL Products for descriptions |
| feature_type | type | — | — | ✓ | not populated by RIS directly |
| family_code | family_code | — | — | ✓ | not populated by RIS directly |
| is_standard | is_standard | — | — | ✓ | not populated by RIS directly |
| price_gross | list_price | — | pricings[*].price | ✓ | RIS prices endpoint provides gross price |
| price_net | — | — | — | ✓ | not available from RIS |
| currency | — | — | — | ✓ | not available from RIS |
Notes
- RIS is the only currently configured source that provides per-option pricing for Serbia.
S-prefix option codes are globally consistent between EU and US — codes from RIS (sr-rs) will match BQ option codes.- RIS
options,packages, andphrasesendpoints provide overlapping feature code coverage — the extractor merges them.