Registry entry
Latvia Annual Income Tax Declaration — Form D and Annex D1 (Gada ienākumu deklarācija, forma D un pielikums D1)
The State Revenue Service's (Valsts ieņēmumu dienests, VID) annual personal income tax declaration under Cabinet Regulation No. 662 (30 October 2018), "Noteikumi par iedzīvotāju ienākuma nodokļa deklarācijām un to aizpildīšanas kārtību", as amended by Cabinet Regulation No. 615 of 21 October 2025 (in force 2026-01-01). Deepens Latvia (the registry's 75th jurisdiction, opened via lv/ur/sole-trader-registration-kr2, GOV-4129) to its second vertical, Taxes. The regulation's own Annex 1 bundles a base cover declaration (Form D) with 7 companion schedules (D1, D1¹, D2, D2¹, D3, D3¹, D4); Form D alone is mostly formula-derived totals referencing those other annexes, so this v1.0.0 is scoped to Form D (cover/identification and the tax-calculation summary) plus Annex D1 (taxation-year income earned in Latvia, excluding business-activity income and excluding income to which the annual non-taxable minimum and reliefs do not apply — the common resident salaried-employee/pensioner case), matching this registry's existing narrow-scoping precedent for large multi-schedule tax forms (e.g. CL Formulario 22, GOV-1744). Annexes D1¹, D2, D2¹, D3, D3¹, D4, DK, the DK annex, and GD are explicitly left as open backlog (see VERIFICATION.md Known Gaps) — every Form D summary row whose printed formula references one of those out-of-scope annexes is still modelled as a plain numeric field (so the total the filer computes and transcribes can be captured), with the out-of-scope terms of its own formula disclosed in the field's own description rather than fabricated. Models the declarant's identification, Annex D1's 9-row income table (source/type, gross income, non-taxable income, 3 justified-expense sub-columns, income-related expenses, taxable income, and advance-paid/withheld tax, plus the schedule's own "Kopā" totals row), Form D's 27-row (plus 2 sub-rows) tax-calculation summary including the pensioner non-taxable-minimum checkbox, the overpayment refund bank details, the free-text list of attached annex numbers and supporting-expense documents, a single completeness attestation, and a single signature/date pair. Filing this declaration is a taxpayer action performed with the State Revenue Service (via the EDS electronic declaration system, by post, or in person); this schema does not file the declaration itself, and the live source is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by Latvia or its State Revenue Service.
You are viewing v1.0.0
The latest published version of this schema is v1.4.1. See the current reference page. Published versions are immutable; this page stays for agents pinned to lv/vid/annual-income-tax-declaration-form-d@1.0.0.
Registry entry
lv/vid/annual-income-tax-declaration-form-d
Machine access
- Schema document
registry/lv/vid/annual-income-tax-declaration-form-d/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/lv/vid/annual-income-tax-declaration-form-d/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
130 fields across 4 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.
Taksācijas gads un nodokļa maksātāja identifikācija (Tax Year and Taxpayer Identification)
-
taxationYearinteger requiredThe tax year the declaration covers, printed as 4 blank digit boxes at the top of Form D.
range: 2000–2100 -
applicantFullNamestring requiredThe declarant's full given name and surname, entered on a single fill-in line (the form does not split given name and surname into separate boxes here, unlike some other Latvian forms in this registry).
classification: pii -
applicantPersonalCodestring requiredThe declarant's Latvian personal code (personas kods), printed as 6 digit boxes, a literal dash, then 5 digit boxes — unlike lv/ur/sole-trader-registration-kr2's own personas kods field, this form prints the dash placeholder directly, so the pattern is derived from the printed boxes themselves.
patternclassification: sensitive-pii -
applicantPhoneNumberstring optionalThe declarant's phone number, printed as 8 digit boxes.
patternclassification: pii
D1 pielikums — Taksācijas gadā Latvijas Republikā gūtie ienākumi (Annex D1 — Income Earned in Latvia During the Tax Year)
-
incomeEntry1SourceAndTypestring optionalRow 1 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry1GrossIncomenumber optionalRow 1 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry1NonTaxableIncomenumber optionalRow 1 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry1EmployeeSocialInsuranceContributionsnumber optionalRow 1 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry1PensionAndLifeInsuranceContributionsnumber optionalRow 1 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry1AuthorExpensesnumber optionalRow 1 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry1IncomeRelatedExpensesnumber optionalRow 1 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry1TaxableIncomenumber optionalRow 1 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry1AdvanceTaxWithheldnumber optionalRow 1 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry2SourceAndTypestring optionalRow 2 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry2GrossIncomenumber optionalRow 2 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry2NonTaxableIncomenumber optionalRow 2 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry2EmployeeSocialInsuranceContributionsnumber optionalRow 2 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry2PensionAndLifeInsuranceContributionsnumber optionalRow 2 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry2AuthorExpensesnumber optionalRow 2 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry2IncomeRelatedExpensesnumber optionalRow 2 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry2TaxableIncomenumber optionalRow 2 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry2AdvanceTaxWithheldnumber optionalRow 2 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry3SourceAndTypestring optionalRow 3 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry3GrossIncomenumber optionalRow 3 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry3NonTaxableIncomenumber optionalRow 3 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry3EmployeeSocialInsuranceContributionsnumber optionalRow 3 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry3PensionAndLifeInsuranceContributionsnumber optionalRow 3 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry3AuthorExpensesnumber optionalRow 3 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry3IncomeRelatedExpensesnumber optionalRow 3 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry3TaxableIncomenumber optionalRow 3 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry3AdvanceTaxWithheldnumber optionalRow 3 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry4SourceAndTypestring optionalRow 4 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry4GrossIncomenumber optionalRow 4 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry4NonTaxableIncomenumber optionalRow 4 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry4EmployeeSocialInsuranceContributionsnumber optionalRow 4 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry4PensionAndLifeInsuranceContributionsnumber optionalRow 4 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry4AuthorExpensesnumber optionalRow 4 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry4IncomeRelatedExpensesnumber optionalRow 4 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry4TaxableIncomenumber optionalRow 4 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry4AdvanceTaxWithheldnumber optionalRow 4 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry5SourceAndTypestring optionalRow 5 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry5GrossIncomenumber optionalRow 5 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry5NonTaxableIncomenumber optionalRow 5 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry5EmployeeSocialInsuranceContributionsnumber optionalRow 5 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry5PensionAndLifeInsuranceContributionsnumber optionalRow 5 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry5AuthorExpensesnumber optionalRow 5 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry5IncomeRelatedExpensesnumber optionalRow 5 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry5TaxableIncomenumber optionalRow 5 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry5AdvanceTaxWithheldnumber optionalRow 5 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry6SourceAndTypestring optionalRow 6 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry6GrossIncomenumber optionalRow 6 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry6NonTaxableIncomenumber optionalRow 6 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry6EmployeeSocialInsuranceContributionsnumber optionalRow 6 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry6PensionAndLifeInsuranceContributionsnumber optionalRow 6 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry6AuthorExpensesnumber optionalRow 6 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry6IncomeRelatedExpensesnumber optionalRow 6 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry6TaxableIncomenumber optionalRow 6 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry6AdvanceTaxWithheldnumber optionalRow 6 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry7SourceAndTypestring optionalRow 7 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry7GrossIncomenumber optionalRow 7 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry7NonTaxableIncomenumber optionalRow 7 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry7EmployeeSocialInsuranceContributionsnumber optionalRow 7 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry7PensionAndLifeInsuranceContributionsnumber optionalRow 7 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry7AuthorExpensesnumber optionalRow 7 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry7IncomeRelatedExpensesnumber optionalRow 7 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry7TaxableIncomenumber optionalRow 7 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry7AdvanceTaxWithheldnumber optionalRow 7 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry8SourceAndTypestring optionalRow 8 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry8GrossIncomenumber optionalRow 8 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry8NonTaxableIncomenumber optionalRow 8 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry8EmployeeSocialInsuranceContributionsnumber optionalRow 8 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry8PensionAndLifeInsuranceContributionsnumber optionalRow 8 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry8AuthorExpensesnumber optionalRow 8 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry8IncomeRelatedExpensesnumber optionalRow 8 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry8TaxableIncomenumber optionalRow 8 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry8AdvanceTaxWithheldnumber optionalRow 8 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeEntry9SourceAndTypestring optionalRow 9 of Annex D1's income table: the income source (including the payer's name and registration code, or name and personal code, where one is assigned) and the type of income.
-
incomeEntry9GrossIncomenumber optionalRow 9 of Annex D1's income table. Bruto ieņēmumi.
range: 0–∞ -
incomeEntry9NonTaxableIncomenumber optionalRow 9 of Annex D1's income table. Neapliekamie ienākumi.
range: 0–∞ -
incomeEntry9EmployeeSocialInsuranceContributionsnumber optionalRow 9 of Annex D1's income table. Attaisnotie izdevumi — darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeEntry9PensionAndLifeInsuranceContributionsnumber optionalRow 9 of Annex D1's income table. Attaisnotie izdevumi — iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeEntry9AuthorExpensesnumber optionalRow 9 of Annex D1's income table. Attaisnotie izdevumi — autoru izdevumi.
range: 0–∞ -
incomeEntry9IncomeRelatedExpensesnumber optionalRow 9 of Annex D1's income table. Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeEntry9TaxableIncomenumber optionalRow 9 of Annex D1's income table. Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile). Formula printed on the schedule: this column's value equals column 2 (Bruto ieņēmumi) minus column 3 (Neapliekamie ienākumi) minus column 6 (autoru izdevumi) minus column 7 (Izdevumi, kas saistīti ar ienākumu gūšanu) — cross-checked against Form D row 1's own formula reference "D1 8. ailes summa".
-
incomeEntry9AdvanceTaxWithheldnumber optionalRow 9 of Annex D1's income table. Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞ -
incomeTotalGrossIncomenumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 2. aile: Bruto ieņēmumi.
range: 0–∞ -
incomeTotalNonTaxableIncomenumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 3. aile: Neapliekamie ienākumi.
range: 0–∞ -
incomeTotalEmployeeSocialInsuranceContributionsnumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 4. aile: darba ņēmēja valsts sociālās apdrošināšanas obligātās iemaksas.
range: 0–∞ -
incomeTotalPensionAndLifeInsuranceContributionsnumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 5. aile: iemaksas privātajos pensiju fondos un dzīvības apdrošināšanas prēmijas.
range: 0–∞ -
incomeTotalAuthorExpensesnumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 6. aile: autoru izdevumi.
range: 0–∞ -
incomeTotalIncomeRelatedExpensesnumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 7. aile: Izdevumi, kas saistīti ar ienākumu gūšanu.
range: 0–∞ -
incomeTotalTaxableIncomenumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 8. aile: Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas.
-
incomeTotalAdvanceTaxWithheldnumber optionalThe "Kopā" (total) row at the foot of Annex D1's income table, column 9. aile: Avansā samaksātais (ieturētais) nodoklis.
range: 0–∞
Nodokļa aprēķins (Tax Calculation Summary)
-
taxableIncomeEarnedInLatvianumber optionalRow 1: taxable income earned in the Republic of Latvia. Printed formula: Annex D1 column 8 total (incomeTotalTaxableIncome) + Annex D3 row 11 + Annex D3¹ row 13 — D3/D3¹ (business-activity income schedules) are out of scope for this schema version (see VERIFICATION.md Known Gaps); only the Annex D1 term is populated from a modelled field.
range: 0–∞ -
taxableIncomeEarnedAbroadnumber optionalRow 2: taxable income earned abroad. Printed formula: (Annex D2 column 3 - Annex D2 column 4 - Annex D2 column 6) + Annex D2¹ column 5 — D2/D2¹ (foreign-income schedules) are out of scope for this schema version.
-
taxableIncomeIncreaseAmountnumber optionalRow 3: increase to taxable income.
-
totalTaxableIncomenumber optionalRow 4: total taxable income. Printed formula: row 1 + row 2 + row 3.
-
totalNonTaxableIncomenumber optionalRow 5: total non-taxable income. Printed formula: Annex D1 column 3 total (incomeTotalNonTaxableIncome) + Annex D2 column 4 + (Annex D3 rows 1.4 and 4 total, or Annex D3¹ row 2 total) + non-taxable income from agricultural production and rural tourism services. D2/D3/D3¹ terms are out of scope for this schema version; only the Annex D1 term is populated from a modelled field.
range: 0–∞ -
mandatorySocialInsuranceDeductionnumber optionalRow 6: deductible mandatory state social insurance contributions. Printed formula: (Annex D1 column 4 total + Annex D2 column 5 total + the self-employed person's own mandatory state social insurance contributions) minus row 7. D2 term and the self-employed contributions term are out of scope for this schema version.
-
solidarityTaxPortionTransferrednumber optionalRow 7: the portion of solidarity tax transferred to the personal income tax distribution account, when the solidarity tax object is simultaneously a personal income tax object.
range: 0–∞ -
educationHealthDonationsDeductionnumber optionalRow 8: deductible expenses for education, medical services, donations and gifts. Printed formula: Annex D4 "Kopā" row, columns 10 and 11 total. Annex D4 is out of scope for this schema version (see VERIFICATION.md Known Gaps).
range: 0–∞ -
pensionFundLifeInsuranceDeductionnumber optionalRow 9: deductible contributions to private pension funds and life-insurance premium payments under a savings-accumulation life insurance contract. Printed formula: Annex D1 column 5 total (incomeTotalPensionAndLifeInsuranceContributions) + the taxpayer's own contributions and life-insurance premium payments made directly (not through an employer).
range: 0–∞ -
totalJustifiedExpensesnumber optionalRow 10: total justified expenses. Printed formula: row 6 + row 8 + row 9.
-
annualNonTaxableMinimumnumber optionalRow 11: the declarant's own annual differentiated non-taxable minimum, as calculated and communicated by the State Revenue Service (VID) based on the taxpayer's income; the regulation does not print a formula for this row.
range: 0–∞ -
pensionerNonTaxableMinimumAppliedboolean optionalRow 12's own checkbox, printed inline in its label: whether the taxpayer opts into the pensioner's non-taxable minimum under Article 12(14) of the Law "On Personal Income Tax" ("Tiek piemērota likuma \"Par iedzīvotāju ienākuma nodokli\" 12. panta četrpadsmitā daļa"), rather than row 11's general differentiated non-taxable minimum.
-
pensionerAnnualNonTaxableMinimumnumber optionalRow 12's own amount box: the pensioner's annual non-taxable minimum amount, filled in only when pensionerNonTaxableMinimumApplied is checked.
range: 0–∞ -
dependentsReliefnumber optionalRow 13: tax relief for dependents.
range: 0–∞ -
disabilityReliefnumber optionalRow 14: tax relief for persons with disabilities.
range: 0–∞ -
politicallyRepressedPersonReliefnumber optionalRow 15: tax relief for politically repressed persons.
range: 0–∞ -
nationalResistanceMovementReliefnumber optionalRow 16: tax relief for participants of the national resistance movement.
range: 0–∞ -
totalReliefsnumber optionalRow 17: total reliefs. Printed formula: row 13 + row 14 + row 15 + row 16.
-
totalTaxnumber optionalRow 18: total tax, of which rows 18.1 and 18.2 (taxBelowFirstProgressionThreshold / taxAboveFirstProgressionThreshold) are the printed breakdown.
-
taxBelowFirstProgressionThresholdnumber optionalRow 18.1: tax on the portion of income not exceeding the first progression threshold.
range: 0–∞ -
taxAboveFirstProgressionThresholdnumber optionalRow 18.2: tax on the portion of income exceeding the first progression threshold.
range: 0–∞ -
taxOnOtherIncomeAndMinimumBusinessTaxnumber optionalRow 19: tax on other income and minimum tax on business activity. Printed formula: Annex D1¹ column 10 total + the minimum tax on business activity. Annex D1¹ (income to which the annual non-taxable minimum and reliefs do not apply) is out of scope for this schema version (see VERIFICATION.md Known Gaps) — cross-checked directly against the raw regulation markup, which renders the superscript as "D1" followed by a separate superscript "1" element (D1¹), not the string "D11" a naive tag-stripping extraction would produce.
range: 0–∞ -
taxOnProfessionalAthleteIncomenumber optionalRow 20: tax on a professional athlete's employment income.
range: 0–∞ -
incomeSubjectToAdditionalTaxRatenumber optionalRow 21: income subject to the additional tax rate. Printed formula: (row 4 + Annex D1¹ column 6 total + foreign salary received abroad exempt from taxation in Latvia + professional athlete's income + income from capital gains + non-taxable dividends, income equated to dividends, deemed dividends and liquidation quotas) minus the income threshold above which the additional tax rate applies; if the result is negative, zero is entered. Annex D1¹ term is out of scope for this schema version.
-
additionalTaxnumber optionalRow 22: additional tax. Printed formula: row 21 x the additional tax rate percentage.
range: 0–∞ -
advancePaidOrWithheldTaxnumber optionalRow 23: total advance-paid (withheld) tax. Printed formula: (Annex D1 column 9 total (incomeTotalAdvanceTaxWithheld) + Annex D2 column 7 or 9 + Annex D2¹ column 7 or 8 + Annex D3 row 9 + Annex D3¹ row 11) + row 7. D2/D2¹/D3/D3¹ terms are out of scope for this schema version; only the Annex D1 and row-7 terms are populated from modelled fields.
range: 0–∞ -
taxPayableToBudgetnumber optionalRow 24: tax payable to the budget, entered when row 18 + row 19 + row 20 + row 21 is greater than row 23.
range: 0–∞ -
overpaidTaxOrRefundnumber optionalRow 25: overpaid tax / tax refund, entered when row 23 is greater than row 18 + row 19 + row 20 + row 22.
range: 0–∞ -
taxPaymentDeadlinedate optionalRow 26: the tax payment deadline. Printed as 3 adjoining boxes (widths 6%/6%/7%) with no sub-labels; modelled as a single date value, consistent with this registry's convention for unlabelled day/month/year digit-box groups elsewhere.
-
totalTaxAmountnumber optionalRow 27: the overall total tax amount. Printed with the same 3-box layout as row 26, which for this bold, amount-labelled row is read as page-width alignment rather than a day/month/year split — modelled as a single numeric value.
range: 0–∞
Pārmaksas atmaksa un iesniegšana (Overpayment Refund and Filing)
-
refundAmountnumber optionalThe overpayment amount the declarant asks to have transferred to their account, under the heading "Lūdzu pārskaitīt pārmaksas summu uz kontu" (please transfer the overpayment amount to the account).
range: 0–∞ -
refundAccountIbanstring optionalThe IBAN account number the overpayment is to be transferred to. The form itself states only the printed length ("IBAN 21 simbols" — IBAN, 21 characters); the pattern here (LV + 2 check digits + 4-letter bank code + 13-digit account number = 21 characters) is derived from the general Latvian IBAN standard, not printed on the form.
pattern -
attachedPagesCountinteger optionalThe number of pages of documents the declarant states they are attaching to the declaration ("Deklarācijai pievienoju dokumentus uz _____________ lapām").
range: 0–∞ -
attachedAnnexNumbersstring optionalFree-text list of the annex numbers the declarant has filled in and is attaching to this declaration (e.g. "D1", or "D1, D3"). The regulation's own printed annex list names 7 possible companion schedules — D1, D1¹, D2, D2¹, D3, D3¹, D4 — of which only D1 is in scope for this schema version; the field itself is unconstrained free text, since the form provides a blank line rather than a fixed checkbox per annex.
-
attachedExpenseDocumentsListstring optionalFree-text list of the documents or copies presented in support of justified (deductible) expenses. The form prints 4 blank lines under this heading rather than a fixed, pre-printed checklist of document names — the same blank-table convention this registry already established for lv/ur/sole-trader-registration-kr2's own attachedDocumentsList.
-
signatureDatedate optionalThe signature date. The regulation's own note 2 to Annex 1 states, verbatim, "Dokumenta rekvizītus \"datums\" un \"paraksts\" neaizpilda, ja elektroniskais dokuments ir sagatavots atbilstoši normatīvajiem aktiem par elektronisko dokumentu noformēšanu" (the "date" and "signature" particulars are not filled in if the electronic document is prepared in accordance with the regulations on the design of electronic documents) — modelled required: false for that reason. This single field models the one signature act for the whole declaration packet; the identical "(datums) / (nodokļa maksātāja paraksts)" footer is reprinted at the foot of every physical page of Form D and every companion schedule (a page-footer artifact, not a separate signature per page).
-
signaturestring optionalThe taxpayer's signature. See signatureDate for the e-signature carve-out and the repeated-page-footer finding this single field models.
Verification record
Candidate selection
GOV-4138 ("GovSchema Standard Research"). The State Revenue Service's (VID) annual personal income tax declaration was banked as Latvia's open Taxes candidate during the GOV-4121/GOV-4129 cycles (CATALOG.md Known Gaps item 0a) — Latvia's other four verticals (DMV, Visa, Passport, National ID) were already screened and found weaker during GOV-4121. This cycle authored the declaration, deepening Latvia (the registry's 75th jurisdiction, opened via lv/ur/sole-trader-registration-kr2, GOV-4129) to its second vertical.
Reaching the live source
Fetched https://likumi.lv/ta/id/302688-noteikumi-par-iedzivotaju-ienakuma-nodokla-deklaracijam-un-to-aizpildisanas-kartibu directly with a standard desktop Chrome User-Agent: HTTP 200, Content-Type: text/html, 365,651 bytes. No login, CAPTCHA, or WAF gate on the page — the regulation's own Annex 1 (1. pielikums) renders the actual declaration forms as real HTML <TABLE>/<TR>/<TD> markup, not just prose.
Re-fetched the same URL a second time this cycle to cross-check fidelity. The byte count was stable across both fetches (365,651 bytes both times) but the sha256 was not stable (86daa64b… vs 9c83f778…), and neither matches the sha256 the issue description cited (e91fce06…). A byte-for-byte diff of the two fetches isolates the entire difference to one line: an obfuscated <script>eval(…)</script> token that changes value on every request while staying the same length — a bot-detection/analytics nonce unrelated to the regulation's substantive content. The surrounding regulation text and every Annex 1 table are byte-for-byte identical between fetches. Byte-count stability, not an exact sha256 match, is therefore the correct fidelity signal for this source — recorded here for future re-verification.
Extraction method
Extracted with a from-scratch Python html.parser.HTMLParser subclass walking the <TABLE>/<TR>/<TD> DOM in document order, respecting colspan/ rowspan, and treating <IMG SRC=".../KVADRATS.GIF"> runs as either a digit-box placeholder or an inline checkbox glyph depending on context (a standalone KVADRATS.GIF cell is a digit box; one sitting inline inside a paragraph of prose is a checkbox). This directly follows the issue's own extraction warning: a naive tag-stripping regex (re.sub('<[^>]+>', ' ', html)) was confirmed to flatten Annex 1's <SUP>1</SUP> superscripts into the preceding text with no separating space, turning every "D1¹"/"D2¹"/"D3¹" annex cross-reference into the misleading strings "D11"/"D21"/"D31" — verified directly against the raw markup, e.g. Form D row 19's formula prints literally as (<B>D1<SUP>1</SUP></B> 10. ailes kopsumma + …). The DOM-respecting parser used here instead marks each <SUP> span explicitly, so every formula reference in this schema's field descriptions correctly cites "D1¹"/"D2¹"/"D3¹", not the naive-extraction artifact.
Annex D1's own column numbering was independently cross-checked against the regulation's own formula cross-references, as the issue also directed: Annex D1's column 8 is headed "Apliekamie ienākumi, neatskaitot darba devēja veiktās iemaksas (2. – 3. – 6. – 7. aile)" — columns 2, 3, 6, 7 — matching this schema's incomeEntry{N}TaxableIncome fields exactly; and Form D's own row 1 formula, "D1 8. ailes summa + D3 11. rinda + D3¹ 13. rinda", confirms column 8 is the taxable-income column feeding the cover declaration, independently corroborating the column order recovered from the table's 2-header-row, 9-column layout (row 1: location & type [rowspan 2], gross income [rowspan 2], non-taxable income [rowspan 2], justified expenses [colspan 3, with 3 sub-columns in row 2: employee social-insurance contributions / private-pension-fund and life-insurance contributions / author's expenses], income-related expenses [rowspan 2], taxable income [rowspan 2], advance-paid/withheld tax [rowspan 2]; row 3: plain column numbers 1–9).
Structure modelled
130 fields[] across 4 steps, plus 1 documents[] attestation entry:
- Identification — taxation year, full name, personal code, phone number (Form D's own header).
- D1 pielikums — Annex D1's 9-row income table (source & type, gross income, non-taxable income, 3 justified-expense sub-columns, income- related expenses, taxable income, advance-paid/withheld tax) plus the schedule's own "Kopā" totals row (8 columns; the income-source/type column has no total).
- Nodokļa aprēķins — Form D's 27-row (plus 2 lettered sub-rows) tax-calculation summary: taxable income (Latvia/abroad/increase/total), non-taxable income, justified-expense deductions, the annual non-taxable minimum (general and pensioner variants), the 4 relief categories, total tax (with its progression-threshold breakdown), tax on other income/minimum business tax, tax on professional-athlete income, the additional-tax-rate mechanism, advance-paid/withheld tax, the budget-payable/refund result, the payment deadline, and the grand total.
- Pārmaksas atmaksa un iesniegšana — the overpayment refund amount and IBAN, the count of attached document pages, a free-text list of attached annex numbers, a free-text list of attached expense-supporting documents, and a single signature/date pair.
Disclosed source-fidelity findings
- The repeated page-footer signature is modelled once, not per page. Form D's own "(datums)" / "(nodokļa maksātāja paraksts)" footer is reprinted identically at the foot of every physical page of Form D and of every one of its 7 companion schedules (11 occurrences counted across the full Annex 1 chunk) — modelled as a single
signatureDate/signaturefield pair for the whole declaration packet, since this is a repeated print-page footer, not a distinct signature act per page. The regulation's own note 2 to Annex 1, verbatim, "Dokumenta rekvizītus \"datums\" un \"paraksts\" neaizpilda, ja elektroniskais dokuments ir sagatavots atbilstoši normatīvajiem aktiem par elektronisko dokumentu noformēšanu" ("the 'date' and 'signature' particulars are not filled in if the electronic document is prepared in accordance with the regulations on the design of electronic documents"), is why both fields are modelledrequired: false— the same e-signature carve-out convention this registry already established onlv/ur/sole-trader-registration-kr2's own footnote-gated signature fields. - Row 12 is the only summary row with an inline checkbox. "GADA NEAPLIEKAMAIS MINIMUMS PENSIONĀRAM" is the only one of Form D's 27 numbered summary rows whose label itself embeds a
KVADRATS.GIFcheckbox glyph inline in prose ("Tiek piemērota likuma \"Par iedzīvotāju ienākuma nodokli\" 12. panta četrpadsmitā daļa") rather than being a plain formula-derived amount row — modelled as two fields, a booleanpensionerNonTaxableMinimumAppliedcheckbox and a numericpensionerAnnualNonTaxableMinimumamount gatedrequiredWhenthe checkbox istrue. Every otherKVADRATS.GIFoccurrence within the Form D + Annex D1 chunk (19 of 21 total occurrences in the full Annex 1 document) is a plain digit-box placeholder in the identification header (11 boxes for the personal code, 8 for the phone number); the one remaining occurrence beyond the Form D/Annex D1 range falls inside the out-of-scope D3/D3¹ section and was not further investigated. - Rows 26 and 27 are the only two rows with a 3-cell split. "NODOKĻA SAMAKSAS TERMIŅŠ" (row 26, tax payment deadline) and "KOPĒJĀ NODOKĻA SUMMA KOPĀ" (row 27, total tax amount) are the only two of the 27 rows printed with 3 separate adjoining blank cells (widths 6%/6%/7%) instead of the single wide blank cell every other row uses, and neither prints sub-column labels distinguishing the 3 cells. Read as a day/month/year split for row 26 (modelled as
type: date) but as page-width visual alignment reused from the row above for row 27, a plain bold-labelled amount row (modelled astype: number) — a disclosed judgment call in the absence of any labelling.
Scope boundaries
Scoped to Form D (cover/identification and the tax-calculation summary) plus Annex D1 (taxation-year income earned in Latvia, excluding business-activity income and excluding income to which the annual non-taxable minimum and reliefs do not apply — confirmed directly against Annex D1's own printed subtitle, "(izņemot ienākumus no saimnieciskās darbības vai ienākumus, kam nepiemēro gada neapliekamo minimumu un atvieglojumus)"), matching this registry's existing narrow-scoping precedent for large multi-schedule tax forms (e.g. CL Formulario 22, GOV-1744).
Known Gaps — explicitly out of scope, not fabricated:
- Annex D1¹ — "Taksācijas gadā gūtie ienākumi, kuriem nepiemēro gada neapliekamo minimumu un atvieglojumus" (income to which the annual non-taxable minimum and reliefs do not apply). Referenced by Form D rows 19 and 21.
- Annex D2 — "Fiziskās personas (rezidenta) ārvalstīs gūtie ienākumi" (a resident's foreign-earned income). Referenced by Form D rows 2, 5, 6, and 23.
- Annex D2¹ — a seafarer's foreign-earned income aboard an internationally-operating vessel. Referenced by Form D rows 2 and 23.
- Annex D3 — "Ienākumi no saimnieciskās darbības" (business-activity income, single-entry bookkeeping). Referenced by Form D rows 1, 5, and 23.
- Annex D3¹ — business-activity income under double-entry bookkeeping. Referenced by Form D rows 1, 5, and 23.
- Annex D4 — justified expenses for education, medical services, donations and gifts. Referenced by Form D row 8.
- DK, the DK annex, and GD — these are not part of the 7-schedule list Annex 1's own "Deklarācijas pielikumi" section names (D1, D1¹, D2, D2¹, D3, D3¹, D4); they were named as backlog in the originating issue and are recorded here as still unscreened.
Every Form D summary row whose printed formula references one of the out-of-scope annexes above is still modelled as a plain numeric field (so the total the filer computes and transcribes can be captured); the out-of-scope terms of each such formula are disclosed in that field's own description rather than fabricated as separate modelled schedules.
This document also does not model the annual differentiated non-taxable minimum's own calculation (row 11) — the regulation does not print a formula for it; VID calculates and communicates it to each taxpayer separately based on prior-year income.
Conformance
5 valid mock scenarios — a salaried employee with a single Latvian employer and no reliefs (valid-salaried-employee-single-employer.json); a pensioner opting into row 12's non-taxable-minimum regime (valid-pensioner-nontaxable-minimum.json); a taxpayer with 3 separate Latvian income sources populating 3 Annex D1 rows plus the schedule's own "Kopā" totals (valid-three-income-sources-with-totals.json); a taxpayer requesting an overpayment refund to an LV IBAN (valid-overpayment-refund-iban.json); and a taxpayer claiming all 4 relief categories (valid-all-reliefs-claimed.json) — plus 9 mutation-control fixtures (each of the 3 statically-required fields missing in turn, an invalid applicantPersonalCode format, an invalid taxationYear below its minimum, a missing refundAccountIban while refundAmount is positive, an invalid refundAccountIban format, a missing pensionerAnnualNonTaxableMinimum while pensionerNonTaxableMinimumApplied is true, and an unknown top-level field) are committed under conformance/lv/vid/annual-income-tax-declaration-form-d/1.0.0/.
An ephemeral, from-scratch conformance checker (deriving required/ requiredWhen rules directly from this schema's own fields[]/ documents[], discarded after use, not committed) ran all 14 fixtures: all 5 valid scenarios at 0 errors, all 9 mutation controls each raising exactly 1 error, and confirmed every requiredWhen field reference resolves (0 dangling references).
node tools/validate.mjs and node tools/validate-ajv.mjs both pass, individually and as part of the full registry run.
View the raw record (VERIFICATION.md)
Version history
-
1.4.1draftlatesthas verification recordschema.json -
1.4.0draft has verification recordschema.json -
1.3.0draft has verification recordschema.json -
1.2.0draft has verification recordschema.json -
1.1.0draft has verification recordschema.json -
1.0.0draftthis pagehas verification recordschema.json
Independent and non-affiliated
GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by State Revenue Service of the Republic of Latvia (Valsts ieņēmumu dienests) or any government. The authoritative source is always the live government form and its official instructions.