门店毛利与损耗核对(免费版)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限、材料不出本机。
什么时候用
谁在什么时候用:门店财务 / 会计 / 店长在每月结账、月度经营分析、盘点差异复核这类固定节点上, 必须先把「门店销售与成本毛利表」核一遍才能出毛利表、才能拿它做门店对比与考核。 这张表算错的方向只有两个 —— 毛利被算多了(成本填少、损耗没进成本、收款没走账) 或 毛利被算少了(销售额漏记、重复扣成本、损耗重复计);两条都会在月报和审计抽样上暴露, 而且结完账就看不出来了。
这张表会逐项核对什么(免费版执行 5 类,逐条都带原文行号):
- 销售额与收款勾稽 —— 收款合计 − 销售额 = 差异;收款大于销售额、或差异超过销售额的 0.5% 都提示 (一个数从 POS 出、一个数从收银 / 银行流水出,两边对不上说明至少有一边不完整)。
- 成本与理论成本差异复算 —— 实际成本 − 理论成本 = 成本差异,差 1 分钱也会报。
- 毛利率逐行复算 —— 毛利 ÷ 销售额 = 毛利率,同时核 毛利额 = 销售额 − 实际成本。
- 损耗率超限 —— 损耗金额 ÷ 损耗前库存金额 > 2% 提示;并核这一列的比率与两个金额是否自洽。
- 重复行与关键字段空缺检测 —— 同一门店同一品类同一期间的整行重复、必需列为空或「待填」占位符。
每条结论都带原文行号与出处,可被第三方用同一口径复算; 材料不足时不给结论,会明确列出还缺什么,也不会用默认值编出结论。
查什么 / 不查什么
查:只查表内勾稽(上面 5 类)—— 即"这一格能不能由同一张表的其他格算出来"。
不查(本版本不执行的检查项会如实列在输出的 checks_not_run 里,绝不会伪造):
- 毛利额变动的三因素归因(销量 / 售价 / 单位成本);
- 按毛利额排序的门店 × 品类整改清单与跨门店损益台账。
怎么调用
node scripts/run.mjs --sample # 先看样例(样例本身就是一张自洽的表)
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
node scripts/run.mjs --input 你的材料.json --json # 机器可读输出
入参两种写法都行:
{"text": "(把表的**表头**和若干行一起复制进来,Tab 分隔最稳)"}- 直接把「门店销售与成本毛利表」(含表头)从 Excel 复制成文本粘进
.json里; 文件不是合法 JSON 时会整体按纯文本材料处理。
必需列(缺一列就不给结论):所属期间、门店、品类、销售数量、平均售价、销售额、实际成本、理论成本、 成本差异、毛利额、毛利率、损耗金额、损耗前库存金额、损耗率、收款合计。
出参
status:success才有结论;insufficient_input表示材料不足,此时没有result、没有findings。result.findings[]:每条含level(P0/P1)、category、line(原文行号)、message(含算式与差异金额)。result.summary:rows / periods / total / p0 / p1 / verdict(NO_ISSUE_FOUND|NEEDS_REVIEW|ERROR_FOUND)。result.scope:本次执行的checks、未执行的checks_not_run、executed_locally: true、network_used: false。result.checks_out_of_scope:本工具根本不做的判断清单(边界诚实)。- CLI 退出码:
0已执行检查 /1没给入参 /3材料不足 /4入参读不到或无法解析 /9未预期错误。
常见错法(本产品专属)
- 销售额与收款的口径没对齐:销售额取 POS 的含税含折扣后金额,收款却是银行到账额 (已扣平台手续费、T+1 未到账)—— 差异会长期固定在一个百分比上。要么两边都取含税未扣费口径, 要么把手续费与在途单列;不能一边含费一边扣费。
- 损耗率的分母用了期末库存:分母必须是损耗前库存金额。用期末库存(已扣损耗)当分母, 损耗率会被系统性算高,全表看着都超标。分母口径写清楚再填。
- 损耗金额同时进了成本和单独一列:成本里已经含损耗、又在「损耗金额」列再列一次, 毛利被扣两遍;或者成本不含损耗、损耗却没进损益 —— 毛利率与损耗率会同时"看起来正常"。 先定:损耗进不进这条品类的成本,然后全表统一。
- 毛利率的分母用毛利额:毛利率 = 毛利 ÷ 销售额,不是 ÷ 毛利额。Excel 下拉公式时引用错列, 整列会一起失真(本工具逐行复算能抓出来,但口径本身要先定)。
- 多期表直接相加当合计:同一门店同一品类跨两个期间的两行是正常的(不算重复), 但把两期的金额顺手加进同一行合计就会让合计与明细对不上。合计行只加本期明细。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 毛利额变动的三因素归因(销量 / 售价 / 单位成本)
- 按毛利额排序的门店 × 品类整改清单与跨门店损益台账
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不判断售价政策、成本口径(含税 / 不含税、运费与配送费是否进成本)、 损耗的实物原因(报损报溢 / 偷盗 / 加工失水 / 称重误差)与盘点制度本身对不对 —— 表里的售价、成本、损耗金额、库存金额一律以你填的为准; 也不读 POS / 收银 / 进销存 / ERP 导出文件(需要你先导出成文本贴进来)。
完整清单见引擎的 CHECKS_OUT_OF_SCOPE;材料不足时不给结论,也不会输出「未发现问题」。
