Material Master Data (US)

ALLMAT802· 2.3M records · 10 tables · v1.0.1 · Updated 2026-08-17
Manufacturing Manufacturing & Production Dataset API
CSV JSON SQLmaterial-masterbomautomotivemanufacturingerpusunits-of-measuregtinroboticsunspschs-codehtstrade-compliance

Overview

Every record in this material master is generated. Nothing in it was extracted from a real manufacturer's system: no real material, part, manufacturer, plant, price or stock position is represented, and any resemblance to a real record is coincidental. What is reproduced is the shape and the behaviour of a material master a US automotive manufacturer actually holds. The master carries 250,000 materials: raw material, semi-finished and finished product, spare parts, production resources and tools, packaging, operating supplies, trading goods, service and non-stock material, across powertrain, body, chassis, electronics and interior, and across the robotic manufacturing equipment the plants themselves run on. Every material is classified by type, group and class, and every code carries its description on the same row, so the file explains itself with no lookup table and no join. The header row also carries the material's primary manufacturer part number with the manufacturer it belongs to, and its primary barcode with the type that says which structure the barcode carries, because those two are what anyone opening a material master looks for first and neither should be a join away; manufacturer part numbers sit on the externally procured material and barcodes only on material whose base unit is the each, both of them partial the way a real master is partial, and the identifier table beneath holds the rest, where a material may have several part numbers from several manufacturers and a barcode for each packaging level. Classification runs to commodity depth: each material carries its UNSPSC code and title and its segment, plus a 6-digit HS subheading and a 10-digit US HTS line, and each taxonomy ships as a codeset table of its own, keyed on the code itself so that materials reference it by a declared foreign key rather than by convention, with the full path on every row and a count of the materials underneath it. The UNSPSC families are the same code space the vendor master ALLVMS702 classifies suppliers in, so a buyer holding both products can go from a material to the vendors approved to supply its commodity family. The unit of measure conversion table and the depth of the bill of material are the reasons to buy it. Each material keeps separate base, purchase, stock issue and sales units, and every alternative unit is stated as an exact numerator and denominator against the base unit, covering eaches, dozens, gross, litres, gallons, drums, bags, cases and pallets, so conversion logic can be exercised on real packaging ladders instead of a single factor. The bill of material has genuine depth: a superior equipment relationship threads every part from a complete assembly down to the fastener, and a parent explodes through several levels of child structure rather than one flat list. It is built to exercise what a material master is bought to exercise: unit conversion arithmetic, BOM explosion and where-used, split valuation, phantom assemblies, plant-specific make or buy, and status-aware filtering.

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
materials250,000
material_plants370,000
material_valuations350,500
material_uom_conversions570,000
material_identifiers230,000
bom_headers39,260
bom_items345,340
material_sales_orgs108,000
unspsc_codes368
hs_codes145

Table Relationships

One parent record and seven child tables, each joined back on the same key.

70%
Loading diagram

Schema

Every table ships with typed columns, referential integrity, and documentation.

materials· Rows: 250,000
ColumnTypeDescription
material_idvarchar(16)Material number. Primary key of materials, and the foreign key every child table joins on. Ten digits, zero padded.
material_descriptionvarchar(96)Short text a planner or buyer reads to recognise the material: noun, then modifier, then specification.
material_typevarchar(16)Controls the number range, stock behaviour and valuation. ROH raw material, HALB semi-finished, FERT finished product, ERSA spare part, FHMI production resource or tool, VERP packaging, HIBE operating supplies, HAWA trading goods, DIEN service, NLAG non-stock, UNBW non-valuated.
material_type_descriptionvarchar(40)What the material type code means in words, for example ROH is "Raw Material".
material_groupvarchar(16)Automotive commodity group, and the one classification value entered by hand: class, scope, domain and UNSPSC segment are all derived from it. The vendor master ships a column of the same name over an entirely different vocabulary, so the two do not join.
material_group_descriptionvarchar(64)What the material group code means, for example PWT-1010 is "Engine Block and Head Components".
material_classvarchar(16)Derived from the group: the engineering class it belongs to, one level of aggregation up.

+51 more columns in materials. The full schema ships with the download.

material_plants· Rows: 370,000
ColumnTypeDescription
material_idvarchar(16)Material this plant view belongs to. Half of the primary key, and the foreign key to materials.
plantvarchar(16)Plant the view is maintained for. The other half of the primary key: a material extended to three plants has three rows here.
plant_namevarchar(40)Name and location of the plant the code identifies.
plant_material_statusvarchar(16)Whether the material may be used at this plant: active, blocked or phase_out. It is set per plant and may differ from the company-wide material_status.
procurement_typevarchar(16)How this plant obtains the material. E made in house, F bought in, X both.
procurement_type_descriptionvarchar(56)What the procurement type code means, for example E is "In-house production".
special_procurement_type_codevarchar(8)A qualifier on top of the procurement type. 10 consignment, 20 subcontracting, 30 planned stock transfer, 40 direct stock transfer, 50 phantom assembly. Empty on most rows, where the plain procurement type is the whole story.

+22 more columns in material_plants. The full schema ships with the download.

material_valuations· Rows: 350,500
ColumnTypeDescription
material_idvarchar(16)Material this valuation segment belongs to. Part of the primary key.
valuation_areavarchar(16)Where the stock is valued, which in this dataset is the plant. Part of the primary key.
valuation_area_namevarchar(40)Name and location of the valuation area.
valuation_typevarchar(16)Which stock the segment values. STD where there is no split, or DOM and IMP where domestic and imported stock are valued apart. Never empty.
valuation_type_descriptionvarchar(40)What the valuation type means, for example IMP is "Imported stock".
valuation_categoryvarchar(16)H where the material is split valuated by procurement origin. Empty where it is not.
valuation_category_descriptionvarchar(48)What the valuation category means and what the stock is split by.

+14 more columns in material_valuations. The full schema ships with the download.

material_uom_conversions· Rows: 570,000
ColumnTypeDescription
material_idvarchar(16)Material the conversion belongs to. Part of the primary key.
alt_uomvarchar(16)The alternate unit this row defines. Part of the primary key, and never empty: every material has one row where it equals the base unit.
alt_uom_descriptionvarchar(16)The alternate unit code in words, for example DOZ is "Dozen".
alt_uom_dimensionvarchar(16)What the alternate unit measures. It may differ from the base dimension, as a bag does over a base unit of mass, and that is deliberate.
base_uomvarchar(16)The material base unit, repeated on every row so the conversion reads without joining materials.
base_uom_descriptionvarchar(16)The base unit code in words.
base_uom_dimensionvarchar(16)What the base unit measures.

+5 more columns in material_uom_conversions. The full schema ships with the download.

material_identifiers· Rows: 230,000
ColumnTypeDescription
identifier_idvarchar(16)Primary key. One row per identifier, so a material with a part number and two barcodes has three rows here.
material_idvarchar(16)Material the identifier belongs to.
identifier_typevarchar(16)What the row identifies the material by: MPN a manufacturer part number, GTIN13 and GTIN14 barcodes, QR a scannable code, OEM_PART an original equipment part number.
identifier_type_descriptionvarchar(88)What the identifier type is and who issues it.
identifier_valuevarchar(56)The identifier itself. Barcodes carry a valid GS1 check digit so validation logic can be exercised, and a prefix GS1 reserves for restricted circulation, so they are synthetic and must never be used to identify goods in a trading system.
identifier_uomvarchar(16)Packaging level the code applies to, for example the case or the pallet. Populated for barcodes and QR codes, empty for part numbers.
identifier_uom_descriptionvarchar(16)The packaging unit code in words.

+6 more columns in material_identifiers. The full schema ships with the download.

bom_headers· Rows: 39,260
ColumnTypeDescription
bom_idvarchar(16)Primary key. One bill of material per material, plant and alternative.
material_idvarchar(16)The material this bill of material produces, or the equipment it is maintained against.
material_descriptionvarchar(88)Description of the header material, copied so the header reads without a join.
plantvarchar(16)Plant the bill of material is valid at. A material may be structured differently at each plant.
plant_namevarchar(40)Name and location of the plant.
bom_alternativevarchar(8)Which production route this is, numbered from 01. A material with two routes at one plant has two headers.
bom_usage_codevarchar(8)What the structure is for. 1 production, 2 engineering and design, 3 universal, 5 costing, 6 plant maintenance. Only 1 and 3 mean the plant makes the material.

+14 more columns in bom_headers. The full schema ships with the download.

bom_items· Rows: 345,340
ColumnTypeDescription
bom_item_idvarchar(16)Primary key. One row per component position on one bill of material.
bom_idvarchar(16)The bill of material header this component belongs to.
parent_material_idvarchar(16)The material being built. Carried here as well as on the header so a where-used query needs one join rather than two.
parent_bom_levelintegerLevel of the parent material in the structure.
item_numbervarchar(8)Position of the component within the structure, numbered in tens so a later insertion has somewhere to go.
component_material_idvarchar(16)The material consumed. Always a real material, and always one with a plant view at this header plant.
component_descriptionvarchar(88)Description of the component, copied so the item reads without a join.

+13 more columns in bom_items. The full schema ships with the download.

material_sales_orgs· Rows: 108,000
ColumnTypeDescription
material_idvarchar(16)Material this sales view belongs to. Part of the primary key.
sales_orgvarchar(16)Sales organisation that may sell the material. Part of the primary key.
sales_org_namevarchar(24)Name of the sales organisation.
distribution_channel_codevarchar(8)Route to market this view applies to. Part of the primary key, and a code rather than a number despite being all digits.
distribution_channel_namevarchar(32)What the channel code means, for example 10 is direct supply to a vehicle manufacturer.
delivering_plantvarchar(16)Plant that ships the material by default for this sales organisation and channel.
delivering_plant_namevarchar(40)Name and location of the delivering plant.

+13 more columns in material_sales_orgs. The full schema ships with the download.

unspsc_codes· Rows: 368
ColumnTypeDescription
codevarchar(16)The UNSPSC code, 8 digits at every level, zero padded below the level it names. Primary key, and what materials.unspsc_code and materials.unspsc_segment_code reference.
level_numbervarchar(8)Depth of the row, 1 for a segment through 4 for a commodity.
level_namevarchar(16)What the level is called: segment, family, class or commodity.
titlevarchar(120)Official UNSPSC title of the code.
parent_codevarchar(16)The code one level up, and a foreign key into this same table. Empty on a segment, which is the termination case for a recursive walk.
segment_codevarchar(16)Segment this row sits under, 2 significant digits. The whole path is carried on the row so it reads without a recursive query.
segment_titlevarchar(120)UNSPSC title of the segment.

+9 more columns in unspsc_codes. The full schema ships with the download.

hs_codes· Rows: 145
ColumnTypeDescription
codevarchar(8)The Harmonized System code: 2 digits for a chapter, 4 for a heading, 6 for a subheading. Primary key, and what materials.hs_code references.
level_numbervarchar(8)Depth of the row, 1 for a chapter, 2 for a heading, 3 for a subheading.
level_namevarchar(16)What the level is called: chapter, heading or subheading.
titlevarchar(136)Official Harmonized System title of the code.
parent_codevarchar(8)The code one level up, and a foreign key into this same table. Empty on a chapter.
chapter_codevarchar(8)Chapter this row sits under, the first 2 digits.
chapter_titlevarchar(112)Harmonized System title of the chapter.

+7 more columns in hs_codes. The full schema ships with the download.

Sample Data

A snapshot of real rows from the dataset (values are fully synthetic).

material_idmaterial_descriptionmaterial_typematerial_type_descriptionmaterial_groupmaterial_group_descriptionmanufacturer_part_numbermanufacturer_namebarcode_gtinbarcode_typeunspsc_codeunspsc_titlehs_codebase_uommaterial_status
0000100001SCARA RobotFHMIProduction Resource or ToolROB-6010Industrial Robots and ManipulatorsVAN-91460-A0Vandale Metalcraft LLC23153200Robotics847950EAobsolete
0000100002Calliper Bracket, Front Axle, 278 mmFERTFinished ProductCHS-3040Brake Discs, Drums and Callipers25171700Braking systems and components870830EAactive
0000100003Headlamp Assembly, 48V, 32 Pin, Rev CFERTFinished ProductELE-4060Lighting Modules and Lamps25172907Vehicle headlight851220EAactive

Version History

v1.0.12026-08-17Moves the QR payload host off the reserved .example TLD. GS1 Digital Link URIs now resolve to id.datlyne.com, the publisher's own domain, rather than a suffix that announces itself as a placeholder in every scan. The GTIN-14 payloads and their check digits are unchanged, so a scanner reads exactly what it read before. No other column, row or value differs.

Related Datasets