{
  "generated_at": "2026-07-16T05:35:58.730Z",
  "report_type": "market_overview",
  "project_id": "col-901831",
  "preview_scope": {
    "mode": "preview",
    "label": "preview"
  },
  "summary": {
    "total": 53,
    "p0": 10,
    "p1": 25,
    "p2": 18,
    "fail": 0,
    "warn": 1,
    "gate": "CONDITIONAL"
  },
  "groups": {
    "preview": [
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview summary.total_fob 与 annual[].fob 求和一致",
        "detail": "80513216.57 vs 80513216.57",
        "recommendation": "检查年度聚合或 summary 汇总逻辑是否使用了不同数据源。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview summary.total_fob 与 origin totals 求和一致",
        "detail": "80513216.57 vs 80513216.57000001",
        "recommendation": "检查来源国聚合是否漏掉空 origin 或额外筛掉了某些记录。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview China share 可从 origin totals 回算",
        "detail": "34550954.14 / 80513216.57 = 42.913394361732685",
        "recommendation": "如果页面要展示中国占比，必须能从 origin totals 明确回算。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview importer concentration 边界与单调性正确",
        "detail": "CR5=68.80734110509036 · CR10=77.19700554499912 · CR20=86.41241818914457 · HHI=1666.3370667552797",
        "recommendation": "CR5 ≤ CR10 ≤ CR20 ≤ 100，HHI 应在 0-10000 之间。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview supplier concentration 边界与单调性正确",
        "detail": "CR5=61.29027374915126 · CR10=75.92548646575581",
        "recommendation": "供应商集中度至少应满足 CR5 ≤ CR10 ≤ 100。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview Top20 importer share 加总 ≤ 100%",
        "detail": "86.41241818914457",
        "recommendation": "市场份额加总超过 100% 说明排序或分母口径出错。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview Top20 supplier share 加总 ≤ 100%",
        "detail": "88.48494745960193",
        "recommendation": "供应商份额加总超过 100% 说明 supplier-side 分母或聚合出错。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview supplier_strategy_groups.pending_exit_suppliers 结构存在",
        "detail": "0 rows",
        "recommendation": "市场报告 v3 会展示退出/流失机会型 supplier，快照中应稳定输出数组结构。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview annual 年份唯一且按时间升序",
        "detail": "6 rows · unique=6",
        "recommendation": "年度趋势表应按年份升序且不得重复年份。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview annual[].yoy_growth 在首年后可用",
        "detail": "0 rows 缺 yoy_growth",
        "recommendation": "年度趋势表的同比列应能直接消费，不应在页面里大量显示空值。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview seasonality 有月度原始支撑",
        "detail": "66 monthly rows",
        "recommendation": "若 capability 声明 seasonality 可用，monthly 明细必须存在。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview opportunity pool 仍满足低渗透且 FOB>$200K 规则",
        "detail": "2 rows valid",
        "recommendation": "机会池应只保留低渗透且体量有意义的 importer。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview v2 importer 战略名单有 lead_scoring 支撑",
        "detail": "new=0 · retention=20",
        "recommendation": "市场报告 v2 的优先开发名单 / 维护优先名单依赖 lead_scoring 聚合。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview v2 价格与替代逻辑有 product_tiers 支撑",
        "detail": "3 tier rows",
        "recommendation": "价格与替代逻辑总结依赖 product_tiers rows 和 target band。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview v2 关系洞察有 supplier_customer_reverse_map 支撑",
        "detail": "183 reverse rows",
        "recommendation": "Importer × Supplier 关系洞察依赖 supplier_customer_reverse_map。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview 图谱统计卡有可回溯的节点计数",
        "detail": "suppliers=10 · customer_nodes=30 · target_band_customers=31",
        "recommendation": "图谱统计卡应能回溯到 supplier_customer_reverse_map 的节点计数，而不是纯展示值。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview capability_summary 已写入 metrics snapshot",
        "detail": "19 full / 1 degraded / 0 skipped",
        "recommendation": "多国多产品扩展依赖 capability summary，不应遗漏。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview logistics 模块有真实 backing data",
        "detail": "3 populated / 3 declared",
        "recommendation": "如果 logistics 模块要展示，至少应有 port / transport / payment 中的一类真实分布数据。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview manifest 记录 capability summary",
        "detail": "已记录",
        "recommendation": "manifest 应记录 FULL / DEGRADED / SKIP，方便后续复查。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview transport_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "在 market-aggregates.js::getTransportDistribution 的 CASE 映射里把源词（Maritimo/Aereo/SEA CN 等）合并到同一 canonical 名。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview payment_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "为 payment_method 加上与 transport_mode 类似的 CASE 归一表。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview port_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "港口名拼写差异（大小写/空格/重音）应在聚合前归一。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview 产品分层计数合计 = importer_count",
        "detail": "no tier_counts to check",
        "recommendation": "若差值恒定，通常是某个 tier 阈值边界上的 entity 未被任何 tier 命中——加默认 tier 兜底。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview HHI 值在标准区间内",
        "detail": "hhi=1666.3370667552797 · 应用阈值判定为「中度集中」",
        "recommendation": "渲染层必须用 DOJ 阈值（<1500 分散 / 1500–2500 中度 / >2500 高度），避免 label 与数值矛盾。"
      }
    ],
    "published": [
      {
        "severity": "P0",
        "status": "pass",
        "title": "Published summary.total_fob 与 annual[].fob 求和一致",
        "detail": "80513216.57 vs 80513216.57",
        "recommendation": "检查年度聚合或 summary 汇总逻辑是否使用了不同数据源。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Published summary.total_fob 与 origin totals 求和一致",
        "detail": "80513216.57 vs 80513216.57000001",
        "recommendation": "检查来源国聚合是否漏掉空 origin 或额外筛掉了某些记录。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Published China share 可从 origin totals 回算",
        "detail": "34550954.14 / 80513216.57 = 42.913394361732685",
        "recommendation": "如果页面要展示中国占比，必须能从 origin totals 明确回算。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published importer concentration 边界与单调性正确",
        "detail": "CR5=68.80734110509036 · CR10=77.19700554499912 · CR20=86.41241818914457 · HHI=1666.3370667552797",
        "recommendation": "CR5 ≤ CR10 ≤ CR20 ≤ 100，HHI 应在 0-10000 之间。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published supplier concentration 边界与单调性正确",
        "detail": "CR5=61.29027374915126 · CR10=75.92548646575581",
        "recommendation": "供应商集中度至少应满足 CR5 ≤ CR10 ≤ 100。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published Top20 importer share 加总 ≤ 100%",
        "detail": "86.41241818914457",
        "recommendation": "市场份额加总超过 100% 说明排序或分母口径出错。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published Top20 supplier share 加总 ≤ 100%",
        "detail": "88.48494745960193",
        "recommendation": "供应商份额加总超过 100% 说明 supplier-side 分母或聚合出错。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published supplier_strategy_groups.pending_exit_suppliers 结构存在",
        "detail": "0 rows",
        "recommendation": "市场报告 v3 会展示退出/流失机会型 supplier，快照中应稳定输出数组结构。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published annual 年份唯一且按时间升序",
        "detail": "6 rows · unique=6",
        "recommendation": "年度趋势表应按年份升序且不得重复年份。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published annual[].yoy_growth 在首年后可用",
        "detail": "0 rows 缺 yoy_growth",
        "recommendation": "年度趋势表的同比列应能直接消费，不应在页面里大量显示空值。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published seasonality 有月度原始支撑",
        "detail": "66 monthly rows",
        "recommendation": "若 capability 声明 seasonality 可用，monthly 明细必须存在。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published opportunity pool 仍满足低渗透且 FOB>$200K 规则",
        "detail": "2 rows valid",
        "recommendation": "机会池应只保留低渗透且体量有意义的 importer。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published v2 importer 战略名单有 lead_scoring 支撑",
        "detail": "new=0 · retention=20",
        "recommendation": "市场报告 v2 的优先开发名单 / 维护优先名单依赖 lead_scoring 聚合。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published v2 价格与替代逻辑有 product_tiers 支撑",
        "detail": "3 tier rows",
        "recommendation": "价格与替代逻辑总结依赖 product_tiers rows 和 target band。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published v2 关系洞察有 supplier_customer_reverse_map 支撑",
        "detail": "183 reverse rows",
        "recommendation": "Importer × Supplier 关系洞察依赖 supplier_customer_reverse_map。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published 图谱统计卡有可回溯的节点计数",
        "detail": "suppliers=10 · customer_nodes=30 · target_band_customers=31",
        "recommendation": "图谱统计卡应能回溯到 supplier_customer_reverse_map 的节点计数，而不是纯展示值。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published capability_summary 已写入 metrics snapshot",
        "detail": "19 full / 1 degraded / 0 skipped",
        "recommendation": "多国多产品扩展依赖 capability summary，不应遗漏。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published logistics 模块有真实 backing data",
        "detail": "3 populated / 3 declared",
        "recommendation": "如果 logistics 模块要展示，至少应有 port / transport / payment 中的一类真实分布数据。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Published manifest 记录 capability summary",
        "detail": "已记录",
        "recommendation": "manifest 应记录 FULL / DEGRADED / SKIP，方便后续复查。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Published transport_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "在 market-aggregates.js::getTransportDistribution 的 CASE 映射里把源词（Maritimo/Aereo/SEA CN 等）合并到同一 canonical 名。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Published payment_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "为 payment_method 加上与 transport_mode 类似的 CASE 归一表。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published port_distribution 无重复归一桶",
        "detail": "归一后每个桶名唯一",
        "recommendation": "港口名拼写差异（大小写/空格/重音）应在聚合前归一。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published 产品分层计数合计 = importer_count",
        "detail": "no tier_counts to check",
        "recommendation": "若差值恒定，通常是某个 tier 阈值边界上的 entity 未被任何 tier 命中——加默认 tier 兜底。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Published HHI 值在标准区间内",
        "detail": "hhi=1666.3370667552797 · 应用阈值判定为「中度集中」",
        "recommendation": "渲染层必须用 DOJ 阈值（<1500 分散 / 1500–2500 中度 / >2500 高度），避免 label 与数值矛盾。"
      }
    ],
    "published_surface": [
      {
        "severity": "P1",
        "status": "warn",
        "title": "Published dashboard aggregate 不可用",
        "detail": "当前项目可能还未 published，或 dashboard API 聚合尚未生成。",
        "recommendation": "先确认项目已发布，再做 surface-level cross-check。"
      }
    ],
    "cross_mode": [
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview / Published total_fob 一致",
        "detail": "80513216.57 vs 80513216.57",
        "recommendation": "如果 preview 与 published 漂移，优先检查 publish copy 或旧 artifact 缓存。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview / Published China share 一致",
        "detail": "42.913394361732685 vs 42.913394361732685",
        "recommendation": "中国占比是首屏 KPI，preview 和 published 不应出现不同版本。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview / Published opportunity 数量一致",
        "detail": "2 vs 2",
        "recommendation": "机会池数量漂移通常说明 publish 时混入旧 metrics snapshot。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview / Published capability summary 一致",
        "detail": "19 full vs 19 full",
        "recommendation": "两套 artifact 的 capability summary 不一致时，页面模块开关也可能不一致。"
      }
    ]
  },
  "findings": [
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview summary.total_fob 与 annual[].fob 求和一致",
      "detail": "80513216.57 vs 80513216.57",
      "recommendation": "检查年度聚合或 summary 汇总逻辑是否使用了不同数据源。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview summary.total_fob 与 origin totals 求和一致",
      "detail": "80513216.57 vs 80513216.57000001",
      "recommendation": "检查来源国聚合是否漏掉空 origin 或额外筛掉了某些记录。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview China share 可从 origin totals 回算",
      "detail": "34550954.14 / 80513216.57 = 42.913394361732685",
      "recommendation": "如果页面要展示中国占比，必须能从 origin totals 明确回算。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview importer concentration 边界与单调性正确",
      "detail": "CR5=68.80734110509036 · CR10=77.19700554499912 · CR20=86.41241818914457 · HHI=1666.3370667552797",
      "recommendation": "CR5 ≤ CR10 ≤ CR20 ≤ 100，HHI 应在 0-10000 之间。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview supplier concentration 边界与单调性正确",
      "detail": "CR5=61.29027374915126 · CR10=75.92548646575581",
      "recommendation": "供应商集中度至少应满足 CR5 ≤ CR10 ≤ 100。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview Top20 importer share 加总 ≤ 100%",
      "detail": "86.41241818914457",
      "recommendation": "市场份额加总超过 100% 说明排序或分母口径出错。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview Top20 supplier share 加总 ≤ 100%",
      "detail": "88.48494745960193",
      "recommendation": "供应商份额加总超过 100% 说明 supplier-side 分母或聚合出错。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview supplier_strategy_groups.pending_exit_suppliers 结构存在",
      "detail": "0 rows",
      "recommendation": "市场报告 v3 会展示退出/流失机会型 supplier，快照中应稳定输出数组结构。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview annual 年份唯一且按时间升序",
      "detail": "6 rows · unique=6",
      "recommendation": "年度趋势表应按年份升序且不得重复年份。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview annual[].yoy_growth 在首年后可用",
      "detail": "0 rows 缺 yoy_growth",
      "recommendation": "年度趋势表的同比列应能直接消费，不应在页面里大量显示空值。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview seasonality 有月度原始支撑",
      "detail": "66 monthly rows",
      "recommendation": "若 capability 声明 seasonality 可用，monthly 明细必须存在。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview opportunity pool 仍满足低渗透且 FOB>$200K 规则",
      "detail": "2 rows valid",
      "recommendation": "机会池应只保留低渗透且体量有意义的 importer。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview v2 importer 战略名单有 lead_scoring 支撑",
      "detail": "new=0 · retention=20",
      "recommendation": "市场报告 v2 的优先开发名单 / 维护优先名单依赖 lead_scoring 聚合。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview v2 价格与替代逻辑有 product_tiers 支撑",
      "detail": "3 tier rows",
      "recommendation": "价格与替代逻辑总结依赖 product_tiers rows 和 target band。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview v2 关系洞察有 supplier_customer_reverse_map 支撑",
      "detail": "183 reverse rows",
      "recommendation": "Importer × Supplier 关系洞察依赖 supplier_customer_reverse_map。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview 图谱统计卡有可回溯的节点计数",
      "detail": "suppliers=10 · customer_nodes=30 · target_band_customers=31",
      "recommendation": "图谱统计卡应能回溯到 supplier_customer_reverse_map 的节点计数，而不是纯展示值。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview capability_summary 已写入 metrics snapshot",
      "detail": "19 full / 1 degraded / 0 skipped",
      "recommendation": "多国多产品扩展依赖 capability summary，不应遗漏。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview logistics 模块有真实 backing data",
      "detail": "3 populated / 3 declared",
      "recommendation": "如果 logistics 模块要展示，至少应有 port / transport / payment 中的一类真实分布数据。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview manifest 记录 capability summary",
      "detail": "已记录",
      "recommendation": "manifest 应记录 FULL / DEGRADED / SKIP，方便后续复查。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview transport_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "在 market-aggregates.js::getTransportDistribution 的 CASE 映射里把源词（Maritimo/Aereo/SEA CN 等）合并到同一 canonical 名。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview payment_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "为 payment_method 加上与 transport_mode 类似的 CASE 归一表。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview port_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "港口名拼写差异（大小写/空格/重音）应在聚合前归一。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview 产品分层计数合计 = importer_count",
      "detail": "no tier_counts to check",
      "recommendation": "若差值恒定，通常是某个 tier 阈值边界上的 entity 未被任何 tier 命中——加默认 tier 兜底。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview HHI 值在标准区间内",
      "detail": "hhi=1666.3370667552797 · 应用阈值判定为「中度集中」",
      "recommendation": "渲染层必须用 DOJ 阈值（<1500 分散 / 1500–2500 中度 / >2500 高度），避免 label 与数值矛盾。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Published summary.total_fob 与 annual[].fob 求和一致",
      "detail": "80513216.57 vs 80513216.57",
      "recommendation": "检查年度聚合或 summary 汇总逻辑是否使用了不同数据源。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Published summary.total_fob 与 origin totals 求和一致",
      "detail": "80513216.57 vs 80513216.57000001",
      "recommendation": "检查来源国聚合是否漏掉空 origin 或额外筛掉了某些记录。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Published China share 可从 origin totals 回算",
      "detail": "34550954.14 / 80513216.57 = 42.913394361732685",
      "recommendation": "如果页面要展示中国占比，必须能从 origin totals 明确回算。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published importer concentration 边界与单调性正确",
      "detail": "CR5=68.80734110509036 · CR10=77.19700554499912 · CR20=86.41241818914457 · HHI=1666.3370667552797",
      "recommendation": "CR5 ≤ CR10 ≤ CR20 ≤ 100，HHI 应在 0-10000 之间。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published supplier concentration 边界与单调性正确",
      "detail": "CR5=61.29027374915126 · CR10=75.92548646575581",
      "recommendation": "供应商集中度至少应满足 CR5 ≤ CR10 ≤ 100。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published Top20 importer share 加总 ≤ 100%",
      "detail": "86.41241818914457",
      "recommendation": "市场份额加总超过 100% 说明排序或分母口径出错。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published Top20 supplier share 加总 ≤ 100%",
      "detail": "88.48494745960193",
      "recommendation": "供应商份额加总超过 100% 说明 supplier-side 分母或聚合出错。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published supplier_strategy_groups.pending_exit_suppliers 结构存在",
      "detail": "0 rows",
      "recommendation": "市场报告 v3 会展示退出/流失机会型 supplier，快照中应稳定输出数组结构。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published annual 年份唯一且按时间升序",
      "detail": "6 rows · unique=6",
      "recommendation": "年度趋势表应按年份升序且不得重复年份。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published annual[].yoy_growth 在首年后可用",
      "detail": "0 rows 缺 yoy_growth",
      "recommendation": "年度趋势表的同比列应能直接消费，不应在页面里大量显示空值。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published seasonality 有月度原始支撑",
      "detail": "66 monthly rows",
      "recommendation": "若 capability 声明 seasonality 可用，monthly 明细必须存在。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published opportunity pool 仍满足低渗透且 FOB>$200K 规则",
      "detail": "2 rows valid",
      "recommendation": "机会池应只保留低渗透且体量有意义的 importer。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published v2 importer 战略名单有 lead_scoring 支撑",
      "detail": "new=0 · retention=20",
      "recommendation": "市场报告 v2 的优先开发名单 / 维护优先名单依赖 lead_scoring 聚合。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published v2 价格与替代逻辑有 product_tiers 支撑",
      "detail": "3 tier rows",
      "recommendation": "价格与替代逻辑总结依赖 product_tiers rows 和 target band。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published v2 关系洞察有 supplier_customer_reverse_map 支撑",
      "detail": "183 reverse rows",
      "recommendation": "Importer × Supplier 关系洞察依赖 supplier_customer_reverse_map。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published 图谱统计卡有可回溯的节点计数",
      "detail": "suppliers=10 · customer_nodes=30 · target_band_customers=31",
      "recommendation": "图谱统计卡应能回溯到 supplier_customer_reverse_map 的节点计数，而不是纯展示值。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published capability_summary 已写入 metrics snapshot",
      "detail": "19 full / 1 degraded / 0 skipped",
      "recommendation": "多国多产品扩展依赖 capability summary，不应遗漏。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published logistics 模块有真实 backing data",
      "detail": "3 populated / 3 declared",
      "recommendation": "如果 logistics 模块要展示，至少应有 port / transport / payment 中的一类真实分布数据。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Published manifest 记录 capability summary",
      "detail": "已记录",
      "recommendation": "manifest 应记录 FULL / DEGRADED / SKIP，方便后续复查。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Published transport_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "在 market-aggregates.js::getTransportDistribution 的 CASE 映射里把源词（Maritimo/Aereo/SEA CN 等）合并到同一 canonical 名。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Published payment_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "为 payment_method 加上与 transport_mode 类似的 CASE 归一表。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published port_distribution 无重复归一桶",
      "detail": "归一后每个桶名唯一",
      "recommendation": "港口名拼写差异（大小写/空格/重音）应在聚合前归一。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published 产品分层计数合计 = importer_count",
      "detail": "no tier_counts to check",
      "recommendation": "若差值恒定，通常是某个 tier 阈值边界上的 entity 未被任何 tier 命中——加默认 tier 兜底。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Published HHI 值在标准区间内",
      "detail": "hhi=1666.3370667552797 · 应用阈值判定为「中度集中」",
      "recommendation": "渲染层必须用 DOJ 阈值（<1500 分散 / 1500–2500 中度 / >2500 高度），避免 label 与数值矛盾。"
    },
    {
      "severity": "P1",
      "status": "warn",
      "title": "Published dashboard aggregate 不可用",
      "detail": "当前项目可能还未 published，或 dashboard API 聚合尚未生成。",
      "recommendation": "先确认项目已发布，再做 surface-level cross-check。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview / Published total_fob 一致",
      "detail": "80513216.57 vs 80513216.57",
      "recommendation": "如果 preview 与 published 漂移，优先检查 publish copy 或旧 artifact 缓存。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview / Published China share 一致",
      "detail": "42.913394361732685 vs 42.913394361732685",
      "recommendation": "中国占比是首屏 KPI，preview 和 published 不应出现不同版本。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview / Published opportunity 数量一致",
      "detail": "2 vs 2",
      "recommendation": "机会池数量漂移通常说明 publish 时混入旧 metrics snapshot。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview / Published capability summary 一致",
      "detail": "19 full vs 19 full",
      "recommendation": "两套 artifact 的 capability summary 不一致时，页面模块开关也可能不一致。"
    }
  ]
}