多家报价横向比价(免费)
一句话:把多家投标人的报价明细逐项摆在一起对齐 —— 不需要付款,也不需要注册。
完全免费:不需要付款、不需要注册、不需要配置任何 API Key,直接调用即可。
什么时候用
- 评标/清标时要快速把各家报价摆到同一个项目名上看
- 想知道谁少报了几项(缺项),或谁多报了什么
- 想先看清各家合计与排名,再看要不要深入比单价
这个免费版给出什么
| # | 产出 |
|---|---|
| 1 | 逐项对照表:按项目名对齐各家的数量 / 单价 / 合价,并给出各家中位数 |
| 2 | 缺项与多项(某家有、别家没有的项目) |
| 3 | 各家合价合计与排序 |
项目名会做归一:去空白、标点与常见单位后缀后再对齐,所以「钢筋」与「钢筋 / t」能对上。 中位数只在三家以上才用于判断(家数太少时中位数不稳,本版本不做分析)。
怎么用
node scripts/run.mjs --sample
node scripts/run.mjs --input my-bids.json
node scripts/run.mjs --input my-bids.json --json
入参两种写法,任选:
{ "bidders": [
{ "name": "河南甲建设", "items": [
{ "name": "土方开挖", "qty": 100, "price": 25, "amount": 2500 }
] },
{ "name": "河南乙工程", "items": [
{ "name": "土方开挖", "qty": 100, "price": 26, "amount": 2600 }
] }
] }
或者直接给纯文本,各家之间空一行,行格式为「项目名称 数量 单价 合价」:
河南甲建设有限公司
土方开挖 100 25 2500
路基填筑 200 38 7600
河南乙工程有限公司
土方开挖 100 26 2600
路基填筑 200 39 7800
(支持 Tab / 竖线 / 逗号 / 空格分隔;行首的序号会被自动忽略。)
退出码
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不足 —— 此时不给结论(横向比价至少两家) |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
这个免费版不包含
以下检查项不在本版本范围内,调用时也不会执行:
- 单价离群检测(某项单价与各家中位数的偏离超过阈值)
- 不平衡报价线索(同一家内单价偏离方向不一致)
- 合价 = 数量 × 单价 的算术核对
- 数量在各家之间不一致的提示
- 最高限价与各家合计的对比(需提供 maxPrice)
需要完整档时(可选)
本免费版是完整可用的核心产出,本版本不包含下面这些项:
- 单价离群检测(某项单价与各家中位数的偏离超过阈值)
- 不平衡报价线索(同一家内单价偏离方向不一致)
- 合价 = 数量 × 单价 的算术核对
- 数量在各家之间不一致的提示
- 最高限价与各家合计的对比(需提供 maxPrice)
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
边界(请务必知道)
- 本工具只做AI对比,不判断哪一家应当中标 —— 那是评标委员会的事;
- 不认定串通投标 —— 那需要证据与法定程序(另有"串通投标线索AI筛查"工具);
- 不判断报价是否合理或利润是否正常;
- 「没报问题」不等于「没有问题」:超出上述产出的检查,本版本不执行;
- 材料不足时不给结论,也不会用默认值编一个「没问题」出来;
输出示例
[P1] 缺项
项目「排水管道」只有 2/3 家报了:缺的是 河南乙工程有限公司。
建议:清标时要逐项确认:是真的没报,还是项目名称写法不同导致对不上。
各家合计从低到高:1.河南乙工程 ¥71600 2.河南甲建设 ¥95600 3.河南丙建筑 ¥102900
