- Brutto-Netto-Gehaltsrechner - (Gross Net Salary Calculator)
- 🇩🇪 Deutsch
- 🇬🇧 English
Willkommen im Repository des Brutto-Netto-Gehaltsrechners! Dieses Open-Source-Projekt wurde speziell für Angestellte des öffentlichen Dienstes in Deutschland entwickelt, um ihr Nettogehalt zu ermitteln. Das Repository speichert die notwendigen Daten und den Sourcecode, der von der Website https://lohntastik.de/od-rechner/tv-gehaltsrechner verwendet wird, die das Bruttogehalt auf der Grundlage der in diesem Repository gespeicherten Informationen berechnet. Es enthält eine umfangreiche Sammlung von Daten, darunter Source Codes, Entgelttabellen, Progressionstabellen, Zulagenoptionen, Angaben zur privaten Rentenversicherung und mehr. Wir freuen uns über Beiträge aus der Community, um dieses wichtige Instrument zu erweitern und zu verbessern. Wenn Sie Interesse haben, einen Beitrag zu leisten, lesen Sie bitte die nachstehende Beschreibung, um loszulegen.
Die Ordnerstruktur für die Speicherung der Entgelttabelleninformationen sieht wie folgt aus:
- tables Ordner
└── remuneration_name Ordner
├── Adv.csv
├── Table.csv
└── Meta.csv
- prv Ordner
└── prv_name Ordner
├── Meta.csv
- allowances Ordner
└── allowance_name Ordner
├── Table.csv
└── Meta.csv
- Der Ordner
tables
enthält alle Entgelttabellen. - Jede Entgelttabelle wird in einem eigenen Ordner unter dem Ordner
tables
gespeichert. - Der Ordnername für jede Entgelttabelle sollte angegeben werden und wird später im Brutto-Netto-Gehaltsrechner verwendet.
- Der Ordner mit den Entgelttabellen enthält drei Dateien:
Adv.csv
,Table.csv
, undMeta.csv
. - Im Ordner
prv
werden die Informationen zu den Pensionsplänen für den öffentlichen Sektor gespeichert. - Jeder Pensionsplan sollte seinen eigenen Ordner unter dem Ordner
prv
haben. - Der Ordnername für jeden Pensionsplan sollte unter dem Schlüsselwort
prv
in der DateiMeta.csv
für die Entgelttabellen angegeben und verwendet werden. - Der Ordner
prv_name
enthält eine "Meta.csv"-Datei mit den entsprechenden Informationen. - Der Ordner
allowances
enthält die Informationen zu den Zulagen. - Für jede Zulage sollte ein eigener Ordner unter dem Ordner
allowances
angelegt werden. - Der Name des Ordners für jede Zulage sollte unter dem Schlüsselwort
allowances
in der DateiMeta.csv
für die Entgelttabellen angegeben und verwendet werden. - Der Ordner
allowances
enthält eine Datei "Table.csv" und eine Datei "Meta.csv".
Adv.csv
: Stufenlaufzeit mit Angabe der Anzahl der Jahre, die für den Aufstieg in die nächste Stufe für jede Kombination aus Entgeltgruppe und Stufe erforderlich sind.
Feldbeschreibungen:
- Die erste Spalte enthält die Namen der Entgeltgruppen.
- Die erste Zeile enthält die Namen der Stufen.
- Die anderen Zellen enthalten die Anzahl der Jahre, die in einer bestimmten Stufe verbracht werden müssen, um in die nächste Stufe aufzusteigen.
Beispiel:
T,1,2,3,4,5,6
18,1,3,4,4,5,
17,1,3,4,4,5,
In der 18. Entgeltgruppe dauert es beispielsweise 1 Jahr, um von der Stufe 1 in die Stufe 2 aufzusteigen, 3 Jahre, um von der Stufe 2 in die Stufe 3 aufzusteigen, und so weiter.
Table.csv
: Enthält das monatliche Bruttogehalt für jede Kombination aus Entgeltgruppe und Stufe.
Feldbeschreibungen:
- Die erste Spalte enthält die Namen der Entgeltgruppen.
- Die erste Zeile enthält die Namen der Stufen.
- Die anderen Zellen enthalten das monatliche Bruttogehalt für jede Kombination aus Entgeltgruppe und Dienstaltersstufe.
Beispiel:
T,1,2,3,4,5,6
18,4025.78,4133.45,4666.83,5066.83,5666.85,6033.52
17,3696.23,3966.79,4400.13,4666.83,5200.16,5513.51
Meta.csv
: Speichert Metainformationen zu der Entgelttabelle.
Feldbeschreibungen:
- Die erste Spalte enthält den Namen des Feldes.
- Die zweite Spalte steht für den entsprechenden Wert.
- Wenn es mehrere Werte für ein Feld gibt, sollten sie durch ein Semikolon (
;
) getrennt werden.
Beispiel:
name,value
pay_grad_name,E
valid_from,2022.12.02
link,
name_de,Tarifvertrag Allgemeiner Teil
name_en,Collective Agreement General Part
allowances,tv-l-annual-bonus;tv-l-function-allowance;tv-l-foreman-allowance;tv-l-tier-allowance
prv,vbl-west;vbl-east;vbl-west-n-atv;vbl-east-n-atv;kvbw
Feldbeschreibungen:
pay_grad_name
: Der Name der mit der Entgelttabelle verbundenen Entgeltgruppe. Er wird der Nummer der Entgeltgruppe der Entgelttabelle vorangestellt.valid_from
: Das Datum, ab dem die Entgelttabelle gültig ist.link
: Der Link zu dem Dokument, aus dem der Inhalt der Entgelttabelle entnommen wird.name_de
: Der Name der Entgelttabelle in deutscher Sprache.name_en
: Der Name der Entgelttabelle in englischer Sprache.allowances
: Eine durch Semikolon getrennte Liste der Namen der Zulagen, die mit dieser Entgelttabelle verbunden sind.prv
: Eine durch Semikolon getrennte Liste der mit dieser Entgelttabelle verknüpften Pensionsplantypen.
Meta.csv
: Speichert Metainformationen über die Zusatzrentenversicherung.
Spaltenbeschreibungen:
- Die erste Spalte steht für den Namen des Feldes.
- Die zweite Spalte steht für den entsprechenden Wert.
- Die dritte Spalte enthält einen optionalen Kommentar zu dem Feld.
Die Datei Meta.csv
für jeden Rentenplan enthält die folgenden Felder:
link
:: Die URL, die auf das Quelldokument für den Pensionsplan verweist.info
: Zusätzliche Informationen über den Pensionsplan.calc_fun
: Der Dateiname, der die Funktionprv
enthält, die für die Berechnung der Sozialversicherungsbeiträge und des steuerpflichtigen Bruttogehalts zuständig ist. Sie sollte im Ordnerscript/prv
gespeichert werden und muss der angegebenen Definition entsprechen.label_de
: Das für den Pensionsplan verwendete Label in deutscher Sprache.label_en
: Die Bezeichnung für den Pensionsplan in englischer Sprache.info_de
: Informationen über den Pensionsplan auf Deutsch.info_en
: Informationen über den Pensionsplan in englischer Sprache.- Benutzerdefinierte Felder: Diese Felder können je nach Rentenplan variieren und werden als Eingaben in der Funktion
prv
verwendet.
Beispiel:
name,value,comment
link,,
info,,
calc_fun,vbl_west,
label_de,VBL-West,
label_en,VBL-West,
info_de,,
info_en,,
arbeitnehmeranteil,1.81,,
arbeitgeberanteil,5.49,,
pauschal,92.03,"Pauschalversteuerung der Arbeitgeberumlage nach § 40b EStG i. V. m. § 37 Abs. 2 ATV"
steuer_frei,219,"Steuerfreie Umlage des Arbeitgebers nach § 3 Nr. 56 EStG"
grenzbetrag,100,"Zurechnungsbetrag 1: abzgl. Grenzbetrag"
sozi_freibetrags,13.30,"Zurechnungsbetrag 2: abzgl. Abzüglich des Freibetrags"
Table.csv
: Enthält die Zulage für jede Kombination aus Entgeltgruppe und Option.
Feldbeschreibungen:
- Die erste Spalte enthält die Namen der Entgeltgruppen.
- Die erste Zeile enthält die Namen der Optionen.
- Die Zellen enthalten die tatsächliche Zulage für jede Kombination aus Entgeltgruppe und Option.
- Wenn für die Entgeltgruppe
-1
angegeben wird, dann wird diese Option für alle Entgeltgruppen verwendet.
Beispiel:
T,no,yes
18,0,386.18
Meta.csv
: Speichert Metainformationen über die Zulage.
Spaltenbeschreibungen:
- Die erste Spalte steht für den Namen des Feldes.
- Die zweite Spalte steht für den entsprechenden Wert.
Sie umfasst die folgenden Felder:
info
: Zusätzliche Informationen über die Zulage.func_type
: Der zur Berechnung der Zulage verwendete Funktionstyp (z. B. fabsolute oder frelative).adding_type
: Soll dieser Betrag zum Monatsgehalt oder nur zum Jahresgehalt hinzugerechnet werden, wie ein Jahressonderzahlung (z. B.monthly
oderyearly
).label_de
: Das für die Zulage verwendete Label in deutscher Sprache.label_en
: Die Bezeichnung der Zulage in englischer Sprache.info_de
: Informationen über die Zulage in deutscher Sprache.info_en
: Informationen über die Zulage in englischer Sprache.options
: Die verfügbaren Optionen für die Zulage, getrennt durch;
.default_option
: Die Standardoption für die Zulage.options_label_de
: Die Bezeichnungen für die Optionen in deutscher Sprache, getrennt durch;
.options_label_en
: Die Bezeichnungen für die Optionen in englischer Sprache, getrennt durch;
.
Beispiel:
name,value
info,https://www.arbeitsagentur.de/bakarriere/ba-tarifvertrag
func_type,fabsolute
adding_type,monthly
label_de,Funktionsstufe 2
label_en,Function Level 2
info_de,"Die Funktionsstufe ist ein zusätzliches Entgelt innerhalb des Entgeltsystems der Bundesagentur für Arbeit, das für zusätzliche Aufgaben oder Herausforderungen aufgrund der Komplexität und Verantwortung der Tätigkeit gewährt wird. Die Zusatzzahlung für Funktionsstufe 2 beträgt {{yes_value}}."
info_en,"Funktionsstufe represents additional compensation within the Federal Employment Agency's pay system, awarded for extra tasks or challenges based on job complexity and responsibilities. The additional payment for Function Level 2 is {{yes_value}}."
options,no;yes
default_option,no
options_label_de,Nein;Ja
options_label_en,No;Yes
Um eine neue Entgelttabelle einzurichten, gehen Sie folgendermaßen vor:
- Erstellen Sie einen neuen Ordner unter dem Ordner
tables
mit einem aussagekräftigen Namen für die Entgelttabelle (z.B.TV-L
). - Erstellen Sie in dem neu angelegten Ordner die folgenden Dateien:
Adv.csv
: Fügen Sie die Progression der Vergütung hinzu, wobei die Spalten die Tiers und die Zeilen die Entgeltgruppen darstellen. Die erste Spalte sollte den Namen/die Nummer der Entgeltgruppe (z. B. 1, 2a, 3 usw.) und die erste Zeile den Namen der Stufe enthalten. Die erste Zelle sollteT
lauten. Geben Sie in die Zellen die Anzahl der Jahre ein, die in jeder Stufe verbracht werden müssen, um in die nächste Stufe aufzusteigen.Table.csv
: Erstellen Sie eine Tabelle mit der gleichen Struktur wieAdv.csv
, aber geben Sie anstelle der Jahre das monatliche Bruttogehalt für jede Stufe und Entgeltgruppe ein.Meta.csv
: Fügen Sie Metainformationen zur Entgelttabelle hinzu, einschließlich der Bezeichnung der Entgeltgruppe, der Bezeichnungen in Deutsch und Englisch, der Art des Pensionsplans für den öffentlichen Sektor und der Zulagen. Die Feldnamen und -werte entnehmen Sie bitte dem obigen Beispiel.
Gehen Sie wie folgt vor, um eine neue Zusatzrentenversicherung einzurichten:
- Erstellen Sie einen neuen Ordner unter dem Ordner
prv
mit einem aussagekräftigen Namen für den Rentenplan (z. B.vbl-west
). - Erstellen Sie innerhalb des neu erstellten Ordners eine Datei
Meta.csv
mit den erforderlichen Feldern zur Definition des Pensionsplans. Die Feldnamen und -werte entnehmen Sie bitte dem oben angeführten Beispiel. - Dieser Schritt kann entfallen, wenn das
script/prv
bereits ein Skript enthält, das zur Berechnung der Sozialversicherungsbeiträge und des steuerpflichtigen Bruttogehalts verwendet werden kann. Andernfalls implementieren Sie eine Python-Funktion zur Berechnung des Sozialversicherungsbeitrags und des steuerpflichtigen Bruttogehalts auf der Grundlage des in der DateiMeta.csv
angegebenen Wertscalc_fun
. Speichern Sie diese Funktion im Ordnerscript/prv
.
Führen Sie folgende Schritte aus, um eine neue Tabelle für Zulagen einzurichten:
- Erstellen Sie einen neuen Ordner unter dem Ordner
allowances
mit einem aussagekräftigen Namen für die Zulage (z. B.tv-l-function-allowance
). - Erstellen Sie innerhalb des neu erstellten Ordners die folgenden Dateien:
Table.csv
: Erstellen Sie eine Tabelle mit den Zulagen für jede Kombination aus Entgeltgruppe und Option. Die Zeilen stehen für die Entgeltgruppen, die Spalten für die Optionen. Die Zellenwerte stellen die Zulagen dar. Verwenden Sie-1
für die Entgeltgruppe, wenn die Option für alle Entgeltgruppen gilt.Meta.csv
: Fügen Sie Metainformationen zur Zulage hinzu. Die Feldnamen und -werte entnehmen Sie bitte dem obigen Beispiel.
Um die Entgelttabelle, die Zusatzrentenversicherung und die Zulagen miteinander zu verknüpfen, müssen Sie Folgendes beachten:
- Geben Sie in der Datei
Meta.csv
der Entgelttabelle die entsprechenden Zusatzrentenversicherungen und Zulagen an, indem Sie deren Ordnernamen in die Felderprv
bzw.allowances
aufnehmen. - In der Datei
Meta.csv
der prv geben Sie den Link zur Zusatzrentenversicherung und andere relevante Informationen an. - In der Datei
Meta.csv
für jede Zulage geben Sie die erforderlichen Metainformationen und den Link zu zusätzlichen Angaben an.
Welcome to the Gross Net Salary Calculator repository! This open-source project was developed specifically for public sector employees in Germany to determine their net salary. The repository stores the necessary data and source code used by the website https://lohntastik.de/od-rechner/tv-gehaltsrechner, which calculates the gross salary based on the information stored in this repository. It contains an extensive collection of data including source codes, salary tables, progression tables, allowance options, private pension insurance details and more. We welcome contributions from the community to expand and improve this important tool. If you are interested in contributing, please read the description below to get started.
The folder structure for storing the remuneration information is as follows:
- tables Folder
└── remuneration_name Folder
├── Adv.csv
├── Table.csv
└── Meta.csv
- prv Folder
└── prv_name Folder
├── Meta.csv
- allowances Folder
└── allowance_name Folder
├── Table.csv
└── Meta.csv
- The
tables
folder contains all the remuneration tables. - Each remuneration table is stored in a separate folder under the
tables
folder. - The folder name for each remuneration table should be specified and it is used later in the gross net salary calculator.
- The remuneration table folder includes three files:
Adv.csv
,Table.csv
, andMeta.csv
. - The
prv
folder stores the information related to the Pension plans for the public sector. - Each Pension plan should have its folder under the
prv
folder. - The folder name for each Pension plan should be specified and used under the
prv
keyword in the remuneration tablesMeta.csv
file. - The Pension plan folder includes a
Meta.csv
file with the relevant information. - The
allowances
folder stores the information related to the allowances. - Each allowance should have its folder under the
allowances
folder. - The folder name for each allowance should be specified and used under the
allowances
keyword in the remuneration tablesMeta.csv
file. - The allowance folder includes a
Table.csv
file and aMeta.csv
file.
Adv.csv
: Progression of the remuneration, specifying the number of years needed to advance to the next tier for each pay grade and tier combination.
Field descriptions:
- The first column represents the pay grade names.
- The first row represents the tier names.
- The other cells contain the number of years that need to be spent in a specific tier to advance to the next tier.
Example:
T,1,2,3,4,5,6
18,1,3,4,4,5,
17,1,3,4,4,5,
For example, in the 18th pay grade, it takes 1 year to advance from tier 1 to tier 2, 3 years to advance from tier 2 to tier 3, and so on.
Table.csv
: Contains the monthly gross salary for each pay grade and tier combination.
Field descriptions:
- The first column represents the pay grade names.
- The first row represents the tier names.
- The other cells contain the monthly gross salary for each pay grade and tier combination.
Example:
T,1,2,3,4,5,6
18,4025.78,4133.45,4666.83,5066.83,5666.85,6033.52
17,3696.23,3966.79,4400.13,4666.83,5200.16,5513.51
Meta.csv
: Stores meta information related to the remuneration table.
Field descriptions:
- The first column represents the name of the field.
- The second column represents the corresponding value.
- If there are multiple values for a field, they should be separated by a semicolon (
;
).
Example:
name,value
pay_grad_name,E
valid_from,2022.12.02
link,
name_de,Tarifvertrag Allgemeiner Teil
name_en,Collective Agreement General Part
allowances,tv-l-annual-bonus;tv-l-function-allowance;tv-l-foreman-allowance;tv-l-tier-allowance
prv,vbl-west;vbl-east;vbl-west-n-atv;vbl-east-n-atv;kvbw
Field descriptions:
pay_grad_name
: The name of the pay grade associated with the remuneration table. It will be prepended to the remuneration table pay grade number.valid_from
: The date from which the remuneration table is valid.link
: The link to the document from which the content of the remuneration table is extracted.name_de
: The name of the remuneration table in German.name_en
: The name of the remuneration table in English.allowances
: A semicolon-separated list of allowance names associated with this remuneration table.prv
: A semicolon-separated list of pension plan types associated with this remuneration table.
Meta.csv
: Stores meta information related to the Supplementary Pension Insurance.
Column descriptions:
- The first column represents the name of the field.
- The second column represents the corresponding value.
- The third column represents an optional comment for the field.
The Meta.csv
file for each Pension plan contains the following fields:
link
: The URL linking to the source document for the Pension plan.info
: Additional information about the Pension plan.calc_fun
: The file name that contains theprv
function, which is responsible for calculating social security contribution and taxable gross salary, and it should be stored in thescript/prv
folder and must adhere to the specified definition.label_de
: The label used for the Pension plan in German.label_en
: The label used for the Pension plan in English.info_de
: Information about the Pension plan in German.info_en
: Information about the Pension plan in English.- Custom fields: These fields can vary based on the specific Pension plan and are used as inputs in the
prv
function.
Example:
name,value,comment
link,,
info,,
calc_fun,vbl_west,
label_de,VBL-West,
label_en,VBL-West,
info_de,,
info_en,,
arbeitnehmeranteil,1.81,,
arbeitgeberanteil,5.49,,
pauschal,92.03,"Pauschalversteuerung der Arbeitgeberumlage nach § 40b EStG i. V. m. § 37 Abs. 2 ATV"
steuer_frei,219,"Steuerfreie Umlage des Arbeitgebers nach § 3 Nr. 56 EStG"
grenzbetrag,100,"Zurechnungsbetrag 1: abzgl. Grenzbetrag"
sozi_freibetrags,13.30,"Zurechnungsbetrag 2: abzgl. Abzüglich des Freibetrags"
Table.csv
: Contains the allowance for each pay grade and option combination.
Field descriptions:
- The first column represents the pay grade names.
- The first row represents the option names.
- The cells contain the actual allowance for each pay grade and option combination.
- If
-1
is specified for the pay grade, then that option will be used for all pay grades.
Example:
T,no,yes
18,0,386.18
-
Meta.csv
: Stores meta information related to the allowance.Column descriptions:
- The first column represents the name of the field.
- The second column represents the corresponding value.
It includes the following fields:
info
: Additional information about the allowance.func_type
: The function type used to calculate the allowance (e.g.,fabsolute
orfrelative
).adding_type
: Should this be added to the monthly salary or only to the yearly salary, such as an annual bonus (e.g.,monthly
oryearly
).label_de
: The label used for the allowance in German.label_en
: The label used for the allowance in English.info_de
: Information about the allowance in German.info_en
: Information about the allowance in English.options
: The available options for the allowance, separated by ";".default_option
: The default option for the allowance.options_label_de
: The labels for the options in German, separated by ";".options_label_en
: The labels for the options in English, separated by ";".
Example:
name,value
info,https://www.arbeitsagentur.de/bakarriere/ba-tarifvertrag
func_type,fabsolute
label_de,Funktionsstufe 2
label_en,Function Level 2
info_de,"Die Funktionsstufe ist ein zusätzliches Entgelt innerhalb des Entgeltsystems der Bundesagentur für Arbeit, das für zusätzliche Aufgaben oder Herausforderungen aufgrund der Komplexität und Verantwortung der Tätigkeit gewährt wird. Die Zusatzzahlung für Funktionsstufe 2 beträgt {{yes_value}}."
info_en,"Funktionsstufe represents additional compensation within the Federal Employment Agency's pay system, awarded for extra tasks or challenges based on job complexity and responsibilities. The additional payment for Function Level 2 is {{yes_value}}."
options,no;yes
default_option,no
options_label_de,Nein;Ja
options_label_en,No;Yes
To set up a new remuneration table, follow these steps:
- Create a new folder under the
tables
folder with a meaningful name for the remuneration table (e.g.,TV-L
). - Inside the newly created folder, create the following files:
Adv.csv
: Add the progression of the remuneration, where the columns represent the Tiers and the rows represent the pay grades. The first column should be the pay grade name/number (e.g. 1, 2a, 3 etc.), and the first row should be the tier name. The first cell should beT
. Fill in the cells with the number of years that need to be spent in each tier to advance to the next tier.Table.csv
: Create a table with the same structure asAdv.csv
, but instead of years, enter the monthly gross salary for each tier and pay grade.Meta.csv
: Add meta information related to the remuneration table, including the pay grade name, labels in German and English, pension plan type for the public sector, and allowances. Refer to the provided example above for field names and values.
To set up a new Supplementary Pension Insurance, follow these steps:
- Create a new folder under the
prv
folder with a meaningful name for the Pension plan (e.g.,vbl-west
). - Inside the newly created folder, create a
Meta.csv
file with the necessary fields to define the Pension plan. Refer to the provided example above for field names and values. - This step can be excluded if the
script/prv
already includes a script that can be used to calculate the social security contribution and taxable gross salary. Otherwise, implement a Python function for the calculation of social security contribution and taxable gross salary based on the providedcalc_fun
value in theMeta.csv
file. Store this function under thescript/prv
folder.
To set up a new allowance table, follow these steps:
- Create a new folder under the
allowances
folder with a meaningful name for the allowance (e.g.,tv-l-function-allowance
). - Inside the newly created folder, create the following files:
Table.csv
: Create a table with the allowance for each pay grade and option combination. The rows represent the pay grades, and the columns represent the options. The cell values represent the allowances. Use-1
for the pay grade if the option applies to all pay grades.Meta.csv
: Add meta information related to the allowance. Refer to the provided example above for field names and values.
To link the remunerations table, supplementary pension insurance, and allowances together, ensure the following:
- In the
Meta.csv
file of the remuneration table, specify the corresponding supplementary pension insurances and allowances by including their folder names under theprv
andallowances
fields, respectively. - In the
Meta.csv
file of the prv, specify the link to the Supplementary Pension Insurance and other relevant information. - In the
Meta.csv
file of each allowance, specify the necessary meta information and link to additional details.