{
  "name": "Time off balance statement capture",
  "description": "Extract employee name, statement date, leave balance rows from balance report. 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": "employee_name",
      "label": "Employee Name",
      "type": "string",
      "required": false,
      "description": "Employee name exactly as printed in this balance report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "statement_date",
      "label": "Statement Date",
      "type": "date",
      "required": false,
      "description": "Statement date explicitly printed in this balance report. Keep it distinct from other dates; leave it empty if no calendar date is stated."
    },
    {
      "key": "leave_balance_rows",
      "label": "Leave Balance Rows",
      "type": "array",
      "required": false,
      "description": "Every visible leave balance rows row in this balance report. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "leave_type",
            "label": "Leave Type",
            "type": "string",
            "required": false,
            "description": "Leave type exactly as printed in this balance report. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "accrued_hours",
            "label": "Accrued Hours",
            "type": "number",
            "required": false,
            "description": "Accrued hours as reported in this balance report. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "used_hours",
            "label": "Used Hours",
            "type": "number",
            "required": false,
            "description": "Used hours as reported in this balance report. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "available_hours",
            "label": "Available Hours",
            "type": "number",
            "required": false,
            "description": "Available hours as reported in this balance report. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "adjustment_text",
            "label": "Adjustment Text",
            "type": "string",
            "required": false,
            "description": "Adjustment text exactly as printed in this balance report. Preserve identifiers and qualifiers; do not look up or infer missing information."
          }
        ]
      }
    },
    {
      "key": "reporting_period",
      "label": "Reporting Period",
      "type": "string",
      "required": false,
      "description": "Reporting period exactly as printed in this balance report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "adjustment_notes_text",
      "label": "Adjustment Notes Text",
      "type": "string",
      "required": false,
      "description": "Adjustment notes text exactly as printed in this balance report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    }
  ]
}