Registry entry
Switzerland (Canton Zürich) Professional Expense Deductions Schedule (Berufsauslagen 2025)
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 an employed taxpayer (Unselbständigerwerbende) to compute the deductible professional/work-related expenses (Berufsauslagen) referenced by the main return's own Ziffer 11.1 (Person 1) and Ziffer 11.2 (Person 2). The 2-page source form mirrors the same seven-section layout once per person (page 1 for Person 1, page 2 for Person 2, each independently completed and transferred to the main return): commuting costs between home and workplace (public-transit subscription, a flat-rate bicycle/moped allowance, and a private-car/motorcycle worksheet, subtotalled and capped), extra meal costs for away-from-home working or shift/night work, other costs required to carry out the occupation (a flat-rate or itemized-actual choice), extra costs for an out-of-town weekly residence, side-job expenses (flat-rate or itemized-actual), the resulting total professional-expense deduction, and the four alternative statutory justifications for deducting private-vehicle commuting costs instead of public-transit fare. This document models: the household/employment header (AHVN13, municipality, name, employer, workplace address) for each person; every numbered state-tax/federal-tax amount pair a filer enters directly (the private-vehicle commuting sub-table collapsed into one free-text field per this registry's established treatment of unbounded repeating tables, GSP-0009); the private-vehicle-use justification checkboxes; and the final per-person, per-tax-column total that transfers onto the main return. It does NOT model: the underlying Lohnausweis (salary certificate) net-wage figure the 3%-of-net-wage flat rate is computed from (a value belonging to the main return / employer's own certificate, not this schedule); the free-form itemized statement (Aufstellung) a filer attaches when claiming actual costs above a flat rate, represented only as a gated `documents[]` requirement; or any office-only field. 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/berufsauslagen
Machine access
- Schema document
registry/ch/zh/sta/berufsauslagen/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ch/zh/sta/berufsauslagen/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
74 fields across 7 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 Arbeitsverhältnis (identification and employment)
-
ahvn13RemainingDigitsPerson1stringThe remaining 10 digits of Person 1'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. Printed only on Person 1's page; Person 2's own AHVN13 is not separately requested on this schedule.
patternclassification: sensitive-pii -
gemeindestringThe taxpayer's municipality of residence (Gemeinde) within Canton Zürich.
length: 0–100 -
namePerson1stringPerson 1's surname.
length: 0–100classification: pii -
vornamePerson1stringPerson 1's first name.
length: 0–100classification: pii -
arbeitgeberPerson1stringName of Person 1's employer.
length: 0–200classification: pii -
arbeitsortStrassePerson1stringPerson 1's place and street of work.
length: 0–200classification: pii -
namePerson2stringPerson 2's surname, completed only when Person 2 also has deductible professional expenses (joint return).
length: 0–100classification: pii -
vornamePerson2stringPerson 2's first name.
length: 0–100classification: pii -
arbeitgeberPerson2stringName of Person 2's employer.
length: 0–200classification: pii -
arbeitsortStrassePerson2stringPerson 2's place and street of work.
length: 0–200classification: pii
1. Fahrkosten zwischen Wohn- und Arbeitsstätte (Person 1)
-
publicTransitSubscriptionCostsPerson1StateTaxnumberPerson 1's necessary subscription costs for regular use of public transport (train, boat, tram, bus) between home and workplace, state-tax column.
classification: financial -
publicTransitSubscriptionCostsPerson1FederalTaxnumberSame as publicTransitSubscriptionCostsPerson1StateTax, federal-tax column.
classification: financial -
bicycleMopedFlatRatePerson1StateTaxnumberFlat-rate deduction of CHF 700 for Person 1's regular use of their own bicycle or small motorcycle with a yellow number plate (Kleinmotorrad), state-tax column.
range: 0–700classification: financial -
bicycleMopedFlatRatePerson1FederalTaxnumberSame as bicycleMopedFlatRatePerson1StateTax, federal-tax column.
range: 0–700classification: financial -
carMotorcycleCommutingDetailsPerson1stringPerson 1's private-car/motorcycle commuting worksheet, completed only in the exceptional cases listed in reasonNoPublicTransportPerson1/reasonTimeSavingsOver1HourPerson1/reasonEmployerRequiredPerson1/reasonMedicalUnableToUsePublicTransportPerson1: for up to two workplaces, whether the vehicle is a car (CHF -.70/km) or motorcycle with a white plate (CHF -.40/km), whether it is leased (geleastes Fahrzeug), the workplace, number of working days, distance in km, number of trips per day, km per year, and the resulting deduction before rounding. Collapsed into one free-text field per the source table's own two repeating rows, consistent with this registry's established treatment of unbounded repeating tables under GovSchema v0.3's flat field model (GSP-0009). An employee with a company car available cannot claim any commuting-cost deduction under this section.
length: 0–1000classification: financial -
carMotorcycleDeductionPerson1StateTaxnumberTotal deduction computed from carMotorcycleCommutingDetailsPerson1 (both workplace rows combined), state-tax column.
classification: financial -
carMotorcycleDeductionPerson1FederalTaxnumberSame as carMotorcycleDeductionPerson1StateTax, federal-tax column.
classification: financial -
commutingCostsSubtotalPerson1StateTaxnumberSubtotal of Person 1's commuting-cost lines (publicTransitSubscriptionCostsPerson1StateTax + bicycleMopedFlatRatePerson1StateTax + carMotorcycleDeductionPerson1StateTax), state-tax column, capped at CHF 5'200.
range: 0–5200classification: financial -
commutingCostsSubtotalPerson1FederalTaxnumberSame as commutingCostsSubtotalPerson1StateTax, federal-tax column, capped at CHF 3'300.
range: 0–3300classification: financial
2.-5. Mehrkosten, übrige Berufskosten und Auslagen bei Nebenerwerb (Person 1)
-
mealSurchargeEmployerSubsidizedPerson1StateTaxnumberExtra meal costs for Person 1 when eating away from home because the work-break duration does not allow returning home, and the employer subsidizes meals (canteen, staff restaurant, cash contribution, meal vouchers) but the employee still incurs extra cost: CHF 7.50 per working day, capped at CHF 1'600/year for a filer who eats away from home on an ongoing basis, state-tax column.
range: 0–1600classification: financial -
mealSurchargeEmployerSubsidizedPerson1FederalTaxnumberSame as mealSurchargeEmployerSubsidizedPerson1StateTax, federal-tax column.
range: 0–1600classification: financial -
mealSurchargeFullyEmployeeBornePerson1StateTaxnumberExtra meal costs for Person 1 when the away-from-home meal is entirely at the employee's own expense: CHF 15 per working day, capped at CHF 3'200/year for ongoing away-from-home eating, state-tax column.
range: 0–3200classification: financial -
mealSurchargeFullyEmployeeBornePerson1FederalTaxnumberSame as mealSurchargeFullyEmployeeBornePerson1StateTax, federal-tax column.
range: 0–3200classification: financial -
shiftNightWorkDaysPerson1integerNumber of days Person 1 worked a continuous shift of at least eight hours, or night work, that qualifies for the shift/night-work meal surcharge (irregular/staggered working hours count as shift work if neither main meal can be taken at home at the usual time). Shared between both tax columns.
range: 0–366classification: financial -
shiftNightWorkCompensationPerson1StateTaxnumberShift/night-work meal surcharge for Person 1: CHF 15 per qualifying day (shiftNightWorkDaysPerson1), capped at CHF 3'200/year for ongoing shift/night work. These deductions may not be combined with mealSurchargeEmployerSubsidizedPerson1StateTax/mealSurchargeFullyEmployeeBornePerson1StateTax for the same days, state-tax column.
range: 0–3200classification: financial -
shiftNightWorkCompensationPerson1FederalTaxnumberSame as shiftNightWorkCompensationPerson1StateTax, federal-tax column.
range: 0–3200classification: financial -
otherProfessionalCostsFlatRatePerson1StateTaxnumberFlat-rate deduction for other costs required to carry out Person 1's occupation (work clothing, tools including IT hardware/software, professional literature, a private home office, professional-association dues): 3% of net wage per the salary certificate (Lohnausweis), minimum CHF 2'000, maximum CHF 4'000, state-tax column. Net wage is gross wage less AHV/IV/EO and ALV contributions, ongoing occupational-pension contributions (including those from pay rises), and mandatory non-occupational-accident-insurance premiums.
range: 2000–4000classification: financial -
otherProfessionalCostsFlatRatePerson1FederalTaxnumberSame as otherProfessionalCostsFlatRatePerson1StateTax, federal-tax column.
range: 2000–4000classification: financial -
otherProfessionalCostsActualPerson1StateTaxnumberActual other professional costs claimed instead of otherProfessionalCostsFlatRatePerson1StateTax, when they exceed the flat rate, per an itemized statement (Aufstellung) filed with the return, state-tax column.
classification: financial -
otherProfessionalCostsActualPerson1FederalTaxnumberSame as otherProfessionalCostsActualPerson1StateTax, federal-tax column.
classification: financial -
weeklyResidenceExtraCostsPerson1StateTaxnumberExtra costs for Person 1's out-of-town weekly residence (auswärtiger Wochenaufenthalt), per an itemized statement (Aufstellung, see Wegleitung): the necessary extra cost of away-from-home dinner (CHF 15/working day, or CHF 3'200/year for a full-year weekly residence), the actual rent for a room at the place of work, and the cost of the weekly trip home (ordinarily only public-transport costs, already claimed under Ziffer 1 of this schedule rather than here). No separate statutory cap is printed for this line's combined total; state-tax column.
classification: financial -
weeklyResidenceExtraCostsPerson1FederalTaxnumberSame as weeklyResidenceExtraCostsPerson1StateTax, federal-tax column.
classification: financial -
sideJobExpensesFlatRatePerson1StateTaxnumberFlat-rate deduction for all expenses (including commuting and away-from-home meals) related to Person 1's employed side job(s): 20% of side-job income, minimum CHF 800, maximum CHF 2'400 in total, state-tax column.
range: 800–2400classification: financial -
sideJobExpensesFlatRatePerson1FederalTaxnumberSame as sideJobExpensesFlatRatePerson1StateTax, federal-tax column.
range: 800–2400classification: financial -
sideJobExpensesActualPerson1StateTaxnumberActual side-job expenses claimed instead of sideJobExpensesFlatRatePerson1StateTax, when they exceed the flat rate, detailed in and provable on request via an itemized statement (Aufstellung), state-tax column.
classification: financial -
sideJobExpensesActualPerson1FederalTaxnumberSame as sideJobExpensesActualPerson1StateTax, federal-tax column.
classification: financial
6.-7. Total und Begründung Motorfahrzeug (Person 1)
-
totalProfessionalExpensesPerson1StateTaxnumber requiredPerson 1's total deductible professional expenses, state-tax column. Transfers to the main return's professionalExpensesPerson1StateTax field (Steuererklärung Seite 3, Ziffer 11.1).
classification: financial -
totalProfessionalExpensesPerson1FederalTaxnumber requiredPerson 1's total deductible professional expenses, federal-tax column. Transfers to the main return's professionalExpensesPerson1FederalTax field (Steuererklärung Seite 3, Ziffer 11.1).
classification: financial -
reasonNoPublicTransportPerson1booleanWhether Person 1 claims private-vehicle commuting costs because no public transport is available: the home or workplace is at least 1 km from the nearest stop, or no public transport runs at the start/end of the work day.
-
reasonTimeSavingsOver1HourPerson1booleanWhether Person 1 claims private-vehicle commuting costs because using the private vehicle (door-to-door, round trip) saves more than one hour compared with public transport.
-
reasonEmployerRequiredPerson1booleanWhether Person 1 claims private-vehicle commuting costs because the employer requires ongoing use of the private vehicle during working hours and compensates for it, while paying no allowance for the home-workplace commute itself. A written confirmation from the employer must be filed with the return.
-
reasonMedicalUnableToUsePublicTransportPerson1booleanWhether Person 1 claims private-vehicle commuting costs because illness or infirmity makes using public transport impossible. A doctor's certificate (Arztzeugnis) must be filed with the return.
1. Fahrkosten zwischen Wohn- und Arbeitsstätte (Person 2)
-
publicTransitSubscriptionCostsPerson2StateTaxnumberPerson 2's necessary subscription costs for regular use of public transport between home and workplace, state-tax column.
classification: financial -
publicTransitSubscriptionCostsPerson2FederalTaxnumberSame as publicTransitSubscriptionCostsPerson2StateTax, federal-tax column.
classification: financial -
bicycleMopedFlatRatePerson2StateTaxnumberFlat-rate deduction of CHF 700 for Person 2's regular use of their own bicycle or small motorcycle with a yellow number plate, state-tax column.
range: 0–700classification: financial -
bicycleMopedFlatRatePerson2FederalTaxnumberSame as bicycleMopedFlatRatePerson2StateTax, federal-tax column.
range: 0–700classification: financial -
carMotorcycleCommutingDetailsPerson2stringSame as carMotorcycleCommutingDetailsPerson1, for Person 2.
length: 0–1000classification: financial -
carMotorcycleDeductionPerson2StateTaxnumberTotal deduction computed from carMotorcycleCommutingDetailsPerson2 (both workplace rows combined), state-tax column.
classification: financial -
carMotorcycleDeductionPerson2FederalTaxnumberSame as carMotorcycleDeductionPerson2StateTax, federal-tax column.
classification: financial -
commutingCostsSubtotalPerson2StateTaxnumberSubtotal of Person 2's commuting-cost lines (publicTransitSubscriptionCostsPerson2StateTax + bicycleMopedFlatRatePerson2StateTax + carMotorcycleDeductionPerson2StateTax), state-tax column, capped at CHF 5'200.
range: 0–5200classification: financial -
commutingCostsSubtotalPerson2FederalTaxnumberSame as commutingCostsSubtotalPerson2StateTax, federal-tax column, capped at CHF 3'300.
range: 0–3300classification: financial
2.-5. Mehrkosten, übrige Berufskosten und Auslagen bei Nebenerwerb (Person 2)
-
mealSurchargeEmployerSubsidizedPerson2StateTaxnumberSame as mealSurchargeEmployerSubsidizedPerson1StateTax, for Person 2, state-tax column.
range: 0–1600classification: financial -
mealSurchargeEmployerSubsidizedPerson2FederalTaxnumberSame as mealSurchargeEmployerSubsidizedPerson2StateTax, federal-tax column.
range: 0–1600classification: financial -
mealSurchargeFullyEmployeeBornePerson2StateTaxnumberSame as mealSurchargeFullyEmployeeBornePerson1StateTax, for Person 2, state-tax column.
range: 0–3200classification: financial -
mealSurchargeFullyEmployeeBornePerson2FederalTaxnumberSame as mealSurchargeFullyEmployeeBornePerson2StateTax, federal-tax column.
range: 0–3200classification: financial -
shiftNightWorkDaysPerson2integerSame as shiftNightWorkDaysPerson1, for Person 2.
range: 0–366classification: financial -
shiftNightWorkCompensationPerson2StateTaxnumberSame as shiftNightWorkCompensationPerson1StateTax, for Person 2, state-tax column.
range: 0–3200classification: financial -
shiftNightWorkCompensationPerson2FederalTaxnumberSame as shiftNightWorkCompensationPerson2StateTax, federal-tax column.
range: 0–3200classification: financial -
otherProfessionalCostsFlatRatePerson2StateTaxnumberSame as otherProfessionalCostsFlatRatePerson1StateTax, for Person 2, state-tax column.
range: 2000–4000classification: financial -
otherProfessionalCostsFlatRatePerson2FederalTaxnumberSame as otherProfessionalCostsFlatRatePerson2StateTax, federal-tax column.
range: 2000–4000classification: financial -
otherProfessionalCostsActualPerson2StateTaxnumberSame as otherProfessionalCostsActualPerson1StateTax, for Person 2, state-tax column.
classification: financial -
otherProfessionalCostsActualPerson2FederalTaxnumberSame as otherProfessionalCostsActualPerson2StateTax, federal-tax column.
classification: financial -
weeklyResidenceExtraCostsPerson2StateTaxnumberSame as weeklyResidenceExtraCostsPerson1StateTax, for Person 2, state-tax column.
classification: financial -
weeklyResidenceExtraCostsPerson2FederalTaxnumberSame as weeklyResidenceExtraCostsPerson2StateTax, federal-tax column.
classification: financial -
sideJobExpensesFlatRatePerson2StateTaxnumberSame as sideJobExpensesFlatRatePerson1StateTax, for Person 2, state-tax column.
range: 800–2400classification: financial -
sideJobExpensesFlatRatePerson2FederalTaxnumberSame as sideJobExpensesFlatRatePerson2StateTax, federal-tax column.
range: 800–2400classification: financial -
sideJobExpensesActualPerson2StateTaxnumberSame as sideJobExpensesActualPerson1StateTax, for Person 2, state-tax column.
classification: financial -
sideJobExpensesActualPerson2FederalTaxnumberSame as sideJobExpensesActualPerson2StateTax, federal-tax column.
classification: financial
6.-7. Total und Begründung Motorfahrzeug (Person 2)
-
totalProfessionalExpensesPerson2StateTaxnumber requiredPerson 2's total deductible professional expenses, state-tax column. Transfers to the main return's professionalExpensesPerson2StateTax field (Steuererklärung Seite 3, Ziffer 11.2).
classification: financial -
totalProfessionalExpensesPerson2FederalTaxnumber requiredPerson 2's total deductible professional expenses, federal-tax column. Transfers to the main return's professionalExpensesPerson2FederalTax field (Steuererklärung Seite 3, Ziffer 11.2).
classification: financial -
reasonNoPublicTransportPerson2booleanSame as reasonNoPublicTransportPerson1, for Person 2.
-
reasonTimeSavingsOver1HourPerson2booleanSame as reasonTimeSavingsOver1HourPerson1, for Person 2.
-
reasonEmployerRequiredPerson2booleanSame as reasonEmployerRequiredPerson1, for Person 2. A written confirmation from the employer must be filed with the return.
-
reasonMedicalUnableToUsePublicTransportPerson2booleanSame as reasonMedicalUnableToUsePublicTransportPerson1, for Person 2. A doctor's certificate (Arztzeugnis) must be filed with the return.
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-08maturity.level:structural-reference
Why this cycle picked up Berufsauslagen
This is the recurring "GovSchema Standard Research" cycle (GOV-1868). The prior cycle (GOV-1854), which authored the Wertschriftenverzeichnis (ch/zh/sta/wertschriften-und-guthabenverzeichnis), left the remaining six CH-ZH companion schedules as an open backlog list: Berufsauslagen, Versicherungsprämien, Aus- und Weiterbildung, Liegenschaftenverzeichnis, Schuldenverzeichnis, and Hilfsblatt A/B/G. This cycle picks Berufsauslagen specifically because it is likely the single most commonly populated companion schedule of the six: nearly every salaried filer in Switzerland claims some work-related expense deduction (at minimum the flat-rate "übrige Berufskosten" line), whereas the securities schedule closed last cycle only applies to filers who hold investments. CATALOG.md's own "Known Gaps" list is updated by this cycle to move Berufsauslagen from the open list to closed, leaving five remaining companion schedules.
Sources examined
- Document
(id, version):ch/zh/sta/berufsauslagen/1.0.0 - Spec version: GovSchema
0.3.0 - Authority: Kanton Zürich — Finanzdirektion, Kantonales Steueramt Zürich (the same authority as the main return and the Wertschriftenverzeichnis; this form's own printed issuer is also "StA Form.", here "360").
- Primary source: https://www.zh.ch/content/dam/zhweb/bilder-dokumente/themen/steuern-finanzen/steuern/natuerlichepersonen/2025/est-formulare/360%20Berufsauslagen%20ZH%202025%20HA%20DEF.pdf — "StA Form. 360 (2024) 12.25 — Berufsauslagen 2025," fetched directly (HTTP 200,
%PDF-1.4, 71,793 bytes, no/Encrypt, no login/CAPTCHA/WAF gate) from the same tax-return landing page GOV-1847/GOV-1854 used, https://www.zh.ch/de/steuern-finanzen/steuern/steuern-natuerliche-personen/steuererklaerung-natuerliche-personen.html, which links this form directly next to the main return under the 2025 "est-formulare" (Steuererklärungsformulare) listing. The link text and filename ("360 Berufsauslagen ZH 2025 HA DEF.pdf") match the main return's own reference to this schedule by name at lines 220/240 (Ziffer 11.1/11.2). - A note on the form's own print date. Like the Wertschriftenverzeichnis (StA Form. 340, printed "(2023)"), this form's footer prints "StA Form. 360 (2024) 12.25" even though its own cover page is titled "Berufsauslagen 2025" throughout — the printed template was evidently last revised in 2024 and is reused for the 2025 tax year with only the cover-page year updated. Disclosed as an observed detail, not treated as a discrepancy.
- Companion Wegleitung, examined for rate/cap confirmation: https://www.zh.ch/content/dam/zhweb/bilder-dokumente/themen/steuern-finanzen/steuern/natuerlichepersonen/2025/est-wegleitungen/305_Wegleitung_ZH_2025_HA%20bf%20DEF.pdf — the same 40-page "Wegleitung zur Steuererklärung 2025" GOV-1847 used, fetched the same way (HTTP 200,
%PDF-1.7, 1,497,565 bytes). Its pp.13-14 ("Berufsauslagen [Ziffer 11]") restate, in prose, every rate and cap this form's own two pages already print numerically (CHF 700 flat bicycle/moped rate; CHF 5'200/CHF 3'300 commuting-cost caps; CHF 7.50/CHF 1'600 and CHF 15/CHF 3'200 meal-surcharge rates/caps; CHF 0.70/CHF 0.40 per-km car/motorcycle rates; the 3%-of-net-wage CHF 2'000-CHF 4'000 band; the 20%-of-side-income CHF 800-CHF 2'400 band) plus the exact statutory wording of the four private-vehicle-use justifications (matching checkboxes 2041-2044 verbatim) and a fuller explanation of the one line the form itself does not print a fixed cap for (line 2860/2861, extra costs for an out-of-town weekly residence — see scope decision below). Crucially, p.36 carries an official worked specimen of this exact form: "Berufsauslagen 2025, Person 1, Muster-Meister Felix, Kanton Zürich, Gemeinde Zürich, AHVN13 756.1234.5678.90" with CHF 700 at line 202 (bicycle flat rate), CHF 1'600 at line 206 (capped employer-subsidized meal surcharge, both tax columns), CHF 2'515 at line 212 (other-costs flat-rate deduction, both tax columns), every other line blank, and a total of CHF 4'815 at line 220 for both the Staatssteuer and Bundessteuer columns (700 + 1'600 + 2'515 = 4'815, confirmed by arithmetic). - Extraction method.
pdfjs-dist(v3.11.174,legacy/build/pdf.js) text extraction with full(x, y)coordinates per text item, plus apdf-libAcroForm check (form.getFields()) and apdfjs-distper-page annotation check (page.getAnnotations(), filtered tosubtype === 'Widget'). Both checks returned zero fillable widgets across both pages — the same flat, non-AcroForm, print/reference-facsimile shape as its two CH-ZH sibling schemas. Both pages were additionally rendered to PNG (pdfjs-dist+node-canvas, 2.5× scale) and visually cross-checked against the extracted text before any field name was assigned. This rendering pass is what resolved:- that Person 1's page alone carries the AHVN13 and Gemeinde boxes — the mirrored Person 2 page (p.2) omits both, confirming these are collected once per filing rather than once per person;
- the exact three-box layout of the "1.3 Auto, Motorrad" sub-table (a two-row worksheet — workplace, workdays, km, trips/day, km/year, rate/km — feeding a single combined deduction box via a printed brace), which a naive text scan alone could not disambiguate from the surrounding checkbox labels ("Auto: CHF -.70 pro km," "Motorrad: CHF -.40 pro km," "geleastes Fahrzeug");
- that each numbered line (e.g. "201 201," "220 220") prints the same box-reference number in both the Staatssteuer and Bundessteuer columns — i.e. one line number denotes one row with two amount cells, not two distinct box numbers — consistent with how the main return's own
professionalExpensesPerson1StateTax/FederalTaxfields both cite "line 220," confirming the box-numbering convention carries through correctly from this schedule onto the main return; - that no signature/date/declaration block appears anywhere on either page (confirmed by rendering both pages in full) — this schedule transfers its totals onto the main return, whose own single signature block already covers the whole filing, so this document defines no
documents[]attestation entry of its own. - the p.36 worked specimen described above, used to sanity-check this schema's own field layout and the state/fed shared-box-number convention before any mock data was authored.
- Retrieved / reviewed: 2026-07-08.
- Reviewer: GovSchema Engineering (Standards Engineer — initial authoring source review).
Scope decision: the two-row private-vehicle worksheet is collapsed to one free-text field per person
GovSchema v0.3 fields are flat: there is no array/nested-object element type yet (array/nested object are proposed only in GSP-0009, not accepted). Section 1.3's own worksheet has two printed rows (for a filer who commutes to more than one workplace during the year), each with up to seven distinct values (workplace, working days, km, trips/day, km/year, rate/km, and the resulting per-row deduction), combined via a printed brace into the single box-204/224 deduction total. Per this registry's established treatment of exactly this situation elsewhere (the main return's own childrenInHouseholdDetails and siblings; the Wertschriftenverzeichnis's own securitiesAndHoldingsDetails), the worksheet is collapsed into one carMotorcycleCommutingDetailsPerson1/Person2 free-text field, with the combined deduction kept as its own numeric field (carMotorcycleDeductionPerson1StateTax and siblings) since that is the literal entry box printed on the form.
Scope decision: statutory caps modelled directly on the affected fields
Unlike the main return (which deferred most caps/rates to the Wegleitung since it does not print them on its own face), this schedule prints every statutory rate and cap directly on its own two pages. Per the same pattern the main return itself used for lines it does print a cap for (e.g. childcareCostsStateTax's CHF 25'000 cap), every capped line here carries the matching validation.minimum/maximum: CHF 700 (bicycle/moped flat rate), CHF 5'200/CHF 3'300 (commuting-cost subtotal, state/federal), CHF 1'600 (employer-subsidized meal surcharge), CHF 3'200 (fully-employee-borne meal surcharge and shift/night-work compensation), CHF 2'000-CHF 4'000 (other professional costs, flat rate), and CHF 800-CHF 2'400 (side-job expenses, flat rate). The one line this schedule itself defers to the Wegleitung (weekly-residence extra costs, line 2860/2861) is deliberately left uncapped, since the Wegleitung confirms its total is a composite of an uncapped actual-rent component, a capped meal component, and an already-counted-elsewhere transport component — no single statutory ceiling applies to the combined line.
Scope decision: no Lohnausweis net-wage field, and the itemized-actual lines are pass-through amounts only
The 3%-of-net-wage flat-rate deduction (line 212/232) depends on a net-wage figure drawn from the taxpayer's own salary certificate (Lohnausweis), which belongs to the main return / the employer's own certificate, not to this schedule — this document models only the resulting CHF deduction amount actually entered in box 212/232, not the underlying net-wage computation. Likewise, the "bzw. effektiv gemäss Aufstellung" lines (213/217/233/237) are modelled as plain numeric transfer amounts, with the itemized statement (Aufstellung) itself represented only as a gated documents[] supporting- evidence requirement (expenseItemizationAufstellung), consistent with how the main return and the Wertschriftenverzeichnis treat every other itemized-statement reference throughout this registry.
Field-by-field source mapping
- Header (p.1 for Person 1 only; p.2 for Person 2) →
ahvn13RemainingDigitsPerson1,gemeinde,namePerson1,vornamePerson1,arbeitgeberPerson1,arbeitsortStrassePerson1, and their Person 2 counterparts (minus AHVN13/ Gemeinde, not printed on Person 2's page). - 1. Fahrkosten (lines 201/221, 202/222, the 1.3 worksheet and its 204/224 total, 205/225 Zwischentotal) →
publicTransitSubscriptionCostsPersonXStateTax/FederalTax,bicycleMopedFlatRatePersonXStateTax/FederalTax,carMotorcycleCommutingDetailsPersonX,carMotorcycleDeductionPersonXStateTax/FederalTax,commutingCostsSubtotalPersonXStateTax/FederalTax. - 2. Mehrkosten der Verpflegung (lines 206/226, 208/228, 210/230 plus its "Anzahl Tage" box) →
mealSurchargeEmployerSubsidizedPersonXStateTax/FederalTax,mealSurchargeFullyEmployeeBornePersonXStateTax/FederalTax,shiftNightWorkDaysPersonX,shiftNightWorkCompensationPersonXStateTax/FederalTax. - 3. Übrige Berufskosten (lines 212/232, 213/233) →
otherProfessionalCostsFlatRatePersonXStateTax/FederalTax,otherProfessionalCostsActualPersonXStateTax/FederalTax. - 4. Mehrkosten bei auswärtigem Wochenaufenthalt (lines 2860/2861) →
weeklyResidenceExtraCostsPersonXStateTax/FederalTax. - 5. Auslagen bei Nebenerwerb (lines 216/236, 217/237) →
sideJobExpensesFlatRatePersonXStateTax/FederalTax,sideJobExpensesActualPersonXStateTax/FederalTax. - 6. Total der Berufsauslagen (lines 220/240) →
totalProfessionalExpensesPersonXStateTax/FederalTax,required: trueon both, since every filer using this schedule ultimately produces this total (even as the sum of zero-value lines) and it is this document's principal output, transferring directly to the main return's ownprofessionalExpensesPersonXStateTax/FederalTaxfields. - 7. Begründung für die Benützung eines privaten Motorfahrzeuges (lines 2041-2044/2241-2244) →
reasonNoPublicTransportPersonX,reasonTimeSavingsOver1HourPersonX,reasonEmployerRequiredPersonX,reasonMedicalUnableToUsePublicTransportPersonX. - Evidentiary references → the 4
documents[]entries (expenseItemizationAufstellung,weeklyResidenceItemizationAufstellung,employerConfirmationForRequiredVehicleUse,medicalCertificateForVehicleUse), eachrequiredWhenits triggering field(s) across both persons.
Mock-data test run
Per the issue's phase-3 instruction to test-run the schema with valid mock data, a one-off Node.js script (not committed to the repo) implementing the same equals/in/greaterThan/all/any/not Condition grammar as GSP-0013 checked every required/requiredWhen constraint on both fields and documents[] against three scenarios (fabricated, not copied from the Wegleitung's own official specimen — see below for a note on how they were cross-checked against it):
`` OK Scenario 1: single filer, public-transit commuter, flat-rate other costs only OK Scenario 2: joint filers, Person 1 claims private-car commuting + weekly residence + side-job actual costs; Person 2 claims bicycle flat rate + shift-work meal surcharge FAIL Negative control: private-car reason "Ständige Benützung ... Arbeitgeber" checked without the employer-confirmation document (expected FAIL) - MISSING required document: employerConfirmationForRequiredVehicleUse ``
Scenario 1 models a single filer (Anna Furrer, Zürich) commuting by ZVV public transit: publicTransitSubscriptionCostsPerson1StateTax/FederalTax = CHF 1'020 (an annual regional pass, below both caps so no proration needed), otherProfessionalCostsFlatRatePerson1StateTax/FederalTax = CHF 2'520 (3% of a CHF 84'000 net wage, within the CHF 2'000-CHF 4'000 band), giving totalProfessionalExpensesPerson1StateTax/FederalTax = CHF 3'540. All Person 2 fields, all vehicle-reason checkboxes, and all documents[] are absent/false — correctly accepted since none of their triggers fire.
Scenario 2 models a joint filing. Person 1 (Marco Vogel) drives to a single workplace 14 km away for 220 working days, claiming reasonNoPublicTransportPerson1 = true (with employerConfirmationForRequiredVehicleUse correctly not required, since only the no-public-transport reason is checked) and carMotorcycleDeductionPerson1StateTax/FederalTax = CHF 4'312 (220 days × 14 km × 2 (round trip) × CHF 0.70/km = CHF 4'312.00, within the CHF 5'200 state cap and reflected identically in the CHF 3'300-capped federal column at CHF 3'300 after the cap applies — the federal commutingCostsSubtotalPerson1FederalTax is CHF 3'300, the capped value, not the pre-cap CHF 4'312), plus weeklyResidenceExtraCostsPerson1StateTax/FederalTax = CHF 6'200 (triggering weeklyResidenceItemizationAufstellung) and sideJobExpensesActualPerson1StateTax/FederalTax = CHF 1'850 (triggering expenseItemizationAufstellung). Person 2 (Sabine Vogel) claims bicycleMopedFlatRatePerson2StateTax/FederalTax = CHF 700 and shiftNightWorkDaysPerson2 = 60 with shiftNightWorkCompensationPerson2StateTax/FederalTax = CHF 900 (60 × CHF 15). Both totals and all three triggered documents[] entries are present, and the run accepts the scenario.
The negative control reuses Scenario 2's Person 1 but sets reasonEmployerRequiredPerson1 = true (in addition to reasonNoPublicTransportPerson1) without supplying employerConfirmationForRequiredVehicleUse, confirming the evaluator actually enforces requiredWhen on this specific documents[] entry rather than trivially passing everything.
All three scenarios' commuting and meal/shift figures were separately sanity-checked for internal arithmetic consistency against the Wegleitung's own official p.36 specimen (CHF 700 bicycle flat rate; CHF 1'600 capped meal surcharge; CHF 2'515 other-costs flat rate; total CHF 4'815) — i.e. the same box-204/205/220 relationships (component amounts summing to the printed total, with the commuting subtotal capped before the grand total is formed) hold in this schema's own scenarios as in the government's own worked example. No defects were found in the schema itself.
Both registry validators were run against the schema document itself and pass:
``` $ node tools/validate.mjs registry/ch/zh/sta/berufsauslagen/1.0.0/schema.json ok registry/ch/zh/sta/berufsauslagen/1.0.0/schema.json
1/1 document(s) passed.
$ node tools/validate-ajv.mjs registry/ch/zh/sta/berufsauslagen/1.0.0/schema.json ok registry/ch/zh/sta/berufsauslagen/1.0.0/schema.json [v0.3]
1/1 document(s) validated against the meta-schema (ajv 2020-12).
$ node tools/verify-sources.mjs registry/ch/zh/sta/berufsauslagen/1.0.0 verify-sources: checking 1 schema version directory...
verify-sources: 1 directory, 4 URLs checked, 0 warning(s), 0 allowlisted, all clear. ```
What is NOT modelled (out of scope), and why
- The Lohnausweis net-wage figure the 3%-of-net-wage flat rate is computed from — belongs to the main return / the employer's own salary certificate, not this schedule.
- The itemized statement (Aufstellung) a filer attaches when claiming actual costs above a flat rate for other professional costs, weekly residence, or side-job expenses — represented only as gated
documents[]supporting-evidence requirements, not modelled field-by-field (its own shape is unbounded and form-free, unlike this document's printed table). - The two-row private-vehicle worksheet's per-row breakdown — collapsed into
carMotorcycleCommutingDetailsPersonX. See scope decision above. - The office-only fields — none observed on either page of this form (unlike the main return and Wertschriftenverzeichnis, which each carry one office-only stamp/date box).
Judgment calls
commutingCostsSubtotalPersonXStateTax/FederalTax(the Zwischentotal, line 205/225) is modelled as its own field despite being a pure sum of three other already-captured fields. Unlike the main return's own exclusion of pure arithmetic/transfer lines (justified there because the companion schedule is where such lines truly belong), this document is that companion schedule, and the Zwischentotal is where the CHF 5'200/CHF 3'300 statutory cap is actually applied — a materially different, separately capped data point from the final total (line 220), consistent with how the Wertschriftenverzeichnis schema itself modelled both intermediate subtotals and a final total.totalProfessionalExpensesPersonXStateTax/FederalTax(line 220/240) are markedrequired: true; every other line isrequired: false. The total is always filled in by every filer using this schedule (potentially as the sum of zero-value lines, e.g. a filer claiming only the flat-rate "übrige Berufskosten" minimum); every other line applies only to the specific commuting/meal/residence/side-job situation that filer is in.shiftNightWorkDaysPersonXis modelled as a plaininteger, not validated againstshiftNightWorkCompensationPersonXStateTax/FederalTaxviacrossFieldValidation. The exact CHF-per-day rate a filer applies can legitimately differ from the simple headcount × CHF 15 arithmetic in edge cases (e.g. partial-year employment, a rate change never observed on this specific form), so the two are kept independently entered rather than cross-validated, consistent with this registry's general preference for not inventing derived-value enforcement the source form itself does not state as a hard rule.- Amounts are modelled as plain
numberfields in whole CHF ("CHF ohne Rappen," printed on both pages' column headers), consistent with this registry's convention elsewhere of not adding a separate sub-unit field. jurisdiction.levelissubnationalwithsubdivision: "CH-ZH", identical to the main return and the Wertschriftenverzeichnis, since this is the same cantonal tax authority's own companion form.- No live submission was attempted — filing a real Swiss tax return or companion schedule 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 both this form and the Wegleitung — no TCP-level reset, WAF, or CAPTCHA gate encountered, consistent with GOV-1847/GOV-1854's findings that zh.ch's own tax-forms domain is unblocked.
Scope and jurisdiction notes
- This is Switzerland's third Taxes-vertical document (the second companion schedule to the main return, alongside the Wertschriftenverzeichnis), not a new vertical or jurisdiction; Switzerland remains at 2 of 6 verticals.
idreuses thestaauthority-directory segment (the same cantonal tax office) and the form's own official title, ASCII-folded, as its slug:berufsauslagen.- Conditional requiredness uses
requiredWhen(GSP-0013), targeting spec v0.3, consistent with the main return and every other document in this registry. Noeditionmember is used, consistent with this registry's existing treatment of other annual tax-year-specific schedules.
Re-verification
Per the practice's cadence, nextReviewBy is set to 2027-01-08 (6 months), the same cadence as its two CH-ZH sibling documents. Because status remains draft, a future review should prioritize: confirming the 2026-tax-year edition of this form, the main return, and the Wegleitung keep the same box-reference numbering (201-220/221-240, 2041-2044/2241-2244, 2860/2861), and re-screening whether any of the five remaining companion schedules (Versicherungsprämien, Aus- und Weiterbildung, Liegenschaftenverzeichnis, Schuldenverzeichnis, Hilfsblatt A/B/G) has become a tractable next candidate — Versicherungsprämien (Form 365, glimpsed alongside this cycle's Wegleitung specimen page, p.36) is a reasonable next guess given it shares the same flat, non-AcroForm shape and a similarly broad filer base (nearly every filer pays some health/accident insurance premium).
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.