{
  "name": "Closing disclosure fee capture",
  "description": "Extract borrower name, property address, loan reference from closing disclosure. 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": "borrower_name",
      "label": "Borrower Name",
      "type": "string",
      "required": false,
      "description": "Borrower name exactly as printed in this closing disclosure. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "property_address",
      "label": "Property Address",
      "type": "string",
      "required": false,
      "description": "Property address exactly as printed in this closing disclosure. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "loan_reference",
      "label": "Loan Reference",
      "type": "string",
      "required": false,
      "description": "Loan reference exactly as printed in this closing disclosure. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "closing_date",
      "label": "Closing Date",
      "type": "date",
      "required": false,
      "description": "Closing date explicitly printed in this closing disclosure. Keep it distinct from other dates; leave it empty if no calendar date is stated."
    },
    {
      "key": "loan_amount",
      "label": "Loan Amount",
      "type": "currency",
      "required": false,
      "description": "Loan amount explicitly labeled in this closing disclosure. Preserve its sign and stated currency; do not calculate a missing amount."
    },
    {
      "key": "cash_to_close",
      "label": "Cash To Close",
      "type": "currency",
      "required": false,
      "description": "Cash to close explicitly labeled in this closing disclosure. Preserve its sign and stated currency; do not calculate a missing amount."
    },
    {
      "key": "fee_rows",
      "label": "Fee Rows",
      "type": "array",
      "required": false,
      "description": "Every visible fee rows row in this closing disclosure. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "description",
            "label": "Description",
            "type": "string",
            "required": false,
            "description": "Description exactly as printed in this closing disclosure. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "payer_name",
            "label": "Payer Name",
            "type": "string",
            "required": false,
            "description": "Payer name exactly as printed in this closing disclosure. 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 closing disclosure. Preserve its sign and stated currency; do not calculate a missing amount."
          },
          {
            "key": "payment_timing",
            "label": "Payment Timing",
            "type": "string",
            "required": false,
            "description": "Payment timing exactly as printed in this closing disclosure. Preserve identifiers and qualifiers; do not look up or infer missing information."
          }
        ]
      }
    }
  ]
}