钢结构加工 · 订单报价与毛利分析
同一吨位,两种构件,两种命运:一起报价失真事故
案例结论
当工序成本的真实动因是工时或设备时间时,按吨位分摊必然导致复杂构件被低估、简单构件被高估;报价失真的根因不是价格,而是成本动因选错。
背景与现象
某加工厂长期以「元/吨」作为对外报价的主要单位。这一做法在构件形态相近时并无问题,但当客户结构从标准构件转向定制化复杂构件后,企业开始出现「订单接得越多、利润反而下降」的现象。
管理层最初的判断是「市场竞争加剧、价格被压低」,于是把注意力放在商务谈判上,要求销售提高报价。但三个月后,虽然平均单价提高了约 4%,整体毛利仍在下降。
此时财务提供了一份订单毛利表,显示毛利率的离散程度在扩大:部分订单毛利率超过 20%,部分订单为负。两个极端订单恰好是同一个月承接、吨位相近的两个项目——项目甲为 320 吨标准钢柱,项目乙为 300 吨带节点板的复杂钢架。
数据验证
财务对两个订单做了成本拆解对比。
材料方面:项目甲材料成本 1420 元/吨,项目乙 1476 元/吨。差异主要来自乙订单的节点板零件数多、排版利用率偏低(甲 95.2%、乙 92.8%)。差异约 56 元/吨,与构件复杂度相关但幅度有限。
制造费用方面:按原口径(全厂制造费用按吨位分配,当月分配率 837 元/吨),两个订单承担的单位制造费用完全相同。
但按工序实际消耗重新测算后发现显著差异:项目甲焊接工时 930 小时(2.91 小时/吨),项目乙焊接工时 728 小时(2.43 小时/吨)——注意这里乙的单位工时更高是因为其吨位更小。以工时为单位比较,甲为 2.91 小时/吨、乙为 2.43 小时/吨,看似甲更高。
关键的修正来自更细的观察:乙订单虽然吨位少,但其构件数量是甲的 2.3 倍(甲 86 件、乙 198 件),单件重量轻但节点多、焊缝长。按「每件工时」比较:甲 10.8 小时/件、乙 3.7 小时/件,看似甲更耗工。
最终测算采用焊缝长度作为动因更贴近实际:甲焊缝总长约 1860 米、乙约 3240 米。按焊接成本 36 万元、当月总焊缝长度 5100 米计算,分配率为 70.6 元/米。则甲应承担 13.1 万元、乙应承担 22.9 万元。而按吨位分配时,甲承担 26.8 万元、乙承担 25.1 万元。
差异结论:项目乙的焊接成本被低估约 5.4 万元,项目甲被高估约 13.7 万元。
归因分析
根因有三层。
第一层是成本动因错配:焊接成本的真实动因是焊缝长度与焊接工时,而不是重量。带节点板的复杂构件每吨焊缝长度是标准构件的三倍以上,用吨位分配必然失真。同样的问题也存在于涂装(动因是面积而非重量)与抛丸(动因是设备时间而非重量)工序。
第二层是报价方法的惯性:企业以「元/吨」报价,本质上默认了「单位重量的加工工作量相同」这个假设。在构件标准化时期该假设近似成立,但构件复杂度提升后假设失效,而报价方法没有同步调整。
第三层是数据颗粒度不足:工序流转单只记录总工时,不区分焊缝长度、构件件数与工序细分,导致即使想修正动因也缺乏数据基础。
三层的叠加造成了结果:复杂构件持续被低估成本,企业误以为该类订单利润良好而不断扩大承接量,直到该类订单占比超过一半,整体毛利才明显下滑,此时问题已经积累了约 11 个月。
处理动作
- 把工序流转单升级为可记录订单号、构件件数、焊缝长度、工序工时四项数据,并要求在工序完工时即时填写。
- 按工序重新设立成本池:下料(动因:切割米数)、组立(动因:构件件数)、焊接(动因:焊缝长度)、抛丸(动因:设备小时)、涂装(动因:涂装面积)、包装发运(动因:件数)。
- 将对外报价单位从单一的「元/吨」改为「吨位 + 构件复杂度系数」,对节点多、焊缝长的构件设置复杂度加成。
- 建立订单完工后的实际成本复盘机制,把实际成本与报价测算的差异按工序列出,作为下一轮报价的校准依据。
结果与经验
改善实施后运行六个月。
报价层面:复杂构件报价上调 8% 至 15%,客户接受度总体良好,因为市场上具备同类加工能力的企业本就不多,客户更关注交付可靠性而非单价。少数客户对涨价有异议,通过提供成本构成明细后多数接受。
经营结果:订单亏损比例从 23% 降至 9%;整体毛利率提升约 5.4 个百分点;同期复杂构件的承接量并未下降,说明涨价未损害竞争力。
一个重要的附带收益是:由于报价开始区分复杂度,销售在接到简单构件询价时也能给出更有竞争力的价格,标准构件的接单量上升约 18%,产能利用率从 71% 提升到 82%。
经验总结:这次改善的起点不是「想办法降本」,而是「先搞清楚成本到底是多少」。成本动因选错时,任何降本努力都会用错方向。