Skip to content

Instantly share code, notes, and snippets.

@tisba
Created January 3, 2013 16:15
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tisba/4444600 to your computer and use it in GitHub Desktop.
Save tisba/4444600 to your computer and use it in GitHub Desktop.
# 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