{
  "evidence_type": "executed synthetic mapping-validator cases",
  "not_measured": [
    "AI mapping quality",
    "native Odoo import",
    "native unit conversion",
    "RFQ selection"
  ],
  "case_count": 12,
  "classification_counts": {
    "READY_FOR_REHEARSAL": 1,
    "REJECT": 8,
    "HOLD": 3
  },
  "all_expected_classifications_match": true,
  "results": [
    {
      "id": "M01",
      "label": "Approved box-price mapping",
      "expected": "READY_FOR_REHEARSAL",
      "observed": "READY_FOR_REHEARSAL",
      "matches_expected": true,
      "reasons": []
    },
    {
      "id": "M02",
      "label": "Leading zeros removed from the SKU",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: sku differs"
      ]
    },
    {
      "id": "M03",
      "label": "Decimal separators misread as price 1.20",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: unit_price differs"
      ]
    },
    {
      "id": "M04",
      "label": "Box price retained but unit changed to each",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: purchase_unit differs"
      ]
    },
    {
      "id": "M05",
      "label": "Price divided by 24 while retaining box unit",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: unit_price differs"
      ]
    },
    {
      "id": "M06",
      "label": "Minimum converted to 48 while retaining box unit",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: minimum_quantity differs"
      ]
    },
    {
      "id": "M07",
      "label": "Same vendor code resolves to company B reference",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: vendor_external_id differs"
      ]
    },
    {
      "id": "M08",
      "label": "Two offer rows share one external ID",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "candidate external IDs are not unique",
        "L02: external_id differs"
      ]
    },
    {
      "id": "M09",
      "label": "Source date convention unresolved",
      "expected": "HOLD",
      "observed": "HOLD",
      "matches_expected": true,
      "reasons": [
        "source date convention has not been approved"
      ]
    },
    {
      "id": "M10",
      "label": "Product relation has no approved lookup",
      "expected": "HOLD",
      "observed": "HOLD",
      "matches_expected": true,
      "reasons": [
        "product reference has no approved lookup: 00123"
      ]
    },
    {
      "id": "M11",
      "label": "Supplier pack factor missing",
      "expected": "HOLD",
      "observed": "HOLD",
      "matches_expected": true,
      "reasons": [
        "source pack factor is absent or disagrees with the approved unit"
      ]
    },
    {
      "id": "M12",
      "label": "Existing offer external ID replaced with a new one",
      "expected": "REJECT",
      "observed": "REJECT",
      "matches_expected": true,
      "reasons": [
        "L01: external_id differs"
      ]
    }
  ]
}
