Matteo Maria Betto
Case study · Enterprise workflows · Manufacturing CPQ

When one part changes, everything moves.

In manufacturing, a quote is only as reliable as its bill of materials: thousands of part numbers nested in assemblies, made or bought, bought in lots, shared across products. This is how I went from that problem to an interface to create, assemble, view and approve a BOM, with its costs always in sight.

€289.80↑ COSTS ROLL UP
Role
Senior UX/UI Designer
Company
Bit2win · CPQ for manufacturing
Tools
Figma
01

The problem

Every quote for a manufactured product rests on its bill of materials. Before this project, BOMs and their costs lived in a very complex Excel workbook, managed through many versions, each with a huge number of columns.

With several copies in circulation it was hard to know which one was current, and a flat sheet made a tree-shaped structure hard to read. The goal was to simplify: one structure, one place, costs always in sight.

Fig. 1 · Before
N versionsWhich file is current? BOM_pump_v6.xlsx BOM_pump_v7.xlsx BOM_pump_v7_final.xlsx BOM_pump_v7_final_2.xlsx BOM_pump_v7_FINAL_rev.xlsx Copies drift. Which one is right? Too many columnsA flat sheet for a tree PN Description Qty Make/Buy Lot Cost + dozens more columns → Hard to read, easy to break.
A reconstruction, not the real file. For confidentiality the original workbooks can’t be shown. The problem was their shape: many versions of the same BOM, each a flat grid of columns trying to describe a structure that is really a tree.

And the structure itself is unforgiving. When a single price, quantity or part changes, the cost moves through branches that look unrelated.

Fig. 2 · One change, many numbers
Product · level 0 · make Pump unit €289.80 → €291.40 Assembly · make Frame assembly €53.60 €54.80 Assembly · make Motor unit €181.20 €181.60 Assembly · level 1 · ×1 · make Control panel €55.00 PN 10-0412 · buy Steel plate 4 × €12.50 €50.00 PN 20-0008 · buy Bolt M8 24 × €0.15→0.20 €4.80 PN 30-2200 · buy Motor 2.2 kW 1 × €180.00 €180.00 PN 20-0008 · buy Bolt M8 8 × €0.15→0.20 €1.60 PN 40-1150 · buy PCB board 1 × €42.00 €42.00 PN 40-0310 · buy Cable set 2 × €6.50 €13.00 One supplier price changes: Bolt M8, €0.15 → €0.20
Five cents, three numbers. A single supplier price moves two assemblies and the product total, through branches that look unrelated. Seeing where a change lands, and why, is the core interface problem.
02

The analysis: rebuilding a business process

The work didn’t start from screens. It started from the client’s process as it really ran in their spreadsheets. We analysed it in depth: what worked and had to be kept, where it broke, and how its elements depended on each other. Only then did we give each aspect of configuring a BOM its own place in the interface.

Fig. 3 · From spreadsheet to product
01 Map the process as it really runs: the Excel workbooks, their versions, who does what 02 Strengths and weak points what works and must be kept, what breaks and why 03 Connections between elements part numbers, levels, make or buy, costs, approval 04 An interface for each aspect create, assemble, view, approve: one view per task From a process in spreadsheets to a process in the product.
The interface is the last step, not the first. Reconstructing the process first meant the product kept what the client relied on, and fixed what was breaking.
03

Why it’s hard

A bill of materials is the recipe of a product: every assembly and part needed to build it, each with a part number, a quantity and a cost. The cost of the product is the sum of its parts, rolled up level by level.

Fig. 4 · Anatomy of a bill of materials
↑ costs roll up ↓ quantities multiply Product · level 0 · make Pump unit €289.80 Assembly · level 1 · ×1 · make Frame assembly €53.60 Assembly · level 1 · ×1 · make Motor unit €181.20 Assembly · level 1 · ×1 · make Control panel €55.00 PN 10-0412 · buy Steel plate 4 × €12.50 €50.00 PN 20-0008 · buy Bolt M8 24 × €0.15 €3.60 PN 30-2200 · buy Motor 2.2 kW 1 × €180.00 €180.00 PN 20-0008 · buy Bolt M8 8 × €0.15 €1.20 PN 40-1150 · buy PCB board 1 × €42.00 €42.00 PN 40-0310 · buy Cable set 2 × €6.50 €13.00 shared part · same PNshared part · same PN
Quantities go down, costs go up. Each part’s cost is its quantity times its unit price; each assembly adds up its parts; the product adds up its assemblies. Note the M8 bolt: the same part lives in two places. Illustrative example, simplified to three levels.

A real BOM isn’t three levels and six parts. These are the forces that make it hard to read and harder to price.

Part numbers

Every item has its own PN. There are thousands of them, and a wrong or duplicated code breaks everything downstream.

Make or buy

Each item is either produced in-house, with a cost built from its own structure, or bought, with a cost set by suppliers.

Lots

Unit costs change with the lot: supplier price breaks on one side, setup costs spread over the batch on the other.

Depth and quantities

Assemblies inside assemblies, and every level multiplies the quantities below it.

Shared parts

The same PN appears in many assemblies, so one change lands in many places.

Approval

A BOM drives prices and production. It has to be checked and approved before anyone relies on it.

04

Make or buy: the key distinction

Every item in a BOM carries one decision that changes everything about it: is it made or bought? A make item is produced in-house, so it has its own structure and its cost is built from it. A buy item is purchased, so the structure ends there and its cost comes from a supplier.

The interface has to make this difference visible at a glance, because the same question, “why does this cost what it costs?”, has two completely different answers.

In the interface, make or buy isn’t a tag typed on each line. It can be configured by type and by characteristics, and each side loads its costs from its own source: cost centres for what is made, quotes, orders and offers for what is bought.

Fig. 5 · Make or buy
MakeProduced in-house PN 50-0100 · makeFrame assembly Steel plate×4 Bolt M8×24 In-house workcost centre its own BOM Cost comes from its own BOM, rolled up level by level + cost centres for the work done in-house It opens into a structure of its own. BuyPurchased from a supplier PN 20-0008 · buyBolt M8 the tree stops here Purchasing data requestedQuotes placedOrders receivedOffers Cost comes from quotes, orders and offers from suppliers, at the lot size you need A leaf: nothing underneath.
Same tree, two kinds of node. A make item is a branch: its cost is calculated from what sits underneath it. A buy item is a leaf: its cost arrives from outside, from a supplier. Switching a part from buy to make adds a whole BOM under it, and changes where its cost comes from: cost centres instead of purchasing data.

The decision also depends on quantity. The cheaper option can flip as the lot grows.

Fig. 6 · Make or buy depends on the lot
Lot sizeBuy · unit priceMake · unit costCheaper
100€0.12€0.46Buy
1,000€0.09€0.10Buy
5,000€0.09€0.068Make
The cheaper option depends on how many you need. Buying follows the supplier’s price breaks (€0.15 up to 99 pieces, €0.12 from 100, €0.09 from 1,000). Making costs €0.06 of material per piece plus a €40 setup spread over the lot. Illustrative numbers.
05

The hardest part: cost centres

The most difficult point in the analysis was cost centres. Costing a make item means knowing what each hour of in-house work costs, and the client needed to follow every single cost over seven years: averages, and a projection for each year ahead.

In Excel this was done by hand. We gave cost centres a dedicated tool of their own, then connected it to BOM costing. Two people, two tools, one source of truth: cost control manages centres, averages and the 7-year projection; whoever costs a BOM selects a make part number, picks its cost centre, and the right value arrives on its own, based on the costing date.

Fig. 7 · Two tools, one value
Tool 1 · Cost centresManaged by cost control CC 410 · Assembly line · €/hour 52 2026 54 2027 55 2028 57 2029 58 2030 60 2031 62 2032 7-year projection, one value per year · dashed line: average 56.9 Tool 2 · BOM costingUsed by whoever costs the BOM PN 50-0100 · makeFrame assembly Cost centreCC 410 · Assembly line ▾ Costing date2027 Hours per unit1.5 Work cost1.5 × €54.00 = €81.00 recalled for the costing date Before: projected by hand, in Excel. Now: recalled automatically.
Managed once, used everywhere. Cost control keeps cost centres, averages and the 7-year projection up to date in their own tool. BOM costing never retypes a rate: it recalls the right one for the costing date. Illustrative values.
06

The approach: four stages, one structure

Instead of one screen that tries to do everything, I organised the interface around the life of a BOM: from the first part number to the approved structure that prices and production rely on. Each stage gets the view it needs.

Fig. 8 · The BOM lifecycle
a change opens a new revision 01Create Part numbers Attributes Make or buy 02Assemble Structure and levels Quantities Lots 03View Tree and cost roll-up Cost breakdown Compare versions 04Approve Check and validate Sign off Freeze a revision Draft In review Approved
Four verbs, one object. Each stage needs a different view of the same structure: forms to create, a tree to assemble, a cost breakdown to review, a clear checklist to approve. Simplified.
07

What the product does that Excel couldn’t

Each decision answers a weak point found in the analysis.

Before, in ExcelDecisionWhat it changes
1

Approval lived outside the file

Decision

A built-in approval step, with clear states

A BOM is checked before it drives a price.

2

Costs were scattered across sheets

Decision

Total cost per part number, rolled up at every level

The full cost of any PN, and what makes it up, is always visible.

3

Part numbers were hard to locate

Decision

A structure view: where each PN lives, how it’s organised, what depends on it

The impact of a change is visible before it’s made.

4

Make or buy was a manual tag

Decision

Make or buy configurable by type and by characteristics

Rules replace line-by-line decisions, and stay consistent.

5

Data was copied in by hand

Decision

Connected databases: cost centres for make; quotes, orders and offers for buy

Costs come from their source, not from a copy.

6

Seven-year cost projections were built by hand

Decision

A dedicated cost-centre tool with averages and 7-year projections, recalled by BOM costing

Each role works in its own tool, and the right rate arrives automatically for the costing date.

Fig. 9 · Where the data comes from
Part numberswhere they live, how they’re organised dependencies The BOM Total cost per PN at every level, make and buy make Cost centres buy Quotes, orders and offers make costs buy costs Approvalchecked before it prices anything Configured by type and characteristics Configured by type and characteristics
One structure, connected to its sources. The BOM no longer holds copies of numbers: it reads them from where they live, and nothing prices a quote until it has been approved.
08

Outcome

7 years
of cost-centre projections, calculated automatically instead of by hand
Other work