Costing Bundles and Kits When Components Rise on Their Own

A store sells a front brake kit for $149.00: two rotors, a pad set, a hardware clip kit and a can of brake cleaner, boxed together. The rotor supplier raises its price by 15%. Each rotor, sold on its own, still clears the 35% margin floor. The kit does not. The kit's cost per item in Shopify is a number someone typed when the kit was created, and no supplier price list contains the kit's SKU, so nothing flags it.
Below: how to cost a kit from its components, which component moves it, and what to do when one part breaks its floor while the kit stays above it, or the other way round.
What a kit's cost actually is
A kit's cost is the sum of its components' costs, each multiplied by the quantity in the kit, plus whatever it costs you to put the kit together. That last part is easy to forget: the box, the insert, the minutes someone spends picking and packing it.
Here is the brake kit, with every component bought from a different line on two or three supplier price files:
| Component | Qty | Unit cost | Extended cost | Share of kit cost |
|---|---|---|---|---|
| Rotor | 2 | $28.00 | $56.00 | 63.1% |
| Pad set | 1 | $22.00 | $22.00 | 24.8% |
| Hardware clip kit | 1 | $4.50 | $4.50 | 5.1% |
| Brake cleaner | 1 | $3.50 | $3.50 | 3.9% |
| Box and assembly | 1 | $2.70 | $2.70 | 3.0% |
The box costs $1.20 and assembly is five minutes at $18.00 an hour, so $1.50. Total kit cost: $88.70. At $149.00 retail the kit earns $60.30, a margin of 40.5%.
Now compare that with the parts sold separately. The store lists the rotor at $49.99, the pad set at $39.99, the clip kit at $8.99 and the cleaner at $5.49. Bought one by one, the same parts cost the customer $154.45 and earn the store $68.45, a 44.3% margin. The kit gives away $5.45 as a discount and spends $2.70 on assembly. Those two items are the gap between 44.3% and 40.5%. Because a kit usually runs on a thinner margin than its parts, the same cost rise pushes it under a floor sooner.
If you are not sure which cost belongs in each component line, the article on weighted average, last cost and FIFO covers that choice. Use the same method for components that you use for everything else.
Which component moves the kit
Use the share column from the table: a component's price change moves the kit's cost by that change multiplied by the component's share.
- Brake cleaner up 20% (from $3.50 to $4.20): 20% × 3.9% = about 0.8% on the kit, or $0.70.
- Rotors up 15% (from $28.00 to $32.20): 15% × 63.1% = about 9.5% on the kit, or $8.40.
The cleaner has the bigger percentage and barely touches the kit; the smaller rotor increase is the one that matters. When a price file lands, sort the kit's components by share before you look at percentages. Doubling the cleaner would add 3.9% to the kit cost. A 1% move on the rotors adds 0.6%.
When a part breaks its floor and the kit doesn't, and the reverse
Run the two increases through both the components and the kit, with a 35% floor on everything. For how to pick a floor in the first place, see choosing a margin floor.
| Event | Component margin after | Kit cost after | Kit margin after |
|---|---|---|---|
| Cleaner +20% | Cleaner: 23.5% (below floor) | $89.40 | 40.0% |
| Rotors +15% | Rotor: 35.6% (passes) | $97.10 | 34.8% (below floor) |
| Both | Cleaner fails, rotor passes | $97.80 | 34.4% (below floor) |
A part fails, the kit passes
Reprice the part where it is sold on its own. At $6.49 the cleaner earns $2.29 on a $4.20 cost, 35.3%, back above the floor. The kit can absorb its $0.70; there is no reason to touch the kit's price for it. Write down that the kit absorbed it, because the next small rise will land on top.
Every part passes, the kit fails
Alerts on component margins stay silent here. The rotor at $49.99 and $32.20 cost still earns 35.6%. The kit carries two rotors and a discount, so it drops to 34.8%. The only way to catch it is to compute the kit's margin from the components every time any component's cost changes.
Repricing a kit: the ceiling is the sum of its parts
With both increases in, the kit costs $97.80. To restore the original 40.5% margin, you would need $97.80 ÷ (1 − 0.405) = about $164.37. The formula is the same one used in recalculating your price after a cost increase. The trouble is what that price does next to the parts.
After repricing the cleaner, the parts sold separately add up to $99.98 + $39.99 + $8.99 + $6.49 = $155.45. A kit priced at $164.37 costs more than buying its contents one by one. The sum of the parts is a ceiling on the kit price, and the closer the kit gets to it, the less reason a customer has to pick the kit.
So the realistic options are:
- Raise the kit only as far as the floor. At $150.99 the kit earns $53.19, or 35.2%. The customer still saves $4.46 against the parts.
- Raise the parts first. If the rotor price moves to reflect its own cost, the ceiling rises with it and the kit has room again.
- Cut the kit's own costs. Taking $1.00 out of the box and the pick moves the kit at $150.99 from 35.2% to 35.9%.
- Change the contents. Drop a component that adds little perceived value, or swap it for one with a steadier cost.
Which option is right depends on how the kit sells. If most customers buy the kit rather than the parts, the kit price is the one to protect, and option 2 is mostly theory.
Keeping the bill of materials honest
The work happens in a bill of materials sheet with one row per kit and component:
- Columns: kit SKU, component SKU, quantity, supplier, current component cost, extended cost.
- Component cost comes from a lookup against your latest cost data, never typed by hand. If you keep a cost history from exports, as in keeping a cost history for Shopify from CSV exports, look up the newest row.
- Kit cost is a SUMIFS over extended cost by kit SKU, plus a fixed assembly line.
- Recompute whenever any component's supplier sends a file. The kit itself has no supplier, so no file of its own will ever prompt you.
Watch for unit mismatch: the cleaner may be bought by the case of 12, and the cost per can is the case price divided by 12, not the case price. Also watch for a discontinued component. When a supplier drops a part, the kit is dead too, even though it still shows in stock until the last loose part runs out. Treat it like any other discontinued bestseller.
How the kit appears in Shopify changes where its cost lives. If the kit is its own product with its own SKU, its cost per item is whatever you typed when you created it, and it stays there until you change it by hand from the sheet. If your bundle setup sells the components as separate line items, each component's own cost applies and the kit's margin only exists in your spreadsheet.
CostSentry matches supplier price lists to your catalog by SKU and alerts you when a component's cost rises or its margin falls below your floor, so the component side of the sheet stays current. The roll-up into kits is still the sheet's job. To see where your component margins stand today, the free supplier margin checker takes a price list and a product export.
Check the component side of your kits
Drop in your Shopify product export and a supplier CSV, see which SKUs match and which now fall below your target margin. Free, no account.
Open the free checker ↗