Registry entry
Ukraine Tax Declaration on Property Status and Income — Annex ЄСВ2 (Voluntary Unified Social Contribution Calculation)
The State Tax Service of Ukraine's (Державна податкова служба України, DPS) "Додаток ЄСВ2 до податкової декларації про майновий стан і доходи" (Annex ЄСВ2 to the Tax Declaration on Property Status and Income) — the calculation of the amounts of voluntary contributions to be paid under an agreement on voluntary participation in the mandatory state social insurance system, filed per calendar year covered by that agreement. Ninth of the ten companion schedules disclosed as open backlog when the parent declaration (ua/dps/individual-income-tax-declaration, GOV-3531) was authored, and ninth of those ten to be modelled, after Annex АП (ua/dps/individual-income-tax-declaration-annex-ap, GOV-3588), Annex Ф4 (ua/dps/individual-income-tax-declaration-annex-f4, GOV-3623), Annex МПЗ (ua/dps/individual-income-tax-declaration-annex-mpz, GOV-3632), Annex Ф1 (ua/dps/individual-income-tax-declaration-annex-f1, GOV-3641), Annex КІК (ua/dps/individual-income-tax-declaration-annex-kik, GOV-3907/GOV-3996), Annex Ф2 (ua/dps/individual-income-tax-declaration-annex-f2, GOV-4002/GOV-4004), Annex ЄСВ3 (ua/dps/individual-income-tax-declaration-annex-esv3, GOV-4010), and Annex Ф3 (ua/dps/individual-income-tax-declaration-annex-f3, GOV-4017/GOV-4019). Approved within the same combined Excel template as the main declaration, by Order of the Ministry of Finance of Ukraine No. 859 of 2 October 2015, as amended by Order No. 119 of 26 February 2025 (the edition modelled here, effective for reporting periods from 1 January 2026). Published, unauthenticated, directly by the State Tax Service on tax.gov.ua as a legacy Excel (.xls) template's own dedicated 'ЄСВ 2' sheet. This v1.0.0 models the sheet in full: the taxpayer-identification header (including a second, Pension-Fund-specific passport identifier and a direct full-name field, shared with Annex ЄСВ3), the two-value declaration-type/period header, the voluntary-participation agreement's own identification fields (agreement number, conclusion/expiration/termination dates, a previous-period date range, and a payment date — none printed with 'число'/'місяць'/'рік' sub-labels, unlike Annex ЄСВ3's own audit-act date), the two selectable insurance types and the coefficient-2 payment mark, a headline total voluntary-contributions figure, and the fixed twelve-month table (one row per calendar month, each carrying an insured-person category code, a base amount, a voluntary-contributions amount, and a total days-of-service figure — a four-column table, one column wider than Annex ЄСВ3's own three-column equivalent) plus its own total row. GovSchema is an independent, non-profit standards body and is not affiliated with, endorsed by, or operated by the Government of Ukraine or the State Tax Service of Ukraine.
Registry entry
ua/dps/individual-income-tax-declaration-annex-esv2
Machine access
- Schema document
registry/ua/dps/individual-income-tax-declaration-annex-esv2/1.0.0/schema.jsonapplication/schema+json- Verification record
registry/ua/dps/individual-income-tax-declaration-annex-esv2/1.0.0/VERIFICATION.mdtext/markdown- Registry catalog
registry/index.jsonone record per schema id
Field reference
70 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.
Fields
-
taxpayerTaxNumberOrPassportstring requiredThe taxpayer's registration number of the taxpayer account card (RNOKPP), or — for individuals who, on religious grounds, have declined a registration number and have a corresponding notation in their passport — their passport series (if any) and number instead, matching the same either/or convention as ua/dps/individual-income-tax-declaration's own taxpayerTaxNumberOrPassport field and every other authored companion schedule's own equivalent field.
length: 1–50classification: sensitive-pii -
pensionFundIdentificationPassportstring optionalA second, distinct identification field (not present on the main declaration): the passport series (if any) and number used specifically to identify the unified social contribution (ЄСВ) payer within the Pension Fund of Ukraine's own records, separate from the taxpayer's RNOKPP. Present on this schedule as well as on Annex ЄСВ3, matching the same convention. Footnote * (row 106) gives the expected format for passport-book holders (БКNNXXXXXX) and ID-card holders (ПХХХХХХХХХ).
length: 1–50classification: sensitive-pii -
fullNamestring requiredThe taxpayer's surname, given name, and patronymic (if any), requested directly on this annex (as on Annex ЄСВ3), rather than relying solely on the main declaration's own taxpayerFullName field — consistent with this schedule's own capacity to be filed as its own distinct calculation, potentially for a different year than the main declaration's own reporting period. Note: the sheet's own printed cell (row 24) literally reads 'імя' without an apostrophe, unlike Annex ЄСВ3's own equivalent cell which prints 'ім'я' with one — a minor source-text inconsistency within the same workbook, disclosed here rather than silently normalized; the field's own label above uses the standard orthography.
length: 1–300classification: pii -
declarationTypeenum requiredoriginal = 'Звітна' (a regular declaration for the reporting period); revised_original = 'Звітна нова' (a new original filed to supersede a previously filed original for the same period, before the filing deadline). As with Annex ЄСВ3, this sheet's own printed checkboxes offer only these two values, not the three-value ('corrective'/'Уточнююча' included) convention most other authored companion schedules share — confirmed via a full non-empty-cell dump of the sheet's entire printed extent (rows 1-115), which found no third checkbox cell or 'Уточнююча' label anywhere. A stray 'Звітний (податковий) період, що уточнюється:' label fragment does appear in the row 28 header text (columns AC/BD), carried over from the master template's own column-group header, but corresponds to no actual input cell or checkbox on this sheet — see this document's own VERIFICATION.md.
enum: original | revised_original -
reportingPeriodYearinteger optionalThe calendar year in which this calculation is filed. Footnote 2 (row 108) scopes this box to the same declaration types as reportingPeriodMonth below.
range: 1991–∞ -
reportingPeriodMonthinteger optionalThe calendar month number (1-12) in which this calculation is filed, per footnote 1 (row 107): filled in by persons participating in voluntary insurance ('добровільне страхування'), in an 'original' or 'revised original' (not 'corrective', which this sheet does not offer anyway) declaration — the same 'Довідкова' period-month gating convention this registry established for ua/dps/individual-income-tax-declaration-annex-ap and reused for Annex Ф2 and Annex ЄСВ3, applied here to this schedule's own filer population (voluntary participants) rather than each sibling's own distinct scope.
range: 1–12 -
calculationYearinteger requiredThe calendar year for which this calculation of voluntary contributions is generated. This is the schedule's own operative period field — distinct from reportingPeriodYear/reportingPeriodMonth above, which record only when this calculation itself is filed.
range: 1991–∞ -
calculationSequenceNumberinteger optionalThe sequential number of this calculation among possibly several ЄСВ2 calculations attached to the same declaration, per footnote 3 (row 109): a declaration may include several calculations of voluntary contributions filed under one voluntary-participation agreement, each with its own table specifying data separately for a given year.
range: 1–∞ -
contractNumberstring requiredThe reference number of the voluntary-participation agreement ('договір про добровільну участь') this calculation is filed under. This field, and the agreement dates below, are unique to this schedule among this registry's authored UA DPS annexes: Annex ЄСВ3's own equivalent identifying field is a documentary-audit act's own date and number, not a voluntary-participation agreement — a genuine structural difference between the two 'ЄСВ' sibling schedules, reflecting that each covers a distinct scenario under the Tax Code (audit-triggered adjustment vs. voluntary self-insurance).
length: 1–100 -
contractConclusionDatedate requiredThe date the voluntary-participation agreement was concluded. Unlike Annex ЄСВ3's own single audit-act date (which the sheet explicitly labels with 'число'/'місяць'/'рік' text next to distinct column positions, letting that schedule split it into three separate day/month/year integer fields), none of this schedule's own five date entries (this one, contractExpirationDate, contractTerminationDate, the previous-period from/to pair, and paymentDate) print any such 'число'/'місяць'/'рік' sub-labels — confirmed via a full non-empty-cell dump of the sheet's entire printed extent. Each prints only bare numeric entry boxes separated by two literal '.' characters (a dd.mm.yyyy layout implied by convention, not by printed text). Modelled here as a single date-typed field (matching the main declaration's own filingDate convention) rather than fabricating day/month/year column boundaries this cycle could not independently confirm from the sheet's own printed cells — see this document's own VERIFICATION.md.
-
contractExpirationDatedate optionalThe date the voluntary-participation agreement's term expires, if applicable. As with contractConclusionDate, modelled as a single date-typed field since the sheet prints no day/month/year sub-labels for this entry, only dot-separated numeric boxes.
-
contractTerminationDatedate optionalThe date the voluntary-participation agreement was terminated (rescinded), if applicable. As with contractConclusionDate, modelled as a single date-typed field since the sheet prints no day/month/year sub-labels for this entry, only dot-separated numeric boxes.
-
previousPeriodFromdate optionalThe start date of a prior period, under the same agreement, for which the unified social contribution is being paid by this calculation. As with contractConclusionDate, modelled as a single date-typed field since the sheet prints no day/month/year sub-labels for this entry, only dot-separated numeric boxes.
-
previousPeriodTodate optionalThe end date of the same prior period described by previousPeriodFrom above. As with contractConclusionDate, modelled as a single date-typed field since the sheet prints no day/month/year sub-labels for this entry, only dot-separated numeric boxes.
-
paymentDatedate optionalThe date the voluntary contribution payment described by this calculation was made. As with contractConclusionDate, modelled as a single date-typed field since the sheet prints no day/month/year sub-labels for this entry, only dot-separated numeric boxes.
-
pensionInsuranceSelectedboolean optionalWhether mandatory state pension insurance is one of the types of social insurance chosen under the voluntary-participation agreement (section 8 offers two selectable types; this is the first). Modelled as a boolean given the line's own selectable-item phrasing; unlike declarationType (D31:E31/L31:M31) and coefficient2Applied (CA70:CB70) below, this cycle could not locate a distinct checkbox merge cell adjacent to this label in the sheet's own !merges array — the label's own merge (A65:AR65) runs the full row width with no adjacent 2-column checkbox merge found elsewhere on the row. The exact fillable mechanism (checkbox vs. a plain textual mark) is therefore not fully confirmed from the sheet's cell/merge structure alone — disclosed here rather than silently assumed; see this document's own VERIFICATION.md.
-
socialInsuranceSelectedboolean optionalWhether mandatory state social insurance is one of the types of social insurance chosen under the voluntary-participation agreement (section 8 offers two selectable types; this is the second). As with pensionInsuranceSelected above, no distinct checkbox merge cell could be located adjacent to this label via the sheet's own !merges array — the same disclosed ambiguity applies.
-
coefficient2Appliedboolean optionalWhether the voluntary contributions recorded by this calculation were paid applying a coefficient of 2 (a legally provided multiplier for certain voluntary-insurance payment scenarios). Unlike pensionInsuranceSelected/socialInsuranceSelected above, this line does have a distinct 2-column checkbox merge (CA70:CB70) separate from its own label merge (A70:BD70), matching the same 2-column checkbox-merge convention this cycle confirmed for declarationType's own D31:E31/L31:M31 checkboxes.
-
declaredTotalVoluntaryContributionsAmountnumber optionalThe headline total sum of voluntary contributions to mandatory state social insurance, stated as its own line item (section 10) before the twelve-month table below. A genuine structural feature unique to this schedule among this registry's authored UA DPS annexes: no sibling schedule prints a standalone headline total ahead of its own repeating table. This may restate the same figure as totalVoluntaryContributionsAmount below (the table's own 'УСЬОГО' row total for the same underlying quantity), but the sheet prints no explicit formula tying the two together, so this cycle transcribes both independently rather than inventing an equality the source text does not state — consistent with this registry's established practice for total-row fields (see Annex ЄСВ3's own equivalent finding).
range: 0–∞ -
januaryInsuredPersonCategoryenum optionalThe category code of the insured person for Січень (january), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
januaryBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Січень (january), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
januaryVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Січень (january). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
januaryDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Січень (january) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
februaryInsuredPersonCategoryenum optionalThe category code of the insured person for Лютий (february), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
februaryBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Лютий (february), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
februaryVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Лютий (february). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
februaryDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Лютий (february) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
marchInsuredPersonCategoryenum optionalThe category code of the insured person for Березень (march), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
marchBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Березень (march), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
marchVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Березень (march). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
marchDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Березень (march) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
aprilInsuredPersonCategoryenum optionalThe category code of the insured person for Квітень (april), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
aprilBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Квітень (april), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
aprilVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Квітень (april). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
aprilDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Квітень (april) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
mayInsuredPersonCategoryenum optionalThe category code of the insured person for Травень (may), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
mayBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Травень (may), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
mayVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Травень (may). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
mayDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Травень (may) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
juneInsuredPersonCategoryenum optionalThe category code of the insured person for Червень (june), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
juneBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Червень (june), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
juneVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Червень (june). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
juneDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Червень (june) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
julyInsuredPersonCategoryenum optionalThe category code of the insured person for Липень (july), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
julyBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Липень (july), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
julyVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Липень (july). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
julyDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Липень (july) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
augustInsuredPersonCategoryenum optionalThe category code of the insured person for Серпень (august), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
augustBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Серпень (august), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
augustVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Серпень (august). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
augustDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Серпень (august) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
septemberInsuredPersonCategoryenum optionalThe category code of the insured person for Вересень (september), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
septemberBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Вересень (september), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
septemberVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Вересень (september). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
septemberDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Вересень (september) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
octoberInsuredPersonCategoryenum optionalThe category code of the insured person for Жовтень (october), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
octoberBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Жовтень (october), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
octoberVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Жовтень (october). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
octoberDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Жовтень (october) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
novemberInsuredPersonCategoryenum optionalThe category code of the insured person for Листопад (november), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
novemberBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Листопад (november), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
novemberVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Листопад (november). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
novemberDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Листопад (november) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
decemberInsuredPersonCategoryenum optionalThe category code of the insured person for Грудень (december), per the sheet's own footnote 4 (row 110): voluntarily_insured_person = '16 – особа, яка страхується добровільно' (a person who insures voluntarily); one_time_payer = '65 – особа, яка здійснює одноразову сплату єдиного внеску' (a person making a one-time payment of the unified social contribution). This is a genuinely two-value enum, unlike Annex ЄСВ3's own three-value equivalent footnote (codes 4/5/9) — confirmed via a full non-empty-cell dump of this sheet's own printed extent.
enum: voluntarily_insured_person | one_time_payer -
decemberBaseAmountnumber optionalThe amount from which the insurance contribution was paid for Грудень (december), used to calculate insurance payouts. Unlike Annex ЄСВ3's own equivalent monthly column ('Сума, з якої розраховано зобов'язання з єдиного внеску'), this sheet's own column header text is worded around insurance payouts rather than an ЄСВ liability calculation, consistent with this schedule's own voluntary-insurance (not audit-adjustment) subject matter.
range: 0–∞ -
decemberVoluntaryContributionsAmountnumber optionalThe amount of voluntary contributions paid for Грудень (december). A genuine fourth data column this schedule's own table carries that Annex ЄСВ3's own three-column (category/base amount/liability amount) table does not — see daysOfService below for the fifth.
range: 0–∞ -
decemberDaysOfServiceinteger optionalThe total number of full days of insurance service (стаж) credited for Грудень (december) as a result of the voluntary contributions paid. This is the table's own fifth column, present on no other authored UA DPS annex's own repeating table — a genuine structural feature unique to this schedule, reflecting that voluntary contributions here directly accrue pension/insurance service days rather than merely adjusting a liability amount.
range: 0–∞ -
totalBaseAmountnumber optionalThe table's own total base amount across all twelve months ('УСЬОГО' row). The sheet prints no explicit summation formula for this total, so no crossFieldValidation rule ties it to the twelve monthly base amounts above — transcribed independently, consistent with this registry's established practice of reserving crossFieldValidation for relationships the source text states explicitly.
range: 0–∞ -
totalVoluntaryContributionsAmountnumber optionalThe table's own total voluntary contributions amount across all twelve months ('УСЬОГО' row). As with totalBaseAmount, no crossFieldValidation rule ties it to the twelve monthly voluntary-contribution amounts, for the same reason. May restate declaredTotalVoluntaryContributionsAmount above (section 10's own headline total for the same underlying quantity); see that field's own description for why no equality is asserted between the two.
range: 0–∞ -
totalDaysOfServiceinteger optionalThe table's own total number of full days of insurance service across all twelve months ('УСЬОГО' row). As with totalBaseAmount, no crossFieldValidation rule ties it to the twelve monthly daysOfService values, for the same reason.
range: 0–∞
Verification record
This file is the source-review record for this document version, per the manual-source-review-v1 practice. It documents the provenance of the published fields and states the current verification claim honestly.
Current claim
status:draftverification.method:manual-source-review-v1verification.lastVerifiedAt:2026-07-20
This is a GovSchema Standard Research cycle (GOV-4026), deepening Ukraine's own disclosed Taxes backlog — the ten companion schedules the GOV-3531 cycle disclosed but did not model when it authored ua/dps/individual-income-tax-declaration (the main declaration sheet), of which eight (Annex АП, Annex Ф4, Annex МПЗ, Annex Ф1, Annex КІК, Annex Ф2, Annex ЄСВ3, Annex Ф3) were already modelled by the GOV-3588, GOV-3623, GOV-3632, GOV-3641, GOV-3907/GOV-3996, GOV-4002/GOV-4004, GOV-4010, and GOV-4017/GOV-4019 cycles respectively.
Why this candidate
This cycle re-scanned CATALOG.md's own "Genuinely open, well-sourced candidates" section fresh. Ukraine's own disclosed Taxes backlog (two remaining companion schedules — ЄСВ1 and ЄСВ2 — to the already-published main declaration) remains the strongest immediately-actionable candidate: the source workbook is already fetched, hashed, and structurally inventoried across nine prior cycles, so no new source-discovery risk is involved. Between the two, ЄСВ2 was picked: the GOV-4017 cycle had already sized both fresh (ЄСВ1: !ref A1:CA244, 241 merges; ЄСВ2: !ref A1:CZ250, 211 merges) and picked the third remaining candidate (Ф3, no repeating table) as smaller/simpler than both; of the two still open, ЄСВ2 has fewer merges than ЄСВ1 and was modelled first for that reason.
Sources examined
Primary source
- Authority: Державна податкова служба України (State Tax Service of Ukraine, DPS) — official site confirmed at
https://tax.gov.ua. - Document — Форма податкової декларації про майновий стан і доходи (the same combined workbook as the main declaration and all eight prior annexes), approved by Order of the Ministry of Finance of Ukraine No. 859 of 2 October 2015, as amended by Order No. 119 of 26 February 2025 (the edition modelled here, effective for reporting periods from 1 January 2026), this cycle modelling its own
ЄСВ 2sheet.- Cited URL (same as the parent declaration and all eight prior annexes):
https://tax.gov.ua/data/normativ/000/001/65107/Podatkova_deklarats_ya_pro_maynoviy_stan_dohodi_vvoditsya_v_d_yu_z_01_s_chnya_2026_roku_.xls - Access note: direct fetch again returns HTTP 403 to this sandbox (re-confirmed this cycle). Fetched instead via the exact timestamped Wayback Machine snapshot (
https://web.archive.org/web/20260424210531/https://tax.gov.ua/data/normativ/000/001/65107/Podatkova_deklarats_ya_pro_maynoviy_stan_dohodi_vvoditsya_v_d_yu_z_01_s_chnya_2026_roku_.xls), HTTP 200 on the first attempt, no transient-500 flake and no empty-body flake from the wildcard/web/2024/redirect form some prior cycles hit. - File identity: 869,376 bytes,
sha256:7c67f4c421a1a8fc610f9226819d223debcb56b3fd1fc3d5f75ce0247cc7f0ac— byte-identical to the hash the parent declaration's and all eight prior annexes' own VERIFICATION.md files already recorded, confirming the same unchanged source file across ten cycles now. - Extraction method: parsed with the
xlsxnpm package (fresh scratch install at/tmp/esv2, not committed to this repository) viaXLSX.readFile, confirming all 11 declared sheets (includingЄСВ 2, confirmed as the exact sheet-name stringwb.SheetNamesreports — no trailing-space quirk on this particular sheet's own name, unlike some siblings). TheЄСВ 2sheet (!ref=A1:CZ250, 211 merges) was read cell-by-cell withXLSX.utils.decode_range/encode_cell(not the row-array convenience helper, which merges adjacent non-empty cells) across its full declared extent, dumping every non-empty cell to independently confirm the sheet's printed content ends at row 115 (the remaining 135 declared rows, 116-250, are blank print-area padding, the same pattern found on every prior UA DPS annex sized this way — no enum/checkbox content was found past row 115). Cross-referenced against the workbook's own!mergesarray (211 entries for this sheet) to resolve exactly which row/column range each header label, entry row, and checkbox spans.
- Cited URL (same as the parent declaration and all eight prior annexes):
Structure confirmed
The ЄСВ 2 sheet's 115-row printed extent resolves to a taxpayer- identification/declaration-type/period header, a voluntary-participation- agreement identification block, a selectable-insurance-type/coefficient block, a headline total, a fixed twelve-month table, and a footnote/signature block. This cycle deliberately did not assume identity with the closest structural sibling, Annex ЄСВ3 — both are audited/adjusted differently under the Tax Code (ЄСВ3 covers a documentary- audit adjustment; ЄСВ2 covers voluntary-participation contributions) — and found several genuine structural differences by reading ЄСВ2's own printed cells directly:
- Header, taxpayer identification (rows 15-24): identical in substance to Annex ЄСВ3's own header — the standard RNOKPP-or-religious-objector- passport field (rows 15-18), the second Pension-Fund-specific passport field (rows 20-21,
pensionFundIdentificationPassport, footnote * at row 106), and a direct full-name field (row 24,fullName). One minor textual quirk found: row 24's own cell literally reads "імя" without an apostrophe (confirmed via a codepoint dump of the raw cell string), unlike Annex ЄСВ3's own equivalent cell, which prints "ім'я" with one — disclosed infullName's own field description rather than silently normalized away. - Declaration type and period (rows 28-38): a genuinely two-value
declarationTypeenum, matching Annex ЄСВ3's own two-value convention (not the three-value original/revised_original/corrective convention most other authored UA DPS annexes share). Confirmed by dumping every non-empty cell across the sheet's full printed extent: only two checkbox/label pairs exist (Звітнаat D31:E31/F31:J31 andЗвітна новаat L31:M31/N31:V31); no third checkbox orУточнюючаlabel exists anywhere. The period box (reportingPeriodYear/reportingPeriodMonth, footnotes 2/1 at rows 108/107) is gated per its own footnote wording to persons participating in voluntary insurance filing an "original" or "revised original" declaration — modelled as optional, matching the same convention this registry established for Annex АП and reused for Annex Ф2 and Annex ЄСВ3. - Voluntary-participation agreement identification (rows 38-56): a genuine structural departure from Annex ЄСВ3. Where ЄСВ3 identifies a documentary audit act (a single date split into three labelled
число/місяць/рікcells, plus an act number), ЄСВ2 instead identifies a voluntary-participation agreement:calculationYear(row 38, same field as ЄСВ3's own),calculationSequenceNumber(row 40, footnote 3 — gated to "one voluntary-participation agreement" rather than "one audit act"),contractNumber(rows 43-44), and five separate dates —contractConclusionDate(row 47),contractExpirationDate(row 49),contractTerminationDate(row 51), a previous-period date pairpreviousPeriodFrom/previousPeriodTo(rows 53-54), andpaymentDate(row 56). A full non-empty-cell dump confirmed none of these five dates printчисло/місяць/рікsub-labels the way Annex ЄСВ3's own single audit-act date does (row 43, columns AR/BD/BW) — each ЄСВ2 date prints only bare numeric entry boxes separated by two literal.characters (dots found at, e.g., columns BO/BT for most, AT/AY then BO/BT for the previous-period pair). Rather than fabricating day/month/year column boundaries this cycle could not independently confirm from the sheet's own printed text, each date is modelled as a singledate-typed field (matching the main declaration's ownfilingDateconvention). - Selectable insurance types and coefficient mark (rows 63-73): a second genuine structural departure. Section 8 offers two selectable insurance types — pension insurance (row 65,
pensionInsuranceSelected) and social insurance (row 67,socialInsuranceSelected) — modelled as boolean fields, but this cycle could not locate a distinct 2-column checkbox merge cell adjacent to either label in the sheet's own!mergesarray (each label's own merge, A65:AR65/A67:AS67, runs the full row width with nothing else on the row). This contrasts withdeclarationType's own confirmed 2-column checkbox merges (D31:E31, L31:M31) and with section 9's own coefficient-2 mark (row 70), which does have a confirmed 2-column checkbox merge (CA70:CB70) separate from its label merge (A70:BD70) — the same 2-column convention. Whether sections 8's two lines are actually rendered as tick-boxes or as plain marked text on the printed form is therefore not fully confirmed from cell/merge structure alone; disclosed explicitly in both fields' own descriptions rather than guessed. Section 7 ("Тип форми", row 58/60) prints a single fixed value ("добровільна участь") with no adjacent checkbox merge and no alternative value anywhere on the sheet — like Annex ЄСВ3's own analogous "Тип форми" line, this is not modelled as a fillable field, since it carries no second value to distinguish; it is reflected instead in this document's own top-leveldescription. - Headline total (row 73): a third genuine structural departure. Section 10 prints a headline "Загальна сума добровільних внесків..." total (
declaredTotalVoluntaryContributionsAmount) ahead of the twelve-month table — a field with no equivalent anywhere on Annex ЄСВ3's own sheet (which totals only within its own table'sУСЬОГОrow). The sheet prints no formula tying this headline total to the table's own total row, so both are modelled and transcribed independently rather than asserting an equality the source text does not state. - Twelve-month table (rows 75-91): a fourth genuine structural departure. Where Annex ЄСВ3's own table carries three data columns per month (category/base amount/liability amount), ЄСВ2's own table carries four: an insured-person category code (columns O-V, footnote 4 — a genuinely two-value enum,
16/65, unlike ЄСВ3's own three-value4/5/9), a base amount ("Сума, з якої сплачено страховий внесок...", columns W-AV), a voluntary-contributions amount ("Сума добровільних внесків", columns AW-BV), and — present on no other authored UA DPS annex's own repeating table — a total-days-of-service figure ("Усього повних днів стажу", columns BW-CB). Modelled with calendar-month-named indexed fields (january...-december...), matching the convention Annex ЄСВ3 established for this registry's fixed-capacity, specific- calendar-month tables, plus its ownУСЬОГОtotal row (totalBaseAmount/totalVoluntaryContributionsAmount/totalDaysOfService). - Footnote and signature block (rows 106-115): footnote * (passport format, row 106), footnotes 1-4 (rows 107-110), and the signature block including an accuracy-attestation sentence ("Наведена інформація є правильною:", row 111) — like Annex АП/Ф4/МПЗ/ЄСВ3 (and unlike Annex Ф1, КІК, and Ф2), this sheet does print an accuracy-attestation sentence, so
documentsis populated with one entry. A minor genuine textual difference from Annex ЄСВ3's own equivalent sentence: ЄСВ2's own row 111 cell literally ends with a colon (:), where ЄСВ3's own row 86 cell prints no trailing punctuation at all — confirmed by reading both raw cell strings directly. Thestatementfield here is transcribed verbatim, including the colon.
Scope and disclosed boundaries
This schema models the ЄСВ 2 sheet in full: the identification header, the two-value declaration-type/period header, the voluntary- participation agreement's own identification fields, the selectable- insurance-type/coefficient block, the headline total, and the fixed twelve-month table plus its own total row. Scoping decisions made and documented here rather than silently:
- Five dates are modelled as single
date-typed fields, not split day/month/year integers — unlike Annex ЄСВ3's own audit-act date. The sheet prints noчисло/місяць/рікsub-labels for any of ЄСВ2's own dates, only dot-separated numeric boxes, so this cycle could not independently confirm exact day/month/year column boundaries and chose not to fabricate them — see "Structure confirmed" above. pensionInsuranceSelected/socialInsuranceSelectedare modelled as boolean fields despite no confirmed adjacent checkbox merge — see "Structure confirmed" above for the full disclosure of this ambiguity.- Section 7's "Тип форми" line is not modelled — it prints a single fixed value with no second option anywhere on the sheet, the same treatment Annex ЄСВ3 gave its own analogous line.
declarationTypeis a two-value enum (original/revised_original), matching Annex ЄСВ3's own convention rather than this registry's more common three-value UA DPS annex convention — confirmed via a full non-empty-cell-dump.- The monthly table's own
InsuredPersonCategoryenum is two-valued (voluntarily_insured_person/one_time_payer, footnote 4), not the three-valued convention Annex ЄСВ3's own equivalent column uses. - No
crossFieldValidationrule ties any of the three total-row fields back to the twelve months' own entries, nor tiesdeclaredTotalVoluntaryContributionsAmount(the headline total) tototalVoluntaryContributionsAmount(the table's own total row). The sheet itself prints no explicit summation formula for either relationship — this cycle transcribed all total fields independently rather than inventing an equality the source text does not state, consistent with this registry's own established practice (see Annex ЄСВ3's own equivalent finding). - Every table entry field (category, base amount, voluntary- contributions amount, days of service, for all twelve months) is modelled as not required, for consistency with this registry's established treatment of every other UA DPS annex's own primary content fields.
taxpayerTaxNumberOrPassport,fullName,declarationType,calculationYear,contractNumber, andcontractConclusionDateare modelled as required — these identify the specific taxpayer, filing, and voluntary-participation agreement this schedule exists to record, and every genuine filing of this schedule necessarily has all six.
Not modelled, left as open backlog:
- Annex ЄСВ1, the tenth and final companion schedule disclosed by the parent declaration's own VERIFICATION.md, remains open backlog.
- Kazakhstan's own unscreened Form 250.00 lead (surfaced by the GOV-3616 cycle closing the Form 220.0X series) remains unscreened this cycle too.
Conformance fixtures
9 fixtures are committed under conformance/ua/dps/individual-income-tax-declaration-annex-esv2/1.0.0/: 2 valid submissions (0 errors each — one minimal original-type filing with only the six required header/agreement fields, and one fuller revised_original-type filing exercising the full header including both optional period fields, the Pension-Fund passport field, the agreement's own optional dates, both insurance-type selections, the coefficient mark, the headline total, and two months' worth of table entries plus all three totals) and 7 mutation-control fixtures (each expected to raise exactly 1 class of error): a missing required taxpayerTaxNumberOrPassport, a missing required fullName, a missing required contractNumber, an invalid declarationType enum value (corrective — genuinely invalid here, as on Annex ЄСВ3, despite being a valid value on most other authored UA DPS annexes), an invalid januaryInsuredPersonCategory enum value, a negative januaryBaseAmount, and an unknown field rejected. All 9 were independently checked this cycle with a fresh, from-scratch, throwaway Node mock validator built directly from this schema's own required/validation definitions (not committed, per this registry's established per-cycle practice) — each fixture produced exactly the expected pass/fail result. Both tools/validate.mjs and tools/validate-ajv.mjs pass across the full registry with this schema added (555/555).
Known gaps
- Annex ЄСВ1, the tenth and final companion schedule to
ua/dps/individual-income-tax-declaration, remains open backlog — see "Scope and disclosed boundaries" above. - Kazakhstan's own Form 250.00 lead (surfaced by the GOV-3616 cycle closing the Form 220.0X series) remains unscreened — a future cycle should independently confirm whether a genuine unauthenticated field-by-field source exists for it before treating it as ready to author.
- Ukraine's Passport-vertical companion schedule and Ukraine's remaining DMV/National ID verticals (both previously found weak) were not re-screened this cycle.
- Whether sections 8's two insurance-type-selection lines (rows 65/67) are actually rendered as checkboxes, and the exact day/month/year column boundaries for this schedule's own five dates, are not confirmed from cell/merge structure alone — see "Structure confirmed" above.
- No
crossFieldValidationrule ties the twelve-month table's own entries back to the total-row fields, nor ties the headline total to the table's own total row — see "Scope and disclosed boundaries" above.
Verification method assessment
manual-source-review-v1 — a human/agent read the primary source directly (the same parsed legacy .xls workbook already opened for the parent declaration and all eight prior annexes, this cycle's own dedicated sheet read cell-by-cell) and transcribed its fields. No automated re-verification tooling exists yet for this schema; nextReviewBy is set 6 months out per the practice's default cadence.
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 Державна податкова служба України (State Tax Service of Ukraine) or any government. The authoritative source is always the live government form and its official instructions.