Registry entry
Switzerland (Canton Zürich) Agricultural/Forestry Income Questionnaire (Hilfsblatt B Fragebogen für Land- und Forstwirtschaft)
The Canton of Zürich's companion schedule to the personal income and wealth tax return for natural persons (ch/zh/sta/steuererklaerung-natuerliche-personen), used by a taxpayer with agricultural or forestry income who does not qualify for, or does not elect, the sibling simplified schedule, ch/zh/sta/hilfsblatt-g (Hilfsblatt G, Form 331), which is limited to smaller operations. This form itself forks into two mutually exclusive computation paths, selected by the filer's own bookkeeping method and modelled here via a single required 'berichtsart' discriminator field: 'Landwirte mit Buchhaltung' (farms with full double-entry bookkeeping, completing Ziffern 1 'Ermittlung des Einkommens nach Buchhaltung', a closing-statement-based income computation with statutory add-backs and deductions, and 2 'Nachführung der Abschreibungen auf Liegenschaften', an optional property depreciation-tracking table) or 'Landwirte mit Aufzeichnungen' (farms with simplified cash-register/bank-account records and summaries rather than a closing balance sheet, completing Ziffer 3 'Ermittlung des Einkommens aufgrund von Aufzeichnungen/Aufstellungen', comprising a business net-worth statement (3.1-3.3 Aktiven/Fremdkapital/Differenz), a cumulative-depreciation/acquisition-cost table (3.4), a cash-basis income computation (3.5), a cash-basis expense computation (3.6), and the resulting net income (3.7)). Both paths converge on two further sections completed regardless of bookkeeping method: Ziffer 4 'Besondere Leistungen des Bundes und der Kantone' (an itemized breakdown of federal/cantonal direct-payment subsidies) and Ziffer 5 'Angaben über den Betrieb' (operated land areas, land use by crop category, livestock counts, milk quota, special operating branches, production zone, real-estate transactions, and any secondary trade). It does NOT model: the Ziffer 3.1/3.2 business net-worth statement's own itemized asset/liability rows, an unbounded/multi-column cross-tabulation collapsed to two free-text summary fields per this registry's established treatment (see e.g. ch/zh/sta/hilfsblatt-g); the Ziffer 3.4 depreciation/acquisition-cost table's own four named-category rows, similarly collapsed to one free-text summary field, with its own bounded 'Total' row modelled individually; the Ziffer 5.1 land-use table's own itemized, filer-named municipality/canton/country rows, collapsed to one free-text summary field, while its bounded 'Total' row is modelled individually; or Form 328/329 (Hilfsblatt A, the sibling non-agricultural self-employment worksheets, ch/zh/sta/hilfsblatt-a-vereinfachte-buchfuehrung and ch/zh/sta/hilfsblatt-a-kaufmaennische-buchfuehrung), which this form's own Ziffer 5.6 cross-references but does not itself model. It does not submit the return; the live source (zh.ch / the ZHprivateTax online filing portal) is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Government of Switzerland, the Canton of Zürich, or its Kantonales Steueramt.
Registry entry
ch/zh/sta/hilfsblatt-b
Machine access
- Schema document
registry/ch/zh/sta/hilfsblatt-b/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ch/zh/sta/hilfsblatt-b/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
136 fields across 11 steps, 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.
Personalien und Ermittlungsart (household header and reporting method)
-
jahrinteger requiredThe tax year this worksheet is filed for, entered by the filer since this form is hosted at a year-independent URL and carries no tax year printed on its own cover, the same convention as this form's sibling schedules.
range: 2000–2100 -
ahvn13RemainingDigitsstring requiredThe remaining 10 digits of the taxpayer's 13-digit Swiss social security number (AHVN13); the first three digits, 756 (Switzerland's fixed country prefix), are pre-printed in the form's own boxes.
patternclassification: sensitive-pii -
gemeindestring requiredThe taxpayer's municipality of residence (Gemeinde) within Canton Zürich.
length: 0–100 -
namestring requiredThe taxpayer's surname.
length: 0–100classification: pii -
vornamestring requiredThe taxpayer's first name(s).
length: 0–200classification: pii -
berichtsartstring requiredThe bookkeeping method the filer uses, which determines which of this form's two mutually exclusive computation paths is completed, per the form's own printed routing instruction: 'Landwirte mit Buchhaltung: Ziffern 1, 2, 4 und 5' (full double-entry farm bookkeeping with a closing balance sheet/income statement) or 'Landwirte mit Aufzeichnungen: Ziffern 3, 4 und 5' (simplified cash-register/bank-statement-based records and summaries, without a closing balance sheet). The paper form prints no explicit checkbox for this choice — it is structurally implied by which of the two Ziffer-numbered sections the filer actually completes. This document models that implicit branch as an explicit required selector field, since GovSchema's flat field model needs an explicit discriminator field for the requiredWhen conditions gating each path's own fields; see VERIFICATION.md for this disclosed judgment call.
enum: mitBuchhaltung | mitAufzeichnungen
1. Ermittlung des Einkommens nach Buchhaltung (Buchhaltung path — income computation)
-
abschlussdatumdateThe closing date of the attached financial statements (Beilagen: unterzeichnete Bilanz, Erfolgsrechnung, Privat- und Kapitalkonto oder entsprechende Auszüge darüber).
-
reingewinnBzwVerlustnumberNet profit, or net loss (entered as a negative figure), per the balance of the attached income statement (Erfolgsrechnung).
classification: financial -
aufrechnungGehaltPrivatbezuegeZinsgutschriftennumberAdd-back for salary, private drawings, and interest credits booked to the farm operator, to the extent not already excluded under tax rules.
classification: financial -
aufrechnungSteuernnumberAdd-back for cantonal, municipal, and church taxes, direct federal tax, and real-estate capital gains tax booked as a business expense.
classification: financial -
aufrechnungNichtBegruendeteAbschreibungenRueckstellungennumberAdd-back for depreciation and provisions booked without a sound business justification.
classification: financial -
aufrechnungArbeitnehmeranteilBeruflicheVorsorgenumberAdd-back for the employee-side share of occupational-pension (2nd pillar) contributions booked for the farm operator.
classification: financial -
aufrechnungSaeule3aUndPrivateVersicherungennumberAdd-back for tied private-pension (Säule 3a) contributions and private insurance premiums for the farm operator booked as a business expense.
classification: financial -
aufrechnungPrivatanteilenumberAdd-back for the private-use share of vehicle use, telephone, electricity, and heating, aggregated into one line here (contrast the Ziffer-3.5.16-19 path, which itemizes the equivalent private-use shares by category for filers reporting mit Aufzeichnungen).
classification: financial -
aufrechnungBuchgewinneHoeherbewertungnumberAdd-back for book gains from the upward revaluation of assets.
classification: financial -
aufrechnungNaturalbezuegenumberAdd-back for the imputed value of goods withdrawn from the farm's own production for the household's/staff's own consumption, as a single aggregate line (contrast the Ziffer-3.5.8-11 path, which breaks the equivalent Naturalbezüge add-back down by age bracket — Erwachsene/Kinder — for filers reporting mit Aufzeichnungen).
classification: financial -
aufrechnungMietwertBetriebsleiterwohnungnumberAdd-back for the imputed rental value of the farm operator's own dwelling on the business premises.
classification: financial -
aufrechnungAndereGeschaeftsertraegenumberAdd-back for other business income not credited in the income statement.
classification: financial -
aufrechnungAndereNichtZulaessigeBelastungennumberAdd-back for other charges booked that are not tax-deductible.
classification: financial -
totalZifferEinsEinsUndEinsZweinumberSubtotal: reingewinnBzwVerlust plus every Ziffer 1.2 add-back (aufrechnungGehaltPrivatbezuegeZinsgutschriften through aufrechnungAndereNichtZulaessigeBelastungen).
classification: financial -
abzugBeitraegeAhvIvEonumberDeduction for the farm operator's own AHV/IV/EO compensation-fund contributions.
classification: financial -
abzugArbeitgeberanteilBeruflicheVorsorgenumberDeduction for the employer-side share of occupational-pension (2nd pillar) contributions.
classification: financial -
abzugNettoertraegeGeschaeftswertschriftennumberDeduction for net income from business securities and holdings, since that income is instead declared on the sibling registry document ch/zh/sta/wertschriften-und-guthabenverzeichnis and marked there with a 'G' (Geschäftsvermögen) flag, per this line's own printed instruction ('im Wertschriftenverzeichnis mit «G» kennzeichnen').
classification: financial -
abzugAnderenumberAny other deduction not separately itemized above.
classification: financial -
totalAbzuegenumberSubtotal: abzugBeitraegeAhvIvEo plus abzugArbeitgeberanteilBeruflicheVorsorge plus abzugNettoertraegeGeschaeftswertschriften plus abzugAndere.
classification: financial -
einkommenNachBuchhaltungnumberNet farm/forestry income under the Buchhaltung (bookkeeping) path: totalZifferEinsEinsUndEinsZwei minus totalAbzuege. Transfers to the main return's own Ziffer 2 (self-employment income, ch/zh/sta/steuererklaerung-natuerliche-personen), per this line's own printed transfer caption.
classification: financial
2. Nachführung der Abschreibungen auf Liegenschaften (Buchhaltung path — optional property depreciation table)
-
liegenschaftenAbschreibungenSummarystringFree-text summary of the property depreciation-tracking table: for each property (Bezeichnung der Liegenschaft), the cumulative depreciation through the prior year-end (2.1 Total Abschreibungen bis Ende Vorjahr), the current tax year's booked depreciation (2.2 Abschreibungen Steuerjahr), and the resulting cumulative depreciation through the current year-end (2.3 Total Abschreibungen bis Jahresende, equal to 2.1 plus 2.2). Collapsed to one free-text field per this registry's established treatment of unbounded, filer-named repeating rows (see e.g. ch/zh/sta/hilfsblatt-g's own maschinenPflanzungenDepreciationSummary). Per the form's own instruction, this section is only completed 'wenn in der Buchhaltung die Anlagekosten oder die nachgeführten Abschreibungen nicht ersichtlich sind' (when the bookkeeping itself does not already show acquisition cost or cumulative depreciation) — it is therefore optional even for a filer on the Buchhaltung path, not modelled with requiredWhen.
classification: financial -
persoenlicheBeitraegeBetriebsinhabernumberSupplementary disclosure, for AHV/IV/EO contribution-assessment purposes, of the farm operator's own personal contributions as booked. This caption and box are printed twice on the form, once at the foot of each computation path's own section (Ziffer 2.4 for a filer on the Buchhaltung path, and directly beneath Ziffer 3.7.3 for a filer on the Aufzeichnungen path) — modelled here as one shared field applicable regardless of berichtsart, rather than duplicated per path, since it is the identical disclosure request in both places.
classification: financial
3.1-3.3 Aktiven, Fremdkapital, Differenz (Aufzeichnungen path — business net-worth statement)
-
aktivenSummarystringFree-text summary of the itemized asset rows of the business net-worth statement (Aufstellung des Betriebsvermögens): Kasse, Post/Bank, Tiere, Vorräte, Maschinen/Fahrzeuge/Geräte, Obst/Beeren/Reben, Liegenschaft (Landgut gesamthaft), Gebäude/mechanische Einrichtungen, Pflanzen/Meliorationen, and Boden — each with opening book value (Buchwert Jahresanfang), additions (Zugänge, +), disposals (Abgänge, –), depreciation/value adjustment (Abschreibung/Wertberichtigung), and closing book value (Buchwert Jahresende). Collapsed to one free-text field per this registry's established treatment of multi-column cross-tabulated tables (see e.g. ch/zh/sta/hilfsblatt-g's own depreciation-table summaries); the table's own bounded 'Total 1' row is instead modelled individually as totalAktivenJahresanfang and totalAktivenJahresende.
classification: financial -
totalAktivenJahresanfangnumberTotal business assets at the start of the tax year, the opening-book-value column of aktivenSummary's own bounded 'Total 1' row.
classification: financial -
totalAktivenJahresendenumberTotal business assets at the end of the tax year, the closing-book-value column of aktivenSummary's own bounded 'Total 1' row.
classification: financial -
fremdkapitalSummarystringFree-text summary of the itemized liability rows of the same business net-worth statement: Bankschulden, Andere Darlehen, and Investitionskredite, each with opening balance, additions, and disposals/repayments. Collapsed to one free-text field for the same reason as aktivenSummary; the table's own bounded 'Total 2' row is instead modelled individually as totalFremdkapitalJahresanfang and totalFremdkapitalJahresende.
classification: financial -
totalFremdkapitalJahresanfangnumberTotal business liabilities at the start of the tax year, the opening-balance column of fremdkapitalSummary's own bounded 'Total 2' row.
classification: financial -
totalFremdkapitalJahresendenumberTotal business liabilities at the end of the tax year, the closing-balance column of fremdkapitalSummary's own bounded 'Total 2' row.
classification: financial -
differenzJahresanfangnumberBusiness net worth (Eigenkapital) at the start of the tax year: totalAktivenJahresanfang minus totalFremdkapitalJahresanfang. The form's own single 'Differenz' row carries the same Jahresanfang/Jahresende column pair as the Aktiven/Fremdkapital rows above it; this cycle reads the row as reporting both points in time rather than a single value, a disclosed judgment call absent a worked specimen (see VERIFICATION.md).
classification: financial -
differenzJahresendenumberBusiness net worth (Eigenkapital) at the end of the tax year: totalAktivenJahresende minus totalFremdkapitalJahresende. See differenzJahresanfang for the disclosed reading of this row's own column structure.
classification: financial
3.4 Ermittlung der gesamten vorgenommenen Abschreibungen und der Anlagekosten (Aufzeichnungen path)
-
abschreibungenUndAnlagekostenSummarystringFree-text summary of the itemized rows of the cumulative-depreciation/acquisition-cost table: Liegenschaft (Landgut gesamthaft), Gebäude/mechanische Einrichtungen, Pflanzen/Meliorationen, and Boden (Wertberichtigung) — each with cumulative depreciation through the start of the year (A, bis Jahresanfang), the current tax year's depreciation (B, Steuerjahr), cumulative depreciation through year-end (C = A + B, bis Jahresende), closing book value (D, Buchwert am Jahresende), and closing acquisition cost (E = C + D, Anlagekosten am Jahresende). Collapsed to one free-text field for the same reason as aktivenSummary; the table's own bounded 'Total' row (3.4.5) is instead modelled individually.
classification: financial -
totalAbschreibungenBisJahresanfangnumberTotal cumulative depreciation across all four categories, through the start of the tax year (column A of abschreibungenUndAnlagekostenSummary's own bounded 'Total' row).
classification: financial -
totalAbschreibungenSteuerjahrnumberTotal depreciation booked during the current tax year across all four categories (column B).
classification: financial -
totalAbschreibungenBisJahresendenumberTotal cumulative depreciation through the end of the tax year: totalAbschreibungenBisJahresanfang plus totalAbschreibungenSteuerjahr (column C, per the column's own printed formula).
classification: financial -
totalBuchwertJahresendeAnlagekostennumberTotal closing book value across all four categories at the end of the tax year (column D).
classification: financial -
totalAnlagekostenJahresendenumberTotal closing acquisition cost across all four categories at the end of the tax year: totalAbschreibungenBisJahresende plus totalBuchwertJahresendeAnlagekosten (column E, per the column's own printed formula).
classification: financial
3.5 Ermittlung der Betriebseinkünfte (Aufzeichnungen path — cash-basis income computation)
-
einnahmenKassenumberTotal cash-register receipts for the year.
classification: financial -
einnahmenPostBanknumberTotal postal/bank account receipts for the year.
classification: financial -
abzueglichPrivateinlagennumberPrivate capital contributions into the business, included in the receipts above but deducted here since they are not business income.
classification: financial -
abzueglichSchuldenerhoehungennumberIncreases in business debt (new borrowing), included in the receipts above but deducted here since they are not business income.
classification: financial -
abzueglichBezuegeBetrieblicheGeldkontinumberWithdrawals from other business cash accounts (inter-account transfers), included in the receipts above but deducted here since they are not new business income.
classification: financial -
abzueglichLiegenschaftenverkaeufenumberProceeds from real-estate sales, included in the receipts above but deducted here since real-estate sale proceeds are not ordinary business income (see also Ziffer 5.5's own Liegenschaftenkäufe-und-verkäufe disclosure).
classification: financial -
betriebseinnahmennumberActual business receipts on a cash basis: einnahmenKasse plus einnahmenPostBank, minus abzueglichPrivateinlagen, abzueglichSchuldenerhoehungen, abzueglichBezuegeBetrieblicheGeldkonti, and abzueglichLiegenschaftenverkaeufe.
classification: financial -
naturalbezuegeErwachseneAufzeichnungennumberImputed value of goods withdrawn from the farm's own production for adult household/staff members' own consumption, at the standard rate of CHF 960 per adult per year (or a lower rate the filer may substitute, per the same Merkblatt NL 1/2007 rate table cited in ch/zh/sta/hilfsblatt-g's own naturalbezuegeErwachsene field).
classification: financial -
naturalbezuegeKinderBis6JahreAufzeichnungennumberSame as naturalbezuegeErwachseneAufzeichnungen, for children up to age 6, at the standard rate of CHF 240 per child per year.
classification: financial -
naturalbezuegeKinder6Bis13JahreAufzeichnungennumberSame as naturalbezuegeErwachseneAufzeichnungen, for children aged 6 to 13, at the standard rate of CHF 480 per child per year.
classification: financial -
naturalbezuegeKinder13Bis18JahreAufzeichnungennumberSame as naturalbezuegeErwachseneAufzeichnungen, for children aged 13 to 18, at the standard rate of CHF 720 per child per year.
classification: financial -
kaesereibezuegeAufzeichnungennumberImputed value of dairy/cheese-making withdrawals, completed only when milk proceeds are booked net.
classification: financial -
mietwertBetriebsleiterwohnungAufzeichnungennumberImputed rental value of the farm operator's own dwelling on the business premises (printed on page 3, immediately after the page-break carry-forward mark at Ziffer 3.5.13/3.5.14, which this document does not model separately since it introduces no new information beyond continuing the running Zwischentotal onto the next page).
classification: financial -
privatanteilAutoAufzeichnungennumberPrivate-use share of vehicle costs added back as income.
classification: financial -
privatanteilVersicherungenAufzeichnungennumberPrivate-use share of insurance premiums added back as income.
classification: financial -
privatanteilHeizungStromTelefonTvAufzeichnungennumberPrivate-use share of heating, electricity, telephone, and television costs added back as income.
classification: financial -
privatanteilAndereAufzeichnungennumberPrivate-use share of any other business expense added back as income, e.g. domestic-staff wages, per the form's own example.
classification: financial -
andereGeschaeftsertraegeAufzeichnungennumberOther business income not captured in the lines above, per a separate itemized statement.
classification: financial -
zwischentotalNachPrivatanteilennumberRunning subtotal of Betriebseinkünfte after the private-use add-backs: betriebseinnahmen plus naturalbezuegeErwachseneAufzeichnungen, naturalbezuegeKinderBis6JahreAufzeichnungen, naturalbezuegeKinder6Bis13JahreAufzeichnungen, naturalbezuegeKinder13Bis18JahreAufzeichnungen, kaesereibezuegeAufzeichnungen, mietwertBetriebsleiterwohnungAufzeichnungen, privatanteilAutoAufzeichnungen, privatanteilVersicherungenAufzeichnungen, privatanteilHeizungStromTelefonTvAufzeichnungen, privatanteilAndereAufzeichnungen, and andereGeschaeftsertraegeAufzeichnungen.
classification: financial -
bestandJahresendeTiereAufzeichnungennumberClosing (year-end) inventory value of livestock.
classification: financial -
bestandJahresendeVorraeteAufzeichnungennumberClosing (year-end) inventory value of stored produce/supplies.
classification: financial -
zwischentotalInklBestandJahresendeAufzeichnungennumberRunning subtotal: zwischentotalNachPrivatanteilen plus bestandJahresendeTiereAufzeichnungen plus bestandJahresendeVorraeteAufzeichnungen — closing stock/inventory values are added, per this form's own farm-accounting convention of taxing the year's stock-value increase as income (the same convention documented in ch/zh/sta/hilfsblatt-g).
classification: financial -
bestandJahresbeginnTiereAufzeichnungennumberOpening (start-of-year) inventory value of livestock, subtracted from the running Betriebseinkünfte subtotal since it was already accounted for as the prior year's closing stock.
classification: financial -
bestandJahresbeginnVorraeteAufzeichnungennumberOpening (start-of-year) inventory value of stored produce/supplies, subtracted from the running Betriebseinkünfte subtotal for the same reason as bestandJahresbeginnTiereAufzeichnungen.
classification: financial -
totalBetriebseinkuenfteAufzeichnungennumberTotal business income under the Aufzeichnungen (records) path: zwischentotalInklBestandJahresendeAufzeichnungen minus bestandJahresbeginnTiereAufzeichnungen minus bestandJahresbeginnVorraeteAufzeichnungen. Reprinted, not re-entered, at Ziffer 3.7.1 ('Übertrag aus Ziffer 3.5.27') to feed einkommenNachAufzeichnungen.
classification: financial
3.6 Ermittlung der Betriebsaufwendungen (Aufzeichnungen path — cash-basis expense computation)
-
ausgabenKassenumberTotal cash-register disbursements for the year.
classification: financial -
ausgabenPostBanknumberTotal postal/bank account disbursements for the year.
classification: financial -
abzueglichPrivatentnahmennumberPrivate withdrawals from the business, included in the disbursements above but deducted here since they are not business expense.
classification: financial -
abzueglichSchuldenrueckzahlungennumberRepayments of business debt principal, included in the disbursements above but deducted here since debt repayment is not a deductible expense.
classification: financial -
abzueglichInvestitionenMaschinennumberCapital expenditure on machinery, included in the disbursements above but deducted here since it is capitalized rather than expensed.
classification: financial -
abzueglichInvestitionenObstBeerenRebennumberCapital expenditure on fruit, berry, and vine plantings, deducted for the same reason as abzueglichInvestitionenMaschinen.
classification: financial -
abzueglichInvestitionenGebaeudenumberCapital expenditure on buildings and mechanical fixtures, deducted for the same reason as abzueglichInvestitionenMaschinen.
classification: financial -
abzueglichInvestitionenPflanzenMeliorationennumberCapital expenditure on plantings and land-improvement works (Meliorationen), deducted for the same reason as abzueglichInvestitionenMaschinen.
classification: financial -
abzueglichInvestitionenBodennumberCapital expenditure on land, deducted for the same reason as abzueglichInvestitionenMaschinen.
classification: financial -
abzueglichEinlagenBetrieblicheGeldkontinumberDeposits into other business cash accounts (inter-account transfers), deducted since they are not new business expense.
classification: financial -
betriebsausgabennumberActual business disbursements on a cash basis: ausgabenKasse plus ausgabenPostBank, minus abzueglichPrivatentnahmen, abzueglichSchuldenrueckzahlungen, abzueglichInvestitionenMaschinen, abzueglichInvestitionenObstBeerenReben, abzueglichInvestitionenGebaeude, abzueglichInvestitionenPflanzenMeliorationen, abzueglichInvestitionenBoden, and abzueglichEinlagenBetrieblicheGeldkonti.
classification: financial -
verpflegungBetriebsangestellteAufzeichnungennumberImputed value of board (Verpflegung) provided to farm employees, at the standard rate of CHF 6,120 per person per year, the same rate cited in ch/zh/sta/hilfsblatt-g's own verpflegungBetriebsangestellte field.
classification: financial -
unterkunftBetriebsangestellteAufzeichnungennumberImputed value of lodging (Unterkunft) provided to farm employees, computed as a percentage of the imputed rental value (Mietwert) of the staff quarters.
classification: financial -
abschreibungenMaschinenAufzeichnungennumberDisposals and depreciation/value reduction on machinery, transferred from the Ziffer 3.1 Aktiven statement.
classification: financial -
abschreibungenObstBeerenRebenAufzeichnungennumberDisposals and depreciation/value reduction on fruit, berry, and vine plantings, transferred from the Ziffer 3.1 Aktiven statement.
classification: financial -
abschreibungenGebaeudeMechEinrichtungenAufzeichnungennumberDepreciation only (no disposals) on buildings, plus disposals/depreciation on mechanical fixtures, transferred from the Ziffer 3.1 Aktiven statement.
classification: financial -
abschreibungenPflanzenMeliorationenAufzeichnungennumberDisposals and depreciation/value reduction on plantings and land-improvement works, transferred from the Ziffer 3.1 Aktiven statement.
classification: financial -
abschreibungenBodenWertberichtigungenAufzeichnungennumberValue adjustment on land, transferred from the Ziffer 3.1 Aktiven statement. Per the sibling form ch/zh/sta/hilfsblatt-g's own footnote (Merkblatt A/2001), a value adjustment on land is only permissible where an inflated acquisition price can be evidenced under Art. 66 BGBB.
classification: financial -
abzugNettoertraegeGeschaeftswertschriftenAufzeichnungennumberDeduction for net income from business securities and holdings, for the same reason as abzugNettoertraegeGeschaeftswertschriften on the Buchhaltung path — that income is instead declared on ch/zh/sta/wertschriften-und-guthabenverzeichnis and marked there with a 'G' flag, per this line's own printed instruction.
classification: financial -
andereGeschaeftsaufwendungenAufzeichnungennumberOther business expenses not captured in the lines above, per a separate itemized statement.
classification: financial -
totalBetriebsaufwendungenAufzeichnungennumberTotal business expenses under the Aufzeichnungen (records) path: betriebsausgaben plus verpflegungBetriebsangestellteAufzeichnungen, unterkunftBetriebsangestellteAufzeichnungen, abschreibungenMaschinenAufzeichnungen, abschreibungenObstBeerenRebenAufzeichnungen, abschreibungenGebaeudeMechEinrichtungenAufzeichnungen, abschreibungenPflanzenMeliorationenAufzeichnungen, abschreibungenBodenWertberichtigungenAufzeichnungen, and andereGeschaeftsaufwendungenAufzeichnungen, minus abzugNettoertraegeGeschaeftswertschriftenAufzeichnungen. Reprinted, not re-entered, at Ziffer 3.7.2 ('Übertrag aus Ziffer 3.6.21') to feed einkommenNachAufzeichnungen.
classification: financial
3.7 Reineinkommen (Aufzeichnungen path — net farm/forestry income)
-
einkommenNachAufzeichnungennumberNet farm/forestry income under the Aufzeichnungen (records) path: totalBetriebseinkuenfteAufzeichnungen minus totalBetriebsaufwendungenAufzeichnungen. Transfers to the main return's own Ziffer 2 (self-employment income, ch/zh/sta/steuererklaerung-natuerliche-personen), the same transfer target as einkommenNachBuchhaltung on the Buchhaltung path.
classification: financial
Ort, Datum und Unterschrift (place, date, and signature)
-
placeOfSigningstringPlace where the worksheet is signed.
length: 0–100 -
dateOfSigningdate requiredDate the worksheet is signed.
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-09maturity.level:structural-reference
Why this cycle picked up Form 330
This is the recurring "GovSchema Standard Research" cycle (GOV-1924). The prior cycle (GOV-1917, Hilfsblatt G — Form 331) left Hilfsblatt B (Form 330, the larger, non-simplified agricultural/forestry questionnaire) as the sole remaining CH-ZH companion-schedule backlog candidate, deferred at the time as a "larger, structurally-forked future candidate better scoped as its own dedicated cycle." This cycle re-fetched Form 330 directly and confirmed the fork: the form's own routing instruction, printed at the very top of page 1 ("Dieses Hilfsblatt ist wie folgt auszufüllen: Landwirte mit Buchhaltung: Ziffern 1, 2, 4 und 5. Landwirte mit Aufzeichnungen: Ziffern 3, 4 und 5."), splits the document into two mutually exclusive computation paths selected by the filer's own bookkeeping method — but both paths, and the two shared sections that follow them (Ziffer 4 and 5), live inside one single 4-page PDF, not two separate form numbers. This is case (a) of the issue brief's own branching decision framework (a single document with two internal branches), not case (b) (the way Hilfsblatt A turned out to be two separate PDFs, Forms 328/329, across the GOV-1903/GOV-1910 cycles). Accordingly this cycle authors one schema, ch/zh/sta/hilfsblatt-b, modelling both computation paths via a single required discriminator field (berichtsart) and requiredWhen conditions gating each path's own computed fields — no second child issue is filed, since there is no second PDF/form-number variant left to defer. This closes Switzerland's CH-ZH companion-schedule backlog entirely: no further Hilfsblatt A/B/G variant remains unscreened. It does not open a new vertical or jurisdiction — Switzerland remains at 2 of 6 verticals (DMV, Taxes).
Sources examined
- Document
(id, version):ch/zh/sta/hilfsblatt-b/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Kanton Zürich — Finanzdirektion, Kantonales Steueramt Zürich (same authority as the main return and its ten other companion schedules; this form's own printed issuer is "StA Form 330").
- Primary source: https://www.zh.ch/content/dam/zhweb/bilder-dokumente/themen/steuern-finanzen/steuern/natuerlichepersonen/jahrunabhaengig/selbstaendig-erwerbende/330_hib_zh_2020_def.pdf — "StA Form 330 (2020) 12.20 — Hilfsblatt B Fragebogen für Land- und Forstwirtschaft," fetched directly this cycle (HTTP 200,
%PDF-1.5, 97,364 bytes, 4 pages per the PDF's own/Count 4, no/Encrypt) from the "Formulare für Selbständigerwerbende" listing on the samezh.chtax-forms hub page every prior CH-ZH cycle has used (https://www.zh.ch/de/steuern-finanzen/steuern/steuern-natuerliche-personen/steuererklaerung-natuerliche-personen.html). A byte-level scan of the raw PDF for the literal strings/AcroFormand/Widgetreturned zero matches for both — confirming this is a flat, non-AcroForm print/reference PDF, the same shape as all ten of its CH-ZH sibling schedules. - Listing-page label check (supersession cutoff). The raw listing page HTML was re-fetched directly and the download link's own on-page label text was inspected: "Hilfsblatt B Fragebogen für Land- und Forstwirtschaft," 4 Seiten, "Sprachen" (multiple languages available), 93 KB — with no "bis
<year>" cutoff qualifier, the same technique every prior CH-ZH cycle has used to confirm currency. This confirms Form 330 is zh.ch's own current, unsuperseded edition despite its 2020-dated filename (330_hib_zh_2020_def.pdf). - A stale size figure inherited from the prior cycle's own record, found and corrected. The GOV-1917 (Hilfsblatt G) cycle's own VERIFICATION.md described this sibling form, without directly re-fetching it at the time, as "110 KB." This cycle independently re-fetched Form 330 directly and found its true size is 93 KB (97,364 bytes) per both the listing page's own label and the fetched byte count — the "110 KB" figure instead matches the listing page's own size label for a different sibling form, Hilfsblatt A mit kaufmännischer Buchhaltung (Form 329, ch/zh/sta/hilfsblatt-a-kaufmaennische-buchfuehrung). This is disclosed here as a minor, non-substantive correction to a prior cycle's own record (that record's own primary claims about Form 331 itself were independently re-verified separately and remain unaffected); it does not change any modelling decision in this document.
- The single-PDF, two-computation-path structure, confirmed by direct re-extraction. The whole 4-page PDF's text content was extracted with
pdfjs-dist's legacy build (getTextContent()), the same reviewer-confirmed technique used across every CH-ZH cycle, extracting cleanly in one pass with no garbling. The extraction confirms: page 1 carries the header, the routing instruction quoted above, Ziffer 2 ("Nachführung der Abschreibungen ... auf Liegenschaften") printed in a left-hand box, and Ziffer 1 ("Ermittlung des Einkommens nach Buchhaltung") printed in the main right-hand column, both converging on the same header fields (Jahr, AHVN13, Gemeinde, Name, Vorname) at the page foot; page 2 carries Ziffer 3.1-3.4 (the Aufzeichnungen path's own business net-worth statement and depreciation/acquisition-cost table) and the start of Ziffer 3.5 (3.5.1 through 3.5.13, ending mid-table at a page-break carry-forward mark); page 3 continues Ziffer 3.5 (3.5.14 through 3.5.27), then Ziffer 3.6 (Ermittlung der Betriebsaufwendungen) and Ziffer 3.7 (Reineinkommen); page 4 carries Ziffer 4 (Besondere Leistungen des Bundes und der Kantone), Ziffer 5 (Angaben über den Betrieb), and the signature block. Both computation paths (Ziffer 1/2 vs. Ziffer 3) are thus physically interleaved across the same four pages, not split into separate documents, confirming this is case (a) of the issue brief's branching framework. - No explicit checkbox for the path choice. The extracted text was searched for a literal selector/checkbox tied to the routing instruction quoted above; none was found — the choice of path is implied structurally by which Ziffer-numbered section the filer actually completes, not by a printed radio button. This document's own
berichtsartfield is therefore a disclosed modelling addition, not a literal transcription of a printed form control; see "Judgment calls" below. - Companion Wegleitung (StA Form 332), re-examined for Hilfsblatt-B-specific content: https://www.zh.ch/content/dam/zhweb/bilder-dokumente/themen/steuern-finanzen/steuern/natuerlichepersonen/2025/est-wegleitungen/332%20Wegleitung%20HiB%20HiG%20ZH%202025%20bf%20DEF.pdf — "StA Form 332 (2025) 12.25," re-fetched this cycle (HTTP 200, 145,979 bytes, 8 pages per
pdfjs-dist's own page count). Its pages 1-3 (Hilfsblatt B) confirm the eligibility framing already known from the GOV-1917 cycle — Hilfsblatt B is the default, larger questionnaire; Hilfsblatt G is only available to smaller operations under the stated size thresholds — and the same Merkblatt NL 1/2007 (Naturalbezüge/Privatanteile/Naturallöhne rate table) and Merkblatt A/2001 (Abschreibungen rate table) already cited in ch/zh/sta/hilfsblatt-g's own field descriptions, which this document reuses by cross-reference where the same concepts recur (e.g.naturalbezuegeErwachseneAufzeichnungen,verpflegungBetriebsangestellteAufzeichnungen). No worked, fully-numeric specimen of Hilfsblatt B's own internal Ziffer 1-3 lines was found in this Wegleitung — the same negative finding several prior CH-ZH cycles (including GOV-1917) have already made for their own forms. This document's own worked mock-data example (below) is therefore independently constructed and its arithmetic hand-recomputed end-to-end for both computation paths, not matched against an official specimen. - Extraction method. Both PDFs (the 4-page form and the 8-page dedicated Wegleitung) were fetched with
curland their text content extracted withpdfjs-dist's legacy build (getTextContent(), text-only, nocanvasneeded), the reviewer-confirmed reliable default technique for CH-ZH PDFs of any size. Both extracted cleanly in one pass with no garbling. - Retrieved / reviewed: 2026-07-09.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
Two genuine structural differences found against the sibling Hilfsblatt G form
Because Hilfsblatt B and Hilfsblatt G share large amounts of near-identical printed structure (Ziffer 4 "Besondere Leistungen" is essentially identical in substance; the shared Ziffer 5 "Angaben über den Betrieb" section is almost line-for-line the same as Hilfsblatt G's own Ziffer 3), this cycle cross-checked the two forms' own extracted text side by side and found two genuine, disclosed differences, not modelling errors:
- An extra land-use line. Hilfsblatt B's own Ziffer 5.2 "Bodennutzung" table prints a line, "Zwischenkulturen (Gemüse u.a.)" (5.2.20, intercropping), between "Wald" (5.2.19) and "Obstbäume" (5.2.21), that Hilfsblatt G's own equivalent Ziffer 3.2 land-use table does not carry at all. Modelled here as
zwischenkulturenGemueseUa, with its own description disclosing the difference. - A four-tier, not three-tier, Bergzone selector. Hilfsblatt B's own Ziffer 5.4 "Zone" selector prints "Bergzone: 1 2 3 4" (four numbered tiers), matching the official Swiss agricultural-zone classification in full (Talzone, Hügelzone/vHz, Bergzone I-IV), whereas Hilfsblatt G's own equivalent
produktionszonefield (modelled in the GOV-1917 cycle) only offers "Bergzone 1," "Bergzone 2," and "Bergzone 3" — one tier short. Modelled here aszone, with an enum extending to"Bergzone 4"and its own description disclosing the difference. This cycle does not modify the already-publishedch/zh/sta/hilfsblatt-gv1.0.0 schema to add the missing tier — that document is out of scope for this cycle — but flags it explicitly here for a future re-verification cycle of Hilfsblatt G to re-check.
Scope decision: berichtsart models an implicit (unprinted) discriminator field
Per "Sources examined" above, Form 330 prints no literal checkbox for the Buchhaltung-vs-Aufzeichnungen choice; the choice is structurally implied by which Ziffer-numbered section the filer actually completes. GovSchema's flat field model has no native notion of "the section you filled in implies your answer to an unprinted question" — requiredWhen conditions need an actual field to gate on. This document therefore adds berichtsart as an explicit, required, string enum field (mitBuchhaltung / mitAufzeichnungen) not directly transcribed from a printed form control, but inferred from the form's own printed routing instruction. This is disclosed as a modelling addition, not a literal transcription — the same class of judgment call as Ziffer G's own inferred Zwischentotal semantics — and is the mechanism by which every Ziffer-1/2-specific and Ziffer-3-specific field's own requiredWhen condition is expressed.
Scope decision: the Ziffer 3.1/3.2 business net-worth statement collapsed to two free-text fields; its bounded "Total" rows modelled individually
GovSchema v0.3 fields are flat: there is no array/nested-object element type yet (proposed only in GSP-0009, not accepted). Ziffer 3.1 (Aktiven) cross-tabulates 11 named asset rows (Kasse, Post/Bank, Tiere, Vorräte, Maschinen/Fahrzeuge/Geräte, Obst/Beeren/ Reben, Liegenschaft, Gebäude/mechanische Einrichtungen, Pflanzen/ Meliorationen, Boden, plus one blank row) against up to 5 metrics (Buchwert Jahresanfang, Zugänge, Abgänge, Abschreibung/Wertberichtigung, Buchwert Jahresende); Ziffer 3.2 (Fremdkapital) cross-tabulates 3 named liability rows against a similar column set. Per this registry's established treatment of multi-column cross-tabulated tables (see e.g. ch/zh/sta/hilfsblatt-g's own depreciation-table summaries), each is collapsed into its own free-text summary field (aktivenSummary, fremdkapitalSummary). Each table's own bounded "Total" row ("Total 1" at Ziffer 3.1.12, "Total 2" at Ziffer 3.2.5), however, is modelled individually — as totalAktivenJahresanfang/ totalAktivenJahresende and totalFremdkapitalJahresanfang/ totalFremdkapitalJahresende respectively — per this registry's convention of modelling a bounded aggregate row individually even when the itemized rows above it are collapsed. The form's own Ziffer 3.3 "Differenz (Total 1 – Total 2)" row is read as carrying the same Jahresanfang/Jahresende column pair as the rows above it (i.e. reporting business net worth at both points in time, not a single value) and is modelled as differenzJahresanfang/ differenzJahresende — a disclosed judgment call, since no worked specimen with real figures exists to confirm the row's own exact column shape (see "Judgment calls" below).
Scope decision: the Ziffer 3.4 depreciation/acquisition-cost table collapsed to one free-text field; its bounded "Total" row modelled individually
Ziffer 3.4 cross-tabulates 4 named categories (Liegenschaft gesamthaft, Gebäude/mechanische Einrichtungen, Pflanzen/Meliorationen, Boden Wertberichtigung) against 5 columns (A: Abschreibungen bis Jahresanfang; B: Abschreibungen Steuerjahr; C = A + B: Abschreibungen bis Jahresende; D: Buchwert am Jahresende; E = C + D: Anlagekosten am Jahresende) — the same class of bounded, fixed-category cross-tabulation as Ziffer 3.1/3.2 above. Collapsed into abschreibungenUndAnlagekostenSummary for the same reason; its own bounded "Total" row (3.4.5) is modelled individually as totalAbschreibungenBisJahresanfang, totalAbschreibungenSteuerjahr, totalAbschreibungenBisJahresende, totalBuchwertJahresendeAnlagekosten, and totalAnlagekostenJahresende — the only Total row in this document whose own printed column formulas (C = A + B; E = C + D) are stated explicitly on the form itself, rather than inferred from print sequence, and are accordingly hand-verified in the worked example below without any disclosed ambiguity.
Scope decision: the Ziffer 5.1 land-use table's itemized rows collapsed to one free-text field; its "Total" row modelled individually
Identical treatment, and identical table shape, to ch/zh/sta/hilfsblatt-g's own Ziffer 3.1: itemized filer-named municipality/canton/country rows are collapsed into bewirtschafteteFlaechenSummary; the table's own bounded "Total" row (5.1.7) is modelled individually as totalEigentumHa, totalPachtHa, and totalPachtzinsChf, folding the form's own separate ha/a entry boxes into one decimal-hectare field per area figure (1 a = 0.01 ha), the same convention as ch/zh/sta/hilfsblatt-g.
Scope decision: Ziffer 3.7.1/3.7.2 are reprints of Ziffer 3.5.27/3.6.21, not separately modelled fields
Ziffer 3.7 ("Reineinkommen") prints three lines: 3.7.1 "Total Betriebseinkünfte (Übertrag aus Ziffer 3.5.27)," 3.7.2 "Total Betriebsaufwendungen (Übertrag aus Ziffer 3.6.21) (–)," and 3.7.3 "Einkommen." The first two are explicit, printed carry-forward reprints of totalBetriebseinkuenfteAufzeichnungen (3.5.27) and totalBetriebsaufwendungenAufzeichnungen (3.6.21) respectively — the form's own printed captions state the transfer explicitly, unlike a genuinely new figure. Per this registry's established practice of declining to model pure duplicate reprints twice (see e.g. ch/zh/sta/hilfsblatt-g's own treatment of Hilfsblatt A's Ziffer 10.1/10.2/11.1 reprints), this document does not add separate totalBetriebseinkuenfteUebertrag/totalBetriebsaufwendungenUebertrag fields; einkommenNachAufzeichnungen (3.7.3) is instead computed directly from the two underlying totals.
Scope decision: the page-break carry-forward mark (Ziffer 3.5.13/3.5.14) is not modelled
Ziffer 3.5 spans the page 2/page 3 boundary; the form prints "3.5.13 Übertrag in Ziffer 3.5.14" at the foot of page 2 and "3.5.14 Übertrag von Ziffer 3.5.13" at the top of page 3, immediately before continuing with 3.5.15. This is a pure pagination artifact carrying the running subtotal across the page break, introducing no new information — this document's own mietwertBetriebsleiterwohnungAufzeichnungen field (3.5.15) is the first new line after the carry, and its own description discloses the skipped carry-forward marks.
Field-by-field source mapping
- Household header (Jahr, AHVN13, Gemeinde, Name, Vorname) →
jahr,ahvn13RemainingDigits,gemeinde,name,vorname. Identical header shape toch/zh/sta/hilfsblatt-g(no firm-name/business-seat, Geschäftsjahr dates, Erwerbsart selector, UID, or Nebensteuerdomizile field). - Routing instruction (unprinted discriminator) →
berichtsart. See scope decision above. - Ziffer 1 (Ermittlung des Einkommens nach Buchhaltung) →
abschlussdatum,reingewinnBzwVerlust,aufrechnungGehaltPrivatbezuegeZinsgutschriften,aufrechnungSteuern,aufrechnungNichtBegruendeteAbschreibungenRueckstellungen,aufrechnungArbeitnehmeranteilBeruflicheVorsorge,aufrechnungSaeule3aUndPrivateVersicherungen,aufrechnungPrivatanteile,aufrechnungBuchgewinneHoeherbewertung,aufrechnungNaturalbezuege,aufrechnungMietwertBetriebsleiterwohnung,aufrechnungAndereGeschaeftsertraege,aufrechnungAndereNichtZulaessigeBelastungen,totalZifferEinsEinsUndEinsZwei,abzugBeitraegeAhvIvEo,abzugArbeitgeberanteilBeruflicheVorsorge,abzugNettoertraegeGeschaeftswertschriften,abzugAndere,totalAbzuege,einkommenNachBuchhaltung— allrequiredWhenberichtsartequalsmitBuchhaltungfor the three total/subtotal lines; individual add-back/deduction line items are optional, consistent with every other CH-ZH companion schedule's own treatment of line-item detail vs. required totals. - Ziffer 2 (Nachführung der Abschreibungen auf Liegenschaften) →
liegenschaftenAbschreibungenSummary(optional even on the Buchhaltung path, per the form's own "only if not otherwise apparent in the bookkeeping" instruction),persoenlicheBeitraegeBetriebsinhaber(shared with the Aufzeichnungen path's own Ziffer 3.7 area disclosure — see below). - Ziffer 3.1/3.2/3.3 (Aktiven/Fremdkapital/Differenz) →
aktivenSummary,totalAktivenJahresanfang,totalAktivenJahresende,fremdkapitalSummary,totalFremdkapitalJahresanfang,totalFremdkapitalJahresende,differenzJahresanfang,differenzJahresende. See scope decision above. - Ziffer 3.4 (Abschreibungen und Anlagekosten) →
abschreibungenUndAnlagekostenSummary,totalAbschreibungenBisJahresanfang,totalAbschreibungenSteuerjahr,totalAbschreibungenBisJahresende,totalBuchwertJahresendeAnlagekosten,totalAnlagekostenJahresende. See scope decision above. - Ziffer 3.5 (Ermittlung der Betriebseinkünfte) →
einnahmenKasse,einnahmenPostBank,abzueglichPrivateinlagen,abzueglichSchuldenerhoehungen,abzueglichBezuegeBetrieblicheGeldkonti,abzueglichLiegenschaftenverkaeufe,betriebseinnahmen,naturalbezuegeErwachseneAufzeichnungen,naturalbezuegeKinderBis6JahreAufzeichnungen,naturalbezuegeKinder6Bis13JahreAufzeichnungen,naturalbezuegeKinder13Bis18JahreAufzeichnungen,kaesereibezuegeAufzeichnungen,mietwertBetriebsleiterwohnungAufzeichnungen,privatanteilAutoAufzeichnungen,privatanteilVersicherungenAufzeichnungen,privatanteilHeizungStromTelefonTvAufzeichnungen,privatanteilAndereAufzeichnungen,andereGeschaeftsertraegeAufzeichnungen,zwischentotalNachPrivatanteilen,bestandJahresendeTiereAufzeichnungen,bestandJahresendeVorraeteAufzeichnungen,zwischentotalInklBestandJahresendeAufzeichnungen,bestandJahresbeginnTiereAufzeichnungen,bestandJahresbeginnVorraeteAufzeichnungen,totalBetriebseinkuenfteAufzeichnungen— allrequiredWhenberichtsartequalsmitAufzeichnungenfor the three running-subtotal/total lines. - Ziffer 3.6 (Ermittlung der Betriebsaufwendungen) →
ausgabenKasse,ausgabenPostBank,abzueglichPrivatentnahmen,abzueglichSchuldenrueckzahlungen,abzueglichInvestitionenMaschinen,abzueglichInvestitionenObstBeerenReben,abzueglichInvestitionenGebaeude,abzueglichInvestitionenPflanzenMeliorationen,abzueglichInvestitionenBoden,abzueglichEinlagenBetrieblicheGeldkonti,betriebsausgaben,verpflegungBetriebsangestellteAufzeichnungen,unterkunftBetriebsangestellteAufzeichnungen,abschreibungenMaschinenAufzeichnungen,abschreibungenObstBeerenRebenAufzeichnungen,abschreibungenGebaeudeMechEinrichtungenAufzeichnungen,abschreibungenPflanzenMeliorationenAufzeichnungen,abschreibungenBodenWertberichtigungenAufzeichnungen,abzugNettoertraegeGeschaeftswertschriftenAufzeichnungen,andereGeschaeftsaufwendungenAufzeichnungen,totalBetriebsaufwendungenAufzeichnungen. - Ziffer 3.7 (Reineinkommen) →
einkommenNachAufzeichnungen(3.7.3); see scope decision above for why 3.7.1/3.7.2 are not separately modelled.persoenlicheBeitraegeBetriebsinhabershared with the Buchhaltung path's own Ziffer 2.4. - Ziffer 4 (Besondere Leistungen des Bundes und der Kantone) →
direktzahlungenInsgesamt,ackerbaubeitraegeInsgesamt,allgemeineHangbeitraegeBund,allgemeineHangbeitraegeKanton,soemmerungsbeitraegeBund,soemmerungsbeitraegeKanton,tierhaltungErschwerendeProduktionsbedingungen— the same field set and structure asch/zh/sta/hilfsblatt-g's own Ziffer 3.4, shared regardless ofberichtsart. Ziffer 4.1 ("Familienzulagen — in der Steuererklärung in Ziffer 3.4 anzugeben") is a pure navigational pointer directing the filer to declare family allowances on the main return instead, printed with no input box of its own on this form; it is deliberately not modelled as a field here (see "What is NOT modelled" below). - Ziffer 5 (Angaben über den Betrieb) →
bewirtschafteteFlaechenSummary,totalEigentumHa,totalPachtHa,totalPachtzinsChf,tierhaltungKueheStierethroughtierhaltungAndere,milchkontingentEinschlAlpKg,bodennutzungWiesenWeidenthroughbodennutzungAndere,totalLandwirtschaftlicheNutzflaeche,bodennutzungWald,zwischenkulturenGemueseUa,bodennutzungObstbaeumeAnzahl,kaelbermast,viehhandel,pouletmast,pensionspferde,pferdezucht,andereSpezialbetriebszweige,zone,adresseVerkaeufer,chfVerkaufspreis,adresseKaeufer,chfKaufpreis,anderesGewerbeAlsNebenbetrieb,bemerkungenBeilagen— shared regardless ofberichtsart, structurally near-identical toch/zh/sta/hilfsblatt-g's own Ziffer 3, with the two genuine differences disclosed above (zwischenkulturenGemueseUa,zone's four-tier Bergzone enum). - Signature block →
placeOfSigning,dateOfSigning, plus adeclarationAttestationdocuments[] entry for "Dieses Hilfsblatt ist vollständig und wahrheitsgetreu ausgefüllt."
Mock-data test run
Because this document models two mutually exclusive computation paths, two complete, internally consistent worked examples were constructed and hand-recomputed end-to-end — one filer per path.
Filer A — Buchhaltung (bookkeeping) path
"Ruedi Ackermann," Illnau-Effretikon, Canton Zürich, Talzone, tax year 2025. berichtsart = "mitBuchhaltung".
Ziffer 1 — Ermittlung des Einkommens nach Buchhaltung
- 1.1 Reingewinn gemäss Erfolgsrechnung = 45,000.
- 1.2 Aufrechnungen: Gehalt/Privatbezüge/Zinsgutschriften 8,000 + Steuern 3,500 + nicht begründete Abschreibungen/Rückstellungen 1,200 + Arbeitnehmeranteil berufl. Vorsorge 2,000 + Säule 3a/private Versicherungen 1,500 + Privatanteile 4,200 + Buchgewinne Höherbewertung 0 + Naturalbezüge 2,400 + Mietwert Betriebsleiterwohnung 14,000 + andere Geschäftserträge 500 + andere nicht zulässige Belastungen 300 = 37,600. Verified: 8,000+3,500=11,500; +1,200=12,700; +2,000=14,700; +1,500=16,200; +4,200=20,400; +0=20,400; +2,400=22,800; +14,000=36,800; +500=37,300; +300=37,600. Exact.
- 1.3 Total der Ziffern 1.1 und 1.2 = 45,000 + 37,600 = 82,600. Verified: exact.
- 1.4 Abzüge: Beiträge AHV/IV/EO 9,200 + Arbeitgeberanteil berufl. Vorsorge 2,000 + Nettoerträge Geschäftswertschriften 1,800 + andere 0 = 13,000. Verified: 9,200+2,000=11,200; +1,800=13,000; +0=13,000. Exact.
- 1.5 Total der Abzüge = 13,000. Verified: exact (matches 1.4 sum).
- 1.6 Einkommen = 82,600 − 13,000 = 69,600. Verified: exact. Transfers to the main return's own Ziffer 2.
Ziffer 2 — Nachführung der Abschreibungen auf Liegenschaften (optional, completed here since the attached bookkeeping does not separately show cumulative depreciation)
- Bauernhaus Illnau: Total Abschreibungen bis Ende Vorjahr 45,000 + Abschreibungen Steuerjahr 3,000 = Total Abschreibungen bis Jahresende 48,000. Verified: 45,000+3,000=48,000. Exact.
persoenlicheBeitraegeBetriebsinhaber= 9,200 (matchesabzugBeitraegeAhvIvEoabove, as expected for the same underlying AHV contribution).
Filer B — Aufzeichnungen (records) path
"Verena Steiner," Turbenthal, Canton Zürich, Bergzone 2, tax year 2025. berichtsart = "mitAufzeichnungen".
Ziffer 3.1/3.2/3.3 — Aktiven, Fremdkapital, Differenz
| Position | Jahresanfang | Jahresende | |---|---:|---:| | Kasse | 2,000 | 2,500 | | Post, Bank | 18,000 | 22,000 | | Tiere | 60,000 | 65,000 | | Vorräte | 15,000 | 17,000 | | Maschinen/Fahrzeuge/Geräte (+20,000/−5,000/−15,000 Abschr.) | 80,000 | 80,000 | | Obst/Beeren/Reben (−500 Abschr.) | 10,000 | 9,500 | | Liegenschaft (Landgut gesamthaft) | 400,000 | 400,000 | | Gebäude/mech. Einrichtungen (−8,000 Abschr.) | 150,000 | 142,000 | | Pflanzen, Meliorationen (−1,000 Abschr.) | 20,000 | 19,000 | | Boden | 100,000 | 100,000 | | Total 1 (Aktiven) | 855,000 | 857,000 |
Verified Jahresanfang: 2,000+18,000=20,000; +60,000=80,000; +15,000=95,000; +80,000=175,000; +10,000=185,000; +400,000=585,000; +150,000=735,000; +20,000=755,000; +100,000=855,000. Exact. Verified Jahresende: 2,500+22,000=24,500; +65,000=89,500; +17,000=106,500; +80,000=186,500; +9,500=196,000; +400,000=596,000; +142,000=738,000; +19,000=757,000; +100,000=857,000. Exact.
| Position | Jahresanfang | Jahresende | |---|---:|---:| | Bankschulden | 250,000 | 240,000 | | Andere Darlehen | 50,000 | 45,000 | | Investitionskredite | 30,000 | 28,000 | | Total 2 (Fremdkapital) | 330,000 | 313,000 |
Verified: 250,000+50,000=300,000; +30,000=330,000. And 240,000+45,000=285,000; +28,000=313,000. Exact.
- Differenz Jahresanfang = 855,000 − 330,000 = 525,000. Differenz Jahresende = 857,000 − 313,000 = 544,000. Verified: exact.
Ziffer 3.4 — Abschreibungen und Anlagekosten
| Kategorie | A (bis JA) | B (Steuerjahr) | C = A+B | D (Buchwert JE) | E = C+D | |---|---:|---:|---:|---:|---:| | Liegenschaft gesamthaft | 120,000 | 0 | 120,000 | 400,000 | 520,000 | | Gebäude/mech. Einrichtungen | 60,000 | 8,000 | 68,000 | 142,000 | 210,000 | | Pflanzen, Meliorationen | 9,000 | 1,000 | 10,000 | 19,000 | 29,000 | | Boden (Wertberichtigung) | 0 | 0 | 0 | 100,000 | 100,000 | | Total | 189,000 | 9,000 | 198,000 | 661,000 | 859,000 |
Verified column A: 120,000+60,000=180,000; +9,000=189,000; +0=189,000. Column B: 0+8,000=8,000; +1,000=9,000; +0=9,000. Column C = A+B: exact per row (120,000+0=120,000; 60,000+8,000=68,000; 9,000+1,000=10,000; 0+0=0), and Total C = 189,000+9,000 = 198,000, matching the row-by-row sum (120,000+68,000+10,000+0=198,000). Column D: 400,000+142,000=542,000; +19,000=561,000; +100,000=661,000. Column E = C+D: exact per row (120,000+400,000=520,000; 68,000+142,000=210,000; 10,000+19,000=29,000; 0+100,000=100,000), Total E = 198,000+661,000=859,000, matching the row-by-row sum (520,000+210,000+29,000+100,000=859,000). All exact.
Ziffer 3.5 — Ermittlung der Betriebseinkünfte
- Kasse (Einnahmen) 95,000 + Post/Bank (Einnahmen) 180,000 = 275,000, minus Privateinlagen 10,000, Schuldenerhöhungen 5,000, Bezüge betriebliche Geldkonti 3,000, Liegenschaftenverkäufe 0 = Betriebseinnahmen 257,000. Verified: 95,000+180,000=275,000; 10,000+5,000+3,000+0=18,000; 275,000−18,000=257,000. Exact.
- Naturalbezüge: Erwachsene 1,920 (2×960) + Kinder −6J 240 (1×240) + Kinder 6-13J 0 + Kinder 13-18J 720 (1×720) + Käsereibezüge 0 = 2,880. Plus Mietwert Betriebsleiterwohnung 15,000, Privatanteil Auto 2,200, Versicherungen 900, Heizung/Strom/Telefon/TV 2,640, andere 0, andere Geschäftserträge 800 = running add total 24,420. Verified: 1,920+240=2,160; +0=2,160; +720=2,880; +0=2,880; +15,000=17,880; +2,200=20,080; +900=20,980; +2,640=23,620; +0=23,620; +800=24,420. Exact.
- Zwischentotal (3.5.21) = 257,000 + 24,420 = 281,420. Verified: exact.
- Tiere Bestand Jahresende 65,000 + Vorräte Bestand Jahresende 17,000 — cross-checked exactly against
totalAktivenJahresende's own Tiere (65,000) and Vorräte (17,000) rows above. - Zwischentotal (3.5.24) = 281,420 + 65,000 + 17,000 = 363,420. Verified: 281,420+65,000=346,420; +17,000=363,420. Exact.
- Tiere Bestand Jahresbeginn 60,000 + Vorräte Bestand Jahresbeginn 15,000 — cross-checked exactly against
totalAktivenJahresanfang's own Tiere (60,000) and Vorräte (15,000) rows above. - Total Betriebseinkünfte (3.5.27) = 363,420 − 60,000 − 15,000 = 288,420. Verified: 363,420−60,000=303,420; −15,000=288,420. Exact.
Ziffer 3.6 — Ermittlung der Betriebsaufwendungen
- Kasse (Ausgaben) 60,000 + Post/Bank (Ausgaben) 140,000 = 200,000, minus Privatentnahmen 8,000, Schuldenrückzahlungen 12,000, Investitionen Maschinen 20,000 (matches the Aktiven Maschinen row's own Zugänge, as expected), Investitionen Obst/Beeren/Reben 0, Gebäude 0, Pflanzen/ Meliorationen 0, Boden 0, Einlagen betriebliche Geldkonti 2,000 = Betriebsausgaben 158,000. Verified: 8,000+12,000=20,000; +20,000=40,000; +0+0+0+0=40,000; +2,000=42,000; 200,000−42,000=158,000. Exact.
- Verpflegung 6,120 (1 Person) + Unterkunft 1,500 + Abschreibungen: Maschinen 15,000 (matches Aktiven), Obst/Beeren/Reben 500 (matches Aktiven), Gebäude/ mech. Einrichtungen 8,000 (matches Aktiven and Ziffer 3.4 column B), Pflanzen/Meliorationen 1,000 (matches Aktiven and Ziffer 3.4 column B), Boden (Wertberichtigungen) 0 (matches Aktiven and Ziffer 3.4 column B) + andere Geschäftsaufwendungen 700, minus Nettoerträge Geschäftswertschriften 1,200 = running add/subtract 31,620. Verified: 6,120+1,500=7,620; +15,000=22,620; +500=23,120; +8,000=31,120; +1,000=32,120; +0=32,120; +700=32,820; −1,200=31,620. Exact.
- Total Betriebsaufwendungen (3.6.21) = 158,000 + 31,620 = 189,620. Verified: exact.
Ziffer 3.7 — Reineinkommen
- Einkommen = 288,420 − 189,620 = 98,800. Verified: exact. Transfers to the main return's own Ziffer 2.
persoenlicheBeitraegeBetriebsinhaber= 11,000 (this filer's own AHV disclosure; a distinct value from Filer A's, since these are two independent hypothetical filings).
Ziffer 4 — Besondere Leistungen des Bundes und der Kantone (Filer B)
- Allgemeine Hangbeiträge Bund 4,000 + Kanton 2,500 + Sömmerungsbeiträge Bund 0 + Kanton 0 + Tierhaltung erschwerende Produktionsbedingungen 1,500 = Direktzahlungen, insgesamt 8,000. Verified: 4,000+2,500=6,500; +1,500=8,000. Exact.
- Ackerbaubeiträge, insgesamt = 1,500 (a subset of, and already included within, Betriebseinnahmen above).
Ziffer 5 — Angaben über den Betrieb (Filer B)
- 5.1: Turbenthal (Eigentum 15.20 ha, Pacht 4.00 ha, Pachtzins CHF 5,600); Wila (Eigentum 3.00 ha, Pacht 0 ha, Pachtzins CHF 0). Total Eigentum = 15.20+3.00 = 18.20 ha. Total Pacht = 4.00+0 = 4.00 ha. Total Pachtzins = 5,600+0 = CHF 5,600. Verified: exact.
- 5.2 Tierhaltung: Kühe/Stiere 22, Aufzuchtrindvieh 12, Mastrindvieh 0, Mutterschweine 0, Mastschweine/Jager 0, Pferde 2, Ziegen/Schafe 0, Geflügel 0, Andere 0; Milchkontingent einschl. Alp 165,000 kg.
- 5.2 Bodennutzung: Wiesen/Weiden 11.00 + Silomais/Futterrüben 3.50 + Getreide/Mais/Raps/Erbsen 2.50 + Kartoffeln/Zuckerrüben 0.80 + Obstanlagen 0.50 + Gemüse/Beeren/Reben 0.40 + Andere 0.30 = Total landw. Nutzfläche 19.00 ha. Verified: 11.00+3.50=14.50; +2.50=17.00; +0.80=17.80; +0.50=18.30; +0.40=18.70; +0.30=19.00. Exact. Wald 3.00 ha, Zwischenkulturen 0.20 ha. Cross-check: 19.00 + 3.00 + 0.20 = 22.20 ha, exactly matching Ziffer 5.1's own Total Eigentum (18.20) + Total Pacht (4.00) = 22.20 ha — confirming Ziffer 5.2's own land-use breakdown (including the extra
zwischenkulturenGemueseUaline unique to this form) reconciles against Ziffer 5.1's own operated-area total. Obstbäume: 60 St. - 5.3 Spezialzweige: Kälbermast false, Viehhandel false, Pouletmast false, Pensionspferde true, Pferdezucht false; andere: (blank).
- 5.4 Zone: Bergzone 2.
- 5.5: no property transactions this year (fields left blank).
- 5.6:
anderesGewerbeAlsNebenbetrieb= "im vorstehenden Einkommen enthalten." - 5.7 Bemerkungen/Beilagen: "Pachtlandverzeichnis beigelegt für Gemeinde Wila (Pacht 4.00 ha)."
placeOfSigning= "Turbenthal",dateOfSigning= "2026-03-15".
Every validation constraint (AHVN13 10-digit pattern, jahr range 2000-2100, berichtsart/zone/anderesGewerbeAlsNebenbetrieb enum membership, non-negative integer counts, maxLength bounds) was checked by hand against both filers' mock values above. OK.
Both registry validators were run against the schema document itself and pass:
``` $ node tools/validate.mjs registry/ch/zh/sta/hilfsblatt-b/1.0.0/schema.json ok registry/ch/zh/sta/hilfsblatt-b/1.0.0/schema.json
1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/ch/zh/sta/hilfsblatt-b/1.0.0/schema.json ok registry/ch/zh/sta/hilfsblatt-b/1.0.0/schema.json [v0.3]
1/1 document(s) validated against the meta-schema (ajv 2020-12). ```
tools/verify-sources.mjs was also run (see "Access notes" below for the exact output and invocation).
What is NOT modelled (out of scope), and why
- The Ziffer 3.1/3.2 business net-worth statement's own itemized asset/ liability rows — collapsed into
aktivenSummaryandfremdkapitalSummary. See scope decision above. - The Ziffer 3.4 depreciation/acquisition-cost table's own four named- category rows — collapsed into
abschreibungenUndAnlagekostenSummary. See scope decision above. - The Ziffer 5.1 land-use table's own itemized, filer-named municipality/ canton/country rows — collapsed into
bewirtschafteteFlaechenSummary. See scope decision above. - Ziffer 3.7.1/3.7.2's own reprint lines — not separately modelled, since they are pure carry-forward reprints of
totalBetriebseinkuenfteAufzeichnungenandtotalBetriebsaufwendungenAufzeichnungen. See scope decision above. - The Ziffer 3.5.13/3.5.14 page-break carry-forward mark — a pure pagination artifact, not a new field. See scope decision above.
- Ziffer 4.1 (Familienzulagen) — a pure navigational pointer directing the filer to the main return's own Ziffer 3.4, printed with no input box of its own on this form; not modelled as a field here, consistent with this registry's practice of not fabricating a field for a pure instructional caption.
- Form 328/329 (Hilfsblatt A, the sibling non-agricultural self-employment worksheets) — cross-referenced by
anderesGewerbeAlsNebenbetriebbut not themselves modelled by this document; each is already separately published asch/zh/sta/hilfsblatt-a-vereinfachte-buchfuehrungandch/zh/sta/hilfsblatt-a-kaufmaennische-buchfuehrung. - Any office-only field (none observed on this form).
Judgment calls
berichtsartmodels an unprinted, structurally-implied discriminator field, not a literal transcription of a printed checkbox. See its own scope decision above.aktivenSummary/fremdkapitalSummary/abschreibungenUndAnlagekostenSummary/bewirtschafteteFlaechenSummaryeach collapse a cross-tabulated or filer-named table into one free-text field, with each table's own bounded "Total" row modelled individually, consistent with every other collapsed repeating table in this registry.differenzJahresanfang/differenzJahresenderead the Ziffer 3.3 "Differenz" row as carrying the same Jahresanfang/Jahresende column pair as the rows above it, rather than a single value — a disclosed, not certain, interpretation absent a worked specimen. See scope decision above.- Ziffer 3.7.1/3.7.2 are treated as pure reprints, not separately modelled fields, since their own printed captions state the transfer explicitly. See scope decision above.
- The Ziffer 3.5.13/3.5.14 page-break carry-forward mark is not modelled as it introduces no new information. See scope decision above.
- Ziffer 4.1 (Familienzulagen) is read as a pure navigational pointer with no input box of its own, and is therefore not modelled as a field — disclosed rather than silently assumed either way.
- Booleans (
kaelbermast,viehhandel,pouletmast,pensionspferde,pferdezucht) use GovSchema'sbooleanfield type, consistent withch/zh/sta/hilfsblatt-g's own treatment of the identical five checkboxes (reordered on this form's own print layout, but the same five options). zoneis modelled as a required, single-select enum with a four-tier Bergzone option, one tier more thanch/zh/sta/hilfsblatt-g's ownproduktionszonefield — a disclosed, genuine difference between the two sibling forms, not a copy-paste inconsistency. See "Two genuine structural differences" above.jahris modelled as a required field, matching every other CH-ZH companion schedule's own year-independent-hosting convention.- Amounts are modelled as plain
numberfields (orintegerfor discrete head counts), consistent with every other CH-ZH companion schedule. jurisdiction.levelissubnationalwithsubdivision: "CH-ZH", identical to the main return and its ten other companion schedules.- No live submission was attempted — filing a real Swiss cantonal tax return attachment is a real legal act with a real cantonal tax authority, not a safe or reversible action to simulate against a live government process, consistent with this registry's standing discipline.
Access notes
No access blocks: zh.ch was reachable directly from this environment with plain curl for the form and the dedicated Hilfsblatt B/G Wegleitung alike — no TCP-level reset, WAF, or CAPTCHA gate encountered, consistent with every prior CH-ZH cycle's finding that zh.ch's own tax-forms domain is unblocked.
tools/verify-sources.mjs was run scoped to this document's own registry directory and confirms every cited URL is live and independently reachable:
``` $ node tools/verify-sources.mjs registry/ch/zh/sta/hilfsblatt-b verify-sources: checking 1 schema version directory...
verify-sources: 1 directory, 4 URLs checked, 0 warning(s), 0 allowlisted, all clear. ```
Scope and jurisdiction notes
- This is Switzerland's eleventh Taxes-vertical document (a companion schedule to the main return,
ch/zh/sta/steuererklaerung-natuerliche-personen), not a new vertical or jurisdiction; Switzerland remains at 2 of 6 verticals. idreuses thestaauthority-directory segment (the same cantonal tax office) and a short slug,hilfsblatt-b, with no bookkeeping-method disambiguator in the slug itself — unlike the two Hilfsblatt A variants, which needed one because they are two separate PDF/form-number documents, this form's own two computation paths live inside one single document and are instead disambiguated within the schema via theberichtsartfield.- No
editionmember is used, consistent with this registry's existing treatment of the other CH-ZH companion schedules. - This cycle closes the CH-ZH companion-schedule backlog entirely: all of Wertschriften-/Guthabenverzeichnis, Berufsauslagen, Versicherungsprämien, Aus-/Weiterbildungskosten, Liegenschaftenverzeichnis, Schuldenverzeichnis, Hilfsblatt A (both bookkeeping variants), Hilfsblatt G, and now Hilfsblatt B are published. A future cycle re-screening this vertical should look for newly introduced companion schedules on the same zh.ch listing rather than re-checking these ten (now eleven) already-published documents.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-09 (6 months), the same cadence as the main return and its other companion schedules. Because status remains draft, a future review should prioritize: confirming the next tax year's edition of the main return keeps the same Ziffer-2 transfer target for both of this schedule's own path-specific net-income lines, re-checking whether the standalone Form 330 PDF is ever republished under a newer print-date stamp, re-confirming the disclosed differenzJahresanfang/differenzJahresende column-shape reading against a worked specimen if one ever surfaces, and separately flagging ch/zh/sta/hilfsblatt-g's own produktionszone field for a future re-verification cycle to consider whether it should be extended with a fourth Bergzone tier to match this document's own zone field.
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 Kanton Zürich — Finanzdirektion, Kantonales Steueramt Zürich or any government. The authoritative source is always the live government form and its official instructions.