BMW-targeted concept demonstration. Operational entities, suppliers, parts, inventory, production, financial values and incident conditions are synthetic and do not represent BMW systems, performance or current exposure.
Customer Data Readiness Gateway
Load a customer data package, validate every row against the published field definitions, and build the dependency model. Nothing is repaired or invented: a row is either accepted with provenance, or rejected with correction guidance.
1 · Templates and field definitions
Data dictionary dict-1.0. Required fields must be supplied; optional fields may be left blank and are reported as gaps rather than filled in.
Supplierssuppliers.csv4 required · 7 optional
The supplier and technology companies your operations depend on.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| supplier_id | required | Your stable identifier for the supplier. | text |
| name | required | Legal or trading name as used in procurement. | text |
| tier | required | Supply tier: 1 direct, 2 sub-tier, 3 raw. | 1 | 2 | 3 |
| criticality | required | Business criticality of the supplier. | critical | high | moderate | low |
| single_source_parts | optional | Count of parts sourced only here. | int |
| cyber_score | optional | Latest cyber assessment score, 0–100. Leave blank if not assessed. | int |
| last_assessment | optional | Date of the latest cyber assessment. | date |
| recovery_capability | optional | Evidence level for the supplier's recovery capability. | tested | documented | claimed | unknown |
| notification_commitment_hours | optional | Contractual hours to notify you of an incident. | int |
| open_remediations | optional | Open remediation items from the last assessment. | int |
| evidence_quality | optional | Quality of evidence held for this supplier. | strong | partial | weak |
Supplier sitessupplier_sites.csv5 required · 0 optional
The physical plants a supplier ships from. Multiple sites per supplier are expected.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| site_id | required | Your identifier for the supplier site. | text |
| supplier_id | required | Owning supplier. | must exist in suppliers |
| name | required | Site name. | text |
| city | required | City. | text |
| country | required | Country. | text |
Product programsprograms.csv4 required · 0 optional
Vehicle or product programs your lines build for.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| program_id | required | Program identifier. | text |
| name | required | Program name. | text |
| vehicle | required | Vehicle or product family. | text |
| annual_volume | required | Planned annual units. | int |
Plantsplants.csv5 required · 0 optional
Your manufacturing plants.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| plant_id | required | Plant identifier. | text |
| name | required | Plant name. | text |
| city | required | City. | text |
| country | required | Country. | text |
| shift_hours_per_day | required | Scheduled production hours per day. | number |
Production linesproduction_lines.csv7 required · 0 optional
Lines that stop when supply stops. Rate and value per unit drive exposure.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| line_id | required | Line identifier. | text |
| plant_id | required | Plant the line sits in. | must exist in plants |
| name | required | Line name as operations calls it. | text |
| program_id | required | Program the line builds. | must exist in programs |
| units_per_hour | required | Planned units per production hour. | number |
| revenue_per_unit | required | Revenue or transfer value per unit. | number |
| criticality | required | Line criticality. | critical | high | moderate |
Parts and materialsparts.csv9 required · 0 optional
Purchased parts, each mapped to the supplier and site that produces it.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| part_id | required | Part identifier. | text |
| part_number | required | Engineering part number. | text |
| name | required | Part description. | text |
| supplier_id | required | Supplier of record. | must exist in suppliers |
| site_id | required | Shipping site of record. | must exist in supplier_sites |
| commodity | required | Commodity or category. | text |
| unit_cost | required | Purchase cost per unit. | number |
| single_source | required | TRUE when no other qualified source exists. | bool |
| criticality | required | Part criticality. | critical | high | moderate | low |
Technology systemssystems.csv6 required · 2 optional
ERP, EDI, MES and other systems, and the business process each carries.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| system_id | required | System identifier. | text |
| name | required | System name. | text |
| kind | required | System class. | ERP | EDI | SaaS | MES | WMS | TMS | OT | IdP |
| owner_role | required | Accountable owner role. | text |
| supplier_id | optional | Supplier or provider that operates it. Blank when internal. | must exist in suppliers |
| business_process | required | Business process it carries. | text |
| criticality | required | System criticality. | critical | high | moderate |
| rto_hours | optional | Agreed recovery time objective in hours. | int |
System interfacesinterfaces.csv7 required · 0 optional
The transaction flows between systems, and whether a manual fallback exists.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| interface_id | required | Interface identifier. | text |
| name | required | Interface name. | text |
| from_system_id | required | Sending system. | must exist in systems |
| to_system_id | required | Receiving system. | must exist in systems |
| kind | required | Transport type. | EDI | API | File | Manual |
| criticality | required | Interface criticality. | critical | high | moderate |
| manual_fallback | required | Manual fallback maturity. | tested | documented | none |
Inventory and consumptioninventory.csv7 required · 5 optional
One row per part and line. Consumption rate is what makes time-to-shutdown calculable; leave it blank rather than estimating it.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| part_id | required | Part held. | must exist in parts |
| line_id | required | Consuming line. | must exist in production_lines |
| on_hand_units | required | Physical units on hand. | int |
| quarantined_units | optional | Units on hold and not usable. | int |
| safety_stock_units | optional | Units held as safety stock. | int |
| hourly_consumption | optional | Units consumed per production hour. Blank = not provided. | number |
| scrap_rate | optional | Scrap allowance as a decimal, e.g. 0.02. | number |
| expedite_hours | optional | Hours to get an expedited delivery, if such a route exists. | number |
| source_record | required | Where the count came from. | text |
| owner | required | Person or role accountable for the count. | text |
| as_of | required | Date and time the count was taken. | date |
| validation | required | Whether the count has been validated. | validated | unvalidated | stale |
Inbound shipmentsshipments.csv7 required · 1 optional
Inbound supply already dispatched. Only confirmed shipments with an ETA are counted as relief; unconfirmed ones are reported, never assumed.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| shipment_id | required | Shipment or ASN identifier. | text |
| part_id | required | Part shipped. | must exist in parts |
| line_id | required | Destination line. | must exist in production_lines |
| units | required | Units in the shipment. | int |
| eta_hours | optional | Hours from the incident clock until arrival. Blank when unknown. | number |
| certainty | required | confirmed = ASN or carrier confirmed; unconfirmed = not verified. | confirmed | unconfirmed |
| source_record | required | Source of the shipment record. | text |
| owner | required | Accountable owner. | text |
Alternate sourcesalternate_sources.csv6 required · 1 optional
Second sources per part, with real capacity and qualification status.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| alternate_id | required | Alternate source identifier. | text |
| part_id | required | Part it can supply. | must exist in parts |
| supplier_id | required | Alternate supplier. | must exist in suppliers |
| qualification | required | Qualification status. | qualified | partial | unqualified |
| activation_hours | required | Hours from decision to first delivery. | number |
| capacity_units_per_day | required | Units per day it can actually supply. | int |
| last_validated | optional | Date the capacity claim was last validated. | date |
Customer commitmentsorders.csv13 required · 0 optional
Customer releases and orders the affected lines must build.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| order_id | required | Order identifier. | text |
| reference | required | Customer-facing reference. | text |
| customer | required | Customer name. | text |
| channel | required | How the commitment arrived. | EDI release | customer order | dealer allocation | fleet contract |
| line_id | required | Line that builds it. | must exist in production_lines |
| program_id | required | Program. | must exist in programs |
| units | required | Units committed. | int |
| due_in_hours | required | Hours from the incident clock until due. | number |
| value_per_unit | required | Value per unit. | number |
| commitment | required | Firmness of the commitment. | firm | planned | forecast |
| source_record | required | Source record. | text |
| owner | required | Accountable owner. | text |
| validation | required | Validation state. | validated | unvalidated | stale |
Dependency relationshipsdependencies.csv13 required · 3 optional
The model of how a supplier disruption reaches a production line: supplier → site → part → line → program → customer commitment, and the systems and interfaces that carry it.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| dependency_id | required | Dependency identifier. | text |
| from_id | required | Identifier of the upstream record. | entity_ref |
| from_kind | required | Entity type of the upstream record. | supplier | supplier_site | part | plant | line | program | system | interface | process | order |
| to_id | required | Identifier of the downstream record. | entity_ref |
| to_kind | required | Entity type of the downstream record. | supplier | supplier_site | part | plant | line | program | system | interface | process | order |
| type | required | Relationship type. | supplies_from | produces | consumed_by | part_of | builds | operated_by | integrates | supports | fulfils |
| criticality | required | Criticality of the relationship. | critical | high | moderate | low |
| quantity | optional | Quantity or rate, free text. | text |
| effective_from | required | Date the relationship became effective. | date |
| effective_to | optional | Date it ends, if known. | date |
| source_record | required | Source of the relationship. | text |
| owner | required | Accountable owner of the relationship. | text |
| validation | required | Validation state. | validated | unvalidated | stale |
| confidence | required | Confidence in the relationship, 0–1. | number |
| last_reviewed | required | Date last reviewed. | date |
| evidence_id | optional | Supporting evidence record. | must exist in evidence |
Evidenceevidence.csv6 required · 2 optional
Records that support conclusions. Currency matters more than volume.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| evidence_id | required | Evidence identifier. | text |
| title | required | What the evidence is. | text |
| kind | required | Evidence type. | supplier statement | system record | test result | document | screenshot |
| provided_by | required | Who provided it. | text |
| record | required | Reference to the underlying record. | text |
| validated_at | optional | When it was validated. | date |
| approved_by | optional | Who accepted it. | text |
| current | required | TRUE when still current. | bool |
Incidentincidents.csv14 required · 5 optional
The disruption to analyse. One row.
| Field | Required | Definition | Accepted values |
|---|---|---|---|
| incident_id | required | Incident identifier. | text |
| reference | required | Incident reference. | text |
| title | required | Short incident title. | text |
| type | required | Incident type. | ransomware | outage | data_compromise | edi_failure | supplier_breach |
| severity | required | Severity. | S1 | S2 | S3 |
| phase | required | Response phase. | detected | assessing | responding | recovering | validating | closed |
| supplier_id | required | Disrupted supplier or provider. | must exist in suppliers |
| affected_site_ids | required | Pipe-separated supplier sites affected. | list |
| affected_system_ids | optional | Pipe-separated systems affected. | list |
| detected_at | required | When the disruption was detected. | date |
| now | optional | Analysis clock. Defaults to detected_at. | date |
| containment | required | Containment state at the supplier. | unknown | in_progress | contained |
| services_unavailable | optional | Pipe-separated services down. | list |
| data_integrity_concern | required | TRUE when order or shipment data may be altered. | bool |
| supplier_recovery_estimate_hours | optional | Supplier's stated recovery estimate. | number |
| reporting_source | required | Where the report came from. | text |
| confidence | required | Confidence in the report. | high | medium | low |
| commander | required | Incident commander. | text |
| missing_data | optional | Known gaps at intake. | list |
2 · Stage the package
Select the CSV files from the completed workbook. File names are the field mapping: each accepted file name maps to one table.
No files staged yet.
Active analysis source
Every screen calculates from the selected dataset.
Import history
Every attempt is kept, including rejected packages.
No imports yet in this session.
What the gateway will not do
- Fill a blank consumption rate with a planning rate.
- Round, average or infer an inventory count.
- Accept a dependency between records that are not in the package.
- Count an unconfirmed shipment as cover.
- Silently keep the newer of two duplicate rows.