Heavy Equipment BOM Structure (WW)

HEQBOM911· 2.1M records · 15 tables · v1.0.1 · Updated 2026-08-12
Manufacturing Industrial Equipment & Machinery Dataset API
CSV JSON SQLbill-of-materialsparts-cataloguewhere-usedsupersessionheavy-equipmentmanufacturingglobalservice-parts

Overview

A modelled heavy-equipment manufacturer's complete service parts catalogue, built the way parts systems actually behave and sized to test them. Six machine families (tracked excavator, rigid and articulated dump trucks, crawler dozer, wheel loader, motor grader), 16 models, 39 variants whose differences are expressed as serial effectivity ranges rather than duplicated trees. The bill of materials nests four to six levels from machine to part with a materialised path column that makes tree queries cheap, and the README ships the recursive query that walks a full machine and returns rolled-up part demand. Over a million item rows sit on 124,337 parts; fasteners, seals and filters are genuinely shared, with hundreds of parts used in forty or more places, which is what a where-used query needs to be worth testing. The where-used table is derived from the same in-memory graph the rest of the dataset is written from, so it reconciles exactly, and rolled-up quantity equals the product of assembly quantities down each path. Supersession chains run two and three deep with one deliberate, documented loop; interchange records, service kits with interval-based contents, remark codes and effectivity splits complete the mechanics. The tables reconcile by construction and the build re-verifies every one of the guarantees. Built for testing parts-catalogue logic, tree UIs, where-used and supersession handling, ETL over deep hierarchies and BI on service-parts demand. The licence and disclosure sections state the provenance of the data.

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
heq_bom_headers27,725
heq_bom_items1,123,640
parts124,337
part_where_used751,785
part_supersessions5,049
part_interchange14,908
equipment_families6
equipment_models16
equipment_variants39
assembly_groups62
service_kits193
service_kit_items2,285
uom_codes18
part_classes20
remark_codes40

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.

heq_bom_headers· Rows: 27,725
ColumnTypeDescription
header_idvarchar(8)Tree node key. Primary key.
variant_idvarchar(8)The variant whose tree this node belongs to.
group_idvarchar(24)The assembly group of the node. Empty on the machine and system levels.
parent_header_idvarchar(8)The parent node. Empty on the root; the path column is asserted consistent with this chain.
bom_levelintegerDepth in the tree: 1 machine, 2 system, 3 assembly, 4 sub-assembly, 5 and 6 detail.
pathvarchar(48)Materialised path from the variant root, dot separated. The column that makes subtree queries a prefix match.
sequence_in_parentintegerPosition of the node within its tree, in walk order.

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

heq_bom_items· Rows: 1,123,640
ColumnTypeDescription
item_idvarchar(16)Item row key. Primary key.
header_idvarchar(8)The leaf node this item hangs under.
part_idvarchar(16)The part at this callout.
callout_positionintegerThe number on the parts diagram. One position may split into serial ranges.
quantity_perintegerQuantity of the part per one parent assembly.
unit_of_measurevarchar(16)Unit the quantity counts, from uom_codes.
effective_from_serialvarchar(8)First machine serial this row applies to.

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

parts· Rows: 124,337
ColumnTypeDescription
part_idvarchar(16)Part key. Primary key.
part_numbervarchar(24)Generated checksum-bearing part number. Follows no real manufacturer scheme; the build asserts it against real designation patterns.
part_namevarchar(64)The part in words. One name is deliberately carried by two interchangeable, unlinked parts.
part_descriptionvarchar(80)The part in words with its application.
class_codevarchar(8)Part class, from part_classes.
class_namevarchar(40)The class in words.
material_codevarchar(8)Coded material of the part.

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

part_where_used· Rows: 751,785
ColumnTypeDescription
where_used_idvarchar(16)Where-used key. Primary key.
part_idvarchar(16)The part being located.
header_idvarchar(8)The leaf node the part appears under.
variant_idvarchar(8)The variant of that tree.
group_idvarchar(24)The top-level assembly group above the usage.
bom_levelintegerDepth of the node the part appears at.
quantity_perintegerQuantity per one parent assembly, as on the item row.

+2 more columns in part_where_used. The full schema ships with the download.

part_supersessions· Rows: 5,049
ColumnTypeDescription
supersession_idvarchar(8)Supersession key. Primary key.
part_idvarchar(16)The superseded part.
superseded_by_part_idvarchar(16)The successor part. Chains run two and three deep; exactly one documented loop exists.
effective_datedateDate the supersession took effect.
reason_codevarchar(8)Coded supersession reason.
reason_descriptionvarchar(40)The reason in words.
chain_depthintegerPosition of this link in its chain, derived.

+1 more columns in part_supersessions. The full schema ships with the download.

part_interchange· Rows: 14,908
ColumnTypeDescription
interchange_idvarchar(16)Interchange key. Primary key.
part_idvarchar(16)The part the record starts from.
interchangeable_with_part_idvarchar(16)The part it interchanges with.
directionvarchar(16)mutual or one_way.
note_codevarchar(8)Optional remark code qualifying the interchange.
equipment_families· Rows: 6
ColumnTypeDescription
family_idvarchar(8)Family code. Primary key: EXC, RDT, ADT, DOZ, WHL or GRD.
family_namevarchar(32)The machine family in words.
machine_classvarchar(16)earthmoving, hauling, loading or grading.
family_descriptionvarchar(96)What the family covers in this catalogue.
equipment_models· Rows: 16
ColumnTypeDescription
model_idvarchar(8)Model number. Primary key.
family_idvarchar(8)The family the model belongs to.
model_namevarchar(16)Invented wordmark plus series number. No real designation scheme; the build asserts it.
operating_weight_kgintegerOperating weight in kilograms.
engine_power_kwintegerEngine power in kilowatts.
introduced_yearintegerFirst year of production.
withdrawn_yearintegerLast year of production. Empty while current.

+2 more columns in equipment_models. The full schema ships with the download.

equipment_variants· Rows: 39
ColumnTypeDescription
variant_idvarchar(8)Variant number. Primary key; the unit a BOM tree belongs to.
model_idvarchar(8)The model this variant configures.
variant_codevarchar(16)Family, weight class and configuration suffix.
variant_descriptionvarchar(48)The variant in words.
serial_fromintegerFirst serial number this variant covers.
serial_tointegerLast serial number this variant covers.
climate_packagevarchar(24)temperate, arctic or high_altitude.

+2 more columns in equipment_variants. The full schema ships with the download.

assembly_groups· Rows: 62
ColumnTypeDescription
group_idvarchar(24)Assembly group code, family plus system plus a checksum-bearing sequence. Primary key.
system_codevarchar(8)The machine system: ENG, HYD, UND, ELC, CAB, DRV or WRK.
system_namevarchar(32)The system in words.
group_descriptionvarchar(64)The group in words, per family.
sort_orderintegerCatalogue sort position.
service_kits· Rows: 193
ColumnTypeDescription
kit_idvarchar(8)Kit key. Primary key.
kit_part_numbervarchar(16)Generated checksum-bearing kit number.
kit_namevarchar(40)The kit in words.
service_interval_hoursintegerService interval the kit covers, in machine hours.
variant_idvarchar(8)The variant the kit applies to.
service_kit_items· Rows: 2,285
ColumnTypeDescription
kit_item_idvarchar(16)Kit item key. Primary key.
kit_idvarchar(8)The kit this line belongs to.
part_idvarchar(16)The part included, drawn from the variant tree.
quantityintegerQuantity included in the kit.
sequenceintegerLine position within the kit.
uom_codes· Rows: 18
ColumnTypeDescription
uom_codevarchar(8)Unit key. Primary key.
uom_descriptionvarchar(16)The unit in words.
dimensionvarchar(16)count, length, volume or mass.
part_classes· Rows: 20
ColumnTypeDescription
class_codevarchar(8)Class key. Primary key.
class_namevarchar(40)The class in words.
class_descriptionvarchar(40)Whether the class is shared hardware or family specific.
class_kindvarchar(16)COMMON for hardware shared across all families, FAMILY for family-specific classes.
remark_codes· Rows: 40
ColumnTypeDescription
remark_codevarchar(8)Remark key. Primary key.
remark_descriptionvarchar(80)The fitment remark in words.

Sample Data

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

item_idheader_idpart_idcallout_positionquantity_perunit_of_measureeffective_from_serialeffective_to_serialremark_code
BI0000001H00004P02532314EA1100117564
BI0000002H00004P00915522EA1100117564
BI0000003H00004P00332733EA1100113187RM01

Version History

v1.0.12026-08-12Maintenance release. The three code tables are now declared, enforced foreign keys: unit_of_measure and remark_code on the item lines and class_code and unit_of_measure on the part master reference uom_codes, remark_codes and part_classes, so the relationship diagram and the SQL edition carry the constraints the data always satisfied. Data unchanged.

Related Datasets