{
  "generated_at": "2026-04-18T16:48:07.530Z",
  "report_type": "importer",
  "project_id": "per-901831",
  "entity_id": "221448af-996b-4048-83cc-bcf54a39ec01",
  "summary": {
    "p0": 10,
    "p1": 11,
    "p2": 18,
    "fail": 0,
    "warn": 5,
    "gate": "CONDITIONAL"
  },
  "groups": {
    "preview": [
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview fob_total_usd 与 fob_by_year 求和一致",
        "detail": "74069 vs 74069",
        "recommendation": "年度求和与总 FOB 打架时，应优先回查 Step 3 的 yearly aggregation。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview latest_vs_peak_ratio 可从 fob_by_year 回算",
        "detail": "1 vs 1",
        "recommendation": "latest_vs_peak_ratio 是情景判断关键指标，不允许页面消费值和原始年度序列不一致。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview china_penetration 在 [0,1] 范围内",
        "detail": "1",
        "recommendation": "渗透率越界会直接污染 penetration tier、scenario 和 priority。"
      },
      {
        "severity": "P1",
        "status": "warn",
        "title": "Preview priority_score_v2 与 decision_summary.priority_score 一致",
        "detail": "5.1 vs NaN",
        "recommendation": "评分展示和决策摘要必须吃同一个 final score。decision_summary 缺失时通常是 AI 路径未回填，不影响报告数据质量。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview scenario.route 与 market_context.route 一致",
        "detail": "observe vs observe",
        "recommendation": "Importer route 默认必须继承 market_context.route；若有偏离，必须显式使用 route_override 并写明原因。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Preview shared_aggregator_checksum anchors 与 snapshot truth 对齐",
        "detail": "FOB 74069 / suppliers 1 / china 1 / rank 8",
        "recommendation": "shared aggregator anchors 是 market/importer 共用 truth 的锚点，任一漂移都说明两边没有读同一份 importer truth。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview HHI / Top1 边界正确",
        "detail": "HHI 10000 · Top1 1",
        "recommendation": "HHI 应在 0-10000，Top1 share 应在 0-100%。"
      },
      {
        "severity": "P2",
        "status": "warn",
        "title": "Preview scenario / opportunity 已进入 decision_summary",
        "detail": "— / —",
        "recommendation": "如果 capability 声明 scenario 可用，decision_summary 里就必须有场景和机会类型。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview supplier_count 不小于 top supplier cards 数",
        "detail": "1 vs 1",
        "recommendation": "供应结构模块至少应覆盖 facts pack 已展示的 top suppliers。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview pricing/logistics render_status 符合 report mode",
        "detail": "mode=enriched · pricing=rendered · logistics=rendered",
        "recommendation": "Baseline 默认应标记为 computed_not_rendered；account/enriched 可按页面模块决定是否 rendered。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview metrics.top_supplier_name 与 facts_pack.top_suppliers[0] 同步",
        "detail": "CHANGZHOU KANGFULAI MEDICAL THING CO LTD vs CHANGZHOU KANGFULAI MEDICAL THING CO LTD",
        "recommendation": "top supplier 名称不同不一定是错，但应先确认是否因为 group rollup 或排序口径不同。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview priority_score_v2 有完整 score breakdown",
        "detail": "score breakdown present",
        "recommendation": "新版 v1.5 评分要求总分可解释，子分缺失会削弱可复核性。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview price_analysis capability 有实际指标支撑",
        "detail": "price_gap=— · band_count=1",
        "recommendation": "若 capability 声明 price_analysis 可用，至少应有 supplier_price_gap 或 price_band_count。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview procurement_rhythm 有原始日期区间支撑",
        "detail": "2010-03-29 → 2010-08-19",
        "recommendation": "采购节奏判断至少需要原始 shipment date 范围。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview market_benchmark capability 已写入 market context",
        "detail": "1934664.52",
        "recommendation": "如果要做 market benchmark，对应的 market total_fob 也要跟着写入 snapshot。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview facts / analysis artifacts 已生成",
        "detail": "facts=yes · analysis=yes",
        "recommendation": "Importer QA 时最好同时保留 facts.json 和 analysis-basis.json，方便对照模板消费层。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview contract / shared aggregator version 已写入 snapshot",
        "detail": "v1.0 / shared-aggregator-v1",
        "recommendation": "Importer artifacts 应显式写入 contract 与 shared aggregator 版本，便于后续定位 schema 或计算逻辑变化。"
      }
    ],
    "live": [
      {
        "severity": "P0",
        "status": "pass",
        "title": "Live fob_total_usd 与 fob_by_year 求和一致",
        "detail": "74069 vs 74069",
        "recommendation": "年度求和与总 FOB 打架时，应优先回查 Step 3 的 yearly aggregation。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Live latest_vs_peak_ratio 可从 fob_by_year 回算",
        "detail": "1 vs 1",
        "recommendation": "latest_vs_peak_ratio 是情景判断关键指标，不允许页面消费值和原始年度序列不一致。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Live china_penetration 在 [0,1] 范围内",
        "detail": "1",
        "recommendation": "渗透率越界会直接污染 penetration tier、scenario 和 priority。"
      },
      {
        "severity": "P1",
        "status": "warn",
        "title": "Live priority_score_v2 与 decision_summary.priority_score 一致",
        "detail": "5.1 vs NaN",
        "recommendation": "评分展示和决策摘要必须吃同一个 final score。decision_summary 缺失时通常是 AI 路径未回填，不影响报告数据质量。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Live scenario.route 与 market_context.route 一致",
        "detail": "observe vs observe",
        "recommendation": "Importer route 默认必须继承 market_context.route；若有偏离，必须显式使用 route_override 并写明原因。"
      },
      {
        "severity": "P0",
        "status": "pass",
        "title": "Live shared_aggregator_checksum anchors 与 snapshot truth 对齐",
        "detail": "FOB 74069 / suppliers 1 / china 1 / rank 8",
        "recommendation": "shared aggregator anchors 是 market/importer 共用 truth 的锚点，任一漂移都说明两边没有读同一份 importer truth。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Live HHI / Top1 边界正确",
        "detail": "HHI 10000 · Top1 1",
        "recommendation": "HHI 应在 0-10000，Top1 share 应在 0-100%。"
      },
      {
        "severity": "P2",
        "status": "warn",
        "title": "Live scenario / opportunity 已进入 decision_summary",
        "detail": "— / —",
        "recommendation": "如果 capability 声明 scenario 可用，decision_summary 里就必须有场景和机会类型。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Live supplier_count 不小于 top supplier cards 数",
        "detail": "1 vs 1",
        "recommendation": "供应结构模块至少应覆盖 facts pack 已展示的 top suppliers。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live pricing/logistics render_status 符合 report mode",
        "detail": "mode=enriched · pricing=rendered · logistics=rendered",
        "recommendation": "Baseline 默认应标记为 computed_not_rendered；account/enriched 可按页面模块决定是否 rendered。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live metrics.top_supplier_name 与 facts_pack.top_suppliers[0] 同步",
        "detail": "CHANGZHOU KANGFULAI MEDICAL THING CO LTD vs CHANGZHOU KANGFULAI MEDICAL THING CO LTD",
        "recommendation": "top supplier 名称不同不一定是错，但应先确认是否因为 group rollup 或排序口径不同。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Live priority_score_v2 有完整 score breakdown",
        "detail": "score breakdown present",
        "recommendation": "新版 v1.5 评分要求总分可解释，子分缺失会削弱可复核性。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live price_analysis capability 有实际指标支撑",
        "detail": "price_gap=— · band_count=1",
        "recommendation": "若 capability 声明 price_analysis 可用，至少应有 supplier_price_gap 或 price_band_count。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live procurement_rhythm 有原始日期区间支撑",
        "detail": "2010-03-29 → 2010-08-19",
        "recommendation": "采购节奏判断至少需要原始 shipment date 范围。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live market_benchmark capability 已写入 market context",
        "detail": "1934664.52",
        "recommendation": "如果要做 market benchmark，对应的 market total_fob 也要跟着写入 snapshot。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live facts / analysis artifacts 已生成",
        "detail": "facts=yes · analysis=yes",
        "recommendation": "Importer QA 时最好同时保留 facts.json 和 analysis-basis.json，方便对照模板消费层。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Live contract / shared aggregator version 已写入 snapshot",
        "detail": "v1.0 / shared-aggregator-v1",
        "recommendation": "Importer artifacts 应显式写入 contract 与 shared aggregator 版本，便于后续定位 schema 或计算逻辑变化。"
      }
    ],
    "cross_mode": [
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview / Live total_fob 一致",
        "detail": "74069 vs 74069",
        "recommendation": "preview 和 live 总量漂移通常说明 publish 复制了旧 artifacts。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview / Live priority score 一致",
        "detail": "5.1 vs 5.1",
        "recommendation": "priority score 不应在 publish 后悄悄换版本。"
      },
      {
        "severity": "P1",
        "status": "pass",
        "title": "Preview / Live scenario label 一致",
        "detail": "— vs —",
        "recommendation": "场景标签变化会直接影响 verdict 和 resource boundary。"
      },
      {
        "severity": "P2",
        "status": "warn",
        "title": "Preview / Live latest_vs_peak_ratio 一致",
        "detail": "— vs —",
        "recommendation": "趋势核心指标漂移时，要优先回查 publish 复制链路。"
      },
      {
        "severity": "P2",
        "status": "pass",
        "title": "Preview / Live supplier_count 一致",
        "detail": "1 vs 1",
        "recommendation": "供应商计数变化会连带影响 HHI、Top1、机会判断。"
      }
    ]
  },
  "findings": [
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview fob_total_usd 与 fob_by_year 求和一致",
      "detail": "74069 vs 74069",
      "recommendation": "年度求和与总 FOB 打架时，应优先回查 Step 3 的 yearly aggregation。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview latest_vs_peak_ratio 可从 fob_by_year 回算",
      "detail": "1 vs 1",
      "recommendation": "latest_vs_peak_ratio 是情景判断关键指标，不允许页面消费值和原始年度序列不一致。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview china_penetration 在 [0,1] 范围内",
      "detail": "1",
      "recommendation": "渗透率越界会直接污染 penetration tier、scenario 和 priority。"
    },
    {
      "severity": "P1",
      "status": "warn",
      "title": "Preview priority_score_v2 与 decision_summary.priority_score 一致",
      "detail": "5.1 vs NaN",
      "recommendation": "评分展示和决策摘要必须吃同一个 final score。decision_summary 缺失时通常是 AI 路径未回填，不影响报告数据质量。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview scenario.route 与 market_context.route 一致",
      "detail": "observe vs observe",
      "recommendation": "Importer route 默认必须继承 market_context.route；若有偏离，必须显式使用 route_override 并写明原因。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Preview shared_aggregator_checksum anchors 与 snapshot truth 对齐",
      "detail": "FOB 74069 / suppliers 1 / china 1 / rank 8",
      "recommendation": "shared aggregator anchors 是 market/importer 共用 truth 的锚点，任一漂移都说明两边没有读同一份 importer truth。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview HHI / Top1 边界正确",
      "detail": "HHI 10000 · Top1 1",
      "recommendation": "HHI 应在 0-10000，Top1 share 应在 0-100%。"
    },
    {
      "severity": "P2",
      "status": "warn",
      "title": "Preview scenario / opportunity 已进入 decision_summary",
      "detail": "— / —",
      "recommendation": "如果 capability 声明 scenario 可用，decision_summary 里就必须有场景和机会类型。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview supplier_count 不小于 top supplier cards 数",
      "detail": "1 vs 1",
      "recommendation": "供应结构模块至少应覆盖 facts pack 已展示的 top suppliers。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview pricing/logistics render_status 符合 report mode",
      "detail": "mode=enriched · pricing=rendered · logistics=rendered",
      "recommendation": "Baseline 默认应标记为 computed_not_rendered；account/enriched 可按页面模块决定是否 rendered。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview metrics.top_supplier_name 与 facts_pack.top_suppliers[0] 同步",
      "detail": "CHANGZHOU KANGFULAI MEDICAL THING CO LTD vs CHANGZHOU KANGFULAI MEDICAL THING CO LTD",
      "recommendation": "top supplier 名称不同不一定是错，但应先确认是否因为 group rollup 或排序口径不同。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview priority_score_v2 有完整 score breakdown",
      "detail": "score breakdown present",
      "recommendation": "新版 v1.5 评分要求总分可解释，子分缺失会削弱可复核性。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview price_analysis capability 有实际指标支撑",
      "detail": "price_gap=— · band_count=1",
      "recommendation": "若 capability 声明 price_analysis 可用，至少应有 supplier_price_gap 或 price_band_count。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview procurement_rhythm 有原始日期区间支撑",
      "detail": "2010-03-29 → 2010-08-19",
      "recommendation": "采购节奏判断至少需要原始 shipment date 范围。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview market_benchmark capability 已写入 market context",
      "detail": "1934664.52",
      "recommendation": "如果要做 market benchmark，对应的 market total_fob 也要跟着写入 snapshot。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview facts / analysis artifacts 已生成",
      "detail": "facts=yes · analysis=yes",
      "recommendation": "Importer QA 时最好同时保留 facts.json 和 analysis-basis.json，方便对照模板消费层。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview contract / shared aggregator version 已写入 snapshot",
      "detail": "v1.0 / shared-aggregator-v1",
      "recommendation": "Importer artifacts 应显式写入 contract 与 shared aggregator 版本，便于后续定位 schema 或计算逻辑变化。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Live fob_total_usd 与 fob_by_year 求和一致",
      "detail": "74069 vs 74069",
      "recommendation": "年度求和与总 FOB 打架时，应优先回查 Step 3 的 yearly aggregation。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Live latest_vs_peak_ratio 可从 fob_by_year 回算",
      "detail": "1 vs 1",
      "recommendation": "latest_vs_peak_ratio 是情景判断关键指标，不允许页面消费值和原始年度序列不一致。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Live china_penetration 在 [0,1] 范围内",
      "detail": "1",
      "recommendation": "渗透率越界会直接污染 penetration tier、scenario 和 priority。"
    },
    {
      "severity": "P1",
      "status": "warn",
      "title": "Live priority_score_v2 与 decision_summary.priority_score 一致",
      "detail": "5.1 vs NaN",
      "recommendation": "评分展示和决策摘要必须吃同一个 final score。decision_summary 缺失时通常是 AI 路径未回填，不影响报告数据质量。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Live scenario.route 与 market_context.route 一致",
      "detail": "observe vs observe",
      "recommendation": "Importer route 默认必须继承 market_context.route；若有偏离，必须显式使用 route_override 并写明原因。"
    },
    {
      "severity": "P0",
      "status": "pass",
      "title": "Live shared_aggregator_checksum anchors 与 snapshot truth 对齐",
      "detail": "FOB 74069 / suppliers 1 / china 1 / rank 8",
      "recommendation": "shared aggregator anchors 是 market/importer 共用 truth 的锚点，任一漂移都说明两边没有读同一份 importer truth。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Live HHI / Top1 边界正确",
      "detail": "HHI 10000 · Top1 1",
      "recommendation": "HHI 应在 0-10000，Top1 share 应在 0-100%。"
    },
    {
      "severity": "P2",
      "status": "warn",
      "title": "Live scenario / opportunity 已进入 decision_summary",
      "detail": "— / —",
      "recommendation": "如果 capability 声明 scenario 可用，decision_summary 里就必须有场景和机会类型。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Live supplier_count 不小于 top supplier cards 数",
      "detail": "1 vs 1",
      "recommendation": "供应结构模块至少应覆盖 facts pack 已展示的 top suppliers。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live pricing/logistics render_status 符合 report mode",
      "detail": "mode=enriched · pricing=rendered · logistics=rendered",
      "recommendation": "Baseline 默认应标记为 computed_not_rendered；account/enriched 可按页面模块决定是否 rendered。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live metrics.top_supplier_name 与 facts_pack.top_suppliers[0] 同步",
      "detail": "CHANGZHOU KANGFULAI MEDICAL THING CO LTD vs CHANGZHOU KANGFULAI MEDICAL THING CO LTD",
      "recommendation": "top supplier 名称不同不一定是错，但应先确认是否因为 group rollup 或排序口径不同。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Live priority_score_v2 有完整 score breakdown",
      "detail": "score breakdown present",
      "recommendation": "新版 v1.5 评分要求总分可解释，子分缺失会削弱可复核性。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live price_analysis capability 有实际指标支撑",
      "detail": "price_gap=— · band_count=1",
      "recommendation": "若 capability 声明 price_analysis 可用，至少应有 supplier_price_gap 或 price_band_count。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live procurement_rhythm 有原始日期区间支撑",
      "detail": "2010-03-29 → 2010-08-19",
      "recommendation": "采购节奏判断至少需要原始 shipment date 范围。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live market_benchmark capability 已写入 market context",
      "detail": "1934664.52",
      "recommendation": "如果要做 market benchmark，对应的 market total_fob 也要跟着写入 snapshot。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live facts / analysis artifacts 已生成",
      "detail": "facts=yes · analysis=yes",
      "recommendation": "Importer QA 时最好同时保留 facts.json 和 analysis-basis.json，方便对照模板消费层。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Live contract / shared aggregator version 已写入 snapshot",
      "detail": "v1.0 / shared-aggregator-v1",
      "recommendation": "Importer artifacts 应显式写入 contract 与 shared aggregator 版本，便于后续定位 schema 或计算逻辑变化。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview / Live total_fob 一致",
      "detail": "74069 vs 74069",
      "recommendation": "preview 和 live 总量漂移通常说明 publish 复制了旧 artifacts。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview / Live priority score 一致",
      "detail": "5.1 vs 5.1",
      "recommendation": "priority score 不应在 publish 后悄悄换版本。"
    },
    {
      "severity": "P1",
      "status": "pass",
      "title": "Preview / Live scenario label 一致",
      "detail": "— vs —",
      "recommendation": "场景标签变化会直接影响 verdict 和 resource boundary。"
    },
    {
      "severity": "P2",
      "status": "warn",
      "title": "Preview / Live latest_vs_peak_ratio 一致",
      "detail": "— vs —",
      "recommendation": "趋势核心指标漂移时，要优先回查 publish 复制链路。"
    },
    {
      "severity": "P2",
      "status": "pass",
      "title": "Preview / Live supplier_count 一致",
      "detail": "1 vs 1",
      "recommendation": "供应商计数变化会连带影响 HHI、Top1、机会判断。"
    }
  ]
}