{
  "name": "Customer contract commercial term capture",
  "description": "Extract customer name, supplier name, contract reference from customer agreement. Start with an editable schema, inspect JSON and review exceptions before your system handoff.",
  "prompt_additions": "Extract only information explicitly present in this document. Do not infer missing values, verify authenticity, make business decisions, or compare other documents. Preserve identifiers as strings. Return amounts as numbers and dates as YYYY-MM-DD. Review and set required fields for your process before using this schema in production.",
  "fields": [
    {
      "key": "customer_name",
      "label": "Customer Name",
      "type": "string",
      "required": false,
      "description": "Customer name exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "supplier_name",
      "label": "Supplier Name",
      "type": "string",
      "required": false,
      "description": "Supplier name exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "contract_reference",
      "label": "Contract Reference",
      "type": "string",
      "required": false,
      "description": "Contract reference exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "effective_date",
      "label": "Effective Date",
      "type": "date",
      "required": false,
      "description": "Effective date explicitly printed in this customer agreement. Keep it distinct from other dates; leave it empty if no calendar date is stated."
    },
    {
      "key": "term_text",
      "label": "Term Text",
      "type": "string",
      "required": false,
      "description": "Term text exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "fee_rows",
      "label": "Fee Rows",
      "type": "array",
      "required": false,
      "description": "Every visible fee rows row in this customer agreement. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "fee_label",
            "label": "Fee Label",
            "type": "string",
            "required": false,
            "description": "Fee label exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "amount",
            "label": "Amount",
            "type": "currency",
            "required": false,
            "description": "Amount explicitly labeled in this customer agreement. Preserve its sign and stated currency; do not calculate a missing amount."
          },
          {
            "key": "currency_code",
            "label": "Currency Code",
            "type": "string",
            "required": false,
            "description": "Currency explicitly stated in this source; leave empty when it is not stated."
          },
          {
            "key": "frequency_text",
            "label": "Frequency Text",
            "type": "string",
            "required": false,
            "description": "Frequency text exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "usage_basis_text",
            "label": "Usage Basis Text",
            "type": "string",
            "required": false,
            "description": "Usage basis text exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
          }
        ]
      }
    },
    {
      "key": "payment_terms_text",
      "label": "Payment Terms Text",
      "type": "string",
      "required": false,
      "description": "Payment terms text exactly as printed in this customer agreement. Preserve identifiers and qualifiers; do not look up or infer missing information."
    }
  ]
}