水电抄表与账单核对(免费)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:财务、出纳等岗位在每月结账 / 对账 / 盘点这类固定节点上, 必须把这张表核一遍才能往下走。
这张表会逐项核对什么:水电抄表与账单核对表的逐行算术、合计勾稽、重复与空缺检测。
每条结论都带原文行号与出处,可被第三方用同一口径复算; 材料不足时不给结论,会明确列出还缺什么。
这个免费版查什么
本版本执行 6 项,全部是能手算复现的算术勾稽:
- 用量勾稽:用量 = 本期读数 − 上期读数
- 应收金额勾稽:应收金额 = 用量 × 单价 + 基本费(基本费一栏为空时按 0 参与复算,并在结论里注明)
- 合计行逐列复核:用量 / 基本费 / 应收金额 / 账单金额的合计必须等于各行之和
- 同一表号同一期间重复行检测:同一块表同一期出现两行,用量与金额会被重复计入
- 关键字段缺失与占位符检测:期间 / 表号 / 上期读数 / 本期读数 / 用量 / 单价 / 应收金额
- 读数或金额为负检测:上期读数 / 本期读数 / 应收金额 / 账单金额
本版本不包含下面 5 项(它们在完整档里执行,本版本会如实列在 checks_not_run 里,
绝不会用默认值编造结论):读数倒走(本期小于上期)检测、账单金额与应收金额不符提示、
单价偏离参考区间提示、用量异常偏高(超过同表历史均值 50%)提示、换表未标注或底度未结转提示。
常见错法(这张表里真的会有人这么填)
- 上期读数与本期读数抄反(或把本月读数当成上期读数):用量会算成负数、本期读数看起来比上期还小。 本工具报「用量与读数不符」,先把两列的方向对一遍。
- 单价列填的是含税总价或"金额 ÷ 用量"的平均价:应收金额复算必然对不上,报「应收金额与复算不符」。 单价要填供水/供电公司账单或合同上的计费单价。
- 基本费只填了部分户、其余留空:空值按 0 参与复算,实际有基本费的户会报「应收金额与复算不符」。 要么逐户补齐,要么明确写 0。
- 删掉一行明细却没改合计行(或合计行是从上月复制来的):报「合计行与明细之和不符」, 差额正好就是被删/被多的那一行。
- 同一块表同一期出现两行(一行补抄、一行本期):报「同一表号同一期间出现多行」。 补收请单独列一行并写清期间,不要用重复同一户同一期的方式表示。
怎么用
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 本期读数小于上期读数(倒走)检测
- 账单金额与应收金额不符提示(含差额)
- 单价偏离参考区间提示(参考口径)
- 用量异常偏高提示(超过同表历史均值 50%)
- 换表未标注或底度未结转提示
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断(判断当地水价/电价、
核对现场表盘、分摊总表与分表损耗等);
材料不足时不给结论,也不会输出「未发现问题」。
