Registry entry
Pakistan FBR Annex-B — Manufacturing / Trading / Profit & Loss Account
The Federal Board of Revenue's (FBR) official 'Manual Return' workbook for individuals, Tax Year 2024 edition, worksheet 'Annex-B' — "Manufacturing / Trading / Profit & Loss Account (including Revenues subject to Final / Fixed Tax)", the business income-statement schedule for an individual taxpayer's business (Manufacturing/Trading Profit & Loss, prior-year unadjusted business-loss carry-forward, and a business-specific Statement of Affairs / Balance Sheet), filed one instance per business per the source form's own instruction ("Separate form should be filled for each business"). This is the seventh 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`), and 'Wealth Statement' (`pk/fbr/wealth-statement`) worksheets. Like Annex-A, this worksheet's own single `dataValidations` rule validates every Profit & Loss row uniformly — including the headline "Cost of Sales / Services", "Gross Profit / (Loss)", "Other Revenues", "Management, Administrative, Selling & Financial Expenses", and "Accounting Profit / (Loss)" computed subtotals themselves — a materially different shape from the IT-1B/IT-2/Wealth Statement siblings, where the equivalent computed-total rows were confirmed, by the absence of a numeric-entry validation rule, to be excluded. This version therefore models every Profit & Loss line (Sr. 1–45), each split into its own Total Amount / Amount Subject to Final Tax / Amount Subject to Normal Tax figures, as an individually reportable field, following the same convention already established for Annex-A. Two further, worksheet-specific structural findings are disclosed: the prior-year unadjusted business-loss carry-forward section (Sr. 46–52) skips Sr. 49 entirely (2018 is absent between 2017 and 2019, the same 'later insertion/removal, not renumbered' pattern already seen in the Wealth Statement's own roman-numeral skip and in Annex-A's own Sr. 7 skip), and the worksheet's trailing Statement of Affairs / Balance Sheet section (Sr. 53–63) is governed by a raw-XML `
Registry entry
pk/fbr/annexure-b-manufacturing-trading-profit-loss-account
Machine access
- Schema document
registry/pk/fbr/annexure-b-manufacturing-trading-profit-loss-account/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/pk/fbr/annexure-b-manufacturing-trading-profit-loss-account/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
157 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
-
taxpayerNamestring requiredFull name of the individual taxpayer this Annex-B business schedule belongs to. On this worksheet the cell is populated by an internal formula pulling from the 'IND (BUS PLUS)' (Form IT-2) worksheet in the same workbook, confirming this Annex is meant to be filed together with that return.
-
taxpayerCnicstring requiredTaxpayer's 13-digit Computerized National Identity Card (CNIC) number, issued by NADRA. Like the Name field, this cell is formula-linked to the 'IND (BUS PLUS)' worksheet rather than independently entered.
pattern -
taxpayerNtnstring optionalTaxpayer's National Tax Number (NTN). This worksheet's own single dataValidation rule (type "whole", operator "greaterThanOrEqual", formula1 0) covers this cell (G5) as well as its page-2 continuation-header counterpart (G59), constraining it to a non-negative whole number. Modelled as optional because this worksheet's own page-1 label reads unstarred "NTN", even though the page-2 continuation header for the identical field reads starred "NTN*" — an internal labelling inconsistency within this same worksheet, disclosed rather than silently resolved in either direction.
range: 0–∞ -
taxYearstring requiredThe tax year this Annex-B business schedule covers, e.g. "2024". This source is itself the Tax Year 2024 edition of the Manual Return workbook; the value is pre-filled identically on both this worksheet's page-1 and page-2 continuation headers.
-
businessNamestring requiredName of the business this Manufacturing/Trading Profit & Loss account and Statement of Affairs belong to. The source form's own instruction directly beneath the worksheet title states "Separate form should be filled for each business" — i.e. a taxpayer with more than one business files one Annex-B instance per business.
-
netRevenueTotalnumber optionalSr. 1, Code 3029 — "Net Revenue (excluding Sales Tax, Federal Excise, Brokerage, Commission, Discount, Freight Outward) [2-3]" — total amount (column E).
range: 0–∞ -
netRevenueFinalTaxnumber optionalSr. 1, Code 3029 — "Net Revenue (excluding Sales Tax, Federal Excise, Brokerage, Commission, Discount, Freight Outward) [2-3]" — amount subject to Final Tax (column F).
range: 0–∞ -
netRevenueNormalTaxnumber optionalSr. 1, Code 3029 — "Net Revenue (excluding Sales Tax, Federal Excise, Brokerage, Commission, Discount, Freight Outward) [2-3]" — amount subject to Normal Tax (column G).
range: 0–∞ -
grossRevenueTotalnumber optionalSr. 2, Code 3009 — "Gross Revenue (excluding Sales Tax, Federal Excise)" — total amount (column E).
range: 0–∞ -
grossRevenueFinalTaxnumber optionalSr. 2, Code 3009 — "Gross Revenue (excluding Sales Tax, Federal Excise)" — amount subject to Final Tax (column F).
range: 0–∞ -
grossRevenueNormalTaxnumber optionalSr. 2, Code 3009 — "Gross Revenue (excluding Sales Tax, Federal Excise)" — amount subject to Normal Tax (column G).
range: 0–∞ -
sellingExpensesTotalnumber optionalSr. 3, Code 3019 — "Selling Expenses (Freight Outward, Brokerage, Commission, Discount, etc.)" — total amount (column E).
range: 0–∞ -
sellingExpensesFinalTaxnumber optionalSr. 3, Code 3019 — "Selling Expenses (Freight Outward, Brokerage, Commission, Discount, etc.)" — amount subject to Final Tax (column F).
range: 0–∞ -
sellingExpensesNormalTaxnumber optionalSr. 3, Code 3019 — "Selling Expenses (Freight Outward, Brokerage, Commission, Discount, etc.)" — amount subject to Normal Tax (column G).
range: 0–∞ -
costOfSalesServicesTotalnumber optionalSr. 4, Code 3030 — "Cost of Sales / Services [(sum of 5 to 15)-16]" — total amount (column E).
range: 0–∞ -
costOfSalesServicesFinalTaxnumber optionalSr. 4, Code 3030 — "Cost of Sales / Services [(sum of 5 to 15)-16]" — amount subject to Final Tax (column F).
range: 0–∞ -
costOfSalesServicesNormalTaxnumber optionalSr. 4, Code 3030 — "Cost of Sales / Services [(sum of 5 to 15)-16]" — amount subject to Normal Tax (column G).
range: 0–∞ -
openingStockTotalnumber optionalSr. 5, Code 3039 — "Opening Stock" — total amount (column E).
range: 0–∞ -
openingStockFinalTaxnumber optionalSr. 5, Code 3039 — "Opening Stock" — amount subject to Final Tax (column F).
range: 0–∞ -
openingStockNormalTaxnumber optionalSr. 5, Code 3039 — "Opening Stock" — amount subject to Normal Tax (column G).
range: 0–∞ -
netPurchasesTotalnumber optionalSr. 6, Code 3059 — "Net Purchases (excluding Sales Tax, Federal Excise)" — total amount (column E).
range: 0–∞ -
netPurchasesFinalTaxnumber optionalSr. 6, Code 3059 — "Net Purchases (excluding Sales Tax, Federal Excise)" — amount subject to Final Tax (column F).
range: 0–∞ -
netPurchasesNormalTaxnumber optionalSr. 6, Code 3059 — "Net Purchases (excluding Sales Tax, Federal Excise)" — amount subject to Normal Tax (column G).
range: 0–∞ -
salariesWagesCostTotalnumber optionalSr. 7, Code 3071 — "Salaries / Wages" — total amount (column E).
range: 0–∞ -
salariesWagesCostFinalTaxnumber optionalSr. 7, Code 3071 — "Salaries / Wages" — amount subject to Final Tax (column F).
range: 0–∞ -
salariesWagesCostNormalTaxnumber optionalSr. 7, Code 3071 — "Salaries / Wages" — amount subject to Normal Tax (column G).
range: 0–∞ -
fuelTotalnumber optionalSr. 8, Code 3072 — "Fuel" — total amount (column E).
range: 0–∞ -
fuelFinalTaxnumber optionalSr. 8, Code 3072 — "Fuel" — amount subject to Final Tax (column F).
range: 0–∞ -
fuelNormalTaxnumber optionalSr. 8, Code 3072 — "Fuel" — amount subject to Normal Tax (column G).
range: 0–∞ -
powerTotalnumber optionalSr. 9, Code 3073 — "Power" — total amount (column E).
range: 0–∞ -
powerFinalTaxnumber optionalSr. 9, Code 3073 — "Power" — amount subject to Final Tax (column F).
range: 0–∞ -
powerNormalTaxnumber optionalSr. 9, Code 3073 — "Power" — amount subject to Normal Tax (column G).
range: 0–∞ -
gasTotalnumber optionalSr. 10, Code 3074 — "Gas" — total amount (column E).
range: 0–∞ -
gasFinalTaxnumber optionalSr. 10, Code 3074 — "Gas" — amount subject to Final Tax (column F).
range: 0–∞ -
gasNormalTaxnumber optionalSr. 10, Code 3074 — "Gas" — amount subject to Normal Tax (column G).
range: 0–∞ -
storesSparesTotalnumber optionalSr. 11, Code 3076 — "Stores / Spares" — total amount (column E).
range: 0–∞ -
storesSparesFinalTaxnumber optionalSr. 11, Code 3076 — "Stores / Spares" — amount subject to Final Tax (column F).
range: 0–∞ -
storesSparesNormalTaxnumber optionalSr. 11, Code 3076 — "Stores / Spares" — amount subject to Normal Tax (column G).
range: 0–∞ -
repairMaintenanceCostTotalnumber optionalSr. 12, Code 3077 — "Repair / Maintenance" — total amount (column E).
range: 0–∞ -
repairMaintenanceCostFinalTaxnumber optionalSr. 12, Code 3077 — "Repair / Maintenance" — amount subject to Final Tax (column F).
range: 0–∞ -
repairMaintenanceCostNormalTaxnumber optionalSr. 12, Code 3077 — "Repair / Maintenance" — amount subject to Normal Tax (column G).
range: 0–∞ -
otherDirectExpensesTotalnumber optionalSr. 13, Code 3083 — "Other Direct Expenses" — total amount (column E).
range: 0–∞ -
otherDirectExpensesFinalTaxnumber optionalSr. 13, Code 3083 — "Other Direct Expenses" — amount subject to Final Tax (column F).
range: 0–∞ -
otherDirectExpensesNormalTaxnumber optionalSr. 13, Code 3083 — "Other Direct Expenses" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingAmortizationCostTotalnumber optionalSr. 14, Code 3087 — "Accounting Amortization" — total amount (column E).
range: 0–∞ -
accountingAmortizationCostFinalTaxnumber optionalSr. 14, Code 3087 — "Accounting Amortization" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingAmortizationCostNormalTaxnumber optionalSr. 14, Code 3087 — "Accounting Amortization" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingDepreciationCostTotalnumber optionalSr. 15, Code 3088 — "Accounting Depreciation" — total amount (column E).
range: 0–∞ -
accountingDepreciationCostFinalTaxnumber optionalSr. 15, Code 3088 — "Accounting Depreciation" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingDepreciationCostNormalTaxnumber optionalSr. 15, Code 3088 — "Accounting Depreciation" — amount subject to Normal Tax (column G).
range: 0–∞ -
closingStockTotalnumber optionalSr. 16, Code 3099 — "Closing Stock" — total amount (column E).
range: 0–∞ -
closingStockFinalTaxnumber optionalSr. 16, Code 3099 — "Closing Stock" — amount subject to Final Tax (column F).
range: 0–∞ -
closingStockNormalTaxnumber optionalSr. 16, Code 3099 — "Closing Stock" — amount subject to Normal Tax (column G).
range: 0–∞ -
grossProfitLossTotalnumber optionalSr. 17, Code 3100 — "Gross Profit / (Loss) [1-4]" — total amount (column E).
range: 0–∞ -
grossProfitLossFinalTaxnumber optionalSr. 17, Code 3100 — "Gross Profit / (Loss) [1-4]" — amount subject to Final Tax (column F).
range: 0–∞ -
grossProfitLossNormalTaxnumber optionalSr. 17, Code 3100 — "Gross Profit / (Loss) [1-4]" — amount subject to Normal Tax (column G).
range: 0–∞ -
otherRevenuesTotalnumber optionalSr. 18, Code 3129 — "Other Revenues [Sum of 19 to 22]" — total amount (column E).
range: 0–∞ -
otherRevenuesFinalTaxnumber optionalSr. 18, Code 3129 — "Other Revenues [Sum of 19 to 22]" — amount subject to Final Tax (column F).
range: 0–∞ -
otherRevenuesNormalTaxnumber optionalSr. 18, Code 3129 — "Other Revenues [Sum of 19 to 22]" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingGainSaleIntangiblesTotalnumber optionalSr. 19, Code 3115 — "Accounting Gain on Sale of Intangibles" — total amount (column E).
range: 0–∞ -
accountingGainSaleIntangiblesFinalTaxnumber optionalSr. 19, Code 3115 — "Accounting Gain on Sale of Intangibles" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingGainSaleIntangiblesNormalTaxnumber optionalSr. 19, Code 3115 — "Accounting Gain on Sale of Intangibles" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingGainSaleAssetsTotalnumber optionalSr. 20, Code 3116 — "Accounting Gain on Sale of Assets" — total amount (column E).
range: 0–∞ -
accountingGainSaleAssetsFinalTaxnumber optionalSr. 20, Code 3116 — "Accounting Gain on Sale of Assets" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingGainSaleAssetsNormalTaxnumber optionalSr. 20, Code 3116 — "Accounting Gain on Sale of Assets" — amount subject to Normal Tax (column G).
range: 0–∞ -
otherRevenueOthersTotalnumber optionalSr. 21, Code 3128 — "Others" — total amount (column E).
range: 0–∞ -
otherRevenueOthersFinalTaxnumber optionalSr. 21, Code 3128 — "Others" — amount subject to Final Tax (column F).
range: 0–∞ -
otherRevenueOthersNormalTaxnumber optionalSr. 21, Code 3128 — "Others" — amount subject to Normal Tax (column G).
range: 0–∞ -
shareUntaxedIncomeAopTotalnumber optionalSr. 22, Code 3131 — "Share in untaxed Income from AOP" — total amount (column E).
range: 0–∞ -
shareUntaxedIncomeAopFinalTaxnumber optionalSr. 22, Code 3131 — "Share in untaxed Income from AOP" — amount subject to Final Tax (column F).
range: 0–∞ -
shareUntaxedIncomeAopNormalTaxnumber optionalSr. 22, Code 3131 — "Share in untaxed Income from AOP" — amount subject to Normal Tax (column G).
range: 0–∞ -
shareTaxedIncomeAopTotalnumber optionalSr. 23, Code 3141 — "Share in Taxed Income from AOP" — total amount (column E).
range: 0–∞ -
shareTaxedIncomeAopFinalTaxnumber optionalSr. 23, Code 3141 — "Share in Taxed Income from AOP" — amount subject to Final Tax (column F).
range: 0–∞ -
shareTaxedIncomeAopNormalTaxnumber optionalSr. 23, Code 3141 — "Share in Taxed Income from AOP" — amount subject to Normal Tax (column G).
range: 0–∞ -
managementAdminSellingFinancialExpensesTotalnumber optionalSr. 24, Code 3199 — "Management, Administrative, Selling & Financial Expenses [Sum of 25 to 44]" — total amount (column E).
range: 0–∞ -
managementAdminSellingFinancialExpensesFinalTaxnumber optionalSr. 24, Code 3199 — "Management, Administrative, Selling & Financial Expenses [Sum of 25 to 44]" — amount subject to Final Tax (column F).
range: 0–∞ -
managementAdminSellingFinancialExpensesNormalTaxnumber optionalSr. 24, Code 3199 — "Management, Administrative, Selling & Financial Expenses [Sum of 25 to 44]" — amount subject to Normal Tax (column G).
range: 0–∞ -
rentTotalnumber optionalSr. 25, Code 3151 — "Rent" — total amount (column E).
range: 0–∞ -
rentFinalTaxnumber optionalSr. 25, Code 3151 — "Rent" — amount subject to Final Tax (column F).
range: 0–∞ -
rentNormalTaxnumber optionalSr. 25, Code 3151 — "Rent" — amount subject to Normal Tax (column G).
range: 0–∞ -
ratesTaxesCessTotalnumber optionalSr. 26, Code 3152 — "Rates / Taxes / Cess" — total amount (column E).
range: 0–∞ -
ratesTaxesCessFinalTaxnumber optionalSr. 26, Code 3152 — "Rates / Taxes / Cess" — amount subject to Final Tax (column F).
range: 0–∞ -
ratesTaxesCessNormalTaxnumber optionalSr. 26, Code 3152 — "Rates / Taxes / Cess" — amount subject to Normal Tax (column G).
range: 0–∞ -
salariesWagesPerquisitesBenefitsTotalnumber optionalSr. 27, Code 3154 — "Salaries / Wages / Perquisites / Benefits" — total amount (column E).
range: 0–∞ -
salariesWagesPerquisitesBenefitsFinalTaxnumber optionalSr. 27, Code 3154 — "Salaries / Wages / Perquisites / Benefits" — amount subject to Final Tax (column F).
range: 0–∞ -
salariesWagesPerquisitesBenefitsNormalTaxnumber optionalSr. 27, Code 3154 — "Salaries / Wages / Perquisites / Benefits" — amount subject to Normal Tax (column G).
range: 0–∞ -
travelingConveyanceVehiclesTotalnumber optionalSr. 28, Code 3155 — "Traveling / Conveyance / Vehicles Running / Maintenance" — total amount (column E).
range: 0–∞ -
travelingConveyanceVehiclesFinalTaxnumber optionalSr. 28, Code 3155 — "Traveling / Conveyance / Vehicles Running / Maintenance" — amount subject to Final Tax (column F).
range: 0–∞ -
travelingConveyanceVehiclesNormalTaxnumber optionalSr. 28, Code 3155 — "Traveling / Conveyance / Vehicles Running / Maintenance" — amount subject to Normal Tax (column G).
range: 0–∞ -
electricityWaterGasTotalnumber optionalSr. 29, Code 3158 — "Electricity / Water / Gas" — total amount (column E).
range: 0–∞ -
electricityWaterGasFinalTaxnumber optionalSr. 29, Code 3158 — "Electricity / Water / Gas" — amount subject to Final Tax (column F).
range: 0–∞ -
electricityWaterGasNormalTaxnumber optionalSr. 29, Code 3158 — "Electricity / Water / Gas" — amount subject to Normal Tax (column G).
range: 0–∞ -
communicationTotalnumber optionalSr. 30, Code 3162 — "Communication" — total amount (column E).
range: 0–∞ -
communicationFinalTaxnumber optionalSr. 30, Code 3162 — "Communication" — amount subject to Final Tax (column F).
range: 0–∞ -
communicationNormalTaxnumber optionalSr. 30, Code 3162 — "Communication" — amount subject to Normal Tax (column G).
range: 0–∞ -
repairMaintenanceIndirectTotalnumber optionalSr. 31, Code 3165 — "Repair / Maintenance" — total amount (column E).
range: 0–∞ -
repairMaintenanceIndirectFinalTaxnumber optionalSr. 31, Code 3165 — "Repair / Maintenance" — amount subject to Final Tax (column F).
range: 0–∞ -
repairMaintenanceIndirectNormalTaxnumber optionalSr. 31, Code 3165 — "Repair / Maintenance" — amount subject to Normal Tax (column G).
range: 0–∞ -
stationeryPrintingPhotocopiesTotalnumber optionalSr. 32, Code 3166 — "Stationery / Printing / Photocopies / Office Supplies" — total amount (column E).
range: 0–∞ -
stationeryPrintingPhotocopiesFinalTaxnumber optionalSr. 32, Code 3166 — "Stationery / Printing / Photocopies / Office Supplies" — amount subject to Final Tax (column F).
range: 0–∞ -
stationeryPrintingPhotocopiesNormalTaxnumber optionalSr. 32, Code 3166 — "Stationery / Printing / Photocopies / Office Supplies" — amount subject to Normal Tax (column G).
range: 0–∞ -
advertisementPublicityPromotionTotalnumber optionalSr. 33, Code 3168 — "Advertisement / Publicity / Promotion" — total amount (column E).
range: 0–∞ -
advertisementPublicityPromotionFinalTaxnumber optionalSr. 33, Code 3168 — "Advertisement / Publicity / Promotion" — amount subject to Final Tax (column F).
range: 0–∞ -
advertisementPublicityPromotionNormalTaxnumber optionalSr. 33, Code 3168 — "Advertisement / Publicity / Promotion" — amount subject to Normal Tax (column G).
range: 0–∞ -
insuranceTotalnumber optionalSr. 34, Code 3170 — "Insurance" — total amount (column E).
range: 0–∞ -
insuranceFinalTaxnumber optionalSr. 34, Code 3170 — "Insurance" — amount subject to Final Tax (column F).
range: 0–∞ -
insuranceNormalTaxnumber optionalSr. 34, Code 3170 — "Insurance" — amount subject to Normal Tax (column G).
range: 0–∞ -
professionalChargesTotalnumber optionalSr. 35, Code 3171 — "Professional Charges" — total amount (column E).
range: 0–∞ -
professionalChargesFinalTaxnumber optionalSr. 35, Code 3171 — "Professional Charges" — amount subject to Final Tax (column F).
range: 0–∞ -
professionalChargesNormalTaxnumber optionalSr. 35, Code 3171 — "Professional Charges" — amount subject to Normal Tax (column G).
range: 0–∞ -
profitOnDebtFinancialChargesTotalnumber optionalSr. 36, Code 3172 — "Profit on Debt (Financial Charges / Markup / Interest)" — total amount (column E).
range: 0–∞ -
profitOnDebtFinancialChargesFinalTaxnumber optionalSr. 36, Code 3172 — "Profit on Debt (Financial Charges / Markup / Interest)" — amount subject to Final Tax (column F).
range: 0–∞ -
profitOnDebtFinancialChargesNormalTaxnumber optionalSr. 36, Code 3172 — "Profit on Debt (Financial Charges / Markup / Interest)" — amount subject to Normal Tax (column G).
range: 0–∞ -
brokerageCommissionTotalnumber optionalSr. 37, Code 3178 — "Brokerage / Commission" — total amount (column E).
range: 0–∞ -
brokerageCommissionFinalTaxnumber optionalSr. 37, Code 3178 — "Brokerage / Commission" — amount subject to Final Tax (column F).
range: 0–∞ -
brokerageCommissionNormalTaxnumber optionalSr. 37, Code 3178 — "Brokerage / Commission" — amount subject to Normal Tax (column G).
range: 0–∞ -
irrecoverableDebtsWrittenOffTotalnumber optionalSr. 38, Code 3186 — "Irrecoverable Debts written off" — total amount (column E).
range: 0–∞ -
irrecoverableDebtsWrittenOffFinalTaxnumber optionalSr. 38, Code 3186 — "Irrecoverable Debts written off" — amount subject to Final Tax (column F).
range: 0–∞ -
irrecoverableDebtsWrittenOffNormalTaxnumber optionalSr. 38, Code 3186 — "Irrecoverable Debts written off" — amount subject to Normal Tax (column G).
range: 0–∞ -
obsoleteStocksStoresSparesWrittenOffTotalnumber optionalSr. 39, Code 3187 — "Obsolete Stocks / Stores / Spares / Fixed Assets written off" — total amount (column E).
range: 0–∞ -
obsoleteStocksStoresSparesWrittenOffFinalTaxnumber optionalSr. 39, Code 3187 — "Obsolete Stocks / Stores / Spares / Fixed Assets written off" — amount subject to Final Tax (column F).
range: 0–∞ -
obsoleteStocksStoresSparesWrittenOffNormalTaxnumber optionalSr. 39, Code 3187 — "Obsolete Stocks / Stores / Spares / Fixed Assets written off" — amount subject to Normal Tax (column G).
range: 0–∞ -
otherIndirectExpensesTotalnumber optionalSr. 40, Code 3180 — "Other Indirect Expenses" — total amount (column E).
range: 0–∞ -
otherIndirectExpensesFinalTaxnumber optionalSr. 40, Code 3180 — "Other Indirect Expenses" — amount subject to Final Tax (column F).
range: 0–∞ -
otherIndirectExpensesNormalTaxnumber optionalSr. 40, Code 3180 — "Other Indirect Expenses" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingLossSaleIntangiblesTotalnumber optionalSr. 41, Code 3195 — "Accounting (Loss) on Sale of Intangibles" — total amount (column E).
range: 0–∞ -
accountingLossSaleIntangiblesFinalTaxnumber optionalSr. 41, Code 3195 — "Accounting (Loss) on Sale of Intangibles" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingLossSaleIntangiblesNormalTaxnumber optionalSr. 41, Code 3195 — "Accounting (Loss) on Sale of Intangibles" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingLossSaleAssetsTotalnumber optionalSr. 42, Code 3196 — "Accounting (Loss) on Sale of Assets" — total amount (column E).
range: 0–∞ -
accountingLossSaleAssetsFinalTaxnumber optionalSr. 42, Code 3196 — "Accounting (Loss) on Sale of Assets" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingLossSaleAssetsNormalTaxnumber optionalSr. 42, Code 3196 — "Accounting (Loss) on Sale of Assets" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingAmortizationIndirectTotalnumber optionalSr. 43, Code 3197 — "Accounting Amortization" — total amount (column E).
range: 0–∞ -
accountingAmortizationIndirectFinalTaxnumber optionalSr. 43, Code 3197 — "Accounting Amortization" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingAmortizationIndirectNormalTaxnumber optionalSr. 43, Code 3197 — "Accounting Amortization" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingDepreciationIndirectTotalnumber optionalSr. 44, Code 3198 — "Accounting Depreciation" — total amount (column E).
range: 0–∞ -
accountingDepreciationIndirectFinalTaxnumber optionalSr. 44, Code 3198 — "Accounting Depreciation" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingDepreciationIndirectNormalTaxnumber optionalSr. 44, Code 3198 — "Accounting Depreciation" — amount subject to Normal Tax (column G).
range: 0–∞ -
accountingProfitLossTotalnumber optionalSr. 45, Code 3200 — "Accounting Profit / (Loss) [17+18-24]" — total amount (column E).
range: 0–∞ -
accountingProfitLossFinalTaxnumber optionalSr. 45, Code 3200 — "Accounting Profit / (Loss) [17+18-24]" — amount subject to Final Tax (column F).
range: 0–∞ -
accountingProfitLossNormalTaxnumber optionalSr. 45, Code 3200 — "Accounting Profit / (Loss) [17+18-24]" — amount subject to Normal Tax (column G).
range: 0–∞ -
incomeLossBeforeAdjustmentnumber optionalSr. 46, Code 3270 — "Income / (Loss) from Business before adjustment of Admissible Depreciation / Initial Allowance / Amortization for current / previous years" — total amount (column E). This cell falls outside this worksheet's own dataValidations sqref ("E9:G53 G5 G59 E63:E67") — every sibling row from Sr. 47 onward is covered, but Sr. 46 itself is not, consistent with this being the current year's own business result, which (unlike the prior years' already-realized losses being carried forward) can genuinely be negative. No minimum is modelled for this field on that basis.
-
unadjustedLoss2016number optionalSr. 47, Code 327016 — "Unadjusted (Loss) from Business for 2016" — total amount (column E).
range: 0–∞ -
unadjustedLoss2017number optionalSr. 48, Code 327017 — "Unadjusted (Loss) from Business for 2017" — total amount (column E).
range: 0–∞ -
unadjustedLoss2019number optionalSr. 50, Code 327019 — "Unadjusted (Loss) from Business for 2019" — total amount (column E).
range: 0–∞ -
unadjustedLoss2020number optionalSr. 51, Code 327020 — "Unadjusted (Loss) from Business for 2020" — total amount (column E).
range: 0–∞ -
unadjustedLoss2021number optionalSr. 52, Code 327021 — "Unadjusted (Loss) from Business for 2021" — total amount (column E).
range: 0–∞ -
totalAssetsnumber optionalSr. 53, Code 3349 — "Total Assets [Sum of 54 to 59]" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
landnumber optionalSr. 54, Code 3301 — "Land" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
buildingAllTypesnumber optionalSr. 55, Code 3302 — "Building (all types)" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
plantMachineryEquipmentFurniturenumber optionalSr. 56, Code 3303 — "Plant / Machinery / Equipment / Furniture (including fittings)" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
advancesDepositsPrepaymentsTradeDebtorsnumber optionalSr. 57, Code 3312 — "Advances / Deposits / Prepayments/ Trade Debtors / Receivables" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
stocksStoresSparesAssetnumber optionalSr. 58, Code 3315 — "Stocks / Stores / Spares" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
cashCashEquivalentsnumber optionalSr. 59, Code 3319 — "Cash / Cash Equivalents" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
totalEquityLiabilitiesnumber optionalSr. 60, Code 3399 — "Total Equity / Liabilities [Sum of 61 to 63]" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
capitalnumber optionalSr. 61, Code 3352 — "Capital" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
borrowingsDebtLoannumber optionalSr. 62, Code 3371 — "Borrowings / Debt / Loan" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above. -
advancesDepositsAccruedExpensesTradeCreditorsnumber optionalSr. 63, Code 3384 — "Advances / Deposits / Accrued Expenses/ Trade Creditors / Payables" — amount (column G). This worksheet's own
definition gives columns E, F, and G an identical width and style, matching the three-column Total/Final-Tax/Normal-Tax layout of the P&L section above, but a raw-XML-observed collapses columns E and F into a single merged block spanning all eleven Statement of Affairs rows (69-79) — a genuine, disclosed source-document artifact, not a per-row entry field. Column G is the only column in this row range left unmerged with an individually styled cell per row, and is modelled here as this section's single per-line "Amount" field. No dataValidation rule covers this row range at all (this worksheet's own single dataValidation sqref, "E9:G53 G5 G59 E63:E67", stops at row 67); this field is therefore modelled with no minimum, unlike every P&L amount field above.
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-31
Why this schema and why now (GOV-5752, "GovSchema Standard Research")
This cycle re-scanned CATALOG.md fresh first. The immediately preceding GOV-5745 cycle's own pk/fbr/annexure-a-adjustable-tax v1.0.0 (and its own siblings, IT-1B and IT-2) had all explicitly named "Annexes B through F" as this same nine-worksheet workbook's disclosed, open backlog, and the 16-jurisdiction "5 of 6 verticals" list had already been re-screened a dead end across three consecutive prior cycles (GOV-5731, GOV-5738, GOV-5745) with no new lead — so this cycle picked up Annex-B, the next of the five remaining annexes, rather than re-screening that same list a fourth time.
Sources examined
- Document
(id, version):pk/fbr/annexure-b-manufacturing-trading-profit-loss-account/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 plaincurl: HTTP 200, size 104,097 bytes, sha2564e2f9874e9a910713fae9a182fc5c5a578bcfd2649d2031f8144c8b5fba96b9f— byte-identical to every prior cycle's own recorded figures for this same workbook (GOV-3104, GOV-5731, GOV-5738, GOV-5745), confirming no revision. No login/CAPTCHA gate. - Native Office Open XML
.xlsx(a zip archive of XML parts), not a PDF. Nounzip/pip/openpyxl available in this environment; unzipped directly with Python's built-inzipfilemodule, and the target worksheet'ssheetDatarows,sharedStrings.xmlstring table,mergeCells, anddataValidationsblock were parsed by hand from the raw XML. - Confirmed via
xl/workbook.xml's own<sheets>element thatAnnex-B(sheetId="13") maps tor:id="rId4", whichxl/_rels/workbook.xml.relsresolves toxl/worksheets/sheet4.xml— the worksheet parsed for this document. The workbook's full 9-sheet inventory (IND (PROP-CG-OS),IND (BUS PLUS),Annex-AthroughAnnex-F,Wealth Statement) was re-confirmed identical to every prior cycle's own finding.
- Direct
Scope decisions
Annex-B ("Manufacturing / Trading / Profit & Loss Account (including Revenues subject to Final / Fixed Tax)") is a business income-statement schedule for an individual taxpayer's business. The source form's own instruction directly beneath the title states "Separate form should be filled for each business" — i.e. one Annex-B instance per business. The worksheet is printed across two pages that repeat the identification header (Name, CNIC, Tax Year, NTN — all formula-linked to the sibling 'IND (BUS PLUS)' worksheet, confirming this Annex is filed alongside Form IT-2, not standalone) and contains three logical sections:
- Manufacturing / Trading Profit & Loss Account, Sr. 1–45 (rows 9–53). Each line splits into three amount columns: Total Amount (E), Amount Subject to Final Tax (F), Amount Subject to Normal Tax (G). This worksheet's own single
dataValidationrule (type="whole",operator="greaterThanOrEqual",formula1=0,sqref="E9:G53 G5 G59 E63:E67") covers this entire row range uniformly, including every computed subtotal row itself — Sr. 4 ("Cost of Sales / Services [(sum of 5 to 15)-16]"), Sr. 17 ("Gross Profit / (Loss) [1-4]"), Sr. 18 ("Other Revenues [Sum of 19 to 22]"), Sr. 24 ("Management, Administrative, Selling & Financial Expenses [Sum of 25 to 44]"), and Sr. 45 ("Accounting Profit / (Loss) [17+18-24]"). This is the same materially different validation shape already disclosed for this workbook's ownAnnex-Asibling, and a genuine, observed structural difference from theIT-1B/IT-2/Wealth Statementsiblings, where the equivalent headline-total rows were confirmed, by the absence of any numeric-entry validation rule, to be computed subtotals and excluded from those documents on that basis. Because every P&L row here carries the identical constraint as its own components, this version models all 45 lines as individually reportable fields — 135 fields total (45 × 3 amount columns) — following the same convention already established for Annex-A. One label/item-count mismatch was found in the source and is disclosed, not corrected: Sr. 18's own printed label reads "Other Revenues [Sum of 19 to 22]", but the actual sub-items beneath it run Sr. 19 through Sr. 23 (five items, not four) — "Share in Taxed Income from AOP" (Sr. 23) is present in the sheet's own row data but not reflected in the summary label's own range. Modelled as printed; not corrected. - Unadjusted business-loss carry-forward, Sr. 46–52 (rows 62–67), single Total-Amount column (E) only — no Final/Normal Tax split. A genuine Sr.-numbering skip was found and is disclosed: Sr. 49 (which by sequence would be "Unadjusted (Loss) from Business for 2018") is entirely absent between Sr. 48 ("...for 2017") and Sr. 50 ("...for 2019") — the same "later insertion/removal, not renumbered" pattern already disclosed in the Wealth Statement's own roman-numeral Inflows skip and in Annex-A's own Sr. 7 skip. The same
dataValidationrule's ownE63:E67clause covers only Sr. 47–52 (rows 63–67), deliberately excluding Sr. 46 itself (row 62, "Income / (Loss) from Business before adjustment of Admissible Depreciation / Initial Allowance / Amortization for current / previous years") — consistent with Sr. 46 being the current year's own business result, which (unlike the already-realized prior-year losses in Sr. 47–52, each carried forward and reported as a positive magnitude) can genuinely be negative.incomeLossBeforeAdjustmentis modelled with nominimum; the fiveunadjustedLoss20xxfields each carryminimum: 0. - Statement of Affairs / Balance Sheet, Sr. 53–63 (rows 69–79) — a business-specific balance sheet (Total Assets/Liabilities and named asset/liability categories), distinct from the personal net-worth disclosure already modelled in
pk/fbr/wealth-statement. This section carries nodataValidationcoverage at all (the sheet's own single rule stops at row 67). A genuine, disclosed source-document artifact was found in the rawmergeCellsblock:<mergeCell ref="E69:F79"/>merges columns E and F into a single cell spanning all eleven rows of this section, even though the sheet's own<cols>definition gives columns E, F, and G an identical width and style matching the P&L section's three-column layout above. Column G is left unmerged, with its own individually styled (but unvalidated) cell in every row of this range, and is modelled here as this section's single per-line "Amount" field (11 fields, one per Sr. 53–63 line) — the E:F merge is disclosed rather than silently modelled as a second and third amount column a filer could never actually populate per line. Nominimumis modelled for any of these eleven fields, consistent with the section's own total absence of adataValidationrule. - Header. Like Annex-A (and unlike IT-1B/IT-2/Wealth Statement), this worksheet carries no separate Address field. Name (C4/C58) and CNIC (C5/C59) are formula cells (
=IF('[2]IND (BUS PLUS)'!$C$3="","",...)) linked to the sibling'IND (BUS PLUS)'worksheet, not direct-entry cells — confirming this Annex is filed alongside Form IT-2. A genuine internal labelling inconsistency was found and is disclosed, not resolved: the page-1 header's own NTN label (row 5, shared-string index 6) reads unstarred "NTN", while the page-2 continuation header's own NTN label (row 59, shared-string index 36) for the identical field reads starred **"NTN\*"**.taxpayerNtnis modelled as optional, matching the page-1 label; the page-2 asterisk is quoted verbatim in the field's own description. Both NTN cells (G5, G59) carry thesqref's owntype="whole" ≥0validation. Neither the CNIC cell (C4/C5/C58/C59) carries its owndataValidationrule on this sheet — the same 13-digit CNIC pattern already established across every other worksheet in this workbook is applied here by convention, disclosed as an assumption rather than a rule confirmed on this specific sheet. Row 54's own bare "Signature:" footer carries no accompanying declaration paragraph and no Date cell at all (unlike Annex-A's own "Signature: \_\_\_ Date: \_\_\_" footer), so nodeclarationDatefield and nodocuments[]attestation entry are modelled for this document.
Conformance fixtures (Phase 3)
7 fixtures committed under conformance/pk/fbr/annexure-b-manufacturing-trading-profit-loss-account/1.0.0/: 2 valid scenarios plus 5 mutation-control fixtures, each derived from a valid fixture 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-trading-business-simple.json(a small trading business — revenue, cost of sales, gross profit, a handful of indirect expenses, accounting profit, no prior-year unadjusted losses, and a small Statement of Affairs) — 0 errors.valid-manufacturing-business-with-carryforward-losses.json(a larger manufacturing business reporting Final-Tax-subject revenue alongside Normal-Tax-subject revenue, a fuller cost-of-sales and indirect-expense breakdown, two prior-year unadjusted losses (2019, 2020), and a fuller Statement of Affairs) — 0 errors.mutation-control-missing-required-tax-year.json(dropstaxYear) — exactly 1 error.mutation-control-missing-required-cnic.json(dropstaxpayerCnic) — exactly 1 error.mutation-control-invalid-cnic-pattern.json(setstaxpayerCnicto an 11-digit value) — exactly 1 error.mutation-control-negative-pnl-amount.json(setsnetRevenueTotalto a negative amount, violatingminimum: 0) — exactly 1 error.mutation-control-negative-unadjusted-loss.json(setsunadjustedLoss2020to a negative amount, violatingminimum: 0) — exactly 1 error.
Structural validation
node tools/validate.mjs— 697/697 (full registry, this document included).node tools/validate-ajv.mjs(ajv 2020-12 againstspec/v0.3) — 697/697.node tools/verify-sources.mjs registry/pk/fbr/annexure-b-manufacturing-trading-profit-loss-account/1.0.0— 1 directory, 3 URLs checked, 0 warnings, 0 failures.npm run build-indexre-run intools/govschema-client/to regenerateregistry-index.jsonwith this document included (697 entries).
Maturity
structural-reference: the source workbook's own printed "Annex-B" (Manufacturing / Trading / Profit & Loss Account) structure — identification block, all 45 Profit & Loss lines, the prior-year unadjusted-loss carry-forward section, and the business Statement of Affairs / Balance Sheet — 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.0draftlatestthis pagehas verification recordschema.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.