@fin.cx/chartdata 2.17.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fin.cx/chartdata",
3
- "version": "2.17.0",
3
+ "version": "3.0.0",
4
4
  "private": false,
5
5
  "description": "Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto functions, BU-key rules, UStVA-Kennzahl and Anlage EÜR mappings",
6
6
  "main": "dist_ts/index.js",
package/readme.md CHANGED
@@ -33,6 +33,11 @@ For reporting bugs, issues, or security vulnerabilities, please visit [community
33
33
  accounts), the costs of a sale, write-downs and write-ups, the taxes withheld
34
34
  from their income and the margin interest, listed per chart by
35
35
  `getAccountsBySecuritiesRole` and found one by one with `getSecuritiesAccount`
36
+ - Payroll accounts with their payroll role (`payrollRole`): the pay and the
37
+ flat wage taxes (GuV 6a), the employer's contributions (GuV 6b), the debts
38
+ of a payroll until they are paid, the company-car benefit and the levy
39
+ refunds, and the clearing account, one account per role, found with
40
+ `getPayrollAccount`
36
41
  - DATEV's mark "HB" (`commercialOnly`): an account posted in the commercial
37
42
  balance sheet only
38
43
  - The tax rule an income or expense account is kept for (`taxRule`):
@@ -159,6 +164,59 @@ compensations paid on securities sold short. Their roles (`options_held`,
159
164
  `compensation_paid`) name no account of the standard charts: the books give
160
165
  them an individual account, or book them on the account of their position.
161
166
 
167
+ ### Payroll
168
+
169
+ A payroll run finds its accounts by the payroll role; within a chart each role
170
+ names one account, and every role has its account in both standard charts.
171
+ DATEV states each account's position beside it: the pay under "Löhne und
172
+ Gehälter" (GuV 6a, § 275 Abs. 2 Nr. 6 a HGB), the employer's contributions
173
+ under "Soziale Abgaben und Aufwendungen für Altersversorgung und für
174
+ Unterstützung" (GuV 6b). DATEV's collective accounts (SKR03 4100, SKR04 6000
175
+ and 6100) keep their positions and take no role.
176
+
177
+ ```typescript
178
+ import { getPayrollAccount } from '@fin.cx/chartdata';
179
+
180
+ getPayrollAccount('SKR03', 2026, 'salaries')?.accountNumber; // '4120' Gehälter
181
+ getPayrollAccount('SKR04', 2026, 'wage_tax')?.accountNumber; // '3730' Verbindlichkeiten aus Lohn- und Kirchensteuer
182
+ getPayrollAccount('SKR04', 2026, 'company_car_benefit')?.ustva; // { kennzahl: 81, role: 'base' }
183
+ ```
184
+
185
+ | Role | What it books | SKR03 | SKR04 |
186
+ | --- | --- | --- | --- |
187
+ | `wages` | Löhne (GuV 6a) | 4110 | 6010 |
188
+ | `salaries` | Gehälter (GuV 6a) | 4120 | 6020 |
189
+ | `managing_director_salaries` | a GmbH's shareholder-managing directors (GuV 6a) | 4124 | 6024 |
190
+ | `temporary_wages` | Aushilfslöhne (GuV 6a) | 4190 | 6030 |
191
+ | `minijob_wages` | Löhne für Minijobs (GuV 6a) | 4195 | 6035 |
192
+ | `benefits_in_kind` | Sachzuwendungen und Dienstleistungen an Arbeitnehmer (GuV 6a) | 4152 | 6072 |
193
+ | `capital_formation_benefits` | vermögenswirksame Leistungen (GuV 6a) | 4170 | 6080 |
194
+ | `commuting_allowances` | Fahrtkostenerstattung Wohnung/Arbeitsstätte (GuV 6a) | 4175 | 6090 |
195
+ | `minijob_flat_tax` | the flat tax of a Minijob (GuV 6a) | 4194 | 6036 |
196
+ | `employee_flat_tax` | the flat tax for employees (GuV 6a) | 4198 | 6039 |
197
+ | `temporary_flat_tax` | the flat tax for temporary staff (GuV 6a) | 4199 | 6040 |
198
+ | `employer_social_security` | the employer's contributions and the levies U1, U2, U3 (GuV 6b) | 4130 | 6110 |
199
+ | `minijob_social_security` | the flat contributions of a Minijob (GuV 6b) | 4144 | 6171 |
200
+ | `accident_insurance` | Berufsgenossenschaft (GuV 6b) | 4138 | 6120 |
201
+ | `pension` | Aufwendungen für Altersversorgung (GuV 6b) | 4165 | 6140 |
202
+ | `pension_flat_tax` | the flat tax on such benefits, Direktversicherungen (GuV 6b) | 4167 | 6147 |
203
+ | `company_car_benefit` | the private use of a company car, 19 % VAT, UStVA Kz 81 (GuV 4) | 8611 | 4947 |
204
+ | `levy_refunds` | Erstattungen nach dem Aufwendungsausgleichsgesetz (GuV 4) | 2749 | 4972 |
205
+ | `levy_refund_claims` | the claim on the health insurer for them | 1520 | 1369 |
206
+ | `net_pay` | the net pay owed | 1740 | 3720 |
207
+ | `wage_tax` | wage tax, church tax and Solidaritätszuschlag owed | 1741 | 3730 |
208
+ | `social_security` | the contributions owed | 1742 | 3740 |
209
+ | `employee_withholdings` | what is withheld from an employee for another (a garnishment) | 1748 | 3725 |
210
+ | `capital_formation_payable` | the savings an employee's contract receives | 1750 | 3770 |
211
+ | `estimated_contributions` | the contributions estimated when due (§ 23 Abs. 1 SGB IV) | 1759 | 3759 |
212
+ | `clearing` | the Lohn- und Gehaltsverrechnungskonto | 1755 | 3790 |
213
+
214
+ In the Anlage EÜR every payroll expense is Zeile 31 (Kz 120), "einschließlich
215
+ der gezahlten Lohnsteuer (auch Pauschalsteuer nach § 37b EStG) und anderer
216
+ Nebenkosten" (Anleitung 2026); the company-car benefit is a taxable receipt
217
+ (Kz 112), the levy refunds a non-taxable one (Kz 103). An individual account
218
+ takes no payroll role: a role names the DATEV account.
219
+
162
220
  ### Individual accounts
163
221
 
164
222
  The books may set up accounts of their own (Individualkonten) on the numbers
@@ -216,8 +274,8 @@ books.getMappingCoverage(usedAccountNumbers, 'hgb275');
216
274
 
217
275
  A `BooksChart` is a chart (`IChart`) with the lookups of the chart over the
218
276
  DATEV accounts and the books' own: `getAccount`, `getAccountsByRole`,
219
- `getAccountsBySecuritiesRole`, `getSecuritiesAccount`, `getMappingCoverage`,
220
- `getEuerLines`.
277
+ `getAccountsBySecuritiesRole`, `getSecuritiesAccount`, `getPayrollAccount`,
278
+ `getMappingCoverage`, `getEuerLines`.
221
279
 
222
280
  `INDIVIDUAL_ACCOUNT_TEMPLATES` suggests the parent and name of the results the
223
281
  law keeps apart: the gains and losses of Termingeschäfte, which § 15 Abs. 4
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@fin.cx/chartdata',
6
- version: '2.17.0',
6
+ version: '3.0.0',
7
7
  description: 'Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto functions, BU-key rules, UStVA-Kennzahl and Anlage EÜR mappings'
8
8
  }
@@ -65,7 +65,9 @@ export const HGB_275_GKV_POSITIONS: IHgbPosition[] = [
65
65
  { key: 'GuV 3', label: 'Andere aktivierte Eigenleistungen' },
66
66
  { key: 'GuV 4', label: 'Sonstige betriebliche Erträge' },
67
67
  { key: 'GuV 5', label: 'Materialaufwand' },
68
- { key: 'GuV 6', label: 'Personalaufwand' },
68
+ // Nr. 6 Personalaufwand, by its two parts
69
+ { key: 'GuV 6a', label: 'Löhne und Gehälter' },
70
+ { key: 'GuV 6b', label: 'Soziale Abgaben und Aufwendungen für Altersversorgung und für Unterstützung' },
69
71
  { key: 'GuV 7', label: 'Abschreibungen' },
70
72
  { key: 'GuV 8', label: 'Sonstige betriebliche Aufwendungen' },
71
73
  { key: 'GuV 9', label: 'Erträge aus Beteiligungen' },
@@ -10,6 +10,7 @@ import type {
10
10
  TChartName,
11
11
  TEuerAccountLines,
12
12
  TMappingDimension,
13
+ TPayrollRole,
13
14
  TSecuritiesRole,
14
15
  TTaxRule,
15
16
  } from './chartdata.types.js';
@@ -304,6 +305,11 @@ export class BooksChart implements IChart {
304
305
  return this.getAccountsBySecuritiesRole(roleArg).find((account) => account.taxRule === taxRuleArg) ?? null;
305
306
  }
306
307
 
308
+ /** The one account of the books that books the payroll role, or `null`; an individual account takes none. */
309
+ public getPayrollAccount(roleArg: TPayrollRole): IChartAccount | null {
310
+ return this.accounts.find((account) => account.payrollRole === roleArg) ?? null;
311
+ }
312
+
307
313
  public getMappingCoverage(usedAccountsArg: string[], dimensionArg: TMappingDimension): IMappingCoverage {
308
314
  return mappingCoverageOf(this.accounts, usedAccountsArg, dimensionArg);
309
315
  }
@@ -7,6 +7,7 @@ import type {
7
7
  TChartName,
8
8
  TEuerAccountLines,
9
9
  TMappingDimension,
10
+ TPayrollRole,
10
11
  TSecuritiesRole,
11
12
  TTaxRule,
12
13
  } from './chartdata.types.js';
@@ -113,6 +114,14 @@ export function getSecuritiesAccount(
113
114
  return getAccountsBySecuritiesRole(chart, year, role).find((account) => account.taxRule === taxRule) ?? null;
114
115
  }
115
116
 
117
+ /**
118
+ * The one account of a chart that books the payroll role (`IChartAccount.payrollRole`), or `null` where the chart
119
+ * keeps none for it. Throws for unknown chart/year combinations, as `getChart`.
120
+ */
121
+ export function getPayrollAccount(chart: TChartName, year: number, role: TPayrollRole): IChartAccount | null {
122
+ return getChart(chart, year).accounts.find((account) => account.payrollRole === role) ?? null;
123
+ }
124
+
116
125
  function hasMapping(account: IChartAccount, dimension: TMappingDimension): boolean {
117
126
  switch (dimension) {
118
127
  case 'ustva':
@@ -123,6 +123,81 @@ export type TSecuritiesRole =
123
123
  | 'short_sale_loss'
124
124
  | 'compensation_paid';
125
125
 
126
+ /**
127
+ * What an account books of a business's payroll: the pay and the employer's
128
+ * costs of it, the pay's taxes and contributions the business owes until it
129
+ * pays them, and what a payroll leaves to clear. A payroll run finds its
130
+ * account by this role: within a chart, no two accounts share one, and every
131
+ * role has its account in both standard charts (DATEV Kontenrahmen SKR 03
132
+ * Art.-Nr. 11174, pp. 8, 10, 11, 17, 22, 27, and SKR 04 Art.-Nr. 11175,
133
+ * pp. 4, 13, 18, 21, 22, gültig für 2026). DATEV's collective accounts
134
+ * ("Löhne und Gehälter", "Soziale Abgaben und Aufwendungen für
135
+ * Altersversorgung") take no role.
136
+ *
137
+ * The pay, under the wages and salaries (§ 275 Abs. 2 Nr. 6 a HGB, `GuV 6a`):
138
+ * - 'wages' (Löhne), 'salaries' (Gehälter), 'managing_director_salaries' (a
139
+ * GmbH's shareholder-managing directors), 'temporary_wages'
140
+ * (Aushilfslöhne), 'minijob_wages' (Löhne für Minijobs);
141
+ * - 'benefits_in_kind' (Sachzuwendungen und Dienstleistungen an
142
+ * Arbeitnehmer), 'capital_formation_benefits' (vermögenswirksame
143
+ * Leistungen), 'commuting_allowances' (Fahrtkostenerstattung Wohnung/
144
+ * Arbeitsstätte);
145
+ * - the flat wage tax the employer bears: 'minijob_flat_tax',
146
+ * 'employee_flat_tax', 'temporary_flat_tax'.
147
+ *
148
+ * The employer's contributions, under the social security and pensions
149
+ * (Nr. 6 b, `GuV 6b`): 'employer_social_security' (gesetzliche soziale
150
+ * Aufwendungen: the employer's share and the levies U1, U2 and U3),
151
+ * 'minijob_social_security' (the flat contributions for a Minijob),
152
+ * 'accident_insurance' (Berufsgenossenschaft), 'pension' (Aufwendungen für
153
+ * Altersversorgung) and 'pension_flat_tax' (the flat tax on such benefits,
154
+ * Direktversicherungen).
155
+ *
156
+ * What a payroll earns, under the other operating income (Nr. 4, `GuV 4`):
157
+ * 'company_car_benefit' (the private use of a company car as a supply to the
158
+ * employee, with 19 % VAT) and 'levy_refunds' (Erstattungen nach dem
159
+ * Aufwendungsausgleichsgesetz, the sick-pay and maternity refunds of U1 and
160
+ * U2); 'levy_refund_claims' is the claim on the health insurer until it pays.
161
+ *
162
+ * What the business owes (§ 266 Abs. 3 C.8 HGB): 'net_pay' (Verbindlichkeiten
163
+ * aus Lohn und Gehalt), 'wage_tax' (Lohn- und Kirchensteuer, with the
164
+ * Solidaritätszuschlag), 'social_security' (the contributions of both sides
165
+ * and the levies), 'employee_withholdings' (what is withheld from an employee
166
+ * for another, such as a garnishment), 'capital_formation_payable' (the
167
+ * savings an employee's contract receives), 'estimated_contributions' (the
168
+ * contributions estimated in the month they are due, § 23 Abs. 1 SGB IV);
169
+ * and 'clearing', the Lohn- und Gehaltsverrechnungskonto, a balance on
170
+ * either side (DATEV states it under the other assets or the other
171
+ * liabilities by its balance).
172
+ */
173
+ export type TPayrollRole =
174
+ | 'wages'
175
+ | 'salaries'
176
+ | 'managing_director_salaries'
177
+ | 'temporary_wages'
178
+ | 'minijob_wages'
179
+ | 'benefits_in_kind'
180
+ | 'capital_formation_benefits'
181
+ | 'commuting_allowances'
182
+ | 'minijob_flat_tax'
183
+ | 'employee_flat_tax'
184
+ | 'temporary_flat_tax'
185
+ | 'employer_social_security'
186
+ | 'minijob_social_security'
187
+ | 'accident_insurance'
188
+ | 'pension'
189
+ | 'pension_flat_tax'
190
+ | 'company_car_benefit'
191
+ | 'levy_refunds'
192
+ | 'levy_refund_claims'
193
+ | 'net_pay'
194
+ | 'wage_tax'
195
+ | 'social_security'
196
+ | 'employee_withholdings'
197
+ | 'capital_formation_payable'
198
+ | 'estimated_contributions'
199
+ | 'clearing';
200
+
126
201
  /**
127
202
  * A rule of the income tax law an income or expense account is kept for, as
128
203
  * its DATEV name states it:
@@ -266,6 +341,8 @@ export interface IChartAccount {
266
341
  accountRole?: TAccountRole;
267
342
  /** what the account books of a business's securities; unset = nothing of its own */
268
343
  securitiesRole?: TSecuritiesRole;
344
+ /** what the account books of a business's payroll; unset = nothing of its own */
345
+ payrollRole?: TPayrollRole;
269
346
  /** the income tax rule the account is kept for, as its DATEV name states it; unset = none of its own */
270
347
  taxRule?: TTaxRule;
271
348
  /**
@@ -383,6 +383,17 @@ export const SKR03_2026: IChart = {
383
383
  "provenance": "own designation; number/purpose/function verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174) and SKR 04 (Art.-Nr. 11175), gültig für 2026, and vs public oracle (2026-09-28); UStVA Kz 81/86 per BMF Anleitung zur Umsatzsteuer-Voranmeldung 2026, Zeilen 13 bis 16",
384
384
  "validFrom": 2026
385
385
  },
386
+ {
387
+ "accountNumber": "1520",
388
+ "accountName": "Forderungen gegenüber Krankenkassen aus Aufwendungsausgleichsgesetz",
389
+ "accountClass": 1,
390
+ "accountType": "asset",
391
+ "payrollRole": "levy_refund_claims",
392
+ "hgb266Position": "Aktiva B.II.4",
393
+ "euerExclusion": "balance_sheet",
394
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 8), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
395
+ "validFrom": 2026
396
+ },
386
397
  {
387
398
  "accountNumber": "1542",
388
399
  "accountName": "Steuererstattungsansprüche gegenüber anderen Ländern",
@@ -589,14 +600,26 @@ export const SKR03_2026: IChart = {
589
600
  "provenance": "own designation; number/purpose verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174) and SKR 04 (Art.-Nr. 11175), gültig für 2026, and vs public oracle (2026-09-25)",
590
601
  "validFrom": 2026
591
602
  },
603
+ {
604
+ "accountNumber": "1740",
605
+ "accountName": "Verbindlichkeiten aus Lohn und Gehalt",
606
+ "accountClass": 1,
607
+ "accountType": "liability",
608
+ "payrollRole": "net_pay",
609
+ "hgb266Position": "Passiva C.8",
610
+ "euerExclusion": "balance_sheet",
611
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 10), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
612
+ "validFrom": 2026
613
+ },
592
614
  {
593
615
  "accountNumber": "1741",
594
616
  "accountName": "Verbindlichkeiten aus Lohn- und Kirchensteuer",
595
617
  "accountClass": 1,
596
618
  "accountType": "liability",
619
+ "payrollRole": "wage_tax",
597
620
  "hgb266Position": "Passiva C.8",
598
621
  "euerExclusion": "balance_sheet",
599
- "provenance": "own designation; number/purpose verified vs public oracle (2026-07-09); pending official DATEV table verification",
622
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 10), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
600
623
  "validFrom": 2026
601
624
  },
602
625
  {
@@ -604,9 +627,54 @@ export const SKR03_2026: IChart = {
604
627
  "accountName": "Verbindlichkeiten im Rahmen der sozialen Sicherheit",
605
628
  "accountClass": 1,
606
629
  "accountType": "liability",
630
+ "payrollRole": "social_security",
607
631
  "hgb266Position": "Passiva C.8",
608
632
  "euerExclusion": "balance_sheet",
609
- "provenance": "own designation; number/purpose verified vs public oracle (2026-07-09); pending official DATEV table verification",
633
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 10), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
634
+ "validFrom": 2026
635
+ },
636
+ {
637
+ "accountNumber": "1748",
638
+ "accountName": "Verbindlichkeiten für Einbehaltungen von Arbeitnehmern",
639
+ "accountClass": 1,
640
+ "accountType": "liability",
641
+ "payrollRole": "employee_withholdings",
642
+ "hgb266Position": "Passiva C.8",
643
+ "euerExclusion": "balance_sheet",
644
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 11), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
645
+ "validFrom": 2026
646
+ },
647
+ {
648
+ "accountNumber": "1750",
649
+ "accountName": "Verbindlichkeiten aus Vermögensbildung",
650
+ "accountClass": 1,
651
+ "accountType": "liability",
652
+ "payrollRole": "capital_formation_payable",
653
+ "hgb266Position": "Passiva C.8",
654
+ "euerExclusion": "balance_sheet",
655
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 11), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
656
+ "validFrom": 2026
657
+ },
658
+ {
659
+ "accountNumber": "1755",
660
+ "accountName": "Lohn- und Gehaltsverrechnungskonto",
661
+ "accountClass": 1,
662
+ "accountType": "asset",
663
+ "payrollRole": "clearing",
664
+ "hgb266Position": "Aktiva B.II.4",
665
+ "euerExclusion": "balance_sheet",
666
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 11), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
667
+ "validFrom": 2026
668
+ },
669
+ {
670
+ "accountNumber": "1759",
671
+ "accountName": "Voraussichtliche Beitragsschuld gegenüber den Sozialversicherungsträgern",
672
+ "accountClass": 1,
673
+ "accountType": "liability",
674
+ "payrollRole": "estimated_contributions",
675
+ "hgb266Position": "Passiva C.8",
676
+ "euerExclusion": "balance_sheet",
677
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 11), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
610
678
  "validFrom": 2026
611
679
  },
612
680
  {
@@ -1252,6 +1320,19 @@ export const SKR03_2026: IChart = {
1252
1320
  "provenance": "own designation; number/purpose verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 17), gültig für 2026 (no tax function there), and vs public oracle (2026-09-29)",
1253
1321
  "validFrom": 2026
1254
1322
  },
1323
+ {
1324
+ "accountNumber": "2749",
1325
+ "accountName": "Erstattungen Aufwendungsausgleichsgesetz",
1326
+ "accountClass": 2,
1327
+ "accountType": "revenue",
1328
+ "payrollRole": "levy_refunds",
1329
+ "hgb275Position": "GuV 4",
1330
+ "euer": {
1331
+ "kennzahl": 103
1332
+ },
1333
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 17), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1334
+ "validFrom": 2026
1335
+ },
1255
1336
  {
1256
1337
  "accountNumber": "3100",
1257
1338
  "accountName": "Fremdleistungen",
@@ -1425,23 +1506,219 @@ export const SKR03_2026: IChart = {
1425
1506
  "accountName": "Löhne und Gehälter",
1426
1507
  "accountClass": 4,
1427
1508
  "accountType": "expense",
1428
- "hgb275Position": "GuV 6",
1509
+ "hgb275Position": "GuV 6a",
1429
1510
  "euer": {
1430
1511
  "kennzahl": 120
1431
1512
  },
1432
1513
  "provenance": "own designation; number/purpose verified vs public oracle (2026-07-09); pending official DATEV table verification",
1433
1514
  "validFrom": 2026
1434
1515
  },
1516
+ {
1517
+ "accountNumber": "4110",
1518
+ "accountName": "Löhne",
1519
+ "accountClass": 4,
1520
+ "accountType": "expense",
1521
+ "payrollRole": "wages",
1522
+ "hgb275Position": "GuV 6a",
1523
+ "euer": {
1524
+ "kennzahl": 120
1525
+ },
1526
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1527
+ "validFrom": 2026
1528
+ },
1529
+ {
1530
+ "accountNumber": "4120",
1531
+ "accountName": "Gehälter",
1532
+ "accountClass": 4,
1533
+ "accountType": "expense",
1534
+ "payrollRole": "salaries",
1535
+ "hgb275Position": "GuV 6a",
1536
+ "euer": {
1537
+ "kennzahl": 120
1538
+ },
1539
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1540
+ "validFrom": 2026
1541
+ },
1542
+ {
1543
+ "accountNumber": "4124",
1544
+ "accountName": "Geschäftsführergehälter der GmbH-Gesellschafter",
1545
+ "accountClass": 4,
1546
+ "accountType": "expense",
1547
+ "payrollRole": "managing_director_salaries",
1548
+ "hgb275Position": "GuV 6a",
1549
+ "euer": {
1550
+ "kennzahl": 120
1551
+ },
1552
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1553
+ "validFrom": 2026
1554
+ },
1435
1555
  {
1436
1556
  "accountNumber": "4130",
1437
1557
  "accountName": "Gesetzliche soziale Aufwendungen",
1438
1558
  "accountClass": 4,
1439
1559
  "accountType": "expense",
1440
- "hgb275Position": "GuV 6",
1560
+ "payrollRole": "employer_social_security",
1561
+ "hgb275Position": "GuV 6b",
1441
1562
  "euer": {
1442
1563
  "kennzahl": 120
1443
1564
  },
1444
- "provenance": "own designation; number/purpose verified vs public oracle (2026-07-09); pending official DATEV table verification",
1565
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1566
+ "validFrom": 2026
1567
+ },
1568
+ {
1569
+ "accountNumber": "4138",
1570
+ "accountName": "Beiträge zur Berufsgenossenschaft",
1571
+ "accountClass": 4,
1572
+ "accountType": "expense",
1573
+ "payrollRole": "accident_insurance",
1574
+ "hgb275Position": "GuV 6b",
1575
+ "euer": {
1576
+ "kennzahl": 120
1577
+ },
1578
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1579
+ "validFrom": 2026
1580
+ },
1581
+ {
1582
+ "accountNumber": "4144",
1583
+ "accountName": "Soziale Abgaben für Minijobber",
1584
+ "accountClass": 4,
1585
+ "accountType": "expense",
1586
+ "payrollRole": "minijob_social_security",
1587
+ "hgb275Position": "GuV 6b",
1588
+ "euer": {
1589
+ "kennzahl": 120
1590
+ },
1591
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1592
+ "validFrom": 2026
1593
+ },
1594
+ {
1595
+ "accountNumber": "4152",
1596
+ "accountName": "Sachzuwendungen und Dienstleistungen an Arbeitnehmer",
1597
+ "accountClass": 4,
1598
+ "accountType": "expense",
1599
+ "payrollRole": "benefits_in_kind",
1600
+ "hgb275Position": "GuV 6a",
1601
+ "euer": {
1602
+ "kennzahl": 120
1603
+ },
1604
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1605
+ "validFrom": 2026
1606
+ },
1607
+ {
1608
+ "accountNumber": "4165",
1609
+ "accountName": "Aufwendungen für Altersversorgung",
1610
+ "accountClass": 4,
1611
+ "accountType": "expense",
1612
+ "payrollRole": "pension",
1613
+ "hgb275Position": "GuV 6b",
1614
+ "euer": {
1615
+ "kennzahl": 120
1616
+ },
1617
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1618
+ "validFrom": 2026
1619
+ },
1620
+ {
1621
+ "accountNumber": "4167",
1622
+ "accountName": "Pauschale Steuer auf sonstige Bezüge (z. B. Direktversicherungen)",
1623
+ "accountClass": 4,
1624
+ "accountType": "expense",
1625
+ "payrollRole": "pension_flat_tax",
1626
+ "hgb275Position": "GuV 6b",
1627
+ "euer": {
1628
+ "kennzahl": 120
1629
+ },
1630
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1631
+ "validFrom": 2026
1632
+ },
1633
+ {
1634
+ "accountNumber": "4170",
1635
+ "accountName": "Vermögenswirksame Leistungen",
1636
+ "accountClass": 4,
1637
+ "accountType": "expense",
1638
+ "payrollRole": "capital_formation_benefits",
1639
+ "hgb275Position": "GuV 6a",
1640
+ "euer": {
1641
+ "kennzahl": 120
1642
+ },
1643
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1644
+ "validFrom": 2026
1645
+ },
1646
+ {
1647
+ "accountNumber": "4175",
1648
+ "accountName": "Fahrtkostenerstattung Wohnung/Arbeitsstätte",
1649
+ "accountClass": 4,
1650
+ "accountType": "expense",
1651
+ "payrollRole": "commuting_allowances",
1652
+ "hgb275Position": "GuV 6a",
1653
+ "euer": {
1654
+ "kennzahl": 120
1655
+ },
1656
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1657
+ "validFrom": 2026
1658
+ },
1659
+ {
1660
+ "accountNumber": "4190",
1661
+ "accountName": "Aushilfslöhne",
1662
+ "accountClass": 4,
1663
+ "accountType": "expense",
1664
+ "payrollRole": "temporary_wages",
1665
+ "hgb275Position": "GuV 6a",
1666
+ "euer": {
1667
+ "kennzahl": 120
1668
+ },
1669
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1670
+ "validFrom": 2026
1671
+ },
1672
+ {
1673
+ "accountNumber": "4194",
1674
+ "accountName": "Pauschale Steuer für Minijobber",
1675
+ "accountClass": 4,
1676
+ "accountType": "expense",
1677
+ "payrollRole": "minijob_flat_tax",
1678
+ "hgb275Position": "GuV 6a",
1679
+ "euer": {
1680
+ "kennzahl": 120
1681
+ },
1682
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1683
+ "validFrom": 2026
1684
+ },
1685
+ {
1686
+ "accountNumber": "4195",
1687
+ "accountName": "Löhne für Minijobs",
1688
+ "accountClass": 4,
1689
+ "accountType": "expense",
1690
+ "payrollRole": "minijob_wages",
1691
+ "hgb275Position": "GuV 6a",
1692
+ "euer": {
1693
+ "kennzahl": 120
1694
+ },
1695
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1696
+ "validFrom": 2026
1697
+ },
1698
+ {
1699
+ "accountNumber": "4198",
1700
+ "accountName": "Pauschale Steuer für Arbeitnehmer",
1701
+ "accountClass": 4,
1702
+ "accountType": "expense",
1703
+ "payrollRole": "employee_flat_tax",
1704
+ "hgb275Position": "GuV 6a",
1705
+ "euer": {
1706
+ "kennzahl": 120
1707
+ },
1708
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1709
+ "validFrom": 2026
1710
+ },
1711
+ {
1712
+ "accountNumber": "4199",
1713
+ "accountName": "Pauschale Steuer für Aushilfen",
1714
+ "accountClass": 4,
1715
+ "accountType": "expense",
1716
+ "payrollRole": "temporary_flat_tax",
1717
+ "hgb275Position": "GuV 6a",
1718
+ "euer": {
1719
+ "kennzahl": 120
1720
+ },
1721
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 22), gültig für 2026 (no tax function there), and vs public oracle (2026-10-07)",
1445
1722
  "validFrom": 2026
1446
1723
  },
1447
1724
  {
@@ -2221,6 +2498,31 @@ export const SKR03_2026: IChart = {
2221
2498
  "provenance": "own designation; number/purpose verified vs public oracle (2026-07-09); pending official DATEV table verification; fiscal enrichment multi-source 2026-07-09",
2222
2499
  "validFrom": 2026
2223
2500
  },
2501
+ {
2502
+ "accountNumber": "8611",
2503
+ "accountName": "Verrechnete sonstige Sachbezüge aus Fahrzeug-Gestellung 19 % USt",
2504
+ "accountClass": 8,
2505
+ "accountType": "revenue",
2506
+ "payrollRole": "company_car_benefit",
2507
+ "automatikFunction": {
2508
+ "taxType": "ust",
2509
+ "ratePercent": 19
2510
+ },
2511
+ "allowedBuKeys": [
2512
+ "",
2513
+ "40"
2514
+ ],
2515
+ "ustva": {
2516
+ "kennzahl": 81,
2517
+ "role": "base"
2518
+ },
2519
+ "hgb275Position": "GuV 4",
2520
+ "euer": {
2521
+ "kennzahl": 112
2522
+ },
2523
+ "provenance": "own designation; number/purpose/position verified vs DATEV Kontenrahmen SKR 03 (Art.-Nr. 11174, p. 27), gültig für 2026 (automatism AM, 19 % USt; UStVA Kz 81 per ELSTER Anleitung zur UStVA 2026), and vs public oracle (2026-10-07)",
2524
+ "validFrom": 2026
2525
+ },
2224
2526
  {
2225
2527
  "accountNumber": "8731",
2226
2528
  "accountName": "Gewährte Skonti 7 % USt",