先看结果:AI 说联盟渠道“利润最高”,复算后却是负 12,500 美元
独立增长顾问宋宁收到客户的 Q2 渠道工作簿,主表有 12,486 行。她把四个工作表导入分析工具,问:“下季度应该把预算加到哪个渠道?”AI 很快回答:联盟渠道销售额 428,600 美元、增长最快、利润约 149,000 美元,应优先加预算。
这个答案语句完整,却没有确认一行代表订单还是订单明细、退款是否一对多、广告支出是否被重复关联、币种怎样换算,也没有发现 286 个成本空白和汇总公式漏掉后 486 行。宋宁先暂停建议,完成前置检查。案例数字均为虚构教学数据:
| 检查阶段 | 联盟渠道结果 | 为什么改变 |
|---|---|---|
| 原始销售列求和 | 428,600 | 混合 总额、旧版本与取消行 |
| 扣折扣与可关联退款后收入 | 396,200 | 退款先按订单行聚合,避免扇出 |
| 减已确认产品成本与支付费 | 166,200 | 仍未计获客支出 |
| 再减渠道支出 | -12,500 | 178,700 支出只在渠道季度层合并一次 |
| 未决成本区间 | -18,700 至 -12,500 | 仍有 17 个联盟订单行成本待确认 |
最终不是“精确利润为 -12,500”,而是已知贡献额为 -12,500,纳入未决成本后区间更低;无论未决成本取零还是合理上界,符号都为负,所以“不追加联盟预算”在当前证据下稳定。AI 没有算术失灵,失败发生在计算之前:它接受了错误的表意、关联和缺失值处理。
本文是虚构教学案例,不是对真实客户或行业渠道表现的调查,也不提供会计、税务或投资意见。贡献额只是本案例为预算测试定义的管理口径,不等于法定利润、现金流或完整客户价值;真实财务用途应由相应负责人确认准则、期间与责任。
先把业务问题写成可复算的分析合同,而不是问“你发现了什么”
“分析这个表”没有完成条件。宋宁把问题改为:比较 Q2 四个渠道的 已确认收入、已知贡献 和 未解决成本范围;只有当渠道贡献额在合理成本上下界中仍保持同一符号,才给出增减预算方向。客户获取、品牌长期价值和未来预测不在本次结论内。
| 合同字段 | 已填写内容 |
|---|---|
| 决策 | 下季度是否调整四个渠道的测试预算 |
| 总体 | 2026-04-01 至 2026-06-30 已确认订单行 |
| 单元 | 报告币种 USD;时间按交易所在地日期 |
| 指标 | 已确认收入 - 产品成本 - 支付费用 - 渠道支出 |
| 排除项 | 取消行、无法确定日期的行;原因单列 |
| 不确定性 | 未关联退款、缺失成本、未知渠道分别披露 |
| 稳定决策 | 成本上下界下贡献符号不翻转 |
| 负责人 | 客户财务负责人确认口径;宋宁执行与复算 |
合同先决定什么数据是关键。若问题改为现金流,订单日期可能不如到账日;若改为客户终身价值,第二季度订单表根本不够。数据质量不是“文件干净程度”,而是它是否适合这次用途。
冻结源文件与计算环境
宋宁不在客户原文件上直接改。她保存只读副本、文件哈希、接收时间、导出系统、导出参数、工作簿计算设置和工具版本;所有转换写到新目录。
| 资产 | 保存内容 | 目的 |
|---|---|---|
| 来源/Q2.xlsx | 原文件、SHA-256、接收回执 | 证明分析输入未被覆盖 |
| 工作簿清单 | 工作表、行列数、可见/隐藏、使用范围 | 快速发现结构变化 |
| 公式清单 | 单元格、公式文本、缓存值、依赖 | 公式审计与重算 |
| 清理目录 | 规范化表与数据结构版本 | 不污染原始证据 |
| 转换日志 | 步骤、输入数、输出数、规则、执行者 | 可撤销、可复现 |
| 检查/ | 每条质量规则结果与样本 | 区分已修复、接受、阻断 |
文件含客户数据时,还要先确认可否放入所选 AI 工具、供应商怎样保留和使用数据、谁有访问权。分析不需要姓名、邮箱和完整地址时,导出前用稳定代号替换;凭据、支付卡和无关个人资料不进入提示。
冻结不是只给文件改名“最终版 2”。快照回执还要记录是否包含公式、是否完成重算、外部链接能否访问、日期区域、时区、显示小数位与原始精度。若客户第二天补交退款表,就生成新的输入集,不能用新文件悄悄覆盖旧哈希。最终报告指向具体输入集编号,才能解释为什么同一个问题在两个版本中得到不同数字。
| 快照检查 | 通过 条件 | 不通过 后果 |
|---|---|---|
| 字节标识 | 哈希 与只读原件一致 | 无法证明输入 |
| 计算 | 计算设置与重算时间已知 | 缓存值可能陈旧 |
| 连接 | 外部源可访问或已冻结 | 公式不可复现 |
| 区域/时区 | 来源负责人确认 | 日期边界不可用 |
| 精确率 | 存储值与显示值均保留 | 过早四舍五入 |
盘点四张表的真实粒度
工作簿不是一张表。宋宁先记录每个工作表的真实粒度、键、时间覆盖与异常:
| 工作表 | 原始行数 | 一行代表 | 候选键 | 发现 |
|---|---|---|---|---|
| 订单 | 12,486 | 一个订单商品行的一个导出版本 | 商品行编号 + 更新时间 | 含旧版本、取消行、公式列 |
| 退款 | 438 | 一次退款交易 | 退款交易编号 | 392 个订单行,部分多次退款 |
| 渠道支出 | 364 | 一个渠道一天 | 渠道 + 支出日期 | 四渠道×91 天,金额均为美元 |
| 汇率 | 273 | 一个币种一天 | 货币 + 汇率日期 | 欧元、英镑、美元×91 天 |
她同时检查隐藏行列、隐藏 工作表、合并单元格、筛选状态、命名区域、透视缓存、外部连接和打印区。隐藏不代表错误,但它会让“肉眼看见的范围”与公式实际范围不同。
W3C 的表格数据模型强调,表格需要配套的元数据,列值还可以声明数据类型;CSV 本身也存在编码、表头、引号与换行等变体。导出 CSV 不会自动标准化含义,数据结构与文件方言仍需记录。
盘点时不能只看左上角到右下角。每张工作表都要回答六个问题:表头从哪一行开始;总计或小计是否混入数据区;筛选后是否只导出了可见行;公式引用是否越过当前使用范围;空白行是分隔还是记录缺失;相同名称的命名区域是否指向不同版本。任一问题未知,都在清单中标为“尚未确认”,而不是根据版面猜测。
她还抽取每列的非空数、唯一值数量、最小值、最大值、错误值、公式数、常数数和前后各 5 个原始样本。这一步不是让 AI“理解全表”,而是用有限轮廓发现值得向负责人追问的结构异常。
先确定粒度与主键
订单表有 8,942 个订单却有 12,486 行,因为一个订单可含多件商品,而且同一订单行可因状态更新出现多个版本。若按订单编号去重,会删掉合法商品行;若完全不去重,又会重复计算旧版本。
| 对象 | 预期基数 | 检查 |
|---|---|---|
| 订单 | 一对多商品行 | 同订单多行允许 |
| 商品行版本 | 每个更新时间一行 | 完全重复不允许 |
| 当前订单行 | 每个商品行编号一行 | 取已确认的最新版本 |
| 退款交易 | 交易编号唯一 | 多次部分退款允许 |
| 渠道 - 日支出 | 渠道 + 日期 唯一 | 重复会多扣支出 |
| 汇率 | 货币 + 日期 唯一 | 缺率不猜默认值 |
先清除 42 条逐字段完全相同的重复导出,再对 73 个有旧版本的商品行按更新时间取最新,并保留已取代记录。行数账本为 12,486-42-73=12,371 个当前订单行。这里的 73 指多出来的旧版本行,不是 73 个完整订单。
主键为空、同一时间出现两条冲突版本,或更新时间没有时区,都不能靠“取最后一行”解决,必须回源确认。
字段字典要写业务含义、单位、允许值和缺失语义,不能只翻译列名
同一个“净销售额”可能含税、含运费、已扣退款或只扣折扣。宋宁请客户财务负责人逐字段确认,并记录负责人和生效日期:
| 字段 | 类型/单位 | 业务定义 | 空白含义 |
|---|---|---|---|
| 商品标价 | 小数 / 交易币 | 商品标价,不含税运 | 不允许 |
| 商品折扣 | 小数 / 交易币 | 分摊到该商品行的折扣 | 无折扣应为 0 |
| 退款金额 | 不在订单表 | 来自退款交易聚合 | 无匹配才为 0 |
| 美元产品成本 | 小数 / 美元 | 交易日有效的库存单位成本 | 未知,绝不等于 0 |
| 美元支付费 | 小数 / 美元 | 支付服务商确认费用 | 待定或尚未确认 |
| 渠道 | 枚举 | 归因规则第 4 版的首要渠道 | 尚未确认可保留 |
| 原始订单日期 | 字符串 | 来源系统原始日期文本 | 空白阻断时间分析 |
字段字典还要写粒度、可为空、有效值、源系统、转换、敏感性和示例。AI 可以根据样本提出“总额可能是含税总额”的问题,但不能替负责人定义。
质量规则必须绑定用途和失败影响,不追求所有列都达到同一“干净分”
GOV.UK 政府数据质量框架 把 完整性、唯一性、一致性、及时性、有效性 和 准确性 作为可调整的核心维度,并强调质量要结合用户用途。2026 年更新的数据质量问题框架进一步建议先说明数据用途,再设规则、目标和失败优先级。
宋宁不生成一个“质量 92 分”,而是按结论影响设门:
| 规则 | 目的 | 目标 | 不通过 动作 |
|---|---|---|---|
| 当前商品行编号唯一 | 防重复收入 | 100% | 阻断 |
| 可计收入日期可解析 | 限定 Q2 | 100% 或隔离并披露 | 隔离+金额上界 |
| 非 USD 行有交易日 FX | 统一单位 | 100% | 阻断对应行 |
| refund_line 可关联 | 不漏退款 | 金额 100% 对账 | 未关联金额单列并做下界 |
| 渠道 - 日支出 唯一 | 不重复扣支出 | 100% | 阻断渠道结论 |
| 产品成本 覆盖 | 判断贡献符号 | 足以保持符号 | 区间,不强填 |
| 汇总与行级复算一致 | 防公式断裂 | 误差≤0.01 USD | 阻断发布 |
规则通过率与重要性分开。98% 的邮箱完整度与本题无关,哪怕很低也不阻断;仅 1 条未关联的大额退款却可能翻转渠道结论,必须优先处理。
缺失值先分“本来不适用、尚未发生、来源未知和提取失败”,再决定动作
286 个产品成本空白不能统一填 0 或平均值。宋宁抽样追源:252 条可按库存单位、地区与生效日从成本表精确回填;34 条库存单位已经停用且缺少历史成本,只能保留为尚未确认。
| 缺失类型 | 例子 | 处理 |
|---|---|---|
| 结构不适用 | 无折扣订单的 折扣 | 明确定义后填 0 |
| 尚未发生 | 退款申请尚未结算 | 保留 待定,不提前当 0 |
| 源端未知 | 历史 库存单位 成本不存在 | 区间或排除结论,不能伪造 |
| 提取失败 | 导出漏了 payment_fee | 重导或回源查询 |
| 被抑制/受限 | 为隐私不提供地区细项 | 调整分析粒度,不反推 |
| 连接缺失 | refund_line 找不到 order_line | 查键与版本,不当无退款 |
34 条未决成本按渠道分为直接 4、搜索 11、电子邮件 2、联盟 17。她为每条保存合理下界 0 和基于同类库存单位的保守上界;这不是把上界当成真实成本,而是测试结论会否翻转。若区间跨过 0,预算方向就标为未解决。
回填 252 条也不是用今天的成本覆盖历史。匹配键必须同时满足库存单位、销售地区和“生效日≤订单日<失效日”;命中 2 个成本版本时阻断,零命中才进入未解决。每次回填都保存成本来源行和生效日期回执,才能在成本表修订后重算。
| 渠道 | 未决行 | 已知贡献 | 未决成本上界 | 符号会翻转吗 |
|---|---|---|---|---|
| Direct | 4 | 178,300 | 1,200 | 否 |
| Search | 11 | 83,000 | 4,500 | 否 |
| 2 | 93,400 | 300 | 否 | |
| Affiliate | 17 | -12,500 | 6,200 | 否,只会更低 |
缺失率还要按渠道、月份、产品分组。整体 0.27% 可能掩盖联盟渠道集中缺失;不能只报全表平均。
日期、数字和币种必须显式解析
订单表混有 06/07/2026、2026-06-07 和表格序列值。31 行只看文本无法判断是 6 月 7 日还是 7 月 6 日,被隔离并向来源负责人确认地区格式,而不是让 AI 根据其他行“猜大多数格式”。
| 风险 | 检查 | 错误后果 |
|---|---|---|
| 日期地区格式 | 原始文本+导出地区+解析规则 | 第二季度边界错分 |
| 时区 | 下单、退款、结算各自时区 | 月末跨期 |
| 数字存文本 | 类型与非法字符 | 排序/求和漏值 |
| 千位/小数符 | 1,234.50 与 1.234,50 | 金额放大或缩小 |
| 百分比 | 0.2 与 20 | 比率相差 100 倍 |
| 币种 | 每行币种必填 | 不同币种直接相加 |
| FX | 交易日、方向、来源版本 | 倒数方向错误 |
规范化只生成新列:标准订单日期、美元标价、美元折扣和解析状态;原始列不覆盖。汇率定义明确写成“1 单位交易币 = 多少美元”,避免同一个汇率有人乘、有人除。
31 条日期隔离行的折后收入上限为 6,840 美元。她做两端压力测试:全部属于第二季度与全部不属于第二季度;即使把 6,840 全放进联盟渠道 且暂按零新增成本,它的已知贡献也只到 -5,660,仍为负。这个极端假设用于测试方向,不是替代日期修复。
另有 39 行 渠道未知。通过已冻结的活动编号 映射找回 37 行,剩余 2 行共 420 美元维持未归因状态。若把 420 全归联盟渠道,结论仍不翻转;但这两行不能为了让四渠道加总好看而按比例分摊。
重复与版本要分类处理
| 类型 | 发现方式 | 正确动作 |
|---|---|---|
| 完全重复 | 全字段与导出时间相同 | 保留一行并记录重复来源 |
| 同键同时间冲突 | 键相同但金额不同 | 阻断并回源 |
| 旧版本 | 商品行编号相同、更新时间较早 | 保留历史,当前视图取确认最新 |
| 合法多行 | 订单编号相同、商品行编号不同 | 全部保留 |
| 疑似重复订单 | 客户/金额/时间相近但键不同 | 人工调查,不自动删 |
| 支付重试 | 订单相同、支付编号 不同 | 交支付状态判断 |
AI 很适合生成候选重复簇并说明匹配信号,但不能只凭姓名、金额和文本相似就删行。删错一笔与保留一笔重复对利润方向影响不同,候选表要显示两种影响。
去重规则版本化;下季度若来源系统改成 只追加事件流,旧的“取最新行”可能破坏事件事实。
异常值不是垃圾
金额最大的 12 行不全部删除。8 行是确认过的企业批量订单,2 行将欧元小数逗号误读为千位,1 行为测试订单,1 行是重复扣款。相同统计极端值对应四种不同动作。
| 异常信号 | 核验证据 | 动作 |
|---|---|---|
| 金额高于历史 P99 | 订单、付款与客户类型 | 真实企业单则保留并分层 |
| 负收入 | 退款/冲销状态 | 合法冲销保留,不截为 0 |
| 数量=10,000 | 商品类型与单位 | 箱/件单位错则修映射 |
| 日期未来 | 时区、测试环境、预售 | 隔离或按规则保留 |
| 贡献额大于收入 | 成本符号、退款双减 | 阻断公式与字段检查 |
| 同设备短时多单 | 业务促销、重试、欺诈流程 | 不由分析模型定性 |
箱线图、标准分数或四分位距 只能找候选,不能自动决定真伪。异常处置保存证据、负责人、修改前、修改后和金额影响;没有证据就标为未解决。
公式审计要检查错误值、依赖、范围断裂、硬编码和计算设置
订单 与 摘要 共 612 个公式单元格。宋宁按区域比较公式规律并发现 17 个互斥异常:6 个公式被常数覆盖、5 个产生 #不适用、3 个求和范围漏了新增行、2 个依赖关闭的外部工作簿、1 个循环引用。
| 公式风险 | 示例 | 验证 |
|---|---|---|
| 范围截断 | SUM(H2:H12000) 漏 12001:12486 | 对比 使用范围 与动态行数 |
| 硬编码覆盖 | 同列中 6 格不是公式 | 与相邻公式规律及变更记录核对 |
| 错误值 | #不适用 被图表忽略 | 枚举所有错误类型与影响金额 |
| 过时缓存 | 手动计算设置下未重算 | 记录计算设置、全量重算、保存回执 |
| 外部链接 | 成本来自旧本地文件 | 冻结来源或移除依赖 |
| 循环引用 | 利润 间接依赖自己 | 追踪依赖并阻断 |
Microsoft 当前 Excel 支持文档说明,可用 追踪前驱/后继 追踪公式关系,错误检查 可发现错误值、区域内不一致公式和遗漏相邻单元格;某些 电子表格查询 功能只在特定 Windows/Office 版本可用。工具提示不是证明:它不能理解 总额 是否应扣税,也不保证找出所有业务口径错误。
她导出公式文本 而不是只读显示值,并用独立计算重建关键汇总。若只能拿到 PDF 或粘贴值,公式来源不可审计,结论应明确降级。
一个具体断裂发生在 摘要表 H6:显示公式为 订单表 H2 到 H12000 求和,而清单显示当前数据到 H12487;这不是简单把末行改大就完成,因为中间还含旧版本与取消行。正确修复是让摘要表引用经过规则生成的“当前订单”结构化范围,再用独立分组结果比对。另一个单元格用错误转零公式隐藏“不可用”,使缺成本看似零;展示层可以解释错误,分析层必须保留缺失原因,不能把错误值变成业务上的 0。
公式审计输出 公式区域、预期规律、实际公式、前驱单元格、错误类型、金额影响和解决方式。只截屏红色小三角无法用于下次回归。
多表关联前先写基数:一对多退款必须先聚合,渠道支出不能复制到每个订单行
最危险的错误不是 VLOOKUP 报错,而是关联成功却让行数悄悄膨胀。退款 有 438 笔交易,落在 392 个订单行;若直接与 订单 相连,多次部分退款会复制订单收入。
| 关联 | 预期基数 | 关联前动作 | 关联后断言 |
|---|---|---|---|
| 当前订单→退款总额 | 1:0/1 | 退款按商品行编号聚合 | 订单行数不变 |
| 订单→FX | 多:1 | 货币 + 日期 唯一 | 非 USD 全匹配 |
| 订单→SKU 成本 | 多:1 | SKU+ 区域 + 生效日期 唯一 | 匹配至多一条 |
| 渠道摘要→支出 | 1:1 按渠道周期 | 支出 先按季度汇总 | 支出只减一次 |
9 笔退款无法关联当前 order_line,合计 1,240 美元。它们不能被当作 0;宋宁检查旧键映射后找回 7 笔,剩余 2 笔 310 美元进入未关联退款下界。任何渠道结论都同时展示“若这 310 美元全部属于该渠道”的压力测试。
关联回执保存左表行数、右表行数、输出行数、已匹配、左侧未匹配、右侧未匹配和重复键。输出行数超出预期就立即停止,不让 AI 继续解释膨胀结果。
每次转换都写行数与金额账本,修复不能悄悄改变总体
当前订单视图的行数变化可逐步复算:
| 步骤 | 输入行 | 减少/隔离 | 输出行 | 金额处理 |
|---|---|---|---|---|
| 原始订单 | 12,486 | — | 12,486 | 原始不改 |
| 精确去重 | 12,486 | 42 | 12,444 | 重复金额只保留一次 |
| 最新确认版本 | 12,444 | 73 旧版本 | 12,371 | 历史仍在追踪记录中 |
| 已取消排除 | 12,371 | 118 | 12,253 | 取消总额单列 |
| 模糊日期隔离 | 12,253 | 31 | 12,222 | 金额形成范围,不消失 |
问题标签可以重叠,不能把 286 个缺成本、39 个未知渠道继续从 12,222 中相减;它们仍参与收入基线,只限制贡献或渠道归因。质量报告同时给 受影响行数和受影响金额,防止一条大额错误被“99.9% 行通过”掩盖。
转换日志的最小字段是步骤编号、输入哈希、规则版本、转换前后行数、转换前后金额、例外、输出哈希和审批人。AI 生成的转换也必须进入同一账本。
两笔部分退款的完整复算
订单行 O-1002-L1 以 EUR 计价:总额 200、折扣 0;退款 有 R-91=30 EUR、R-94=20 EUR;交易日汇率为 1 EUR=1.10 USD;产品成本 105 USD、支付费 5 USD。
| 中间量 | 计算 | 结果 |
|---|---|---|
| 欧元退款 | 30+20,先按商品行编号聚合 | 50 EUR |
| 欧元确认收入 | 200-0-50 | 150 EUR |
| 美元确认收入 | 150×1.10 | 165 USD |
| 广告前贡献 | 165-105-5 | 55 USD |
| 第二季度联盟营销广告前数据 | 汇总所有当前有效行 | 166,200 USD |
| 第二季度联盟营销贡献 | 166,200-178,700 渠道支出 | -12,500 USD |
错误路径一:先把两笔 退款 行与订单连接,订单收入被复制两次,再聚合会膨胀。错误路径二:把 178,700 渠道季度支出连接到每个联盟订单行,会重复扣数千次。正确路径是各自在原生粒度聚合,最后在 渠道 + 季度 粒度合并。
AI 输出必须展示这条从原始键、退款聚合、汇率到渠道汇总的追踪链;只给最终数字不放行。
用勾稽和不变量验收清洗结果:每个“消失的金额”都要有去向
清洗后四渠道汇总为:
| 渠道 | 已确认收入 | 已知产品成本 | 支付费 | 渠道支出 | 已知贡献 | 含未决成本区间 |
|---|---|---|---|---|---|---|
| 直接 | 410,200 | 201,600 | 12,300 | 18,000 | 178,300 | 177,100—178,300 |
| 搜索 | 386,400 | 199,800 | 11,600 | 92,000 | 83,000 | 78,500—83,000 |
| 电子邮件 | 214,600 | 96,300 | 6,400 | 18,500 | 93,400 | 93,100—93,400 |
| 联盟 | 396,200 | 218,100 | 11,900 | 178,700 | -12,500 | -18,700—-12,500 |
| 合计 | 1,407,400 | 715,800 | 42,200 | 307,200 | 342,200 | 330,000—342,200 |
总计复算:1,407,400-715,800-42,200-307,200=342,200。渠道已知贡献相加也等于 342,200;上下界按 34 条未决成本逐条汇总,不用一个虚构平均成本。
其他不变量包括:退款总额=已关联+未关联;每个 当前行 ID 唯一;USD 行 汇率=1;取消行不进入 已确认收入;渠道支出合计等于原表 Q2 合计;任一转换前后差额等于明确的 重复、取消、退款、FX 或 隔离 桶。
表中计入未决成本后的总贡献下界应为 330,000 美元:177,100+78,500+93,100-18,700=330,000;它只反映 34 条缺成本。另有 310 美元未关联退款、420 美元未归因收入与 6,840 美元日期隔离金额,分别作为独立压力桶展示,不能揉进一个貌似精确的置信区间。不同问题的方向不同:退款只会降低,未归因收入可能增加某渠道,日期隔离取决于是否属于 Q2。
当两条计算路径出现差额,先按层定位:行数不同查筛选/版本;已确认收入 不同查日期、币种、退款;已知贡献不同查成本、费用、支出;只有显示尾差才允许在最终层四舍五入。禁止直接写一个 调整 行把总数“调平”。
给 AI 的不是整本表,而是问题、数据结构、允许转换和必须返回的证据
分析包包括 问题合同、清单、字段字典、清洗后的表、质量报告、转换日志 和 允许的计算。提示要求模型:不得改变字段定义;不得把尚未确认填 0;不得自动删异常;任何关联先报告基数;每个结论返回 计算、源字段、行数、例外情况 和 不确定性。
| AI 可做 | 必须转人工 |
|---|---|
| 建议字段类型和质量检查候选 | 决定字段真实业务含义 |
| 生成去重/解析/聚合代码草稿 | 批准删除、覆盖或回填 |
| 列出公式异常与关联扇出 | 解释外部链接是否仍有效 |
| 生成描述统计与对照图 | 决定异常是欺诈、错误还是真实大单 |
| 写结果叙述草稿 | 承诺预算、客户或财务动作 |
模型输出先写 结果状态:可回答、有限条件下可回答或已阻塞。若关键规则未通过,只能返回阻断原因、影响范围和所需证据,不得为了完成任务给一个“仅供参考”的精确排名。
一条可接受的 结果回执 至少包含:指标定义哈希、输入集编号、总体数量、各原因排除数量、分组键、关联回执、计算表达式、小计、不确定性桶、失败规则和复核人。叙述中的“最高”“增长”“显著”“亏损”必须指向其中一个可复算比较,不能只因为模型在文本里看见某列较大。
她还把问题拆为三种输出层:事实 只报告可复算金额;解释 解释可能原因并明确替代解释;操作层写决策负责人、所需额外证据和可撤回测试。AI 可以草拟三层,但禁止把“联盟贡献为负”直接扩写成“联盟合作伙伴质量差”;当前表只支持渠道季度贡献,不包含伙伴质量的因果证据。
| 输出层 | 合格例 | 不合格跳跃 |
|---|---|---|
| 事实 | 联盟 已知贡献 -12,500 | 联盟 没有价值 |
| 解释 | 高渠道支出是负贡献的直接算术因素 | 客户一定来自低质流量 |
| 操作 | 暂不加预算,先核对归因与伙伴分层 | 立即永久关闭渠道 |
| 证据请求 | 补 34 条成本与 2 条渠道归因 | 让 AI 猜最可能值 |
提示词不能替代这些结构。只写“请仔细检查并诚实说明不确定性”不会自动产生主键、基数和金额勾稽;相反,明确数据结构、允许动作与阻断规则后,即使更换模型,检查对象仍然稳定。
第二种计算路径和冻结陷阱集,专门检查“看起来合理”的错误
宋宁用两条独立路径复算关键数字:工作簿透视/公式与脚本分组计算。两条路径共享冻结 清洗后的输入,但不共享同一汇总公式;只有行数、金额、退款与支出在 0.01 美元容差内一致才进入叙述。
她还建立 30 个已知陷阱和 10 个干净对照:6 个日期/区域、5 个公式、5 个关联、4 个缺失、4 个币种、3 个重复、3 个异常。首轮 AI 正确发现 23,发现但建议动作错误 3,漏掉 4;改进数据结构与规则后为 28、1、1。10 个干净对照的误报从 2 降到 1。
| 测试变形 | 期望不变量 |
|---|---|
| 调换行顺序 | 渠道汇总不变 |
| 加一条完全重复导出 | 当前 结果不变、重复计数+1 |
| 将 USD 标记改 EUR 但数值不变 | FX/单位规则阻断,不静默接受 |
| 把退款拆成两笔 | 聚合后 退款总额 不变 |
| 新增大额真实订单 | 异常标记可变,不能自动删除 |
| 删除成本有效日期 | 贡献 变 已阻塞/区间 |
漏掉的 1 个是关闭外部工作簿后的缓存值仍看似正常;因此公式依赖仍需人工与第二路径检查。测试提高的是可见性,不是证明模型“99% 正确”。
结论要带适用范围和停止条件:数据不支持时,最专业的输出是暂不排名
当前四渠道中,直接、搜索、电子邮件 的贡献区间均为正,联盟 区间均为负;这个方向在已定义成本上界内稳定。但不能由此断言前三者未来回报率不变,也不能忽略客户获取质量、产能约束或长期留存。
| 发布状态 | 条件 | 输出 |
|---|---|---|
| 发布 | 关键规则通过,区间不翻转,双路径一致 | 给方向、区间和限制 |
| 有限条件下发布 | 小额未关联但压力测试不翻转 | 显示上下界与未决项 |
| 挂起 | 成本/退款区间会翻转排名 | 不给预算方向,先补数据 |
| 停止 | 关联扇出、币种缺失、关键公式不可重算 | 撤回当前结果 |
| 升级 | 涉及财务报表、合同或重大外部承诺 | 交相应专业负责人 |
任何 当前键 冲突、退款金额无法勾稽、渠道支出 重复、汇总差额超过 0.01 美元、非 USD 无汇率或公式源不可访问,都阻断精确贡献结论。不是把 保留条款 写在报告末尾后继续排名。
正贡献也不自动等于增加预算。电子邮件 的 93,400 高于 搜索 的 83,000,但两者投入规模、可扩展库存和边际回报没有在当前表中建模;直接 更不一定是可购买渠道。当前结果只能排除“联盟已被证明最赚钱”这一原建议,并为下一次小额预算实验提供基线。把分析用途守窄,比用更多图表把同一数据包装成战略更可靠。
若财务负责人后续改变贡献定义,例如加入人工履约成本,必须生成新指标版本 并重跑四渠道,不得只在联盟渠道上补一项成本。定义变更和数据修复是两类事件:前者改变所有历史比较的语义,后者修正特定输入错误。
可以直接复制的表格分析前置包:用 90 分钟先查一项真实决定
01-analysis-contract.md
02-source-manifest-and-hashes.csv
03-sheet-map-and-grain.csv
04-field-dictionary.csv
05-data-quality-rules.csv
06-quality-results-and-exceptions.csv
07-transforms-and-row-ledger.csv
08-formula-and-dependency-audit.csv
09-join-cardinality-receipts.csv
10-reconciliation-and-independent-recalc.csv
11-ai-test-cases.csv
12-decision-with-uncertainty.md
第一次练习只选一项会改变决定的表:前 15 分钟写问题、范围和指标;20 分钟盘点工作表、粒度与键;20 分钟定义五个关键字段;20 分钟检查重复、缺失、公式和关联基数;最后 15 分钟手算三行并对一个总计。任何一项说不清,就先返回负责人补证据。
资料核验于 2026-07-21,进一步阅读:
- GOV.UK:The Government Data Quality Framework:提供以用途和六个可调整维度评估数据质量的框架。
- GOV.UK:Data quality issues framework:2026-04-16 更新,说明数据用途、质量规则、目标、失败影响与问题优先级的关系。
- GOV.UK:The Government Data Quality Framework guidance:给出 关键数据、规则、基线、问题记录、根因和持续测量等实践。
- W3C:Model for Tabular Data and Metadata on the Web:说明表格、列、数据类型、元数据 与 CSV 解析/验证边界。
- Microsoft Support:Detect formula errors in Excel:说明公式错误值、区域内不一致公式、遗漏单元格与重算检查。
- Microsoft Support:Display the relationships between formulas and cells:说明 先例/依赖 追踪及其对关闭外部工作簿等情况的限制。
- Microsoft Support:Analyze a workbook with Spreadsheet Inquire:列出工作簿结构、公式、单元格、连接与警告分析能力,并标明适用产品限制。
AI 能快速生成代码、发现候选异常和解释结果,却不会自动知道一行是什么、空白意味着什么、关联为什么合法、极端值是不是业务事实。把前置检查保存为可复用包后,下一次不必从头“清洗”;你是在执行同一套可以拒绝坏输入、解释每个差额并复算每个结论的分析工作。