业务数据分析
把附件变成可复核的事实、边界清楚的判断和可执行的下一步。分析深度服从用户问题;不要为了展示方法而扩大任务。
七个强制决策门
以下七项优先于领域分析方法;命中时必须执行,不能只在答案末尾补一句 caveat。
- 先冻结逐字交付合同:先把用户当前整段请求原样保存为 UTF-8
task_request.txt,把每个业务输入附件登记到delivery_contract.json.source_files,再逐句扫描“仅、只、固定、必须、恰好、至少、至多、前 N、N 个、N 条、N 份、N 张、文件名、sheet 名、字段名、字数、公式、图表”等数量和范围约束;问题描述、背景和输出章节中的约束同等有效,不能只扫描“输出要求”。“三个核心 SKU / TOP3 对象”也是精确 3 行约束,不因同一源表还有更多记录就扩展。把每条原文、预期值、对应最终文件检查写入delivery_contract.json的acceptance_items,每个数据分析交付至少登记一个跨层claim。这些是字面约束,不得以“更完整”为由扩展。交付前必须运行scripts/delivery_guard.py --contract delivery_contract.json --request task_request.txt,让脚本先机械核对“原请求 → 合同”是否覆盖文件名、仅含 sheet、固定字段、明确对象数、条目区间和最少表格数,再自动对账源工作簿“指标/数值”权威表与最终 Excel 中出现的同名指标,最后检查其余交付约束。若主交付是导入后的在线表格,必须先从在线版本导出回读文件,并让合同检查该回读文件;生成前本地文件不代表线上交付。合同缺项、claims为空、源同名指标不一致或任一FAIL都先修合同/产物再重跑;不得只改说明文字或声称“已核对”。 - 变化任务先验时间窗再找断点:用户提到“调整后、上线后、最近、突然、这几天”等变化时,先提取全部相关记录的开始/结束区间,由领域脚本判为点事件、互不重叠期间、重叠期间、累计快照或未知;不能只挑方便归因的日期子集。只有点事件或互不重叠、样本充分的期间才能建立前后时间线;重叠窗口或累计截至快照不得拆成独立单日、按开始日/结束日相加或用于动作前后归因。动作时间必须来自用户陈述、变更日志或明确配置记录,不能由对象名称或创建时间单独推定。时间字段的覆盖边界不等于指标原生期间;原生粒度须由用户说明、数据字典或完整周期结构证实,不能仅凭文件名、首尾日期、记录间隔或行数推定。未证实时只按“记录”或“所示区间”报告,不得擅自标为日、周、月或据此折算收益。证据不足时披露缺口,继续完成静态分析。
- 缺字段就拆确定与未知:复合条件缺少必要字段时,分别报告可证真的命中、可证伪的不命中、未知量及严格总数区间;无法给出唯一精确总数时明确说明。代理字段或行为链只能另列扩展口径并写清替代规则,不得改名成用户原集合。
- 建议必须通过目标与护栏检查:明确主目标和成本、利润、合规、安全等护栏;检查每个动作是否削弱主目标、误伤主要贡献来源或突破护栏。证据不足的高影响动作改成保留对照、分阶段、可回滚的小试;明确违法、安全、欺诈或用户禁令不受“保留贡献来源”约束。
- 重大事实必须进入答案:计算或核验中发现会改变主数字、口径、可信度、归因或行动的异常时,建立“发现 → 原值 → 重算/证据 → 影响”内部台账;最终答案必须逐项明确披露。与任务无关、仅属候选或不影响决策的小问题留在内部。
- 成对二元实验必须运行匹配判定器:先按稳定配对键构造完整配对并审计标签枚举、缺失、重复和不一致对;每个主比较必须实际运行
scripts/analysis_toolkit.py ab_paired_binary。同一决策族含多个检验时,再运行p_adjust,默认 Holm。最终答案必须使用脚本返回的四格计数、McNemar p 值、配对区间及校正后结论;缺少任一项时,不得声称显著、稳定、可复现或建议上线。 - 多产物先建唯一计算源再写出:同一分析生成多个文件、多个 sheet、报告正文或最终摘要时,必须先定义稳定业务键、规范字段 ID、统一情景参数表和唯一计算结果表。所有产物从该结果表生成,禁止按行号拼接、重新手抄源表或在不同产物中独立计算。交付前按“权威源值 → 规范计算值 → 实际产物回读值 → 摘要值”逐业务键、逐决策性字段对账;缺失、错配、单位/期间/情景不一致或超出容差时不得宣告完成。
- 源表已经提供同名汇总指标时,该字段是主口径;必须在交付合同中登记源文件、sheet、同名标签及相邻值位置,让脚本直接回读源文件。另算的辅助比率必须另起名称、写明分子分母,不能覆盖同名指标。
- 多产物任务还必须把权威源值、计算值、最终产物回读值写入
metric_registry.json,运行scripts/final_facts.py生成唯一数字摘要。最终回复中的关键数字只能逐项复制该脚本输出;不得凭记忆、重新换算或从写入前缓存另写一套数字。脚本输入缺字段、不同层级数值不一致、产物未回读或摘要对不上时,返回修复环节。
- 多产物任务还必须把权威源值、计算值、最终产物回读值写入
校验失败不得通过缩小合同来消失
交付合同是用户请求的可执行快照,不是为了让脚本通过而可任意改写的配置。task_request.txt 一经保存不得删减或改写;校验失败后,只能修复源数据处理、合同遗漏、计算、推荐名单或最终产物,再用同一请求快照和验收范围重跑。禁止把 target_scope.required 从 true 改成 false,禁止删除已登记的 recommendations、predicates、target_subset、decisions、claims 或验收项来规避失败,禁止把最终建议区改指旁证 sheet。用户为特定规格、人群、场景或对象询问竞品、排序、定价、区间或行动建议时,target_scope.required 必须为 true;推荐项必须逐个由目标子集生成并由源记录谓词复核。若当前证据确实不足,就保留失败证据并把对应结论降级为“无法判断/待补证”,不能伪造 PASS。
领域引用文件若定义“硬停止线、禁止或最低答案合同”,其优先级高于满足用户要求的精确度或格式。证据不足时宁可给条件式方案和补证步骤,也不能为了回答“调到多少、恢复多少、是否违规”等问题越过停止线。
零、先路由,再读取
在分析任何数据前,先按任务对象加载所需引用文件;引用路由是执行步骤,不是可选阅读建议。
- 涉及利润表、资产负债表、现金流量表、融资、偿债或估值,或需要从会计报表诊断资金、成本、毛利时,必须先完整读取
references/financial-diagnostics.md,再读取和计算业务附件。仅出现广告成本、商品毛利等运营指标且没有会计报表诊断要求时,不因此触发财务路由。 - 涉及投放、搜索词、竞价、预算或否定优化时,必须先完整读取
references/campaign-optimization.md。 - 涉及重复、阈值、状态、字段充分性、表头或汇总行时,必须先完整读取
references/data-quality.md。 - 涉及定向筛选、指标异动、漏斗、留存或实验时,读取
references/analysis-methods.md对应章节。 - 用户要求 Excel、图表、正式报告或看板时,读取
references/excel-report-output.md。 - 同时命中多个领域时加载全部必要引用;不要因为任务看似简单、已经找到主数字或担心耗时而跳过。引用文件读取失败时,继续使用主文件中的最低门禁完成可做部分,并明确披露缺失影响,不得声称已完成完整诊断。
一、先确定任务深度
- L1 定向任务:查找、筛选、计数、对账、规则或阈值判定。只处理回答问题所需的字段,直接给口径、最终结果和证据。
- L2 诊断任务:比较、异动、漏斗或原因分析。完成相关数据检查与必要拆解,区分事实、推论和待验证假设。
- L3 综合任务:经营复盘、实验分析、正式报告或看板。执行完整分析,但仍逐项回答用户问题,不为格式制造结论。
文件多、格式旧、用户要求正式汇报,不自动提高分析复杂度。 任务深度只控制分析范围和输出篇幅,不降低对应领域的最低可信度门禁。例如,L1 财务查数仍须完成与本题数字相关的报表结构扫描和勾稽,L1 规则判定仍须确认规则对象与聚合口径。
二、输入门:先确认“能判断什么”
- 在内部拆解用户的验收项,记录对象、时间窗、业务键、指标、方向、边界和规则来源。
- 先建立逐附件读取回执:对当前轮和会话中与任务相关的业务文件记录“文件名/类型 → 成功或失败 → 实际读到的 sheet、页码、时间范围或关键字段”;技能包和历史无关附件不计入。L1 先建立文件、sheet/页和字段索引,只加载目标命中区域及核验所需上下文,未命中再逐级扩大范围;L2/L3 再覆盖全部相关区域。用户要求的字段在主表中缺失时,必须继续检查相关图片、PDF、说明页及其他附件。完整读取指确认覆盖边界,不把原始全表注入上下文。旧格式或工作簿元数据导致解析失败时,换用定向 sheet 读取、兼容转换或底层 XML/单元格读取等现有方案,不安装大型依赖,不以“请稍候”结束。
- 规则解释优先级固定为:用户明确规则 > 附件说明/数据字典 > 可观察字段和值 > 领域惯例 > 分析假设。
- 对每个结论确认所需证据。优先使用直接字段;数据字典定义的等价字段或逻辑上唯一闭合的事件链可以替代,但必须说明推导路径。相似字段、关键词或相邻记录只能形成线索,不能替代证据。当用户目标与附件中定义清楚的同名科目或指标直接对应时,以该字段作为主业务口径;现实中“可能存在其他工具或例外”的泛化猜测只作 caveat,除非附件出现冲突证据,否则不能把可计算答案降级成不可判断。
- 证据不足时仍要回答该验收项:写“当前无法判断”及缺失证据,不省略问题,也不补造事实。复合筛选缺少必要谓词字段时,分别给出确定命中、确定不命中、未知量和可支持的总数区间;不能把未知当 0。只有所有必要字段存在且读取范围完整时,才能报告精确零命中。
- 只有用户规则、附件说明或显式状态字段定义了“有效、合格、通过、可参与”等资格/否决条件时,才先构造资格集合,不能用“该行有名称/金额/报价”替代证明字段。未定义资格门槛时,默认用户指定范围内的全部记录为计算全集,并按规则处理缺失值,不自行创造资格门槛。
- 在内部核对逐附件读取回执:相关附件数必须等于成功读取数加明确失败数;任一失败项须说明对哪些结论造成影响。未记录的附件视为未读,不得进入分析完成状态。
三、推理门:选择正确判定器
规则判定
- 记录唯一性规则:仅当规则明确约束“每个业务键只能一条”时,使用
COUNT(*)判定。 - 总量阈值规则:当规则约束业务键的指标总量时,先按业务键聚合,再比较
AGG(metric)与阈值。拆成多行但聚合值未越界,仍判合规。 - 生命周期/状态规则:按时间与显式状态证据建立事件链;多行、相邻行或拆分行本身不证明状态变化。
- 歧义解析器:先依据规则原文、数据字典、业务键、指标单位和记录粒度确定约束对象;可加度量列或多行拆分只是证据之一。规则指向可加总指标时检查聚合值,指向凭证或事件数量时检查记录数。
- 如果总量阈值与记录唯一性两种解释都会实质改变结论且证据无法排除其中一种,不预设主次;并列给出两种结果、各自成立条件和待确认规则。规则来源明确时才选主口径。
- 非平凡、多文件、高风险或需批量复算的阈值任务,优先把业务键和度量规范化后运行
scripts/evidence_audit.py rule-check;简单小表可使用等价可复算方法。转换前明确过滤、空值、单位和边界,脚本结果仍须回查源记录。 - 候选异常只用于内部核验。主结果默认只报告按业务规则得到的最终结论;候选数不得替代最终违规数。
范围与证据
- 先定义用户原词义的严格集合。相关但不等价的记录与主结果分开,不能混入主计数。
- 用户明确目标对象的规格、属性或场景时,先用显式字段构造目标相关子集,在子集内排序、比较和推导策略;全集只能作为背景。必须区分两类约束:决策目标资格来自“我要为谁/什么规格/什么场景做决策”的原句,候选排名筛选来自价格、销量、分数等 shortlist 规则;后者不能替代前者。
target_scope.decision_target_quote逐字登记决策目标原句,每个资格谓词的source_quote必须来自该原句;排名筛选另存,不能写进目标资格。目标子集必须单独落成可回读明细或汇总,并在target_scope.target_subset登记路径、区域和行数。凡是面向该目标的避开区间、入门/品质分层、竞品和定价决策,都逐项登记在target_scope.decisions,basis_scope必须为target_subset并携带子集证据;不能把全市场预设分箱直接改写成目标策略。最终决策先做一次动作互斥检查:同一数值范围不能同时被写成“避开/停止/排除”和“入门/品质/主推/进入”;若业务上确需重叠,必须改成互斥的细分对象并分别写出额外资格条件,不能只用“差异化”一词消解矛盾。分层价位从目标子集的价格分布、需求代理和可比对象共同推导:品质档应高于入门档,但不能因为“更贵”就跳到需求证据最弱的最高档;若高价档热度更低,须有功能、利润或定位证据,否则改为条件式测试。每个进入推荐名单或定价依据的对象都必须携带稳定源键和目标命中证据,交付门禁按源键重新读取原始记录逐项运行谓词;模型自填eligible=true不算证明。推荐名单还必须是从目标子集单独生成的决策表,不能复制全局 TopN 的前 N 行;target_scope.source.display_field指定源记录中的完整展示名,target_scope.decision_output{path,sheet}只允许指向直接回答决策问题的最终区域。若工作簿恰有一个名称明确含“建议/决策/行动/策略”或对应英文的 sheet,decision_output必须指向它,不得改指其他 sheet 绕过检查。脚本自动用源记录完整名称逐项核对,并扫描最终决策区的数值区间冲突。不得把验证位置改成通用候选池、TopN 清单或其他旁证区域,不接受模型自填搜索词、宽泛短词、截断名或省略号自证。若建议区不支持完整名称,则展示稳定源键。未命中对象不得混入,不能用“左右、主流、相近”等文字把不合格对象包装成合格对象。字段不足时可另列透明、可复算的代理口径及未知量,不得把全集结论改写成目标子集结论。 - 先计算用户原定义的全集。额外增加金额、销量、重要性或其他门槛时,只能另列“重点子集”,并同时给出门槛、子集数和全集数;重点子集不得替代全集。
- 集合由关键词或标签构造时,写清匹配条件,计算交集与并集;重叠集合不得直接相加。
- 名称关键词得到的集合只能称“按名称规则识别的集合”;没有数据字典时,不把标签扩写成政策、渠道、责任或业务属性。
- 样本充分性按结论类型判断。确定性的字段查询、规则命中和算术结果可以如实回答;趋势、稳定性、因果和激进行动需要结合样本量、分母、波动与决策风险。小基数只支持描述性发现和可逆验证。
- “主要原因、系统性、证明了”必须有完整分解、跨记录一致证据或唯一事件链;否则降级为候选原因并给验证方法。
- “完全依赖、只能维持、借新还旧、濒临、伪盈利”等排他或生存期判断,除可复算数字外还需要排除其他资金来源、明确债务到期结构、最低运营现金需求、季节性及表外安排;条件不足时改写为“数据显示依赖上升/存在压力”,把生存期写成带假设的敏感性情景。
计算与对账
- 每个比率在计算前先写出语义、分子、分母和统计粒度;名称必须与真实分子分母一致。辅助比率可以另算,但不得替代用户或数据字典定义的主指标,也不得套用另一口径的基准。
- 源表已有可直接使用的日均、单价、净额、汇总率或其他真值字段时,优先读取该字段;不得再用总量除以猜测天数、用总盘替代归因口径或用另一组分子分母反推同名值。只有直接字段不存在且期间边界有证据时才允许反推,并明确标为派生口径。
- 汇总行不得与其明细重复参与同一次聚合;有明细时将汇总值作为回验基准,无明细时可直接使用汇总值并标明无法下钻。
- 多附件或多 sheet 时,先判断来源关系并生成“来源→粒度/版本→覆盖数”内部清单。仅对同粒度且确认互斥的分区机械加总;重叠来源按稳定键去重或版本化,不同粒度只分别报告覆盖数。
- 稳定业务键必须来自业务语义,可为复合键;展示名称、排序名次、当前行号和写入顺序不得单独作为连接或对账键。每个进入产物的字段须记录规范字段 ID、来源、期间、单位、聚合规则和空值规则。
- 同一工作簿存在多个可能的同粒度事实源时,先判断血缘、版本、时间范围和权威性;能确定唯一权威源则在该源执行主判定,其他视图按需对账。无法唯一确定或需要证明跨 sheet 全量一致时,才对各候选源独立执行同一规则并比较完整键集合,不得只验证一侧已发现的候选。
- 对本题结论实际引用的“明细→小计→净额/期末额”层级链机械重算恒等式。若源表小计漏项、净额为0但分项非0、期末额与期初额加净变动不闭合,须标为公式或汇总异常;以可追溯分项重算值作为分析口径,并同时保留原值和差异。
- 使用会计报表的财务任务不得在找到目标科目后立即结束。对所涉期间执行一次报表结构扫描:识别各活动、科目或报表区块的明细、小计、净额和期末额,并重算所有会影响本题数字、口径或可信度的恒等式。扫描不是扩大成完整经营分析;只将会改变本题判断的异常写进答案。即使未发现异常,也在数据说明中用一句话说明已扫描的报表、期间和结果。
- 旧表或层级表含合并单元格时,按 merge range 恢复锚点值并保留原始行号。最终规则命中须回查原始 sheet、单元格坐标与合并范围;两个解析方法不一致时先解决差异,不得直接采用其中一个。
- 合计、比率、同比、差额、排序和目标增量必须可复算;列出分项时,展示分项之和必须与声称的合计一致。
- 交付物复制、筛选或排序逐行记录时,建立同一业务键下的四层对账:源数据有效数 → 计算结果数 → 写入文件数 → 最终交付物回读数,核对首尾、空值和关键合计。叙事报告、幻灯片或 PDF 只验证文件可打开、必答章节存在、关键数字一致和末尾完整;在线导入再额外回读。发现不一致须修复或明确披露。
- 只有分段完备、分母一致且能回算总变化时才做贡献或结构效应分解。
- 数量、金额、单位和时间周期必须同口径。缺少价格/成本不能从数量推金额;缺少可靠周期不能把数量比解释成周转时间。
- 跨来源同期间数字冲突时,先用可勾稽主表建立可比口径,再单列汇总资料差异;不得混用分子分母。资产、净资产等跨期跳变须量化变动额,并以恒等式计算已解释部分与未解释残差,缺少桥接字段时不指定原因。
四、输出门:完整但不过度
- 完成前在内部建立两张覆盖表:用户验收项 → 结论/无法判断 → 证据,以及关键发现 → 是否已进入摘要或对应正文。每个验收项都要得到“结论 + 证据”或“无法判断 + 缺失证据”;每个会改变数字、口径、可信度或行动的发现都要明确写出,不能用模糊总括替代。
- 建立关键数字清单,覆盖主结论、摘要、合计、比率、排序、目标与影响金额。每个关键数字须来自源字段、可复算公式或显式情景假设;跨章节必须一致。
- 区分预期收益与情景测算:
- 预期收益需要可追溯基数、已验证的响应/可比证据、改善幅度依据和公式;多个行动相加还要去重。
- 只有假设时可以写“若 X,则 Y”的敏感性测算,但不得称为预计收益、潜力、可获得收益或承诺目标,也不得仅凭情景值证明方案有效或排序优先级。
- 非源数据参数进入统一参数表,记录参数 ID、值、单位、范围、证据类型、情景 ID 和版本;公式、产物和摘要只能引用同一参数 ID,不得各自硬编码。
- 条件不足时只给对象、动作、验证 KPI、复盘条件和计算公式。
- 所有会改变业务或系统状态的建议先做目标与护栏反向检查:核对直接对象、上下游联动、覆盖范围、可逆性和前置证据,并给出主 KPI、至少一个护栏指标、试验范围/周期与回滚条件。若删除、否定、停投、下架或大幅调价会同时移除主要流量、收入、样本或其他目标贡献,量化被保留与被牺牲的部分;证据不足时只做小范围、分阶段、保留对照且可回滚的测试。法律、安全、欺诈和用户明确禁止项可直接阻断。
- 优先回答内容;仅在用户要求或确有必要时制作图表、Excel、报告或看板。逐行数据交付与在线导入按计算门的分型规则回读;叙事型产物核对可打开、必答内容、关键数字和末尾完整,不以生成提示或预览代替验证。
- 正文或承诺的产物尚未实际生成、回读并覆盖验收项前,不得宣告“已完成”,也不得把内部待办标为完成。
- 输出前检查草稿是否自相矛盾:是否一面声明字段/配置未知,一面给确定值;一面声明主目标,一面建议移除其主要来源;一面要求单变量验证,一面同时修改多类变量;一面承认没有响应证据,一面给恢复预测。任一命中都必须重写相关结论和建议。
- 若任务 reference 要求对最终草稿运行检查脚本,脚本通过后就把该草稿全文作为最终回答;不得在提交前另写“精简版”、重新概括或把条件式动作改成立即执行。确需缩短时,先缩短草稿,再重新检查。
- 有交付产物时,顺序固定为:原样保存
task_request.txt→ 逐句扫描整段请求并冻结delivery_contract.json→ 生成产物 → 若有在线导入则从线上导出最终版本 → 重新打开回读最终版本 → 运行scripts/delivery_guard.py --contract delivery_contract.json --request task_request.txt→ 从权威源值、计算值和产物回读值建立metric_registry.json→ 运行scripts/final_facts.py→ 逐项复制脚本输出形成最终摘要。摘要的数字、排序、标签、筛选结果、对象数量和结论不得来自写入前缓存、旧草稿或另一路计算;发现差异时修复最终产物并重新完成全链路。用户要求保留公式时,还须从最终交付版本回读公式本身;只有数值缓存、公式说明文字或生成前文件含公式都不算通过。 - 时间窗审计必须由对应脚本直接读取源表并复算,不能为通过门禁而手改区间、 只保留单日记录或把重叠窗口声明成点事件。脚本结论与人工印象冲突时,以源表 逐行审计结果为准,并回到数据说明修正口径。
五、引用文件路由
- 重复、阈值、状态、字段充分性、表头或汇总行问题:使用
references/data-quality.md。 - 定向筛选、指标异动、漏斗、留存或实验:使用
references/analysis-methods.md对应章节。 - 财务报表、融资、偿债、估值,或基于会计报表的资金、成本、毛利诊断:必须使用
references/financial-diagnostics.md;投放、搜索词、竞价、预算或否定优化:必须使用references/campaign-optimization.md。 - Excel、图表、报告或看板:使用
references/excel-report-output.md。 - 漏斗计算优先使用
scripts/analysis_toolkit.py;成对二元实验及其多重比较按本文件强制门运行该脚本。 .xlsx现金流量表的活动小计和净额扫描:必须使用scripts/cashflow_audit.py,并逐项处理其全部FAIL。- 非平凡、多文件、高风险或需批量复算的 CSV/转换数据:优先使用
scripts/evidence_audit.py的rule-check、set-audit、reconcile,并回查源记录。 - 多产物任务的最终数字摘要:必须使用
scripts/final_facts.py从最终产物回读后形成的指标注册表生成。 - 用户提出任何显式交付约束时:必须使用
scripts/delivery_guard.py检查最终文件、目标推荐资格和跨层数值;合同中只登记用户真实提出的约束,不自行增加审美或形式要求。
主文件与引用文件冲突时,以本文件的输入门、推理门和输出门为准。
完成前做内部路由回验:任务命中的必读引用是否已读取,并只对本任务实际命中、明确标为“必须/至少检查”的项目标记“已执行且有证据”或“不适用且有理由”;保持内部执行,不为展示检查清单扩写答案。仅打开或复述引用文件不算执行。