Skip to content

Commit

Permalink
add freibeträge mockup
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-senger committed Oct 30, 2024
1 parent 427c262 commit ef91795
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 35 deletions.
60 changes: 40 additions & 20 deletions src/resources/builtins/parameters/einkommenssteuerAbzüge.ttsl
Original file line number Diff line number Diff line change
Expand Up @@ -12,117 +12,137 @@ package einkommenssteuerAbzüge
public constant kinderFreibetrag: Dict<String, Int> {
# Reference: Art. 1 G. v. 23.12.1982 BGBl. I S. 1857.
from 1983-01-01 = {
"sächlichesExistenzminimum": 110
"sächlichesExistenzminimum": 110,
"sum": 110
};

# Reference: Art. 1 G. v. 26.06.1985 BGBl. I S. 1153.
from 1986-01-01 = {
"sächlichesExistenzminimum": 635
"sächlichesExistenzminimum": 635,
"sum": 635
};

# Reference: Artikel 1 G. v. 25.07.1988 BGBl. I S. 1093.
from 1990-01-01 = {
"sächlichesExistenzminimum": 773
"sächlichesExistenzminimum": 773,
"sum": 773
};

# Reference: Art. 1 G. v. 25.02.1992 BGBl. I S. 297.
from 1992-01-01 = {
"sächlichesExistenzminimum": 1049
"sächlichesExistenzminimum": 1049,
"sum": 1049
};

# Reference: Art. 1. G. v. 11.10.1995 BGBl. I S. 1250.
from 1996-01-01 = {
"sächlichesExistenzminimum": 1601
"sächlichesExistenzminimum": 1601,
"sum": 1601
};

from 1997-01-01 = {
"sächlichesExistenzminimum": 1767
"sächlichesExistenzminimum": 1767,
"sum": 1767
};

# Reference: Art. 1 G. v. 28.12.1999 BGBl. I. S. 2552.
from 2000-01-01 = {
"beitragErziehungAusbildung": 774,
"sächlichesExistenzminimum": 1767
"sächlichesExistenzminimum": 1767,
"sum": 2541
};

# Reference: Art. 1 G. v. 16.08.2001 BGBl. I S. 2074
from 2002-01-01 = {
"beitragErziehungAusbildung": 1080,
"sächlichesExistenzminimum": 1824
"sächlichesExistenzminimum": 1824,
"sum": 2904
};

# Reference: Art. 1 G. v. 22.12.2008 BGBl. I S. 2955
from 2009-01-01 = {
"beitragErziehungAusbildung": 1080, # previous
"sächlichesExistenzminimum": 1932
"sächlichesExistenzminimum": 1932,
"sum": 3012
};

# Reference: Art. 1 G. v. 22.12.2009 BGBl. I S. 3950
from 2010-01-01 = {
"beitragErziehungAusbildung": 1320,
"sächlichesExistenzminimum": 2184
"sächlichesExistenzminimum": 2184,
"sum": 3504
};

# Reference: Art. 1 G. v. 16.07.2015 BGBl. I S. 1202
from 2015-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2256
"sächlichesExistenzminimum": 2256,
"sum": 3576
};

# Reference: Art. 2 G. v. 16.07.2015 BGBl. I S. 1202
from 2016-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2304
"sächlichesExistenzminimum": 2304,
"sum": 3624
};

# Reference: Art. 8 G. v. 20.12.2016 BGBl. I. S. 3000
from 2017-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2358
"sächlichesExistenzminimum": 2358,
"sum": 3678
};

# Reference: Art. 9 G. v. 20.12.2016 BGBl. I. S. 3000
from 2018-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2394
"sächlichesExistenzminimum": 2394,
"sum": 3714
};

# Reference: Art. 1 G. v. 29.11.2018 BGBl. I S. 2210
from 2019-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2490
"sächlichesExistenzminimum": 2490,
"sum": 3810
};

# Reference: Art. 3 G. v. 29.11.2018 BGBl. I S. 2210
from 2020-01-01 = {
"beitragErziehungAusbildung": 1320, # previous
"sächlichesExistenzminimum": 2586
"sächlichesExistenzminimum": 2586,
"sum": 3906
};

# Reference: Art. 1 G. v. 01.12.2020 BGBl. I S. 2616
from 2021-01-01 = {
"sächlichesExistenzminimum": 2730,
"beitr_erz_ausb": 1464
"beitr_erz_ausb": 1464,
"sum": 4194
};

# Reference: Art. 1 G. v. 08.12.2022 BGBl. I S. 2230.
from 2022-01-01 = {
"beitragErziehungAusbildung": 2730, # previous
"sächlichesExistenzminimum": 2810
"sächlichesExistenzminimum": 2810,
"sum": 5540
};

# Reference: Art. 2 G. v. 08.12.2022 BGBl. I S. 2230.
from 2023-01-01 = {
"beitragErziehungAusbildung": 2730, # previous
"sächlichesExistenzminimum": 3012
"sächlichesExistenzminimum": 3012,
"sum": 5742
};

# Reference: Art. 3 G. v. 08.12.2022 BGBl. I S. 2230.
# Not implemented in law yet, but announced. https:#www.bmfsfj.de/bmfsfj/aktuelles/alle-meldungen/spuerbare-verbesserungen-fuer-familien--234802
from 2024-01-01 = {
# deviation_from: previous
"beitragErziehungAusbildung": 2730, # previous
"sächlichesExistenzminimum": 3306
"sächlichesExistenzminimum": 3306,
"sum": 6036
};
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package einkomensgrenzen
package einkommensgrenzen

from sozialversicherungsbeitrag import geringfügigeEinkommensgrenzenMonatlich
from sozialversicherungsbeitrag import mindestlohn
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
package freibeträge

from einkommenssteuerAbzuege import alleinerziehendFreibetrag
from einkommenssteuerAbzuege import alleinerzFreibetragZusatz
from einkommenssteuerAbzüge import alleinerziehendFreibetrag
from einkommenssteuerAbzüge import alleinerzFreibetragZusatz
from einkommenssteuerAbzüge import sonderausgabenpauschbetrag
from einkommenssteuerAbzüge import kinderbetreuungskostenAbzMaximum
from einkommenssteuerAbzüge import kinderbetreuungskostenAbzAnteil
from einkommenssteuerAbzüge import kinderFreibetrag

from math import max
from math import min

id data kinderfreibetragEmpfänger1: Int;
id data kinderfreibetragEmpfänger2: Int;
data kinderfreibetragAnspruch: Int;
id data steuernummer: Int;
data alleinerziehend: Boolean;
data anzPersonen: Int;

/**
* Gibt die Anzahl der Kinderfreibeträge zurück, auf die eine Person Anspruch hat.
Expand All @@ -20,36 +28,82 @@ public function kinderfreibetragAnzahlAnsprüche(): Int groupedBy kinderfreibetr
return anspruch1 + anspruch2;
}

/**
* Berechnet den Behindertenpauschbetrag basierend auf dem Behinderungsgrad.
*/
public function behinderungsgradPauschbetrag(
behinderungsgrad: Int,
): Float {
# TODO
return 0.0;
}
# not implementable
# /**
# * Berechnet den Behindertenpauschbetrag basierend auf dem Behinderungsgrad.
# */
# public function behinderungsgradPauschbetrag(
# behinderungsgrad: Int,
# ): Float {
# # TODO
# return 0.0;
# }

/**
* Berechnung des Alleinerziehendenfreibetrags (ehemals Haushaltsfreibetrag), der abhängig von der Anzahl der Kinder
* und dem Jahr, in dem die Berechnung stattfindet, variiert.
*/
public function alleinerzFreibetrag(): Float per year {
public function per year alleinerzFreibetrag(): Float {
to 2014-12-31 {
if (alleinerziehend()) {
if (alleinerziehend) {
return alleinerziehendFreibetrag;
} else {
return 0.0;
}
}

from 2015-01-01 {
if (alleinerziehend()) {
if (alleinerziehend) {
return alleinerziehendFreibetrag + (kinderfreibetragAnzahlAnsprüche() - 1) * alleinerzFreibetragZusatz;
} else {
return 0.0;
}
}
}

# altersfreibetrag not implementable

/**
* Berechnet die Sonderausgaben auf Steuernummer-Ebene, die je nach Jahr variieren.
* Bis 2011 wird nur ein Pauschalbetrag verwendet. Ab 2012 wird zusätzlich ein
* Betreuungsbetrag berücksichtigt.
*/
public function per year sonderausgaben(): Float groupedBy steuernummer {
to 2011-12-31 {
# Sonderausgabenpauschale bis einschließlich 2011
return sonderausgabenpauschbetrag["single"] * anzahlPersonen;
}

from 2012-01-01 {
# Sonderausgaben ab 2012: Berücksichtigung von Betreuungskosten
var sonderausgabenGesamt = sonderausgabenBetreuung();
var pauschale = sonderausgabenpauschbetrag["single"] * anzahlPersonen;

return max(sonderausgabenGesamt, pauschale);
}
}

/**
* Berechnet die abzugsfähigen Kinderbetreuungskosten für jedes Kind unter 14 Jahren.
*/
public function per year abzugsfähigeBetreuungskosten(): Float {
return min(
per year betreuungskostenElternteil(),
kinderbetreuungskostenAbzMaximum
);
}

/**
* Berechnet die Sonderausgaben für Kinderbetreuungskosten auf Steuernummer-Ebene.
* Siehe §10 Abs.1 Nr. 5 EStG für Details.
*/
public function per year sonderausgabenBetreuung(): Float {
return abzugsfähigeBetreuungskosten() * kinderbetreuungskostenAbzAnteil;
}

/**
* Berechnet den individuellen Kinderfreibetrag.
*/
public function per year kinderfreibetrag(): Float {
return kinderFreibetrag["sum"] * anzahlAnsprüche();
}

0 comments on commit ef91795

Please sign in to comment.