-
-
Save code-later/4511741 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Verdienstziele und weitere Parameter | |
# =============================================================================================== | |
Jahr=2012 | |
# Gewerbesteuer berücksichtigen, "ja" oder "nein"? | |
GewerbesteuerEinrechnen = "nein" | |
# Jeweilige Jahresziele sollten in 10 Monaten erreicht werden | |
# ...wegen Weiterbildungen, Urlaub, Krankheit, Open Source Contribution | |
# MaxStd entspricht dabei dann 100% Auslastung | |
MaxStd = 8 * 5 * 44 # 8 Std/Tag, 5 Tage die Woche, 44 Wochen = 1760 Stunden pro Jahr | |
# Projektauslastung | |
# Infos: http://www.gulp.de/kb/mk/arbeitsmarkt/umfrage_projektauslastung2010.html | |
MinAuslastung = 50 # worst-case | |
AvgAuslastung = 65 # Hier sollte man so in etwa MINDESTENS liegen | |
AuslastungLetztesJahr = 80 # Das war das letzte Jahr | |
MaxAuslastung = 110 # Das absolute Maximum in % | |
ZielVerdienst0 = 35000 # das absolute Minimum | |
ZielVerdienst1 = 50000 # hier wirds nett | |
ZielVerdienst2 = 75000 # Das wäre cool :) | |
StundensatzMin = 50 | |
StundensatzMax = 75 | |
StundensatzSchritt = 5 | |
# =============================================================================================== | |
# =============================================================================================== | |
# Gewerbesteuer Berechnung | |
# =============================================================================================== | |
# Errechnung der Gewerbesteuer | |
# (Gewerbeertrag + Hinzurechnungen - Kürzungen ) | |
# -> Steuermesszahl -> Messbetrag -> Hebesatz -> Gewerbesteuer | |
Steuermesszahl = 0.035 # Quelle: http://www.juraforum.de/gesetze/gewstg/11-steuermesszahl-und-steuermessbetrag | |
GwStFreibetrag = 24500 # Freibetrag für Einzelpersonen, Quelle siehe oben | |
HebesatzKoeln = 4.75 # Quelle Hebesatz Köln: http://www.stadt-koeln.de/mediaasset/content/pdf21/steuerhebesaetze.pdf | |
# Umsatz - Freibetrag muss > 0 sein, sonst keine Gewerbesteuer :) | |
GewerbesteuerMessbetrag(x) = ((x - GwStFreibetrag) > 0) ? (x - GwStFreibetrag) * Steuermesszahl : 0 | |
Gewerbesteuer(x) = GewerbesteuerMessbetrag(x) * HebesatzKoeln | |
# Anrechnung auf Einkommenssteuer | |
# http://www.gesetze-im-internet.de/estg/__35.html (1) | |
GewerbesteuerEStAnrechnung(x) = GewerbesteuerMessbetrag(x) * 3.8 | |
# Einkommenssteuer Berechnung | |
# =============================================================================================== | |
# https://www.abgabenrechner.de/ | |
# http://www.gesetze-im-internet.de/estg/__52.html | |
# zvE = zu versteuerndes Einkommen | |
EStAbs(zvE) = zvE < 8004 ? 0 : \ | |
zvE < 13469 ? EStAbs_b(zvE) : \ | |
zvE < 52881 ? EStAbs_c(zvE) : \ | |
zvE < 250730 ? EStAbs_d(zvE) : \ | |
EStAbs_e(zvE) | |
# Aus: http://www.gesetze-im-internet.de/estg/__52.html | |
# „y“ ist ein Zehntausendstel des 8 004 Euro übersteigenden Teils des auf einen vollen Euro-Betrag abgerundeten zu versteuernden Einkommens | |
# a) Grundfreibetrag | |
# b) von 8.005 Euro bis 13.469 Euro | |
EStAbs_b(zvE) = (912.17 * ESt_Y_b(zvE) + 1400) * ESt_Y_b(zvE) | |
ESt_Y_b(zvE) = (zvE - 8004) / 10000 | |
# c) von 13.470 Euro bis 52.881 Euro | |
EStAbs_c(zvE) = (228.74 * ESt_Y_c(zvE) + 2397) * ESt_Y_c(zvE) + 1038 | |
ESt_Y_c(zvE) = (zvE - 13469) / 10000 | |
# d) von 52.882 Euro bis 250.730 Euro | |
EStAbs_d(zvE) = 0.42 * zvE - 8172 | |
# e) der rest :) | |
EStAbs_e(zvE) = 0.45 * zvE - 15694 | |
# Ab hier nur noch interner Kram | |
# =============================================================================================== | |
set terminal postscript rounded font "Times-Roman,18" # size 16cm,8cm | |
set output "einkommen_nach_steuer".Jahr.".eps" | |
# Wie viel EUR unter/über den Zielverdiensten soll angezeigt werden? | |
VerdienstMargin = 5000 | |
# Legende | |
set key on center rmargin vertical Left title "EUR/Std (brutto)" box | |
# Achsen | |
xRangeMin = MinAuslastung | |
yRangeMin = ZielVerdienst0 - VerdienstMargin | |
yRangeMax = ZielVerdienst2 + VerdienstMargin | |
set xrange [xRangeMin:MaxAuslastung] | |
set xlabel "Auslastung (%)" | |
set yrange [yRangeMin:yRangeMax] | |
set ylabel "Einkommen, netto (EUR)" | |
set xtics 10 | |
# set xtics nomirror rotate by -45 | |
# Einkommen nach Auslastung (x) und Stundenlohn EURStd | |
einkommen(x, EURStd) = MaxStd * x / 100 * EURStd | |
gewerbeSteuer(x, EURStd) = GewerbesteuerEStAnrechnung(einkommen(x, EURStd)) \ | |
- Gewerbesteuer(einkommen(x, EURStd)) | |
# Einkommen, abzüglich der Abzüge | |
einkommen_nach_abs(x, EURStd) = einkommen(x, EURStd) \ | |
- EStAbs(einkommen(x, EURStd)) \ | |
+ ((GewerbesteuerEinrechnen eq "ja") ? gewerbeSteuer(x, EURStd) : 0) | |
# Marker für Auslastungen zeichnen | |
set arrow from MinAuslastung,yRangeMin to MinAuslastung,yRangeMax nohead ls 0 | |
set arrow from AvgAuslastung,yRangeMin to AvgAuslastung,yRangeMax nohead ls 0 | |
set arrow from AuslastungLetztesJahr,yRangeMin to AuslastungLetztesJahr,yRangeMax nohead ls 0 | |
set arrow from 100,yRangeMin to 100,yRangeMax nohead ls 0 | |
# Marker für Verdienstziele | |
set arrow from xRangeMin,ZielVerdienst0 to MaxAuslastung,ZielVerdienst0 ls 0 nohead | |
set arrow from xRangeMin,ZielVerdienst1 to MaxAuslastung,ZielVerdienst1 ls 0 nohead | |
set arrow from xRangeMin,ZielVerdienst2 to MaxAuslastung,ZielVerdienst2 ls 0 nohead | |
# Plotte das Netto-Einkommen | |
plot for [s=StundensatzMin:StundensatzMax:StundensatzSchritt] einkommen_nach_abs(x, s) title "".s." EUR/Std" | |
# DEBUG | |
# EURStd = 45 | |
# plot einkommen(x, EURStd) title "Einkommen", \ | |
# EStAbs(einkommen(x, EURStd)) title "ESt"#, \ | |
# Gewerbesteuer(einkommen(x, EURStd)) title "GwSt", \ | |
# GewerbesteuerEStAnrechnung(einkommen(x, EURStd)) title "GwSt Anrechnung" | |
# Brutto = Netto + Steuern :) | |
# Netto = Brutto - Steuern :) | |
# plot einkommen(x, EURStd) title "brutto", \ | |
# einkommen_nach_abs(x, EURStd) title "netto", \ | |
# einkommen(x, EURStd) * 0.5 title "50% netto" | |
system "ps2pdf einkommen_nach_steuer".Jahr.".eps && rm einkommen_nach_steuer".Jahr.".eps && open einkommen_nach_steuer".Jahr.".pdf" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment