成本差异算出来之后:先查哪一项?用阈值和排序定排查顺序
成本差异算出来之后:先查哪一项?用阈值和排序定排查顺序
前两篇把差异拆开了:单品种拆成量差和价差,多品种逐个算再汇总。算完只是第一步,真正花时间的是排查——十几种材料全查一遍既不现实也没必要。这一篇定一个排查顺序:先按差异绝对值排序,再用阈值筛掉不用查的。
还用上一篇那组数。钢材标准成本 10000 元、实际 10920 元,差异 +920 元(量差 +400、价差 +520);铜材标准 10000 元、实际 9880 元,差异 −120 元(量差 −500、价差 +380);塑料标准 5000 元、实际 5250 元,差异 +250 元(量差 +250、价差 0)。汇总标准 25000 元、实际 26050 元,总差异 +1050 元。
排序要用绝对值,不能用净额。按净额排,铜材 −120 元会排在最后,好像最不重要;但它里面其实藏着量差 −500 元和价差 +380 元两项大数,净额小只是正负抵消的结果。按绝对值排,顺序是钢材 920 元、塑料 250 元、铜材 120 元,绝对值合计 1290 元,钢材占 71.3%,是当月的主要矛盾。
排完序再定阈值,不然小差异也会排出一长串清单。这里用一个示例口径,不算通用标准,企业按规模自己调:同时满足两个条件才立案调查——单项差异绝对值 ≥500 元,且差异率(差异 ÷ 该品种标准成本)绝对值 ≥5%。套进去:钢材 920 元、9.2%,两项都过,立案;塑料 250 元、5.0%,差异率刚到线但金额不够,进观察清单,下月再看;铜材 120 元、−1.2%,两项都不够,只留记录不查。
立案之后再看量差和价差的分工,这决定先找谁。钢材的价差 +520 元大于量差 +400 元,先找采购和市场,问涨价是市场行情还是批量折扣没拿到;量差 +400 元再找生产和领料。铜材虽然不立案,但它的结构值得记一笔:用量省了 500 元是好事,单价涨了 380 元抵掉大半,净额 −120 元这个“省了”其实没那么省——下次只看净额,就容易把涨价漏过去。
写成 Python,就是在上一篇循环后面加排序和筛选,不用重写公式:
items = [
# (名称, 标准用量, 标准单价, 实际用量, 实际单价)
("钢材", 500, 20, 520, 21),
("铜材", 200, 50, 190, 52),
("塑料", 1000, 5, 1050, 5),
]
rows = []
for name, qs, ps, qa, pa in items:
qty_var = (qa - qs) * ps
price_var = (pa - ps) * qa
std_cost = qs * ps
total = qty_var + price_var
rows.append((name, qty_var, price_var, total, total / std_cost))
rows.sort(key=lambda r: abs(r[3]), reverse=True)
for name, qty_var, price_var, total, rate in rows:
action = "立案调查" if abs(total) >= 500 and abs(rate) >= 0.05 else "观察/记录"
print(name, qty_var, price_var, total, f"{rate:.1%}", action)
# 钢材 400 520 920 9.2% 立案调查
# 塑料 250 0 250 5.0% 观察/记录
# 铜材 -500 380 -120 -1.2% 观察/记录
最后补一条闭环规矩:查完要落到两个结论之一,要么是偶发原因(比如某批料损耗异常),下月看它是否回落;要么是持续变化(比如单价连续两三个月都涨),那就该修订标准单价,而不是每个月把同一个差异再立案一次。差异分析的终点不是一张排序表,是“查哪项、找谁、改不改标准”这三个答案。
- 点赞
- 收藏
- 关注作者
评论(0)