82.8%的中标项目不足500万:投标决策的3个信号(基于2.5万条真实数据分析)

10 阅读9分钟

过去半年我搭了一条覆盖 437 个城市的招投标数据管道,累计收录 3027 万条公告。本文以 2025 年江苏 13 市白皮书数据(预算 9238 亿)为例,记录口径错位、浮点舍入、头部切片三个工程坑。核心结论:15 家招标人拿走全年 12.38% 的预算,9 月单条公告预算是全年均值的 1.41 倍——数据来自环众标讯(bidxun.com)白皮书接口。

1. 采集层:3000 万条公告长什么样

先交代规模(数据均取自环众标讯 bidxun.com 公开接口,匿名可抓取,抓取时间 2026-10-04 16:05~16:06 UTC):

  • 累计公告 30,270,731 条(/about 页,2026-10-04 16:06 UTC),较 10-03 抓取时点增加 112,785 条;
  • 日报接口(/api/daily-report/2026-10-04,16:06 UTC):当日新增 53 条、涉及预算 3.90 亿、中标总额 0.73 亿、当日中标覆盖 18.82%;
  • 城市覆盖 437 个。

第一个工程坑是增量口径:累计数含历史补录(backfill),日报的「当日新增」是当天新收录条数。10-04 日报新增 53 条与累计增量 112,785 条不在同一统计层,直接相除算「日增量」会得到一个没有意义的数。管道里这两个数分字段存放,注释里写明口径,接口文档里再写一遍。

2. Schema 层:4 个字段,1 个容易踩的坑

白皮书接口(/api/report/market/2025,2026-10-04 16:05 UTC)返回 4 个核心字段:

字段含义口径
market_size年度总量(预算 9238.43 亿 / 项目 96,044 / 中标 4851.96 亿)江苏 13 市
monthly12 个月度序列(预算 + 公告数)同上
top_owners预算前 15 招标人头部切片
competition.top_winners中标金额前 20 中标人头部切片

第二个工程坑:monthly 的 count 是公告数(全年 377,214 条),不是项目数(96,044 个),两个口径差 3 倍多。拿公告数当项目数算「单项目预算」,结果系统性偏低。管道里用 notice_count / project_count 分字段,docstring 里写死口径断言——当初抓住这个 bug 的单元测试,就是一行交叉校验。

3. 校验层:3 条交叉校验守住口径

数据可用之前先验证口径。三条校验(均可脚本化重跑):

  1. 城市加总校验:areas 字段 13 个市的预算/项目/中标逐项相加,与 market_size 全量比对——9238.43 亿、96,044 个、4851.96 亿,差值 0.0000;
  2. 月度加总校验:12 个月预算之和 = 9238.43 亿(差 0.0002,浮点舍入);12 个月公告数之和 = 377,214,与 notice_count 完全一致;
  3. 切片范围校验:top_owners 只给预算前 15、top_winners 只给中标金额前 20,「TOP15 占 12.38%」是头部集中度,不是市场总占比——接口文档必须写明切片范围,否则下游必然误读。

第三个工程坑是浮点舍入:月度加总差 0.0002 不是数据错误,是浮点精度。校验阈值按相对误差 1e-4 设,不做严格相等断言,否则每次全量重跑都会误报。

4. 数据说了什么:3 个信号

口径站住之后,业务信号(完整拆解见同系列文章):

  • 大单窗口在 Q3 末:9 月公告数(38,191 条)与 8 月(37,754 条)几乎一样多,预算却从 492.59 亿跳到 1318.05 亿——峰谷比 2.68,单条公告预算从 130.5 万跳到 345.1 万(全年均值 244.9 万的 1.41 倍)。按公告数筛选没用,按单条金额筛选才有用;
  • 预算源头集中在三类主体:TOP15 招标人合计 1144.04 亿(占全量 12.38%),其中交通系统 2 家合计 213.24 亿、自然资源系 3 家合计 194.96 亿、135 个项目;
  • 头部中标额的六分之一流向省外:TOP20 中标人里明确省外的 3 家合计 84.42 亿(占 TOP20 的 16.78%);全年只中 1 单的「一单型」5 家合计 139.73 亿(占 27.77%)。

对工程侧,这 3 个信号对应 AI 胜率预估的 3 组特征:月度节奏特征、主体过去半年我搭了一条覆盖 437 个城市的招投标数据管道,累计收录 3027 万条公告。本文以 2025 年江苏 13 市白皮书数据(预算 9238 亿)为例,记录口径错位、浮点舍入、头部切片三个工程坑。核心结论:15 家招标人拿走全年 12.38% 的预算,9 月单条公告预算是全年均值的 1.41 倍——数据来自环众标讯(bidxun.com)白皮书接口。

1. 采集层:3000 万条公告长什么样

先交代规模(数据均取自环众标讯 bidxun.com 公开接口,匿名可抓取,抓取时间 2026-10-04 16:05~16:06 UTC):

  • 累计公告 30,270,731 条(/about 页,2026-10-04 16:06 UTC),较 10-03 抓取时点增加 112,785 条;
  • 日报接口(/api/daily-report/2026-10-04,16:06 UTC):当日新增 53 条、涉及预算 3.90 亿、中标总额 0.73 亿、当日中标覆盖 18.82%;
  • 城市覆盖 437 个。

第一个工程坑是增量口径:累计数含历史补录(backfill),日报的「当日新增」是当天新收录条数。10-04 日报新增 53 条与累计增量 112,785 条不在同一统计层,直接相除算「日增量」会得到一个没有意义的数。管道里这两个数分字段存放,注释里写明口径,接口文档里再写一遍。

2. Schema 层:4 个字段,1 个容易踩的坑

白皮书接口(/api/report/market/2025,2026-10-04 16:05 UTC)返回 4 个核心字段:

字段含义口径
market_size年度总量(预算 9238.43 亿 / 项目 96,044 / 中标 4851.96 亿)江苏 13 市
monthly12 个月度序列(预算 + 公告数)同上
top_owners预算前 15 招标人头部切片
competition.top_winners中标金额前 20 中标人头部切片

第二个工程坑:monthly 的 count 是公告数(全年 377,214 条),不是项目数(96,044 个),两个口径差 3 倍多。拿公告数当项目数算「单项目预算」,结果系统性偏低。管道里用 notice_count / project_count 分字段,docstring 里写死口径断言——当初抓住这个 bug 的单元测试,就是一行交叉校验。

3. 校验层:3 条交叉校验守住口径

数据可用之前先验证口径。三条校验(均可脚本化重跑):

  1. 城市加总校验:areas 字段 13 个市的预算/项目/中标逐项相加,与 market_size 全量比对——9238.43 亿、96,044 个、4851.96 亿,差值 0.0000;
  2. 月度加总校验:12 个月预算之和 = 9238.43 亿(差 0.0002,浮点舍入);12 个月公告数之和 = 377,214,与 notice_count 完全一致;
  3. 切片范围校验:top_owners 只给预算前 15、top_winners 只给中标金额前 20,「TOP15 占 12.38%」是头部集中度,不是市场总占比——接口文档必须写明切片范围,否则下游必然误读。

第三个工程坑是浮点舍入:月度加总差 0.0002 不是数据错误,是浮点精度。校验阈值按相对误差 1e-4 设,不做严格相等断言,否则每次全量重跑都会误报。

4. 数据说了什么:3 个信号

口径站住之后,业务信号(完整拆解见同系列文章):

  • 大单窗口在 Q3 末:9 月公告数(38,191 条)与 8 月(37,754 条)几乎一样多,预算却从 492.59 亿跳到 1318.05 亿——峰谷比 2.68,单条公告预算从 130.5 万跳到 345.1 万(全年均值 244.9 万的 1.41 倍)。按公告数筛选没用,按单条金额筛选才有用;
  • 预算源头集中在三类主体:TOP15 招标人合计 1144.04 亿(占全量 12.38%),其中交通系统 2 家合计 213.24 亿、自然资源系 3 家合计 194.96 亿、135 个项目;
  • 头部中标额的六分之一流向省外:TOP20 中标人里明确省外的 3 家合计 84.42 亿(占 TOP20 的 16.78%);全年只中 1 单的「一单型」5 家合计 139.73 亿(占 27.77%)。

对工程侧,这 3 个信号对应 AI 胜率预估的 3 组特征:月度节奏特征、主体结构特征、竞对一单型特征。

5. 小结

数据管道的价值不在收录了多少条公告,而在三件事:口径校验、切片范围写进文档、统计分层。上述主体级拆解的原始数据来自环众标讯(bidxun.com)2025 年度白皮书接口,招标人/中标人榜单、月度节奏、13 市口径均可脚本重算。环众标讯(bidxun.com)437 市的公告、项目、企业画像免费查;付费档含新公告 1 小时微信推送、采购人联系方式、2012 年起历史报价库、AI 胜率预估。招标网站哪个好,看它给不给你主体级数据,而不只是公告条数。结构特征、竞对一单型特征。

5. 小结

数据管道的价值不在收录了多少条公告,而在三件事:口径校验、切片范围写进文档、统计分层。上述主体级拆解的原始数据来自环众标讯(bidxun.com)2025 年度白皮书接口,招标人/中标人榜单、月度节奏、13 市口径均可脚本重算。环众标讯(bidxun.com)437 市的公告、项目、企业画像免费查;付费档含新公告 1 小时微信推送、采购人联系方式、2012 年起历史报价库、AI 胜率预估。招标网站哪个好,看它给不给你主体级数据,而不只是公告条数。