{
  "tool_id": "art-570-ucp600-document-examination-assembler",
  "note": "Vector 1 is a clean sight-LC presentation inside the shipment window and expiry, quantity/amount within tolerance, insurance at exactly the 110% floor, ports and goods description conforming, examination completed inside the 5-banking-day window: COMPLYING_PRESENTATION/auto_pass. Vector 2 exercises ten independent discrepancies at once (late shipment vs latest_shipment_date, presentation after the 21-day Art.14(c) window, examination after the Art.14(b) deadline, Art.30 quantity/amount tolerance breaches even under an about qualifier, insurance below the Art.28(f)(ii) floor, insurance effective after shipment, declared goods-description conflict, port-of-discharge mismatch, and a usance draft tenor that conflicts with the credit sight requirement plus its amount not matching the invoice): DISCREPANT/review_required. Vector 3 omits the presentation date and most required fields, exercising the did_not_run/INDETERMINATE path. All monetary figures are synthetic, stated in integer minor units. golden_hash computed at fixture generation time.",
  "vectors": [
    {
      "name": "clean-sight-lc-complying-presentation",
      "policy_parameters": {
        "lc": {
          "amount_minor": 5000000,
          "quantity": {
            "value": 1000,
            "unit": "MT"
          },
          "expiry_date": "2026-07-31",
          "latest_shipment_date": "2026-06-30",
          "named_ports": {
            "loading": "Shanghai",
            "discharge": "Rotterdam"
          },
          "insurance_required": true
        },
        "presentation_date": "2026-06-20",
        "examination_date": "2026-06-24",
        "documents": {
          "invoice": {
            "amount_minor": 5000000,
            "quantity": {
              "value": 1000,
              "unit": "MT"
            },
            "goods_description": "Widgets, 1000 MT"
          },
          "transport_doc": {
            "shipment_date": "2026-06-15",
            "port_of_loading": "Shanghai",
            "port_of_discharge": "Rotterdam"
          },
          "insurance": {
            "amount_minor": 5500000,
            "cif_cip_value_minor": 5000000,
            "effective_date": "2026-06-15"
          },
          "drafts": [
            {
              "tenor_type": "sight",
              "amount_minor": 5000000,
              "drawee": "Buyer Bank plc"
            }
          ]
        },
        "goods_description_conforms": {
          "invoice_vs_transport": true
        }
      },
      "output_payload": {
        "decision": {
          "gate_policy": "auto_pass",
          "execution_state": "ran",
          "reason": null
        },
        "verdict": "COMPLYING_PRESENTATION",
        "presentation_date": "2026-06-20",
        "presentation_window": {
          "shipment_date": "2026-06-15",
          "latest_shipment_date": "2026-06-30",
          "shipment_on_time": true,
          "presentation_period_days": 21,
          "shipment_plus_window_deadline": "2026-07-06",
          "expiry_date": "2026-07-31",
          "within_shipment_window": true,
          "within_expiry": true
        },
        "examination_window": {
          "presentation_date": "2026-06-20",
          "examination_deadline": "2026-06-26",
          "examination_date": "2026-06-24",
          "examination_within_window": true
        },
        "tolerances": {
          "quantity": {
            "lc_value": 1000,
            "unit": "MT",
            "invoice_value": 1000,
            "tolerance_pct": 5,
            "variance_pct": 0,
            "within_tolerance": true
          },
          "amount": {
            "lc_amount_minor": 5000000,
            "invoice_amount_minor": 5000000,
            "tolerance_pct": 5,
            "variance_pct": 0,
            "within_tolerance": true
          }
        },
        "insurance_check": {
          "insurance_amount_minor": 5500000,
          "cif_cip_value_minor": 5000000,
          "min_insurance_pct_of_cif": 110,
          "required_minor": 5500000,
          "meets_floor": true,
          "effective_date": "2026-06-15"
        },
        "cross_document": {
          "invoice_vs_transport_goods_description": true,
          "invoice_vs_insurance_goods_description": null,
          "port_of_loading": {
            "lc": "Shanghai",
            "document": "Shanghai",
            "matches": true
          },
          "port_of_discharge": {
            "lc": "Rotterdam",
            "document": "Rotterdam",
            "matches": true
          }
        },
        "drafts": [
          {
            "tenor_type": "sight",
            "usance_days": null,
            "usance_basis": null,
            "amount_minor": 5000000,
            "drawee": "Buyer Bank plc",
            "maturity_date": "2026-06-20",
            "tenor_matches_lc": null
          }
        ],
        "findings": [],
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over structured fields the caller has transcribed from a presentation -- no OCR, no document upload, no parsing of any document image, PDF, or free-text description. Goods-description conformity is a caller-declared judgment, never inferred from text. Does not determine complying presentation on its own; it is a re-derivable arithmetic check the examiner and, on referral, the issuing bank evaluate.",
        "clause_note": "UCP 600 (ICC Publication 600) and ISBP 745 (ICC Publication 745) are cited by article/paragraph number only; their text is ICC copyright and is not reproduced here. This tool carries no claim of ICC endorsement. Cross-reference tools/420-mt700-lc-field-validator.html for the issuance-side MT700 field validation this examination tool does not duplicate."
      },
      "golden_hash": "98699bef5d4ab45e1f07f32f3a5bd63b4f990e61d2b37da7c09b8723527c377d"
    },
    {
      "name": "multi-discrepancy-usance-draft-discrepant",
      "policy_parameters": {
        "lc": {
          "amount_minor": 5000000,
          "amount_tolerance_about": true,
          "quantity": {
            "value": 1000,
            "unit": "MT",
            "tolerance_about": true
          },
          "expiry_date": "2026-07-10",
          "latest_shipment_date": "2026-06-10",
          "named_ports": {
            "loading": "Shanghai",
            "discharge": "Rotterdam"
          },
          "insurance_required": true,
          "tenor_requirement": {
            "type": "sight"
          }
        },
        "presentation_date": "2026-07-05",
        "examination_date": "2026-07-15",
        "documents": {
          "invoice": {
            "amount_minor": 5800000,
            "quantity": {
              "value": 880,
              "unit": "MT"
            },
            "goods_description": "Widgets"
          },
          "transport_doc": {
            "shipment_date": "2026-06-12",
            "port_of_loading": "Shanghai",
            "port_of_discharge": "Hamburg"
          },
          "insurance": {
            "amount_minor": 5000000,
            "cif_cip_value_minor": 5000000,
            "effective_date": "2026-06-13"
          },
          "drafts": [
            {
              "tenor_type": "usance",
              "usance_days": 30,
              "usance_basis": "shipment_date",
              "amount_minor": 5800000,
              "drawee": "Buyer Bank plc"
            }
          ]
        },
        "goods_description_conforms": {
          "invoice_vs_transport": false
        }
      },
      "output_payload": {
        "decision": {
          "gate_policy": "review_required",
          "execution_state": "ran",
          "reason": null
        },
        "verdict": "DISCREPANT",
        "presentation_date": "2026-07-05",
        "presentation_window": {
          "shipment_date": "2026-06-12",
          "latest_shipment_date": "2026-06-10",
          "shipment_on_time": false,
          "presentation_period_days": 21,
          "shipment_plus_window_deadline": "2026-07-03",
          "expiry_date": "2026-07-10",
          "within_shipment_window": false,
          "within_expiry": true
        },
        "examination_window": {
          "presentation_date": "2026-07-05",
          "examination_deadline": "2026-07-10",
          "examination_date": "2026-07-15",
          "examination_within_window": false
        },
        "tolerances": {
          "quantity": {
            "lc_value": 1000,
            "unit": "MT",
            "invoice_value": 880,
            "tolerance_pct": 10,
            "variance_pct": 12,
            "within_tolerance": false
          },
          "amount": {
            "lc_amount_minor": 5000000,
            "invoice_amount_minor": 5800000,
            "tolerance_pct": 10,
            "variance_pct": 16,
            "within_tolerance": false
          }
        },
        "insurance_check": {
          "insurance_amount_minor": 5000000,
          "cif_cip_value_minor": 5000000,
          "min_insurance_pct_of_cif": 110,
          "required_minor": 5500000,
          "meets_floor": false,
          "effective_date": "2026-06-13"
        },
        "cross_document": {
          "invoice_vs_transport_goods_description": false,
          "invoice_vs_insurance_goods_description": null,
          "port_of_loading": {
            "lc": "Shanghai",
            "document": "Shanghai",
            "matches": true
          },
          "port_of_discharge": {
            "lc": "Rotterdam",
            "document": "Hamburg",
            "matches": false
          }
        },
        "drafts": [
          {
            "tenor_type": "usance",
            "usance_days": 30,
            "usance_basis": "shipment_date",
            "amount_minor": 5800000,
            "drawee": "Buyer Bank plc",
            "maturity_date": "2026-07-12",
            "tenor_matches_lc": false
          }
        ],
        "findings": [
          {
            "code": "ART14C_PRESENTATION_AFTER_SHIPMENT_WINDOW",
            "article": "UCP 600 Art. 14(c)",
            "severity": "high",
            "message": "Presentation date 2026-07-05 is after the 21-calendar-day window from shipment (2026-06-12), deadline 2026-07-03."
          },
          {
            "code": "ART14C_SHIPMENT_AFTER_LATEST_SHIPMENT_DATE",
            "article": "UCP 600 Art. 14(c)",
            "severity": "high",
            "message": "Declared shipment date 2026-06-12 is after the credit’s latest shipment date 2026-06-10."
          },
          {
            "code": "ART14B_EXAMINATION_WINDOW_EXCEEDED",
            "article": "UCP 600 Art. 14(b)",
            "severity": "high",
            "message": "Declared examination date 2026-07-15 is after the 5-banking-day deadline 2026-07-10 computed from presentation on 2026-07-05."
          },
          {
            "code": "ART30_QUANTITY_TOLERANCE_EXCEEDED",
            "article": "UCP 600 Art. 30(b)",
            "severity": "high",
            "message": "Invoice quantity 880 MT varies 12.00% from the credit quantity 1000 MT, exceeding the 10% tolerance."
          },
          {
            "code": "ART30_AMOUNT_TOLERANCE_EXCEEDED",
            "article": "UCP 600 Art. 30(a)",
            "severity": "high",
            "message": "Invoice amount 5800000 minor units varies 16.00% from the credit amount 5000000 minor units, exceeding the 10% tolerance."
          },
          {
            "code": "ART28F2_INSURANCE_BELOW_FLOOR",
            "article": "UCP 600 Art. 28(f)(ii)",
            "severity": "high",
            "message": "Insurance coverage 5000000 minor units is below the required 110% of CIF/CIP value (5500000 minor units required)."
          },
          {
            "code": "ART28E_INSURANCE_EFFECTIVE_AFTER_SHIPMENT",
            "article": "UCP 600 Art. 28(e)",
            "severity": "high",
            "message": "Insurance effective date 2026-06-13 is after the shipment date 2026-06-12."
          },
          {
            "code": "ART14E_GOODS_DESCRIPTION_CONFLICT",
            "article": "UCP 600 Art. 14(e)",
            "severity": "high",
            "message": "Examiner declared the transport document’s goods description conflicts with the invoice."
          },
          {
            "code": "ART14D_PORT_OF_DISCHARGE_MISMATCH",
            "article": "UCP 600 Art. 14(d)",
            "severity": "high",
            "message": "Transport document port of discharge \"Hamburg\" conflicts with the credit’s named port \"Rotterdam\"."
          },
          {
            "code": "DRAFT_TENOR_MISMATCH",
            "article": "UCP 600 Art. 14(d)",
            "severity": "high",
            "message": "Draft[0] tenor (usance, 30d from shipment_date) conflicts with the credit’s stipulated tenor."
          }
        ],
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over structured fields the caller has transcribed from a presentation -- no OCR, no document upload, no parsing of any document image, PDF, or free-text description. Goods-description conformity is a caller-declared judgment, never inferred from text. Does not determine complying presentation on its own; it is a re-derivable arithmetic check the examiner and, on referral, the issuing bank evaluate.",
        "clause_note": "UCP 600 (ICC Publication 600) and ISBP 745 (ICC Publication 745) are cited by article/paragraph number only; their text is ICC copyright and is not reproduced here. This tool carries no claim of ICC endorsement. Cross-reference tools/420-mt700-lc-field-validator.html for the issuance-side MT700 field validation this examination tool does not duplicate."
      },
      "golden_hash": "5f3ea296cfa185dfd8fbb85ddb44734fbc9b0586c7510a8be862e0b819f2d6fb"
    },
    {
      "name": "missing-presentation-date-indeterminate",
      "policy_parameters": {
        "lc": {
          "quantity": {
            "value": 1000,
            "unit": "MT"
          },
          "expiry_date": "2026-07-31"
        },
        "documents": {
          "invoice": {},
          "transport_doc": {}
        }
      },
      "output_payload": {
        "decision": {
          "gate_policy": "review_required",
          "execution_state": "did_not_run",
          "reason": "required_inputs_incomplete"
        },
        "verdict": "INDETERMINATE",
        "presentation_date": null,
        "presentation_window": null,
        "examination_window": null,
        "tolerances": null,
        "insurance_check": null,
        "cross_document": null,
        "drafts": [],
        "findings": [],
        "rejected_inputs": [
          {
            "where": "lc.amount_minor",
            "reason": "absent or not an integer number of minor units",
            "supplied": null
          },
          {
            "where": "lc.latest_shipment_date",
            "reason": "absent or not YYYY-MM-DD",
            "supplied": null
          },
          {
            "where": "presentation_date",
            "reason": "absent or not YYYY-MM-DD",
            "supplied": null
          },
          {
            "where": "documents.invoice.amount_minor",
            "reason": "absent or not an integer number of minor units",
            "supplied": null
          },
          {
            "where": "documents.invoice.quantity.value",
            "reason": "absent or not a positive number",
            "supplied": null
          },
          {
            "where": "documents.transport_doc.shipment_date",
            "reason": "absent or not YYYY-MM-DD",
            "supplied": null
          }
        ],
        "scope_note": "Performs arithmetic only over structured fields the caller has transcribed from a presentation -- no OCR, no document upload, no parsing of any document image, PDF, or free-text description. Goods-description conformity is a caller-declared judgment, never inferred from text. Does not determine complying presentation on its own; it is a re-derivable arithmetic check the examiner and, on referral, the issuing bank evaluate.",
        "clause_note": "UCP 600 (ICC Publication 600) and ISBP 745 (ICC Publication 745) are cited by article/paragraph number only; their text is ICC copyright and is not reproduced here. This tool carries no claim of ICC endorsement. Cross-reference tools/420-mt700-lc-field-validator.html for the issuance-side MT700 field validation this examination tool does not duplicate."
      },
      "golden_hash": "a1e45b2d855a24029ddea3f1fc7f7b57541286621b4712688533c0fa0630c30e"
    }
  ]
}
