Registry entry

Pakistan FBR Annex-F — Personal Expenses

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.

Registry entry

pk/fbr/annexure-f-personal-expenses

Jurisdiction
Pakistan · national
Version
1.0.0
Verification
draft

Authoritative source FBR 'Manual Return' workbook for individuals, Tax Year 2024 edition, worksheet 'Annex-F'

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

34 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.

Fields

  • taxpayerName string required

    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 `` formula element — not formula-linked to the 'IND (BUS PLUS)' worksheet.

  • taxpayerCnic string required

    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.

    pattern
  • taxpayerNtn string optional

    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.

  • taxYear string required

    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.

  • personalExpensesTotal number optional

    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.

    range: 0–∞
  • rent number optional

    Sr. 2 — rent expense for the tax year.

    range: 0–∞
  • ratesTaxesChargeCess number optional

    Sr. 3 — rates, taxes, charges, and cess paid on personal/household property for the tax year.

    range: 0–∞
  • vehicleRunningMaintenance number optional

    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.

    range: 0–∞
  • travelling number optional

    Sr. 5 — personal travelling expenses for the tax year.

    range: 0–∞
  • electricity number optional

    Sr. 6 — electricity expense for the tax year.

    range: 0–∞
  • water number optional

    Sr. 7 — water expense for the tax year.

    range: 0–∞
  • gas number optional

    Sr. 8 — gas expense for the tax year.

    range: 0–∞
  • telephone number optional

    Sr. 9 — telephone expense for the tax year.

    range: 0–∞
  • assetInsuranceSecurity number optional

    Sr. 10 — asset insurance and security expenses for the tax year.

    range: 0–∞
  • medical number optional

    Sr. 11 — medical expenses for the tax year.

    range: 0–∞
  • educational number optional

    Sr. 12 — educational expenses for the tax year.

    range: 0–∞
  • club number optional

    Sr. 13 — club membership/subscription expenses for the tax year.

    range: 0–∞
  • functionsGatherings number optional

    Sr. 14 — expenses on functions and gatherings for the tax year.

    range: 0–∞
  • donationZakatAnnuityProfitOnDebtLifeInsurancePremium number optional

    Sr. 15 — donations, Zakat, annuity payments, profit on debt, life insurance premium, and similar outgoings for the tax year.

    range: 0–∞
  • otherPersonalHouseholdExpenses number optional

    Sr. 16 — other personal or household expenses for the tax year not otherwise itemised above.

    range: 0–∞
  • familyContributionTotal number optional

    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.

    range: 0–∞
  • familyMemberContribution1Cnic string optional

    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.

    pattern
  • familyMemberContribution1Name string optional

    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).

  • familyMemberContribution1Amount number optional

    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").

    range: 0–∞
  • familyMemberContribution2Cnic string optional

    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.

    pattern
  • familyMemberContribution2Name string optional

    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).

  • familyMemberContribution2Amount number optional

    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").

    range: 0–∞
  • familyMemberContribution3Cnic string optional

    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.

    pattern
  • familyMemberContribution3Name string optional

    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).

  • familyMemberContribution3Amount number optional

    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").

    range: 0–∞
  • familyMemberContribution4Cnic string optional

    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.

    pattern
  • familyMemberContribution4Name string optional

    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).

  • familyMemberContribution4Amount number optional

    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").

    range: 0–∞
  • declarationDate date optional

    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.

Verification record

This file is the source-review record for this document version, per the manual-source-review-v1 practice.

Current claim

  • status: draft
  • verification.method: manual-source-review-v1
  • verification.lastVerifiedAt: 2026-07-31

Why this schema and why now (GOV-5782, "GovSchema Standard Research")

This cycle re-scanned CATALOG.md fresh first rather than trusting the in-repo state from memory. The immediately preceding GOV-5773 cycle's own VERIFICATION.md, and this document's own workbook siblings (pk/fbr/annual-individual-income-tax-return-it-1b, pk/fbr/annual-individual-income-tax-return-it-2, pk/fbr/annexure-a-adjustable-tax, pk/fbr/annexure-b-manufacturing-trading-profit-loss-account, pk/fbr/annexure-c-inadmissible-admissible-deductions, pk/fbr/annexure-d-depreciation-amortization, pk/fbr/annexure-e-minimum-final-tax-chargeable, and pk/fbr/wealth-statement), had all explicitly named "Annex-F" as this same nine-worksheet workbook's sole remaining disclosed, open backlog item — and 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.

Sources examined

  • Document (id, version): pk/fbr/annexure-f-personal-expenses / 1.0.0
  • Spec version: GovSchema 0.3.0
  • Authority: Federal Board of Revenue (FBR).
  • Primary source:
    • Direct .xlsx: https://download1.fbr.gov.pk/Docs/2024791373958696MANUALRETURN2024-NEW24-6-2024.xlsx — independently re-fetched this cycle via plain curl: HTTP 200, size 104,097 bytes, sha256 4e2f9874e9a910713fae9a182fc5c5a578bcfd2649d2031f8144c8b5fba96b9f — byte-identical to every prior cycle's own recorded figures (GOV-3104, GOV-5731, GOV-5738, GOV-5745, GOV-5752, GOV-5759, GOV-5766, GOV-5773), confirming no revision. No login/CAPTCHA gate.
    • Native Office Open XML .xlsx (a zip archive of XML parts), not a PDF. No unzip/pip/openpyxl available in this environment; unzipped directly with Python's built-in zipfile module. Parsed sheetData rows directly via Python's xml.etree.ElementTree (not a regex pass), except for the mergeCells and dataValidations blocks, which were extracted with a single targeted regex against the raw XML text (their own structure is not a repeating sheetData row shape).
    • 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 — the worksheet parsed for this document. The workbook's full 9-sheet inventory (IND (PROP-CG-OS), IND (BUS PLUS), Annex-A through Annex-F, Wealth Statement) was re-confirmed identical to every prior cycle's own finding. 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 carry every label/value on this sheet, plus a scattered handful of blank, unlabelled, unstyled-beyond-column-default cells in columns G through P on rows 1–2 and 29–46 — column-width/row-height artifacts left over from spreadsheet authoring, outside the print area, carrying no text, formula, or fill and disregarded (this sheet's own xl/worksheets/_rels/sheet8.xml.rels contains only a printerSettings relationship — no legacyDrawing/ comments reference, so no cell comments exist on this sheet either).

Scope decisions

Annex-F ("Personal Expenses") is a single-table personal/household-expense line-item list (Sr. 1 headline total plus sixteen named categories, Sr. 2 through Sr. 17 — Sr. 17 itself being a second, embedded subtotal) with a four-row family-member-contribution sub-table nested inside the same visual block.

  1. Header block matches Annex-A's and Annex-E's own plain convention, not Annex-B/Annex-C/Annex-D's formula-link convention. Row 3's Name cell (C3, merged C3:D3) and row 4's CNIC cell (C4, merged C4:D4) were independently confirmed, via the raw cell XML, to be plain blank cells (styled, no <v> value, no <f> formula element) — not formula-linked to IND (BUS PLUS) (Form IT-2), unlike Annex-B/Annex-C/Annex-D's own Name/CNIC cells. Tax Year (cell F3) is pre-filled 2024 (a bare numeric value, no shared-string/formula wrapper). 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 — the same uncovered shape already disclosed for Annex-A's own NTN cell. taxpayerNtn therefore carries no validation object, consistent with that precedent.
  2. A single table with two headline totals, one of which nets its own own embedded sub-table back in. Sr. 1 ("Personal Expenses [(2 + 16) - 17]", row 6) is the overall headline total: the form's own printed formula sums Sr. 2 through Sr. 16 (fifteen itemised categories, rows 7–21) plus Sr. 17 (row 22, itself a subtotal of the family-contribution sub-table) and then subtracts that same Sr. 17 again — i.e. family contributions are added into the running total and then netted back out, a genuine printed-formula quirk quoted verbatim in that field's own description and not corrected or simplified into a friendlier equivalent formula.
  3. The family-contribution sub-table (rows 23–27) is a bounded four-slot pattern, not an open-ended array, consistent with this workbook's own established convention (e.g. Annex-D's own three identically-labelled "Intangible" slots). Its own header row (row 23) prints only two column labels — "CNIC No." (cell C23) and "Name*" (cell D23) — with no repeated "Amount" label of its own; the sub-table's own Amount column (F) was confirmed, from the raw cell XML, to carry the identical style index (s="130") as the main table's own Amount cells (rows 6–22) and to fall within this sheet's own single dataValidation range (sqref includes F24:F27) — independently confirming it inherits the main table's own row-5 "Amount" header rather than being a separate, unlabelled column. Column E in this sub-table (rows 23–27) carries no header, no value, and no dataValidation coverage anywhere — a genuine unlabelled, non-fillable spacer column between the Name and Amount columns, disclosed and not modelled as a field. Modelled as four explicitly numbered field triples (familyMemberContribution14, each with its own Cnic/Name/Amount suffix), matching Sr. 18 through Sr. 21's own printed row numbers.
  4. dataValidation coverage is total across this sheet's own Amount column, unlike every prior Annex in this workbook. The sheet'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 main 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. This is 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 — validation.minimum: 0 is applied uniformly to all twenty-one Amount fields sourced from this sheet (seventeen main-table categories, including both Sr. 1 and Sr. 17, plus four family-contribution Amount fields, one per slot) — see the field count reconciliation below.

Structural findings disclosed, not corrected

  1. Sr. 4's own printed label carries a source-document spelling artifact. "Vehicle Running / Maintenence" (row 9) misspells "Maintenance" — quoted verbatim in that field's own description, corrected to "Maintenance" in the field's own label for legibility.
  2. Sr. 1's own printed formula nets its own embedded subtotal back out. "Personal Expenses [(2 + 16) - 17]" adds Sr. 17 (family contributions) into the running total and then subtracts it again — quoted verbatim and disclosed, not corrected or simplified (see Scope decision 2 above).
  3. This sheet's own rotated section label (A6:A27, "Personal Expenses") 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 (Annex-E's own rotated label, A5:A39, fell sixteen rows short of that sheet's own last data row). Confirmed independently from the raw mergeCells block and disclosed here for completeness, not because it constitutes a defect.
  4. 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 of the seventeen category rows' own Description cell), and A6:A27 (the rotated section label discussed in finding 3). No merges exist inside the family-contribution sub-table (rows 23–27) — its own CNIC/Name/Amount columns are genuinely separate, unmerged cells, confirming the three-field-per-slot modelling choice.

Field count reconciliation

34 fields total: 4 header fields (taxpayerName, taxpayerCnic, taxpayerNtn, taxYear) + 17 main-table category amounts (Sr. 1 through Sr. 17, one field each) + 12 family-contribution sub-table fields (4 slots × 3 fields each — CNIC, Name, Amount) + 1 declarationDate = 4 + 17 + 12 + 1 = 34. validation.minimum: 0 is applied to all 17 main-table category amounts plus all 4 family-contribution Amount fields (21 fields in total); the 4 header fields, 8 family-contribution CNIC/Name fields, and declarationDate carry no minimum.

Conformance fixtures (Phase 3)

7 fixtures committed under conformance/pk/fbr/annexure-f-personal-expenses/1.0.0/: 2 valid scenarios plus 5 mutation-control fixtures, each derived from one of the valid fixtures by a single targeted mutation. All 7 were run against a from-scratch, ephemeral field-by-field conformance checker (derived directly from this schema's own fields[], not committed to the repo) before being finalized:

  • valid-few-categories.json (a taxpayer reporting a handful of personal- expense categories, no family contributions) — 0 errors.
  • valid-full-reconciliation.json (a taxpayer reporting all sixteen personal-expense categories, both headline totals, all four family-member contribution slots, and a signed declarationDate) — 0 errors.
  • mutation-control-missing-required-field.json (drops taxYear) — exactly 1 error.
  • mutation-control-missing-required-cnic.json (drops taxpayerCnic) — exactly 1 error.
  • mutation-control-invalid-cnic-pattern.json (sets taxpayerCnic to a 14-digit value) — exactly 1 error.
  • mutation-control-negative-amount.json (sets rent to a negative amount, violating minimum: 0) — exactly 1 error.
  • mutation-control-invalid-declaration-date-type.json (sets declarationDate to a non-date numeric value) — exactly 1 error.

No mutation-control-negative-ntn.json fixture is included: unlike Annex-C's/Annex-D's/Annex-E's own NTN cells, Annex-F's taxpayerNtn carries no validation.minimum (Scope decision 1 above), the same shape already disclosed for Annex-A's own NTN field — Annex-A's own conformance fixture set likewise omits a negative-NTN mutation for the identical reason.

Structural validation

  • node tools/validate.mjs701/701 (full registry, this document included).
  • node tools/validate-ajv.mjs (ajv 2020-12 against spec/v0.3) — 701/701.
  • node tools/verify-sources.mjs registry/pk/fbr/annexure-f-personal-expenses/1.0.0 — 1 directory, 3 URLs checked, 0 warnings, 0 failures.
  • npm run build-index re-run in tools/govschema-client/ to regenerate registry-index.json with this document included (701 entries).

Maturity

structural-reference: the source workbook's own printed "Annex-F" (Personal Expenses) structure — identification block, the sixteen named personal/household-expense categories with their headline total, and the embedded four-slot family-contribution sub-table — is fully transcribed from the genuine, currently-served official Tax Year 2024 edition (a fillable Excel workbook, not a government online-filing system), but no live filing through FBR's own IRIS e-filing channel was attempted. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Islamic Republic of Pakistan or the Federal Board of Revenue.

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.json

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Federal Board of Revenue or any government. The authoritative source is always the live government form and its official instructions.