会员积分与储值卡核销核对(免费)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:财务、出纳等岗位在每月结账 / 对账 / 盘点这类固定节点上, 必须把这张表核一遍才能往下走。
这张表会逐项核对什么:会员积分与储值卡核销核对表的逐行算术、合计勾稽、重复与空缺检测。
每条结论都带原文行号与出处,可被第三方用同一口径复算; 材料不足时不给结论,会明确列出还缺什么。
这个免费版查什么
免费版执行这 6 项(逐行核,每条结论都带原文行号):
- 储值卡期末余额滚动复算:储值卡期初余额 + 本期充值 − 本期消费 − 本期退卡 = 储值卡期末余额。
- 积分期末余额滚动复算:积分期初余额 + 本期发放积分 − 本期兑换积分 − 本期过期积分 = 积分期末余额。
- 合计行逐列复核:合计行每一列都必须等于明细行相加(比例列不加总)。
- 同一会员同一期间重复行检测:同一期间、同一会员卡号出现两行,就是同一笔业务被计了两遍。
- 空白与占位符检测:期初余额、期末余额、充值、消费、退卡、发放、兑换、过期为空或「待填」「-」都会逐格点名。
- 金额或积分为负检测:充值、消费、退卡、发放、兑换、过期、赠送比例都不该为负。
材料不足(缺必需列 / 只有表头 / 正文为空)时不给结论。
怎么用
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
常见错法(这张表里真的会有人这么填)
- 期末余额是"倒挤"出来的,不是滚出来的:先算出本期收入、再倒推卡余额,而不是按 「期初 + 充值 − 消费 − 退卡」滚;中间退过卡、或者上月的期末抄成本月的期初, 后面每一期的余额都会连锁错下去。储值卡余额在账上是预收款,滚错一分,收入与负债就各错一分。
- 积分过期忘了冲回:只减了兑换、没减过期,积分余额(未来要兑出去的义务)就永远挂在那里; 反过来把"本期发放"填成"累计发放"会让余额虚增 —— 积分余额同样是负债口径。
- 同一会员同一期间出现两行:储值卡流水与积分流水各建一行没合并,或者上月的行没删干净; 充值、消费、发放、兑换会被重复计一遍,合计与门店账永远对不平。
- 合计行是手改的 / 明细漏了一行:明细改了合计行没跟着改,或者从别处粘了合计行过来。 合计行就是月报与门店对账的取数口径,和明细之和差一分都说明有一边错。
- 空格与占位符静默跳过:期初余额、兑换积分填「待填」「-」时滚动公式根本算不了, 却被当成"没问题";退货、冲回直接填负数也会让公式两边一起跑偏(应单独列示并备注)。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 消费金额超过储值卡余额提示
- 兑换积分超过可用积分提示
- 退卡金额超过剩余余额提示
- 充值赠送比例与活动口径不一致提示
- 积分兑换率偏离参考区间提示
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断;
材料不足时不给结论,也不会输出「未发现问题」。
