German TAX reloaded

Der deutsche Text in diesem Post ist nach dem Link:

Read the rest of this entry »

As described in the last german TAX post I was trying to get information about german income taxes, in particular I wanted to get the concrete formulas. I asked via fragdenstaat.org at the Federal Agency for Civic Education (Bundeszentrale für politische Bildung: BPB) for that information, since they have a webpage about income taxes. This page however cited only a little phrase, with the names of the different income zones before I wrote the letter, but luckily it got meanwhile at least a little revamped. However the page still doesn’t show the formulas, moreover it is not very up-to-date. In addition the BPB was not only not able to help me with my request, but I was told that:

” In Bezug auf weitere steuerrechtliche Auskünfte bitte ich Sie, von Anfragen bei der bpb Abstand zu nehmen, weil wir definitiv nicht dafür zuständig sind.”

(translation without guarantee: with regard to further tax law requests I ask you to precind from sending further requests to BPB, because we are definitly not in charge for this.)

I should maybe also mention that I asked a representative of the ministry of economics for the formulas, who said I should ask a tax consultant.
As already said in the comment at fragdenstaat.de I had then finally found formulas for the taxes 2010-2012 (after a long search). The formulas are on the site of the ministry for finance with the taxcalculator and you can get the formulas if you type in any income, and then hit the button “BERECHNEN”. I couldnt however find the formulas for the original draft for the taxes for 2013 from February last year, neither the formulas for the new draft as of december 12 last year for the taxes for 2013. Mr. Liebig, who runs the website www.lohn-info.de had however found them and had included the numbers on his site, so I wrote him an email and asked him for the links.
I have meanwhile got an answer from Mr. Liebig who had kindly send me the links via email.

A document which describes the taxes for the upcoming year, as of 121212 is at the website of the Bundesrat.

A document which was the old draft for the 2013 taxes and which was intended to mitigate the impact of higher taxes due to BRACKET CREEP is at
http://dip21.bundestag.de/dip21/btd/17/086/1708683.pdf

I meanwhile included the new numbers into the formulas. Details (in german) and the mathics code can be found after the click.

The result in short: If I didn’t miscalculate then there are tax reductions of 8-24 Euros/year for the incomes above 13500 Euros per year. For incomes of 8100 Euro to 13500 Euros there is a tax increase of about 15 Euros/per year. The procentual bracket creep (not sure wether this is called this way, please look at formulas) is for 6% income increase maximaly about 2.5%, for 2% income increase it is about 0.8%.

Ich habe jetzt mal die neuen Zahlen angeguckt und eingegeben um u.a. genauer zu sehen wie sehr sich die kalte Progression bemerkbar macht. (Ich hoffe ich habe mich dabei nicht vertippt und habe die Zahlen extra nicht als Variable gesetzt, damit man Tippfehlerschneller sieht)

Der mathics code ist unten man braucht in nur in die Maus pasten by www.mathics.net einpasten, shift-return drücken und bekommt die Ergebnisse.

Die prozentuale kalte Progression -hoffe das heisst so, was ich meine ist das hier:
fProgression[Einkommen_]:=(Steuer2013[Einkommen+Prozent*Einkommen]-Steuer2012[Einkommen])/Einkommen

ergibt bei einer Lohnerhöhung von 2% ungefähr 8 promille und
bei einer Lohnerhöhung von 6% ungefähr 2,5 Prozent des Einkommens.

Die genaue Kurve kann man sich mit dem Befehl

Clear[Einkommen,Prozent]
Prozent:=0.06
Plot[fProgression[x],{x, 10000, 100000}]

anzeigen lassen (hier ist z.b. die prozentuale Progression bei einer Gerhaltserhöhung um 6% in den Grenzen von 10000 Euro Einkommen bis 100000 Euro Einkommen). Leider ist der mathics PLOT Befehl noch etwas kränkelnd.

Bedenklicher als die kalte Progression fand ich allerdings, dass
Steuererhöhungen in der unteren Progresssionszone stattfanden.

Das kann man durch den Befehl:

Simplify[fUntProgZone2013[x]-fUntProgZone2012[x]]
Simplify[fUntProgZone2012Entwurf[x]-fUntProgZone2012[x]]
Simplify[fObProgZone2013[x]-fObProgZone2012[x]]
Simplify[fErstPropZone2013[x]-fErstPropZone2012[x]]

feststellen. Das Ergebnis ist
15.1340205527999 – 0.00579944639999997 ⁢ Floor [ x ] + 2.15299999999999 × 10 -7 ⁢ Floor [ x ] 2.
- 8.86576383720001 – 1.47800000000001 × 10 -7 ⁢ Floor [ x ] 2. + 0.000104559600000016 ⁢ Floor [ x ]
- 24
- 24

Das heisst in der unteren Progressionszone (Einkommen von ca 8100 Euro bis 13500) ergibt sich eine Einkommenssteuer die in 2013 ca. 15-16 Euro pro Jahr höher ist als in 2012 für die weiteren Einkommenszonen eine Steuerersparnis von ca. 8 bzw ab einem Einkommen von ca. 54000 eine Ersparnis von 24 Euro

Ich bitte alle hier die Zahlen und Rechnungen nochmal nachzuprüfen.

Der Code ist frei verwendbar und weitergebbar unter Einfügung des
Copyright Textes

Die Anfertigung der Anfragen, des Programmierens etc. hat mehrere Tage Zeit in Anspruch genommen.

————————-COPYRIGHT TEXT——–
Copyright (C) <2013 N. Kutz>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
——————————————–

Der untenstehende Code kann by mathics.net eingepastet
werden:

Clear[fNullZone2012, fUntProgZone2012, fObProgZone2012, fErstPropZone2012, fZweitPropZone2012,xvar2012,yvar2012,zvar2012]
Clear[fNullZone2013, fUntProgZone2013, fObProgZone2013, fErstPropZone2013, fZweitPropZone2013,xvar2013,yvar2013,zvar2013, Steuer2012, Steuer2013]

xvar2012[x_] := Floor[x]
yvar2012[x_] := 0.0001*(Floor[x]-8004)
zvar2012[x_] := 0.0001*(Floor[x]-13469)
fNullZone2012[x_] := 0
fUntProgZone2012[x_] := (912.17 * yvar2012[x] + 1400) * yvar2012[x]
fObProgZone2012[x_] := (228.74 * zvar2012[x] + 2397) * zvar2012[x] + 1038
fErstPropZone2012[x_] := 0.42 * xvar2012[x] – 8172
fZweitPropZone2012[x_] := 0.45 * xvar2012[x] – 15694
Steuer2012[x_]:= If[x<8005,fNullZone2012[x],If[x<13470,fUntProgZone2012[x], If[x<52882,fObProgZone2012[x], If[x<250731,fErstPropZone2012[x],
fZweitPropZone2012[x]]]]]

xvar2012E[x_] := Floor[x]
yvar2012E[x_] := 0.0001*(Floor[x]-8130)
zvar2012E[x_] := 0.0001*(Floor[x]-13685)
fNullZone2012Entwurf[x_] := 0
fUntProgZone2012Entwurf[x_] := (897.39 * yvar2012E[x] + 1400) * yvar2012E[x]
fObProgZone2012Entwurf[x_] := (225.14 * zvar2012E[x] + 2397) * zvar2012E[x] + 1055
fErstPropZone2012Entwurf[x_] := 0.42 * xvar2012E[x] – 8303
fZweitPropZone2012Entwurf[x_] := 0.45 * xvar2013[x] – 15803
Steuer2012Entwurf[x_]:=If[x<8131,fNullZone2012Entwurf[x],If[x<13686,fUntProgZone2012Entwurf[x], If[x<53728,fObProgZone2012Entwurf[x], If[x<250000,fErstPropZone2012Entwurf[x],
fZweitPropZone2012Entwurf[x]]]]]

xvar2013[x_] := Floor[x]
yvar2013[x_] := 0.0001*(Floor[x]-8130)
zvar2013[x_] := 0.0001*(Floor[x]-13469)
fNullZone2013[x_] := 0
fUntProgZone2013[x_] := (933.70 * yvar2013[x] + 1400) * yvar2013[x]
fObProgZone2013[x_] := (228.74 * zvar2013[x] + 2397) * zvar2013[x] + 1014
fErstPropZone2013[x_] := 0.42 * xvar2013[x] – 8196
fZweitPropZone2013[x_] := 0.45 * xvar2013[x] – 15718
Steuer2013[x_]:=If[x<8131,fNullZone2013[x],If[x<13470,fUntProgZone2013[x], If[x<52882,fObProgZone2013[x], If[x<250731,fErstPropZone2013[x],
fZweitPropZone2013[x]]]]]

Dann passiert erstmal nichts, denn das Programm hat erstmal die Daten bekommen.

Ab hier kommen die Befehle mit denen man sich verschiedene Sachen angucken kann.

————————–
Ein Graph der jeweiligen Steuern (hier zwischen 0 und 100000 Euro)

Plot[Steuer2012[x],{x, 0, 100000}]
Plot[Steuer2013[x],{x, 0, 100000}]
Plot[{Steuer2012[x], Steuer2013[x]},{x, 0, 20000}]
Plot[{Steuer2012[x], Steuer2012Entwurf[x]},{x, 0, 20000}]

—————————
Hier werden die verschiedenen Einkommenszonen von einander abgezogen:

Simplify[fUntProgZone2013[x]-fUntProgZone2012[x]]
Simplify[fUntProgZone2012Entwurf[x]-fUntProgZone2012[x]]
Simplify[fObProgZone2013[x]-fObProgZone2012[x]]
Simplify[fErstPropZone2013[x]-fErstPropZone2012[x]]

—————————-
Hier sind Berechnungen zur kalten Progression (Prozent ist hierbei der Prozentsatz einer Einkomenserhöhung):

Clear[fProgression, Einkommen, Prozent]
fProgression[Einkommen_]:=(Steuer2013[Einkommen+Prozent*Einkommen]-Steuer2012[Einkommen])/Einkommen
Einkommen := 100000
Prozent:=0.02
Steuer2012Entwurf[Einkommen+Prozent*Einkommen]-Steuer2012[Einkommen]
Steuer2013[Einkommen+Prozent*Einkommen]-Steuer2012[Einkommen]
fProgression[Einkommen]

—————–
Und hier nochmal ein Graph zur kalten Progression:

Clear[Einkommen,Prozent]
Prozent:=0.06
Plot[fProgression[x],{x, 10000, 100000}]

8 Responses to “German TAX reloaded”

  1. Lissy Says:

    this is terrible!!!!!!!!
    if I do my tax declaration I need a jar of sweeties next to me in order to survive!!!!!!!!!

  2. nad Says:

    to be honest I consumed almost a bar of chocolate for compensation.

  3. John Baez Says:

    A tiny suggestion: “precind” should probably be “desist” or “cease”. I’ve never seen the word “precind”.

  4. nad Says:

    thanks, it seems you catched a typo: precind -> prescind

  5. Charles Flugpionier Says:

    nad wrote:

    to be honest I consumed almost a bar of chocolate for compensation

    humans are not scale invariant though.

  6. Stavros Xenoakis Says:

    I like how the germans use electronic means and other technological innovations for getting organized. But as far as I know there is an official german tax calculation program with which the typical german does his or hers income tax declaration, so what’s the use of that tax calculator? I understand that this official program may be eventually less transparent but isn’t it good that the concrete tax calculations are a bit secluded so that people can’t easily find loopholes?

  7. nad Says:

    Stavros Xenoakis wrote:

    But as far as I know there is an official german tax calculation program with which the typical german does his or hers income tax declaration, so what’s the use of that tax calculator? I understand that this official program may be eventually less transparent but isn’t it good that the concrete tax calculations are a bit secluded so that people can’t easily find loopholes?

    Yes, there used to be an online calculator for german taxes and likewise the tax declaration can be made automatized. I am not sure but I think this is now even mandatory for companies. I am not sure what you mean with loopholes. I don’t think that there is a “loophole” in the official income tax calculation programm, so if there is no typo and a mistake in my programm the results should be the same as there. But I actually never checked. I mostly wanted to see the visualization.

  8. nad Says:

    @Stavros

    I think I understood now what you could have meant by loophole after watching this
    movie about tax ruling. I haven’t fully understood how this works,
    but it seems there are countries in Europe where certain corporate taxes can be negotiated. And it seems you may be sentenced for revealing details about the negotiated tax rules:
    Luxembourg Court Convicts 2 in Whistleblowing Case.

Leave a Reply


comments in german, french and russian will be translated into english.
you can use LaTeX in your math comments, by using the [latex] shortcode:
[latex] E = m c^2 [/latex]