BOM(Bill of Materials,物料清单)是描述一个产品由哪些零部件、材料、软件、包装和工艺相关项目组成的结构化清单。
在 OEM、ODM、EMS(电子制造服务) 和 JDM(联合设计制造) 项目里,BOM 是设计、采购、制造、成本、质量和售后之间共享的核心工程语言。
核心问题
产品不能只靠一个名称或图纸量产。工厂需要知道具体使用哪些物料、每个物料用几个、哪个版本、允许哪些替代料、谁供应、成本多少、是否需要序列号追溯。
BOM 解决的是“把产品结构转化为可采购、可制造、可计算成本、可追溯的清单”的问题。
核心对象
| 对象 | 含义 | 工程关注点 |
|---|---|---|
| BOM item | 一行物料或组件 | 名称、料号、规格、数量、版本 |
| Part number | 内部或供应商料号 | 不能随意复用 |
| Revision | 版本号 | 决定设计、采购和生产是否匹配 |
| Quantity | 单台产品用量 | 影响成本和采购需求 |
| Approved vendor | 认可供应商 | 控制质量、交期和认证 |
| Alternate part | 允许替代物料 | 必须经过工程和质量确认 |
| Reference designator | 元器件在电路板上的位置标识 | 用于贴片、维修和失效分析 |
| Unit cost | 单项成本 | 用于报价和毛利分析 |
| Traceability field | 批次、序列号或供应批信息 | 支撑 RMA 和质量追溯 |
一个简化 BOM 行可以长这样:
item: 10
part_number: CAP-0603-10UF-16V-X5R
description: capacitor, 0603, 10uF, 16V, X5R
quantity: 12
approved_vendors: vendor_a, vendor_b
revision: A2这行表达的不是“随便买一个 10uF 电容”,而是把规格、封装、耐压、介质、数量、版本和认可供应商都固定下来。
核心机制
BOM 通常形成树状产品结构:
finished product
-> main board assembly
-> PCB
-> IC
-> resistor
-> capacitor
-> enclosure
-> cable
-> packaging
-> firmware image成本估算可以用一个最小模型表示:
unit_material_cost = sum(quantity_i * unit_price_i)i表示 BOM 中的一行物料。quantity_i是生产一台成品需要的该物料数量。unit_price_i是该物料单价。sum(...)表示把所有物料行的成本加总。
这个公式只计算物料成本,不包括加工费、测试费、损耗、关税、物流、库存资金、返工和售后成本。因此报价时不能把 BOM 成本误认为完整产品成本。
常见 BOM 类型包括:
- EBOM:工程 BOM,反映研发设计意图。
- MBOM:制造 BOM,反映工厂实际生产、工序和包装结构。
- SBOM:软件物料清单,描述软件组件、版本和许可证。
- Service BOM:维修 BOM,描述备件、替换件和售后组件。
工程用途
- 采购计划:按订单和产量计算物料需求。
- 成本核算:估算单台成本、报价、毛利和降本空间。
- 量产导入:把研发设计转成工厂可执行的采购和装配清单。
- 替代料管理:在缺料或降本时控制哪些物料可以替换。
- 质量追溯:通过批次、供应商和版本定位问题范围。
- 售后维修:通过备件结构和版本信息处理 RMA。
边界与常见坑
- BOM 不等于图纸:图纸描述形状、连接和设计细节,BOM 描述物料结构和用量。
- BOM 不等于 SKU:SKU 是可售规格,BOM 是构成这个规格的物料结构。
- EBOM 和 MBOM 不能长期脱节:研发改了物料但制造 BOM 没更新,会造成采购、生产和质量事故。
- 替代料不是随意等价:封装相同不代表性能、寿命、认证、温度范围和可靠性相同。
- 版本管理必须严格:同一料号不同 revision 混用,会让失效分析和售后追溯变得困难。
- 软件和固件也可能进入 BOM:联网设备的固件版本、证书、配置和软件组件会影响合规、安全和售后。
- 只看物料成本会低估真实成本:加工、测试、良率、损耗、库存和售后都要进入完整成本模型。