2. 数据基础认知:采购订单数据结构解析

在价格方差清洗与越权采购排查之前,必须对采购订单的数据结构建立精确认知。订单数据是后续所有清洗规则的输入源,字段定义不清晰、类型不一致或空值处理不当,将直接导致方差计算失真与误判。

2.1 采购订单核心字段全景

一张标准的采购订单通常包含数十个字段,但用于品类分类与价格方差清洗的关键字段集中在以下五类:

字段名称 数据类型 业务含义 清洗关注点
品类ID 字符串 / 整数 物料所属品类的唯一编码 层级完整性、是否存在空值或非法编码
单价 数值(小数) 单个物料的采购成交价 单位一致性、异常零值、负值、极端离群值
数量 数值(整数/小数) 本次采购的物料件数或重量 非正整数校验、单位换算一致性
供应商 字符串 提供物料的法人实体名称或编码 名称归一化、重复供应商识别、黑名单匹配
采购人 字符串 发起采购订单的员工ID或姓名 权限映射、部门归属、是否在岗
实战经验: 在超过70%的企业数据中,品类ID 存在多级编码混用(如一级品类“A01”与三级品类“A01-03-002”并存),必须在清洗前统一层级粒度,否则方差计算将跨品类比较,失去业务意义。

2.2 关键字段定义详解

2.2.1 品类ID —— 方差计算的锚点

品类ID是价格方差分组计算的唯一依据。同一品类ID下的订单行,其单价才具有可比性。常见问题包括:

  • 空值或占位符: 部分系统允许订单行不填品类,默认写入“-”或“0”,需标记为待补录。
  • 层级不一致: 同一物料在不同订单中可能使用不同粒度的品类编码,需通过品类映射表统一至同一层级。
  • 废弃编码: 历史品类已停用但仍在订单中出现,需与主数据系统交叉校验。

2.2.2 单价 —— 方差计算的核心变量

单价是价格方差清洗的直接对象。必须确保:

  • 单位一致: 同一品类下,所有订单的单价单位必须统一(如“元/个” vs “元/打”),否则方差将放大数倍。
  • 不含税/含税标识: 混用含税价与不含税价会导致系统性偏差,清洗前需通过税率字段做归一化。
  • 异常值边界: 单价为0、负数或超过品类历史均价10倍的值,应进入异常标记流程。

2.2.3 数量 —— 加权方差的权重因子

在计算加权价格方差时,数量作为权重直接影响方差贡献度。常见陷阱:

  • 数量为0或负数: 此类订单行应排除出方差计算,否则权重无效。
  • 数量单位与单价单位不匹配: 例如单价按“公斤”但数量按“吨”,需做单位换算。

2.2.4 供应商 —— 越权排查的关联实体

供应商字段用于识别“同一供应商在不同品类下的价格异常”以及“采购人与供应商之间的利益关联”。清洗要点:

  • 名称归一化: “XX科技有限公司”与“XX科技公司”需通过模糊匹配合并。
  • 多供应商编码: 同一实体在不同系统中可能拥有多个编码,需建立统一供应商主数据。

2.2.5 采购人 —— 权限与责任追溯

采购人字段是越权采购排查的起点。清洗规则包括:

  • 员工ID有效性: 校验采购人是否在在职员工表中存在。
  • 品类权限映射: 采购人是否有权采购该品类ID对应的物料。
  • 部门归属: 采购人所在部门是否与品类使用部门一致。
数据治理建议: 在数据入库阶段,对上述五个字段建立非空约束与格式校验触发器,可减少后续清洗工作量的60%以上。

2.3 订单数据结构关系图

下图展示了五个关键字段在订单行中的逻辑关系,以及它们如何支撑价格方差计算与越权排查两条分析主线:

采购订单关键字段关系与清洗流向图 采购订单关键字段关系与清洗流向 采购订单行 品类ID 单价 数量 供应商 采购人 价格方差清洗 越权采购排查 品类ID 单价 数量 供应商 采购人 下游应用

2.4 字段类型与清洗规则对照

在进入价格方差清洗之前,需要为每个字段预定义清洗规则。下表总结了五个关键字段的常见脏数据类型及对应清洗策略:

字段 脏数据示例 清洗策略 优先级
品类ID 空值、"-"、"0"、废弃编码 回填主数据、标记待人工确认 P0
单价 0、负数、单位错误、含税混用 剔除或归一化至统一单位与税基 P0
数量 0、负数、单位与单价不匹配 排除出加权计算或做单位换算 P1
供应商 名称简写、多编码、空值 模糊匹配归一化、关联主数据 P1
采购人 离职员工ID、空值、格式错误 校验在职状态、回填默认值 P2
注意: 优先级P0表示:如果该字段存在脏数据,价格方差清洗结果将直接不可用,必须优先处理。P1和P2字段的脏数据会影响越权排查的召回率,但不会导致方差计算崩溃。

2.5 数据质量检查清单

在开始价格方差清洗前,建议按以下清单对订单数据进行快速质量评估:

  1. 完整性检查: 五个关键字段的空值率是否均低于5%?
  2. 一致性检查: 同一品类ID下的单价单位是否统一?
  3. 准确性检查: 是否存在单价为0或负数的异常行?
  4. 时效性检查: 采购人是否均为在职员工?
  5. 唯一性检查: 供应商名称是否存在同一实体多种写法?

通过以上检查,可以快速定位数据质量短板,为后续的价格方差清洗规则配置提供输入。