
简介这份PPT是罗兰贝格面向企业采购与供应链管理者出具的供应链优化咨询最终报告聚焦采购环节适合采购总监、供应链经理及咨询从业者参考。报告以项目目标与工作总结开篇围绕采购组织机构改革、流程优化、供应商评价与管理体系、与核心供应商建立战略联盟四大模块展开核心主张是把战略采购与操作采购分开并给出过渡期方案与适应产品事业部制的目标方案。其中包含ABC类产品差异化采购模式、标准合同管理、供应商认定与量化评价指标体系、降低供应商数量的方法以及战略联盟的可行性分析与实施安排逻辑链条完整可直接对照企业现状做诊断与方案设计。资源为1个ppt文件共112页压缩包约2.19MB目录与页码索引清晰便于按模块检索。目前已有66人学习下载适合需要系统梳理采购战略框架、借鉴成熟咨询方法的读者。1. 一份112页采购咨询PPT真正能落地的是哪几块把一份采购管理咨询报告拆成可执行的东西通常会卡在第一步它讲的是组织、流程和指标而这三样都不像代码那样能直接运行。这份罗兰贝格的供应链优化终稿一共112页四个模块采购组织机构改革、流程优化、供应商评价与管理体系、与核心供应商建立战略联盟。它最反直觉的地方在于解决采购周期长、齐套率低的第一动作不是压供应商价格而是把战略采购和操作采购拆成两条线——一条管供应商和成本结构一条管订单和齐套。对做ERP、SRM、数据中台的人来说这份材料更接近一份业务建模说明书它给出了分类口径、指标维度、岗位职责和编制估算。适合正在对接采购系统需求、或者要牵头做采购数据分析的工程师看因为后面几章的代码都建立在这份材料的分类逻辑和指标体系上。2. 采购物料的ABC分层从年采购额到差异化采购模式采购模块里所有差异化策略的前提是先把物料分出层。不分层就会出现一个典型现象采购员把80%的时间花在金额占比不到5%的C类物料上而真正决定成本的A类物料却只做年度议价。PPT里把分类和战略采购经理设立原则ABC供应商管理ABC类产品差异化采购模式直接挂钩这条链路是可以量化实现的。2.1 分类维度为什么不能只看采购金额只按金额排序分类会漏掉一类高风险物料金额不大但只有一家供应商、或者工艺特殊没有替代源。这类物料在纯金额口径下会被打成C类走简化流程一旦断供就是停线。咨询报告的处理方式是把金额和复杂度分开看金额维度用累计占比复杂度维度用供应商数量、是否单一来源、是否定制件、采购提前期长短来修正。经典做法是按帕累托分布切两刀A类累计金额占比约70%B类到90%C类为剩余尾部长尾。这两刀的位置没有标准答案取决于行业毛利结构。化工、汽车零部件这类物料集中度高的行业70/90比较常见MRO类非生产性物料因为SKU极多通常会切到80/95甚至更靠后。阈值定下来后要固定住季度复算时可以微调但不建议每月改一次否则分类结果没有纵向可比性。2.2 分层阈值与修正规则层级累计金额占比供应风险修正采购模式库存策略A类前70%单一来源自动升A年度框架协议战略联盟VMI/寄售供应商管理库存B类70%~90%单一来源升A集中招标季度议价设安全库存按预测补货C类90%~100%保留C目录化采购自助下单零库存或按需直发修正规则里还有一条容易忽略A类物料如果供应商数量超过3家反而要考虑整合因为分散份额会削弱议价能力。PPT里降低供应商数量的方法和可行性讲的就是这件事数量整合的正确顺序是先合份额再谈年降反过来做通常拿不到价格。2.3 Python实现从采购流水到ABC分层输入是一张采购流水表一行一张采购订单行至少包含物料号、供应商、订单金额、订单日期。先按物料号聚合出年度采购金额和供应商家数再做累计占比。import pandas as pd # 采购流水material_id, supplier_id, po_no, amount, order_date df pd.read_csv(purchase_ledger.csv, parse_dates[order_date]) # 1. 只取最近完整12个月避免口径被跨年订单污染 cut df[order_date].max() - pd.DateOffset(months12) df df[df[order_date] cut] agg (df.groupby(material_id) .agg(amount(amount, sum), suppliers(supplier_id, nunique), orders(po_no, nunique)) .reset_index() .sort_values(amount, ascendingFalse)) # 2. 累计占比用于切A/B/C agg[cum_ratio] agg[amount].cumsum() / agg[amount].sum() def tier(r): if r 0.70: return A elif r 0.90: return B return C agg[tier] agg[cum_ratio].apply(tier) # 3. 供应风险修正单一来源物料向上提一级 risk_up {C: B, B: A, A: A} mask agg[suppliers] 1 agg.loc[mask, tier] agg.loc[mask, tier].map(risk_up) # 4. 输出分层结果与层级汇总 agg.to_excel(material_abc.xlsx, indexFalse) print(agg.groupby(tier).agg(sku数(material_id, count), 金额(amount, sum)))cum_ratio用累计求和除以总额得到这样切分的依据是金额分布而不是SKU数量。suppliers 1这个判断代表单一来源或独家供应实际项目中还要结合是否存在合格备选供应商切换周期两个字段因为有些物料虽然只有一家在供但市场上有可替代资源直接升A会造成A类虚胖战略采购经理的人数配置跟着膨胀。tier列就是后续所有差异化流程的分发键。2.4 分类结果落地时的三个坑第一个坑是金额口径。含税与不含税、是否包含运费和关税会导致同一物料在不同系统里金额差几个百分点A/B边界上的物料会来回跳。做分析前先和财务口径对齐一次写进数据字典。第二个坑是层级漂移。原材料价格波动大的品类比如铜、铝件单季度价格变化就能让一批物料从B跳到A。处理方式是把分类和价格解耦分类用近12个月移动平均金额价格波动单独用指数跟踪不要混在一个字段里。第三个坑是只分不用。分类结果如果没写进采购系统的主数据业务员下单时看到的还是同一个界面分层等于没做。正确的落点是物料主数据增加abc_tier字段下单审批链、库存策略、对账周期都读这个字段。3. 供应商量化评价体系指标权重、打分模型与认定流程报告里制定分供方的量化评价指标体系供应商认定(选择)和评价的流程是整个体系的骨架。它要解决的不是打个分排个名而是让淘汰谁、给谁加份额、给谁签战略联盟有可追溯的依据。评价体系如果没有量化最后往往变成采购员和供应商关系好坏的映射。3.1 指标维度的取舍常见的维度是质量、交付、成本、服务与配合也就是QCDS。四个维度之下再挂二级指标二级指标必须能取到数据否则就是摆设。取不到数据的指标宁可先不写等系统埋点补齐再进模型。维度二级指标数据来源建议权重质量来料批次合格率、批退率、质量体系审核分IQC检验记录0.35交付交付及时率、交期偏差天数、紧急插单响应收货单、订单计划0.30成本价格指数对标同品类均价、年降幅完成率采购价表、比价记录0.25服务异常响应时长、技术支持配合度、报价及时性沟通工单、技术部门评分0.10权重不是拍出来的。质量权重高是因为来料不良的返工成本会放大到生产线交付权重次之是因为停线损失难量化但真实存在。成本权重看似应该最高但把成本压到0.4以上供应商会通过降材质、换二级供应商把成本找回来最后质量数据恶化。权重定完后建议做一次敏感性验证把质量权重上下调0.05看头部供应商排名是否剧烈变化变化大说明指标之间相关性太高比如交付和成本同步反映同一家供应商的产能问题。3.2 评分标尺与归一化不同二级指标单位不同合格率是百分比响应时长是小时必须归一到0到100分才能加权。归一化用线性映射并且要设截断边界避免极端值把总分拉飞。import pandas as pd raw pd.read_excel(supplier_kpi.xlsx) # 一行一个供应商-评价期间 WEIGHTS {quality: 0.35, delivery: 0.30, cost: 0.25, service: 0.10} def scale(x, lo, hi): 线性映射到0-100超出边界直接截断 return max(0.0, min(100.0, (x - lo) / (hi - lo) * 100)) # 越大越好的指标 raw[quality_s] raw[pass_rate].apply(lambda x: scale(x, 0.90, 1.00)) raw[delivery_s] raw[on_time_rate].apply(lambda x: scale(x, 0.80, 1.00)) # 越小越好的指标价格指数1.00为基准1.10视为上限 raw[cost_s] raw[price_index].apply(lambda x: scale(1.10 - x, 0.0, 0.10)) raw[service_s] raw[response_hours].apply(lambda x: scale(48 - x, 0.0, 48)) # 加权总分 raw[total] sum(raw[f{k}_s] * w for k, w in WEIGHTS.items()) def grade(s): if s 85: return A # 战略供应商签框架协议参与新品开发 elif s 70: return B # 合格供应商正常合作年度复评 elif s 60: return C # 观察期限期整改限制新份额 return D # 淘汰逐步退出或降份额 raw[grade] raw[total].apply(grade) raw.sort_values(total, ascendingFalse).to_excel(supplier_grade.xlsx, indexFalse)pass_rate的下界取0.90意味着合格率低于90%时质量分为0这个阈值要按品类调整标准件可以卡到0.98定制件放宽到0.92。price_index建议用同品类加权均价做分母否则不同物料的价格指数不可比。grade的分数线是管理动作的触发器A级对应战略联盟候选C级对应整改通知单D级对应份额压缩计划分数本身不重要重要的是分数绑定了什么动作。3.3 评价结果的落库与复算评价不是一年跑一次Excel要落成可复算的数据表。最小表结构如下。CREATE TABLE supplier_score ( supplier_id VARCHAR(32) NOT NULL, period VARCHAR(7) NOT NULL, -- 形如 2024-06 quality_score DECIMAL(5,2), delivery_score DECIMAL(5,2), cost_score DECIMAL(5,2), service_score DECIMAL(5,2), total_score DECIMAL(5,2), grade VARCHAR(2), calc_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (supplier_id, period) );period用月份粒度而不是年度是为了让观察期供应商在两个月后就能看到整改是否生效。calc_time保留每期计算时间方便追溯某次评价用的是哪版权重。如果权重调整了不要覆盖历史数据而是新建一张权重版本表评价表加weight_version外键否则去年评的A级供应商今年会解释不清。4. 采购周期拆解与流程节点优化把等待时间找出来报告开篇第一个目标就是分析影响采购周期的主要因素相应提出缩短采购周期的方案建议。采购周期长多数人第一反应是催供应商但真正的大头通常在内部需求提报后压着没审、BOM变更后计划没更新、到货后质检排队。周期优化的正确切入点是把端到端时间拆成节点再区分每个节点里有多少是真正在处理、多少是在等待。4.1 采购周期的时间构成一个完整的采购周期可以拆成需求提报与审批、BOM分解与计划加总、询比价与合同、下单、供应商生产、物流、到货验收、对账付款。这条链上只有供应商生产、物流、检验属于外部或准外部时间其余都是内部可控时间。节点要标注类型processing是实际处理时长waiting是排队等待时长。两者混在一起统计会得出采购部效率低的错误结论而实际情况可能是审批链上卡了三级签字。4.2 节点日志的统计方法import pandas as pd # 流程节点流水po_no, node_name, node_type, node_in, node_out log pd.read_excel(po_process_log.xlsx, parse_dates[node_in, node_out]) log[dur_h] (log[node_out] - log[node_in]).dt.total_seconds() / 3600 # 1. 各节点平均耗时区分处理与等待 node_stat (log.groupby([node_name, node_type])[dur_h] .agg([mean, median, count]) .reset_index() .sort_values(mean, ascendingFalse)) # 2. 单张订单的端到端周期 span log.groupby(po_no)[node_in].min() end log.groupby(po_no)[node_out].max() e2e_h (end - span).dt.total_seconds() / 3600 # 3. 等待占比等待时长 / 端到端时长 wait_h log[log[node_type] waiting].groupby(po_no)[dur_h].sum() wait_ratio (wait_h / e2e_h).dropna() print(端到端平均周期(小时):, round(e2e_h.mean(), 1)) print(等待时间平均占比:, round(wait_ratio.mean(), 3)) print(node_stat.head(10))node_type这个字段系统里通常没有要靠流程访谈逐节点标注这是整个分析里最费人力的一步也是最有价值的一步。node_stat按平均耗时降序排列排在前面的就是瓶颈候选。wait_ratio如果超过0.5说明周期的主要矛盾不在处理能力而在流转效率优化方向是并行审批、授权下放和前置询价而不是增加人手。4.3 差异化流程与审批链分层结果在这里第二次发挥作用。A/B/C三类物料如果走同一条审批链A类的严格管控会拖慢C类C类的频繁小额下单会挤占A类的谈判精力。层级采购模式下单方式审批链周期目标A类年度框架滚动预测一揽子订单分批交货战略采购经理部长按生产节拍交付B类集中招标季度议价批量订单战略采购经理缩短询价到下单时间C类目录化/框架商城需求部门自助下单系统自动校验预算下单即执行审批链的改造要点是分层授权金额阈值。A类合同条款由战略采购经理和部长双签但执行订单不再逐单审批C类完全走系统规则超预算才触发人工。这样操作采购组的业务员可以把精力放在齐套跟踪上而不是签字流转上。5. 过渡期落地双轨并行、编制换算与效果验证组织从采购一把抓切到战略采购操作采购分开直接按目标方案切换风险很大因为供应商对接人、合同责任人、付款流程会同时变更。常见做法是设一个过渡期过渡期内两套职责并行战略采购组先接手供应商管理和合同谈判操作采购组维持订单执行等供应商主数据和合同全部迁完再关掉旧流程。编制换算是过渡期最容易被追问的问题。材料里给出的估算可以作为起步参考战略采购业务经理约15人战略采购组长约7人分析员5~6人质量工程师6~8人操作采购计划员5~6人、业务员10~15人。换算逻辑是按品种复杂度和采购金额分配A类每种物料原则上单独设战略采购经理约10人B类兼任约5人C类按品种相关性合并约2~3人。实际排编制时要先跑一遍ABC分层把A类SKU数量乘以0.8到1.0的系数再对照现有采购员人数做差。切换节奏建议按供应商而不是按品类推进。选一个A类品类做试点把该品类下的供应商评价、合同模板、订单流程整条链走通再横向复制。验证方式是和改革前基线做对照而不是只看当期绝对值。-- 改革前基线 vs 运行期按月度对比采购KPI SELECT period, AVG(cycle_days) AS avg_cycle_days, AVG(on_time_rate) AS on_time_rate, AVG(pass_rate) AS pass_rate, COUNT(DISTINCT supplier_id) AS supplier_cnt, SUM(amount) / NULLIF(SUM(qty), 0) AS avg_unit_price FROM po_fact WHERE period 2024-01 GROUP BY period ORDER BY period;cycle_days用端到端口径和前面的节点分析保持同一算法否则前后数字对不上。supplier_cnt下降要结合avg_unit_price一起看如果供应商数量降了但单价没降说明整合只是换了签约主体份额集中带来的议价收益没有兑现要回头检查框架协议里有没有年降条款和份额承诺。on_time_rate和pass_rate必须同时监控交付及时率上升而合格率下降通常意味着供应商为了赶交期放松了过程检验这时候要立刻调质量工程师介入审核。过渡期的收尾标准可以定成三条旧审批流三个月零流转、供应商主数据全部完成层级标注、连续两个月核心KPI不低于基线。本文还有配套的精品资源点击获取