{
  "$schema": "https://govschema.org/spec/v0.3/govschema.schema.json",
  "govschemaVersion": "0.3.0",
  "id": "pk/fbr/annexure-f-personal-expenses",
  "version": "1.0.0",
  "title": "Pakistan FBR Annex-F — Personal Expenses",
  "description": "The Federal Board of Revenue's (FBR) official 'Manual Return' workbook for individuals, Tax Year 2024 edition, worksheet 'Annex-F' — the schedule of a taxpayer's personal and household expenses for the tax year (rent, rates/taxes/charge/cess, vehicle running/maintenance, travelling, utilities, insurance/security, medical, educational, club, functions/gatherings, donations/Zakat/annuity/profit-on-debt/life-insurance-premium, and other personal/household expenses, across sixteen named categories), reconciled to a headline total (Sr. 1) that nets out contributions other family members made toward those same expenses (Sr. 17), itemised across up to four named family members in an embedded sub-table (Sr. 18 through Sr. 21, each with its own CNIC, Name, and Amount). This is the ninth and final schema authored from this same nine-worksheet workbook, alongside the already-modelled 'IND (PROP-CG-OS)' (Form IT-1B, `pk/fbr/annual-individual-income-tax-return-it-1b`), 'IND (BUS PLUS)' (Form IT-2, `pk/fbr/annual-individual-income-tax-return-it-2`), 'Annex-A' (`pk/fbr/annexure-a-adjustable-tax`), 'Annex-B' (`pk/fbr/annexure-b-manufacturing-trading-profit-loss-account`), 'Annex-C' (`pk/fbr/annexure-c-inadmissible-admissible-deductions`), 'Annex-D' (`pk/fbr/annexure-d-depreciation-amortization`), 'Annex-E' (`pk/fbr/annexure-e-minimum-final-tax-chargeable`), and 'Wealth Statement' (`pk/fbr/wealth-statement`) worksheets. Like Annex-A's and Annex-E's own Name/CNIC cells, and unlike Annex-B/Annex-C/Annex-D's own Name/CNIC cells, this worksheet's own Name and CNIC cells are plain blank entry cells, not formula-linked to the 'IND (BUS PLUS)' worksheet. This worksheet's own single `dataValidation` rule (`sqref=\"F6:F22 F24:F27\"`) covers every Amount cell on this sheet, including both of this sheet's own headline totals (Sr. 1 and Sr. 17) alongside their own components — the same total-validated-like-its-components inversion already disclosed for Annex-A's and Annex-C's own headline totals, and the opposite of Annex-E's own headline-total exclusion. This document opens no new vertical for Pakistan (Taxes was already opened by `pk/fbr/annual-individual-income-tax-return-it-1b`); it is this workbook's ninth companion schema and the eleventh schema for Pakistan overall, and closes this workbook's own disclosed backlog (Annexes A through F, both annual return worksheets, and the Wealth Statement are now all authored). This document describes the form only; it does not submit anything on the filer's behalf, and does not imply endorsement by the Islamic Republic of Pakistan or the Federal Board of Revenue. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Pakistan.",
  "status": "draft",
  "jurisdiction": {
    "country": "PK",
    "level": "national"
  },
  "authority": {
    "name": "Federal Board of Revenue",
    "abbreviation": "FBR",
    "url": "https://www.fbr.gov.pk"
  },
  "process": {
    "type": "filing",
    "language": "en"
  },
  "source": {
    "url": "https://download1.fbr.gov.pk/Docs/2024791373958696MANUALRETURN2024-NEW24-6-2024.xlsx",
    "retrievedAt": "2026-07-31",
    "documentRef": "FBR 'Manual Return' workbook for individuals, Tax Year 2024 edition, worksheet 'Annex-F'"
  },
  "verification": {
    "method": "manual-source-review-v1",
    "lastVerifiedAt": "2026-07-31",
    "verifiedBy": "GovSchema Engineering (Standards Engineer)",
    "nextReviewBy": "2027-01-31",
    "notes": "GOV-5782 (\"GovSchema Standard Research\"). Re-scanned CATALOG.md fresh first: the immediately preceding GOV-5773 cycle's own VERIFICATION.md, and this document's own workbook siblings (IT-1B, IT-2, Annex-A, Annex-B, Annex-C, Annex-D, Annex-E, Wealth Statement), had all explicitly named \"Annex-F\" as this workbook's sole remaining disclosed, open backlog item, after the 16-jurisdiction \"5 of 6 verticals\" gap list had already been re-screened a dead end across seven consecutive prior cycles (GOV-5731, GOV-5738, GOV-5745, GOV-5752, GOV-5759, GOV-5766, GOV-5773). This cycle picked up Annex-F to close this workbook's own backlog outright, rather than re-screening that same jurisdiction list an eighth consecutive time. Independently re-fetched the same workbook this cycle via plain `curl`: HTTP 200, size 104,097 bytes, sha256 `4e2f9874e9a910713fae9a182fc5c5a578bcfd2649d2031f8144c8b5fba96b9f` — byte-identical to every prior cycle's own recorded figures for this same workbook (GOV-3104, GOV-5731, GOV-5738, GOV-5745, GOV-5752, GOV-5759, GOV-5766, GOV-5773), confirming no revision. Unzipped directly via Python's `zipfile` (no `unzip`/pip/openpyxl in this environment) and confirmed via `xl/workbook.xml`'s own `<sheets>` element that `Annex-F` (`sheetId=\"17\"`) maps to `r:id=\"rId8\"`, which `xl/_rels/workbook.xml.rels` resolves to `xl/worksheets/sheet8.xml`; parsed that sheet's own `sheetData` rows directly via Python's `xml.etree.ElementTree`, `xl/sharedStrings.xml` table, `mergeCells`, and `dataValidations` block from the raw XML. This sheet's own `_xlnm.Print_Area` ('Annex-F'!$A$1:$F$28, from `xl/workbook.xml`'s own `definedNames`) was cross-checked against the sheet's own populated content (rows 1–28, plus scattered decorative cells in columns G through P outside the print area, none carrying any label or value, disregarded) and found to match.\n\nThis worksheet's own header block (rows 3-4) matches Annex-A's and Annex-E's own plain-header convention, not Annex-B/Annex-C/Annex-D's own formula-linked convention: Name (cell C3, merged C3:D3) and CNIC (cell C4, merged C4:D4) are both plain blank cells with no `<f>` formula element — confirmed by direct inspection of the raw cell XML. Tax Year (cell F3) is pre-filled \"2024\". NTN (cell F4) is a genuine direct-entry cell but, unlike Annex-B's/Annex-C's/Annex-D's/Annex-E's own NTN cells, is not covered by this sheet's own single `dataValidation` rule (`sqref=\"F6:F22 F24:F27\"`) — the same uncovered shape already disclosed for Annex-A's own NTN cell.\n\nThis worksheet's own single `dataValidation` rule (`type=\"whole\"`, `operator=\"greaterThanOrEqual\"`, `formula1=0`, `sqref=\"F6:F22 F24:F27\"`) was independently parsed: it covers every Amount cell in both the sixteen-category personal-expense table (rows 6–22, Sr. 1 through Sr. 17) and the four-row family-contribution sub-table (rows 24–27, Sr. 18 through Sr. 21) — including both of this sheet's own headline totals (Sr. 1, row 6; Sr. 17, row 22) alongside their own components, the same total-validated-like-its-components pattern already disclosed for Annex-A's and Annex-C's own headline totals, and the opposite of Annex-E's own headline-total exclusion. Every printed, fillable cell is nonetheless modelled as a field regardless of validation coverage, consistent with this workbook's own established convention.\n\nThe family-contribution sub-table (rows 23–27) has its own two-column header at row 23 (\"CNIC No.\", cell C23; \"Name*\", cell D23) with no repeated \"Amount\" header of its own — the sub-table's own Amount column (F) is understood to inherit the main table's own row-5 \"Amount\" header, confirmed by this column's own continuous `dataValidation` coverage (`F24:F27`) and consistent cell styling across both tables. Column E carries no header, no value, and no `dataValidation` coverage anywhere in this sub-table (rows 23–27) — a genuine unlabelled, non-fillable spacer column between the Name and Amount columns, disclosed and not modelled as a field.\n\n`mergeCells` block (25 entries) independently parsed and confirmed: `A1:F1` (title), `A2:F2` (subtitle \"Personal Expenses\"), `A3:B3`/`C3:D3` and `A4:B4`/`C4:D4` (Name/CNIC label-and-value pairs), `C5:D5` (header \"Description\"), `C6:D6` through `C22:D22` (each category row's own Description cell), and `A6:A27` — the rotated \"Personal Expenses\" section label. Unlike Annex-E's own rotated label (`A5:A39`, falling sixteen rows short of that sheet's own last data row), this sheet's own rotated label (`A6:A27`) exactly spans this sheet's entire single-table block, including its own embedded family-contribution sub-table — the converse of Annex-E's own disclosed asymmetry, confirmed and disclosed here for completeness.\n\nStructural findings disclosed, not corrected: (1) Sr. 4's own printed label, \"Vehicle Running / Maintenence\", carries a source-document spelling artifact (\"Maintenence\" for \"Maintenance\"), quoted verbatim in that field's own description and corrected in the field's own label for legibility. (2) Sr. 1's own printed formula label, \"Personal Expenses [(2 + 16) - 17]\", nets Sr. 17 (family contribution) back out after implicitly including it — the taxpayer's own personal expenses (Sr. 2 through Sr. 16) plus the family-member contribution total (Sr. 17), minus that same Sr. 17 again — a genuine printed-formula quirk, quoted verbatim and disclosed, not corrected or simplified. (3) The family-contribution sub-table provides exactly four bounded slots (Sr. 18 through Sr. 21) with no visible mechanism on this sheet for a fifth family member, consistent with this workbook's own established bounded-slot convention (e.g. Annex-D's own three \"Intangible\" slots) — modelled as four explicitly numbered field triples (`familyMemberContribution1`–`4`), not an open-ended array."
  },
  "maturity": {
    "level": "structural-reference",
    "criteria": {
      "structuralReference": true,
      "verifiedSchema": false,
      "agentReadySchema": false,
      "executionTestedSchema": false
    },
    "method": "maturity-self-assessment-v1",
    "assertedBy": "GovSchema Engineering (Standards Engineer)",
    "assertedAt": "2026-07-31"
  },
  "license": "CC-BY-4.0",
  "fields": [
    {
      "name": "taxpayerName",
      "label": "Name",
      "type": "string",
      "required": true,
      "description": "Full name of the individual taxpayer this Annex-F schedule belongs to. Like Annex-A's and Annex-E's own Name cells, and unlike Annex-B/Annex-C/Annex-D's own Name cells, this worksheet's Name cell is a plain blank entry cell — confirmed from the raw cell XML to carry no `<f>` formula element — not formula-linked to the 'IND (BUS PLUS)' worksheet.",
      "sourceRef": "Worksheet 'Annex-F', row 3 — \"Name*\" (cell A3, merged A3:B3, entry cell C3, merged C3:D3, plain blank, not formula-linked)"
    },
    {
      "name": "taxpayerCnic",
      "label": "CNIC",
      "type": "string",
      "required": true,
      "description": "Taxpayer's 13-digit Computerized National Identity Card (CNIC) number, issued by NADRA. This worksheet's own single dataValidation rule does not cover this cell; the 13-digit format is applied here by convention, consistent with every other worksheet in this workbook.",
      "sourceRef": "Worksheet 'Annex-F', row 4 — \"CNIC*\" (cell A4, merged A4:B4, entry cell C4, merged C4:D4, plain blank, not itself data-validation-constrained on this sheet, not formula-linked)",
      "validation": {
        "pattern": "^\\d{13}$"
      }
    },
    {
      "name": "taxpayerNtn",
      "label": "NTN",
      "type": "string",
      "required": false,
      "description": "Taxpayer's National Tax Number (NTN), if different from or in addition to the CNIC. Like Annex-A's own NTN cell, and unlike Annex-B's/Annex-C's/Annex-D's/Annex-E's own NTN cells, this worksheet's own single dataValidation rule (sqref \"F6:F22 F24:F27\") does not cover this cell.",
      "sourceRef": "Worksheet 'Annex-F', row 4 — \"NTN\" (cell E4, entry cell F4, not itself data-validation-constrained on this sheet)"
    },
    {
      "name": "taxYear",
      "label": "Tax Year",
      "type": "string",
      "required": true,
      "description": "The tax year this Annex-F schedule covers, e.g. \"2024\". This source is itself the Tax Year 2024 edition of the Manual Return workbook; the value is pre-filled on this worksheet's header.",
      "sourceRef": "Worksheet 'Annex-F', row 3 — \"Tax Year\", pre-filled \"2024\" (cell F3)"
    },
    {
      "name": "personalExpensesTotal",
      "label": "Sr. 1 — Personal Expenses [(2 + 16) - 17]",
      "type": "number",
      "required": false,
      "description": "Sr. 1 — the headline total of all personal/household expenses for the tax year, defined by the source form as the sum of Sr. 2 through Sr. 16 (row 16's own itemised categories) plus Sr. 17 (the family-member contribution total) minus Sr. 17 again — i.e. the form's own printed formula \"(2 + 16) - 17\" nets the family-contribution total back out after including it, quoted verbatim as printed. Unlike Annex-E's own headline total (excluded from this sheet's dataValidation rule), this headline total is included in Annex-F's own dataValidation range (row 6, within sqref \"F6:F22\") — the same total-validated-like-its-components inversion already disclosed for Annex-A's and Annex-C's own headline totals.",
      "sourceRef": "Worksheet 'Annex-F', row 6 — Sr. 1, Code 7089, \"Personal Expenses [(2 + 16) - 17]\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "rent",
      "label": "Sr. 2 — Rent",
      "type": "number",
      "required": false,
      "description": "Sr. 2 — rent expense for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 7 — Sr. 2, Code 7051, \"Rent\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "ratesTaxesChargeCess",
      "label": "Sr. 3 — Rates / Taxes / Charge / Cess",
      "type": "number",
      "required": false,
      "description": "Sr. 3 — rates, taxes, charges, and cess paid on personal/household property for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 8 — Sr. 3, Code 7052, \"Rates / Taxes / Charge / Cess\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "vehicleRunningMaintenance",
      "label": "Sr. 4 — Vehicle Running / Maintenance",
      "type": "number",
      "required": false,
      "description": "Sr. 4 — vehicle running and maintenance expenses for the tax year. The source form's own printed label reads \"Vehicle Running / Maintenence\" (sic) — quoted verbatim as printed, corrected to \"Maintenance\" in this field's own label for legibility.",
      "sourceRef": "Worksheet 'Annex-F', row 9 — Sr. 4, Code 7055, \"Vehicle Running / Maintenance\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "travelling",
      "label": "Sr. 5 — Travelling",
      "type": "number",
      "required": false,
      "description": "Sr. 5 — personal travelling expenses for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 10 — Sr. 5, Code 7056, \"Travelling\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "electricity",
      "label": "Sr. 6 — Electricity",
      "type": "number",
      "required": false,
      "description": "Sr. 6 — electricity expense for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 11 — Sr. 6, Code 7058, \"Electricity\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "water",
      "label": "Sr. 7 — Water",
      "type": "number",
      "required": false,
      "description": "Sr. 7 — water expense for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 12 — Sr. 7, Code 7059, \"Water\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "gas",
      "label": "Sr. 8 — Gas",
      "type": "number",
      "required": false,
      "description": "Sr. 8 — gas expense for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 13 — Sr. 8, Code 7060, \"Gas\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "telephone",
      "label": "Sr. 9 — Telephone",
      "type": "number",
      "required": false,
      "description": "Sr. 9 — telephone expense for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 14 — Sr. 9, Code 7061, \"Telephone\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "assetInsuranceSecurity",
      "label": "Sr. 10 — Asset Insurance / Security",
      "type": "number",
      "required": false,
      "description": "Sr. 10 — asset insurance and security expenses for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 15 — Sr. 10, Code 7066, \"Asset Insurance / Security\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "medical",
      "label": "Sr. 11 — Medical",
      "type": "number",
      "required": false,
      "description": "Sr. 11 — medical expenses for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 16 — Sr. 11, Code 7070, \"Medical\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "educational",
      "label": "Sr. 12 — Educational",
      "type": "number",
      "required": false,
      "description": "Sr. 12 — educational expenses for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 17 — Sr. 12, Code 7071, \"Educational\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "club",
      "label": "Sr. 13 — Club",
      "type": "number",
      "required": false,
      "description": "Sr. 13 — club membership/subscription expenses for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 18 — Sr. 13, Code 7072, \"Club\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "functionsGatherings",
      "label": "Sr. 14 — Functions / Gatherings",
      "type": "number",
      "required": false,
      "description": "Sr. 14 — expenses on functions and gatherings for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 19 — Sr. 14, Code 7073, \"Functions / Gatherings\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "donationZakatAnnuityProfitOnDebtLifeInsurancePremium",
      "label": "Sr. 15 — Donation, Zakat, Annuity, Profit on Debt, Life Insurance Premium, etc.",
      "type": "number",
      "required": false,
      "description": "Sr. 15 — donations, Zakat, annuity payments, profit on debt, life insurance premium, and similar outgoings for the tax year.",
      "sourceRef": "Worksheet 'Annex-F', row 20 — Sr. 15, Code 7076, \"Donation, Zakat, Annuity, Profit on Debt, Life Insurance Premium, etc.\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "otherPersonalHouseholdExpenses",
      "label": "Sr. 16 — Other Personal / Household Expenses",
      "type": "number",
      "required": false,
      "description": "Sr. 16 — other personal or household expenses for the tax year not otherwise itemised above.",
      "sourceRef": "Worksheet 'Annex-F', row 21 — Sr. 16, Code 7087, \"Other Personal / Household Expenses\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "familyContributionTotal",
      "label": "Sr. 17 — Contribution in Expenses by Family Members [18+21]",
      "type": "number",
      "required": false,
      "description": "Sr. 17 — the total contribution toward the taxpayer's own personal expenses made by other family members, defined by the source form as the sum of Sr. 18 through Sr. 21 (the four family-member contribution rows below). Included in this sheet's own dataValidation range (row 22, within sqref \"F6:F22\") alongside its own components, the same pattern as Sr. 1 above.",
      "sourceRef": "Worksheet 'Annex-F', row 22 — Sr. 17, Code 7088, \"Contribution in Expenses by Family Members [18+21]\" (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "familyMemberContribution1Cnic",
      "label": "Sr. 18 — Family Member 1 — CNIC No.",
      "type": "string",
      "required": false,
      "description": "Sr. 18 — 13-digit CNIC of the family member contributing toward Sr. 17's total (one of up to four bounded slots this sub-table provides, Sr. 18 through Sr. 21). This worksheet's own single dataValidation rule does not cover this cell; the 13-digit format is applied here by convention, consistent with every CNIC field elsewhere in this workbook.",
      "sourceRef": "Worksheet 'Annex-F', row 24 — sub-table header \"CNIC No.\" (row 23, cell C23), entry cell C24, not itself data-validation-constrained on this sheet",
      "validation": {
        "pattern": "^\\d{13}$"
      }
    },
    {
      "name": "familyMemberContribution1Name",
      "label": "Sr. 18 — Family Member 1 — Name",
      "type": "string",
      "required": false,
      "description": "Sr. 18 — full name of the family member contributing toward Sr. 17's total (one of up to four bounded slots, Sr. 18 through Sr. 21).",
      "sourceRef": "Worksheet 'Annex-F', row 24 — sub-table header \"Name*\" (row 23, cell D23), entry cell D24"
    },
    {
      "name": "familyMemberContribution1Amount",
      "label": "Sr. 18 — Family Member 1 — Amount",
      "type": "number",
      "required": false,
      "description": "Sr. 18 — amount contributed by this family member toward the taxpayer's personal expenses. Covered by this sheet's own dataValidation rule (sqref includes \"F24:F27\").",
      "sourceRef": "Worksheet 'Annex-F', row 24 — Sr. 18, entry cell F24 (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "familyMemberContribution2Cnic",
      "label": "Sr. 19 — Family Member 2 — CNIC No.",
      "type": "string",
      "required": false,
      "description": "Sr. 19 — 13-digit CNIC of the family member contributing toward Sr. 17's total (one of up to four bounded slots this sub-table provides, Sr. 18 through Sr. 21). This worksheet's own single dataValidation rule does not cover this cell; the 13-digit format is applied here by convention, consistent with every CNIC field elsewhere in this workbook.",
      "sourceRef": "Worksheet 'Annex-F', row 25 — sub-table header \"CNIC No.\" (row 23, cell C23), entry cell C25, not itself data-validation-constrained on this sheet",
      "validation": {
        "pattern": "^\\d{13}$"
      }
    },
    {
      "name": "familyMemberContribution2Name",
      "label": "Sr. 19 — Family Member 2 — Name",
      "type": "string",
      "required": false,
      "description": "Sr. 19 — full name of the family member contributing toward Sr. 17's total (one of up to four bounded slots, Sr. 18 through Sr. 21).",
      "sourceRef": "Worksheet 'Annex-F', row 25 — sub-table header \"Name*\" (row 23, cell D23), entry cell D25"
    },
    {
      "name": "familyMemberContribution2Amount",
      "label": "Sr. 19 — Family Member 2 — Amount",
      "type": "number",
      "required": false,
      "description": "Sr. 19 — amount contributed by this family member toward the taxpayer's personal expenses. Covered by this sheet's own dataValidation rule (sqref includes \"F24:F27\").",
      "sourceRef": "Worksheet 'Annex-F', row 25 — Sr. 19, entry cell F25 (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "familyMemberContribution3Cnic",
      "label": "Sr. 20 — Family Member 3 — CNIC No.",
      "type": "string",
      "required": false,
      "description": "Sr. 20 — 13-digit CNIC of the family member contributing toward Sr. 17's total (one of up to four bounded slots this sub-table provides, Sr. 18 through Sr. 21). This worksheet's own single dataValidation rule does not cover this cell; the 13-digit format is applied here by convention, consistent with every CNIC field elsewhere in this workbook.",
      "sourceRef": "Worksheet 'Annex-F', row 26 — sub-table header \"CNIC No.\" (row 23, cell C23), entry cell C26, not itself data-validation-constrained on this sheet",
      "validation": {
        "pattern": "^\\d{13}$"
      }
    },
    {
      "name": "familyMemberContribution3Name",
      "label": "Sr. 20 — Family Member 3 — Name",
      "type": "string",
      "required": false,
      "description": "Sr. 20 — full name of the family member contributing toward Sr. 17's total (one of up to four bounded slots, Sr. 18 through Sr. 21).",
      "sourceRef": "Worksheet 'Annex-F', row 26 — sub-table header \"Name*\" (row 23, cell D23), entry cell D26"
    },
    {
      "name": "familyMemberContribution3Amount",
      "label": "Sr. 20 — Family Member 3 — Amount",
      "type": "number",
      "required": false,
      "description": "Sr. 20 — amount contributed by this family member toward the taxpayer's personal expenses. Covered by this sheet's own dataValidation rule (sqref includes \"F24:F27\").",
      "sourceRef": "Worksheet 'Annex-F', row 26 — Sr. 20, entry cell F26 (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "familyMemberContribution4Cnic",
      "label": "Sr. 21 — Family Member 4 — CNIC No.",
      "type": "string",
      "required": false,
      "description": "Sr. 21 — 13-digit CNIC of the family member contributing toward Sr. 17's total (one of up to four bounded slots this sub-table provides, Sr. 18 through Sr. 21). This worksheet's own single dataValidation rule does not cover this cell; the 13-digit format is applied here by convention, consistent with every CNIC field elsewhere in this workbook.",
      "sourceRef": "Worksheet 'Annex-F', row 27 — sub-table header \"CNIC No.\" (row 23, cell C23), entry cell C27, not itself data-validation-constrained on this sheet",
      "validation": {
        "pattern": "^\\d{13}$"
      }
    },
    {
      "name": "familyMemberContribution4Name",
      "label": "Sr. 21 — Family Member 4 — Name",
      "type": "string",
      "required": false,
      "description": "Sr. 21 — full name of the family member contributing toward Sr. 17's total (one of up to four bounded slots, Sr. 18 through Sr. 21).",
      "sourceRef": "Worksheet 'Annex-F', row 27 — sub-table header \"Name*\" (row 23, cell D23), entry cell D27"
    },
    {
      "name": "familyMemberContribution4Amount",
      "label": "Sr. 21 — Family Member 4 — Amount",
      "type": "number",
      "required": false,
      "description": "Sr. 21 — amount contributed by this family member toward the taxpayer's personal expenses. Covered by this sheet's own dataValidation rule (sqref includes \"F24:F27\").",
      "sourceRef": "Worksheet 'Annex-F', row 27 — Sr. 21, entry cell F27 (column F, \"Amount\")",
      "validation": {
        "minimum": 0
      }
    },
    {
      "name": "declarationDate",
      "label": "Date",
      "type": "date",
      "required": false,
      "description": "Date this Annex-F schedule is signed. This worksheet carries a bare \"Signature: ___ Date: ___\" footer with no accompanying declaration paragraph, the same shape already disclosed for Annex-A's/Annex-C's/Annex-D's/Annex-E's own footers, so no `documents[]` attestation entry is modelled here.",
      "sourceRef": "Worksheet 'Annex-F', row 28 — \"Signature:\" (cell A28) / \"Date:\" (cell E28)"
    }
  ]
}
