Short answer: A bundle that looks generous to buyers is often a silent margin hole. You discount the kit, still pay full fee stack on the order, and still ship full component COGS. If your reports do not allocate cost correctly, SKU-level profit lies to you.
Kit contribution margin = kit price − platform fees − allocated COGS − ads/affiliate share − refund risk.
The three mistakes
| Mistake | What you did | What the books show | Reality |
|---|---|---|---|
| Price kit off "sum of list prices − 20%" | Feels marketing-smart | Looks fine on GMV | Fees + COGS may exceed kit price |
| Zero-cost "free gift" | Gift is "marketing" | Gift margin infinite | Gift left warehouse — real COGS |
| No fee re-run on kit price | Used single-item margin % | False green | Need how to price on the kit |
Worked example (illustrative)
Components standalone: A COGS 20 / B COGS 15 / C COGS 10 → total COGS 45.
Kit sell price after discount: RM 79.
Platform fees ~19% + RM 0.54 ≈ RM 15.5 (confirm your card — TikTok fees / Shopee fees).
| Step | RM |
|---|---|
| Kit price | 79.00 |
| − Fees (illustrative) | 15.50 |
| − COGS 45 | 45.00 |
| = Before ads | 18.50 |
| − Ads / affiliate 12 | 12.00 |
| = Contribution | 6.50 (~8%) |
Looks "ok" until a return or voucher stack — voucher math — wipes the 8%.
Use the TikTok or Shopee calculator on the kit price, not the sum of singles.
Allocation recipe that keeps reports honest
- Define a BOM (bill of materials) per kit SKU.
- Allocate COGS by cost weight (or explicit % you document).
- Store kit as its own sellable SKU with standard cost = sum of components.
- Rank kits and components by net contribution, not units.
- Kill kits that only exist to win GMV on campaign days.
Inseller angle
Inseller’s profit layer is built so order and SKU economics use actual fees and costs, which is where bundle lies usually hide. Price kits with the same honesty you use for single SKUs — then scale ads only if contribution survives.
Related: fee history · real profit.