承运司机运费结算核对(免费版)
完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
什么时候用
谁会在什么时候用:物流公司、货主车队、专线公司的财务 / 调度 / 对账岗在每月给承运商与个体司机结算运费时, 必须把这张结算单核一遍才能放款。回单缺失被扣、油卡抵扣重复、单价按错档,正是司机与公司每月都要吵的几件事。
这张表会逐项核对什么: · 运费 = 结算数量 × 结算单价 · 应付运费 = 运费 − 回单扣款 − 油卡抵扣 − 罚款抵扣 − 押金扣留 + 代垫过路费 · 对账单(合计行)应付运费 = 各明细行应付运费之和,不符时报出差异金额并定位差异单 · 合计行逐列复核(结算数量 / 运费 / 各项抵扣 / 代垫过路费,单价是比率不参与加总) · 同一司机同一期间同一运单号重复行、空白与占位符、金额为负
每条结论都带原文行号与司机 / 运单号,可被第三方用同一口径复算; 材料不足时不给结论,会明确列出还缺什么。
这个免费版查什么
- 运费复算(结算数量 × 结算单价 = 运费)
- 逐单应付运费复算(运费 − 回单扣款 − 油卡抵扣 − 罚款抵扣 − 押金扣留 + 代垫过路费 = 应付运费)
- 对账单合计勾稽(合计行应付运费 = 各明细行应付运费之和,不符时报出差异金额并定位差异单)
- 合计行逐列复核(结算数量 / 运费 / 各项抵扣 / 代垫过路费)
- 同一司机同一期间同一运单号重复行检测
- 空白与占位符检测
- 金额为负检测
(检查项由引擎的 CHECKS_GIVEN 导出,跑 --sample 会打印实际执行了哪些;
本版本不包含的 5 项列在 CHECKS_WITHHELD 里,不做也不假装做。)
怎么用
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
入参就是含表头的一张表({"text": "结算期间\t司机\t运单号\t…"}):
从 Excel 或 TMS 结算导出里直接复制成文本(Tab 分隔最稳)贴进去即可,
表头缺列会明确告诉你缺哪列(缺一列抵扣就报缺列,不会按 0 替你假设"没有这项抵扣")。
常见错法(这张表里真的会有人这么填)
- 单价按错档(按里程 vs 按吨公里):同一结算期、同一司机、同一结算方式只应有一档单价。 把吨公里单价填进按里程的单子(或调价后新旧价混着算),一整列运费会差几倍; 而且这张表内部还自洽(运费 = 数量 × 那个错单价),只看算术看不出来,必须拿运价合同核。
- 回单没回来就按全额放款:回单状态其实是「未回 / 未签收」,回单扣款栏却留空、 也没写"未回"。签收单不回来就放款,一旦货损、货差或客户拒收,这笔运费追不回来。
- 油卡抵扣重复计扣:同一张油卡充值单号在两张单上各抵了一次, 或者抵扣栏填了金额、油卡充值单号与扣款依据却都空着 —— 司机看到的只有"被扣了钱"。
- 押金 / 质保金留空与填 0 混用:这一列填
0.00表示"本月确实没有扣留", 留空表示"不知道扣没扣"。留空时本工具不会替你按 0 算,会直接报这一格缺失; 押金在一个月扣了一次、下个月忘了停又扣一次,是最常见的重复扣款。 - 代垫过路费漏加、或对账单合计改过没刷新:代垫过路费是加项(应付 = 运费 − 抵扣 + 代垫), 漏加一张单的过路费,司机就少拿一笔;另一个高频错法是明细单改对了、合计行忘了重算, 结果对账单金额与明细对不上。
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 回单缺失判定(回单状态为未回 / 未签收 / 待回的单:结算前必须补齐回单,补不齐的按合同扣款或暂缓支付)
- 无依据扣款判定(油卡抵扣 / 罚款抵扣 / 押金扣留 / 回单扣款金额大于 0,但扣款依据栏为空或占位符 ⇒ 计入应追回的争议金额)
- 油卡抵扣重复计扣判定(同一司机的同一油卡充值单号被多次抵扣)
- 单价档判定(同一司机同一结算方式在同一结算期内出现多个结算单价)
- 按司机的结算前处理清单(本月应付与争议金额排序,逐条带原文行号与运单号,列出待补回单与待追回扣款)
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断
(单价该按什么合同档位、里程与吨公里数据是否真实、油卡与罚款金额是否与外部系统一致、扣款依据的文本是否有效);
材料不足时不给结论,也不会输出「未发现问题」。
