Documentation

Ataytis BOM documentation.

Explore multi-level, multi-parent bills of materials from Parent–Child data with the Ataytis BOM Power BI visual.

Ataytis BOM

How the visual reads your data

How Ataytis BOM turns Parent–Child rows into a structure: items and positions, top-level products and levels, shared parts, what slicers and filters do, what a click selects, and how every row is loaded.

One row per relationship

Each row says that one parent uses one child, and optionally how many. Rows that share a part number describe the same item, so the structure is put together from the rows themselves: nothing in the table needs to say how deep a part sits or which product it belongs to.

ParentChildQuantity
PUMP-AMOTOR1
PUMP-AGEARBOX1
PUMP-BMOTOR2
MOTORBEARING2
GEARBOXBEARING4

Five rows make two products. PUMP-A and PUMP-B are top-level products, because no row lists them as a child. MOTOR is used by both pumps, and BEARING by the motor and the gearbox.

Items and positions

An item is a part number. A position is one place in the structure where that item appears, with the route that leads to it. The tree draws a card for every position and the table a row for every position, so an item used in several places is drawn in each of them.

PositionQuantity perExtended quantity
PUMP-A › GEARBOX › BEARING44
PUMP-A › MOTOR › BEARING22
PUMP-B › MOTOR › BEARING24

BEARING is one item with three positions and two parents. Its details panel says so under Item, as Occurrences 3 and Used by 2 parents, and the table can show the first as the Used in column. Each position keeps its own extended quantity: PUMP-B has two motors, so it needs four bearings through its motor.

Top-level products and levels

  • An item that no row lists as a child is a top-level product, at level 0.
  • A row with a blank Parent also makes its Child a top-level product, and that row describes it.
  • Each step down adds one level. There is no fixed number of levels to set up and no level column to build: the visual follows the structure as deep as your rows take it.
  • An item with components is an assembly; one without is a part.

Which way the rows are read

Always from parent to child: the column in Parent is the one that uses, and the column in Child the one that is used. If your table calls them Assembly and Component, Product and Ingredient, or Used in and Part, drag each into the matching well. Where used reads the same rows upward, so it needs no table of its own.

Part numbers must match exactly

A child joins to the rest of its structure only where its part number matches a parent exactly. Spaces at the start and end are ignored, and a number joins the same text, so 200 in a whole-number column is the same item as "200" in a text column. Part numbers that differ only by case or by spacing inside them are kept as separate items, and a data note says so.

Slicers and filters

The BOM is built from the rows the visual receives, so every slicer and filter on the page reshapes it. Change a slicer and the structure is rebuilt from the rows that remain.

What a click selects

Selecting a position selects the rows behind it, and the other visuals on the page filter to them in the usual Power BI way:

PositionRows selected
A componentThe row, or rows, joining it to its parent.
A top-level product with a blank-parent rowThat row.
Any other top-level productThe rows joining it to its components.

Up to 2,000 rows are selected by one click. To select a whole branch, use Filter report, described in Highlight, where-used and focus. A selection restored by a bookmark marks every position of the part it names.

Every row is loaded first

Power BI sends a visual its rows in batches of 30,000. A BOM is only right when it is whole, so the visual keeps asking until every row has arrived, showing Loading the bill of materials and the number of rows so far, and only then draws. If Power BI stops sending before the end, the BOM is drawn from what arrived, with a message above it saying it may be incomplete.

How the visual reads your data — Ataytis BOM | AtaytisTech