File:Arbeitsentgelt SV LST Anteile Single 2015 bis 8000 AG brutto normiert.svg
From Wikimedia Commons, the free media repository
Jump to navigation
Jump to search
Size of this PNG preview of this SVG file: 800 × 400 pixels. Other resolutions: 320 × 160 pixels | 640 × 320 pixels | 1,024 × 512 pixels | 1,280 × 640 pixels | 2,560 × 1,280 pixels | 1,600 × 800 pixels.
Original file (SVG file, nominally 1,600 × 800 pixels, file size: 349 KB)
File information
Structured data
Captions
Summary
[edit]DescriptionArbeitsentgelt SV LST Anteile Single 2015 bis 8000 AG brutto normiert.svg | Prozentuale Anteile von Sozialversicherung und Lohnsteuer 2015 in Abhängigkeit vom Bruttoarbeitsentgelt (Deutschland) normiert auf Arbeitgeberbrutto als 100 Prozent. |
Date | |
Source | Own work |
Author | Udo.Brechtel |
#-------------------------------------------------------------
# Script for gnuplot 4.6, Lizenz: CC-BY-SA-4.0 by Udo Brechtel
#-------------------------------------------------------------
reset
#-------------------------------------------------------------
#-------------------------------------------------------------
# Allgemeine Variablen:
#-------------------------------------------------------------
#Diagrammtitel-/Achsenbeschriftung:
lblTITEL = "Arbeitsentgelt, Sozialversicherung und Lohnsteuer 2015 in Deutschland";
lblYACHSE = "Anteile"
lblXACHSE = "Bruttoarbeitsentgelt in Euro/Monat"
#Weitere Labels:
lbl201 = "Minijob";
lbl202 = "Midijob (Gleitzone)";
lbl203 = "Normalbeschäftigung";
lblLizenz = "CC-BY-SA 4.0, Udo Brechtel"; #Label 100
# Canvas (px):
xsize = 1600; ysize = 800;
xleftmargin = 10; ytopmargin = 5;
#x-/y-Achse:
xmin = 0; xmax = 8000; dx = 500; #xmax/10; # x = monatliches Bruttoarbeitsentgelt
ymin = 0; ymax = 105; dy = 10;
#Kennungen und Grenzen Arbeitsentgelt (AE) Minijob, Midijob
maxAEmini = 450; maxAEmidi = 850;
x1 = xmini = maxAEmini;
x2 = maxAEmidi;
SAMPLES = 2001;
#Ausgabedateien:
xmin_text = sprintf("%g",xmin);
xmax_text = sprintf("%g",xmax);
path = "svg2015/";
fn1 = path."SV_LST_2015_Euro_".xmin_text."_".xmax_text.".svg";
fn2_einzeln = path."Arbeitsentgelt_SV_LST_Anteile_Single_2015_bis_".xmax_text."_AG_brutto_normiert.svg";
fn2_splitting = path."Arbeitsentgelt_SV_LST_Anteile_Paar_2015_bis_".xmax_text."_AG_brutto_normiert.svg";
fn3 = path."ESt_Tarif_2015_Betrag_".xmin_text."_".xmax_text.".svg";
fn4 = path."ESt_Tarif_2015_Satz_".xmin_text."_".xmax_text.".svg";
fn5 = path."Vorsorgepauschale_2015.svg";
path_dat = "dat/";
fn_dat_2_einzeln = path_dat."prozentwerte_einzeln.dat";
fn_dat_2_splitting = path_dat."prozentwerte_splitting.dat";
#-------------------------------------------------------------
# Variablen/Funktionen 2015
#-----------------------------------------------------------------
#Math
Abrunden(zahl, kommastellen) = floor(zahl * 10 ** kommastellen) - floor(zahl);
Jahr = 2015;
KIND = 0; # 0 oder 1; entspricht nein oder ja
VERH = 1; # 0 oder 1; entspricht nein oder ja
lblUNTERTITEL(vh) = (vh==0) ? "Arbeitnehmer, Steuerklasse I oder IV" \
: "Arbeitnehmer, Steuerklasse III";
#.......................................................
#Sozialversicherung 2015:
#.......................................................
#Gesamtbeitragssatz (Prozent):
kv = 0.146 ; #Krankenversicherung 2015
pv = 0.0235; #Pflegeversicherung 2015
pvz = (KIND == 0) ? 0.0025 : 0.0; #Zuschlag Kinderlose
rv = 0.187 ; #Rentenversicherung 2015
alv = 0.03 ; #Arbeitslosenversicherung
kvz = 0.009 ; #Zusatzbeitrag Durchschnitt 2015
kve = 0.07 ; #erm. Satz für Vorsorgepauschale (VSP)
#Beitragsbemessungsgrenze (BBG) 2015:
BBG_KV = 4125; #monatlich
BBG_RV = 6050; #monatlich, West
KV_AG(x) = (x > BBG_KV) ? BBG_KV * kv/2 : x * kv/2;
KV_AN(x) = (x > BBG_KV) ? BBG_KV * (kv/2) : x * (kv/2);
PV_AG(x) = (x > BBG_KV) ? BBG_KV * pv/2 : x * pv/2;
PV_AN(x) = (x > BBG_KV) ? BBG_KV * (pv/2) : x * (pv/2);
RV_AG(x) = (x > BBG_RV) ? BBG_RV * rv/2 : x * rv/2;
RV_AN(x) = (x > BBG_RV) ? BBG_RV * rv/2 : x * rv/2;
ALV_AG(x) = (x > BBG_RV) ? BBG_RV * alv/2 : x * alv/2;
ALV_AN(x) = (x > BBG_RV) ? BBG_RV * alv/2 : x * alv/2;
KV_ANerm(x) = (x > BBG_KV) ? BBG_KV * (kve + kvz) : x * (kve + kvz); #für VSP
#Gesamtbeiträge:
KVPV(x) = KV_AG(x) + KV_AN(x) + PV_AG(x) + PV_AN(x);
RVALV(x) = RV_AG(x) + RV_AN(x) + ALV_AG(x) + ALV_AN(x);
#Zusatzbeitrag AN:
KVZPVZ(x) = (x > BBG_KV) ? BBG_KV * (kvz + pvz) : x * (kvz + pvz);
print("----------------------------------------------------------------");
sv_ges_ag = (kv + pv + rv + alv) / 2; print(sv_ges_ag*100.0);
sv_ges_an = sv_ges_ag + (kvz + pvz*(KIND==0)); print(sv_ges_an*100.0);
sv_ges = sv_ges_ag + sv_ges_an; print(sv_ges *100.0);
print("----------------------------------------------------------------");
#Gleitzone (Midi) 2015
F = 0.7585;
GE(x) = (x > 450 && x <= 850) ? 450 * F + (2.125 - 1.125 * F) * (x - 450) : -10;
sv_midi_ag = (kv + pv + rv + alv) / 2; print(sv_midi_ag*100.0);
sv_midi_ges = (kv + pv + rv + alv + kvz + pvz); print(sv_midi_ges*100.0);
print("----------------------------------------------------------------");
#SV Minijob privat:
kv_mini_priv_ag = 0.05; rv_mini_priv_ag = 0.05; st_priv_ag = 0.02;
rv_mini_priv_an = 0.137;
#SV Minijob gewerblich:
kv_mini_ag = 0.13; rv_mini_ag = 0.15;
rv_mini_an = 0.037;
sv_mini_ag = kv_mini_ag + rv_mini_ag; print(sv_mini_ag *100.0);
sv_mini_an = rv_mini_an; print(sv_mini_an *100.0);
sv_mini_ges = sv_mini_ag + sv_mini_an; print(sv_mini_ges*100.0);
print("----------------------------------------------------------------");
#Umlagen Arbeitgeber (Prozent):
u1_mini = 0.007 ; u2_mini = 0.0024; u3_mini = 0.0015;
u1_midi = 0.02; u2_midi = 0.0038; u3_midi = 0.0015; # U1,U2 = #(Beispiel DAK Gesundheit 2015)
uv_mini = 0.016;
#Gesetzl. Unfallversicherung
#(Beispiel BG Energie Textil Elektro Medienerzeugnisse, BG ETEM, 2015)
uv_gkl = 2.7; #Gefahrklasse (mittel)
uv_bfs = 0.00318; #Beitragsfuß bzw. Umlageziffer
uv = uv_gkl * uv_bfs;
UV_JAVH = 84000; #Jahresarbeitsverdienst-Höchstgrenze
UV_AG(x) = (x > UV_JAVH/12) ? uv * UV_JAVH/12 : uv * x;
#Umlagen gesamt AG
#UML_AG(x) = (x > maxAEmidi) ? x * (u1_midi + u2_midi + u3_midi) + UV_AG(x) \
#: (x > maxAEmini) ? x * (u1_midi + u2_midi + u3_midi) + UV_AG(x) \
#: x * (u1_mini + u2_mini + u3_mini + uv_mini);
UML_AG(x) = (x > maxAEmidi) ? x * (u1_midi + u2_midi + u3_midi) \
: (x > maxAEmini) ? x * (u1_midi + u2_midi + u3_midi) \
: 0 ;
#Bruttoarbeitsentgelt:
BAE(x) = x;
#SV-Beitrag monatlich:
SVB_ges(x) = (x > maxAEmidi) ? KVPV(x) + KVZPVZ(x) + RVALV(x) \
: (x > maxAEmini) ? GE(x) * sv_midi_ges \
: x * sv_mini_ges;
SVB_AG(x) = (x > maxAEmidi) ? KVPV(x) / 2 + RVALV(x) / 2 \
: (x > maxAEmini) ? x * sv_midi_ag \
: x * sv_mini_ag; #+ Umlagen + UV
SVB_AN(x) = SVB_ges(x) - SVB_AG(x);
print("----------------------------------------------------------------");
TESTBRUTTO=2500;
print(SVB_AG(TESTBRUTTO)/TESTBRUTTO);
print(SVB_AN(TESTBRUTTO)/TESTBRUTTO);
print(SVB_ges(TESTBRUTTO)/TESTBRUTTO);
print("----------------------------------------------------------------");
print(kv);print(pv);print(rv);print(alv);
print(kvz);print(pvz);
print("----------------------------------------------------------------");
#SV-Beitragssätze:
svbs_ges(x) = SVB_ges(x) / x;
svbs_an(x) = SVB_AN(x) / x;
svbs_ag(x) = SVB_AG(x) / x;
#-----------------------------------------------------------------
#Lohn-/Einkommensteuer 2015
#-----------------------------------------------------------------
# Freibeträge:
#-----------------------------------------------------------------
ANP = 1000; #Arbeitnehmerpauschale (Werbungskosten)
SAP = 36; #Sonderausgabenpauschale
#Vorsorgepauschale (abhängig vom Brutto) 2015:
## liefert VSP(x) jährlich
## mit x = Brutto monatlich
a(Jahr) = (20 + 4 * (Jahr - 2005)) / 100.0;
VSP1(x) = 12 * RV_AN(x) * a(Jahr);
VHB(vh) = (vh==0) ? 1900 : 3000;
VSP2(x,vh) = (12*x*0.12 > VHB(vh)) ? VHB(vh) : 12*x*0.12; #mindestens
MVSP(x) = 12 * (KV_ANerm(x) + PV_AN(x));
VSP3(x,vh) = (VSP2(x,vh) > MVSP(x)) ? VSP2(x,vh) : MVSP(x);
VSP(x,vh) = ceil(VSP1(x) + VSP3(x,vh)); # aufgerundet, pro Jahr!
#-----------------------------------------------------------------
# Einkommensteuer-Tarif
#-----------------------------------------------------------------
EST_2015(zvE) = (zvE > 250730) ? zvE * 0.45 - 15761 \
: (zvE > 52881) ? zvE * 0.42 - 8239 \
: (zvE > 13469) ? (228.74e-8 * (zvE - 13469) + 0.2397) * (zvE - 13469) + 971 \
: (zvE > 8354) ? (974.58e-8 * (zvE - 8354) + 0.1400) * (zvE - 8354) \
: 0;
zvE(x,vh) = 12.0*x - VSP(x,vh) - ANP - SAP;
#Grundtarif #Splittingtarif
LSTmonat(x, vh) = (vh == 0) ? EST_2015(zvE(x,vh)) / 12.0 : 2 * EST_2015(zvE(x,vh) / 2) / 12.0;
#-----------------------------------------------------------------
# Solidaritaetszuschlag
#-----------------------------------------------------------------
SOLZgrenz(vh) = (vh == 0) ? 972 : 1944;
SOLZ_1(STB) = Abrunden(0.055 * STB, 2); #normal 5,5 % des Steuerbetrags
SOLZ_2(STB,vh) = (STB > SOLZgrenz(vh)) ? (STB - SOLZgrenz(vh)) * 0.2 : 0; #max 20 % des Unterschiedes
SOLZ(STB, vh) = (SOLZ_1(STB) > SOLZ_2(STB,vh)) ? SOLZ_2(STB,vh) : SOLZ_1(STB);
SOLZmonat(STB, vh) = SOLZ(STB, vh) / 12.0;
s_eff(x, vh) = LSTmonat(x, vh) * 100.0 / x;
LST_AG(x) = (x > maxAEmini) ? 0.0 : x * 0.02; #Pauschalsteuer
s_eff_ag(x) = LST_AG(x) * 100.0 / x;
sg(zvE) = (zvE > 250730) ? 0.45 \
: (zvE > 52881) ? 0.42 \
: (zvE > 13469) ? 2 * 228.74e-8 * (zvE - 13469) + 0.2397 \
: (zvE > 8354) ? 2 * 974.58e-8 * (zvE - 8354) + 0.1400 \
: 0;
sg_eff(x, vh) = (vh==0) ? sg(zvE(x,vh)) * 100.0 : sg(zvE(x,vh)/2) * 100.0;
#------------------
# Summen:
#------------------
# AG-Brutto = 100%
# ohne gesetzliche Unfallversicherung
Brutto_AG3(x) = Brutto_AG1(x) + LST_AG(x);
Brutto_AG2(x) = Brutto_AG1(x) + UML_AG(x);
Brutto_AG1(x) = BAE(x) + SVB_AG(x);
Brutto(x) = BAE(x);
Netto_AN1(x) = BAE(x) - SVB_AN(x);
Netto_AN2(x,vh) = Netto_AN1(x) - LSTmonat(x,vh) - SOLZmonat(LSTmonat(x,vh), vh);
brutto_ag3(x) = 100.0;
brutto_ag2(x) = Brutto_AG2(x) * 100.0 / Brutto_AG3(x);
#brutto_ag3(x) = 100.0;
brutto_ag1(x) = Brutto_AG1(x) * 100.0 / Brutto_AG3(x);
brutto(x) = Brutto(x) * 100.0 / Brutto_AG3(x);
netto_an1(x) = Netto_AN1(x) * 100.0 / Brutto_AG3(x);
netto_an2(x,vh) = Netto_AN2(x,vh) * 100.0 / Brutto_AG3(x);
#----------------------------------------------------------------------------
# Settings
#----------------------------------------------------------------------------
Arial_8 = "Arial, 8";
Arial_10 = "Arial, 10";
Arial_12 = "Arial, 12";
Arial_Bold_10 = "Arial Bold, 10";
Arial_Bold_12 = "Arial Bold, 12";
Arial_Bold_14 = "Arial Bold, 14";
Arial_Bold_16 = "Arial Bold, 16";
Arial_Bold_18 = "Arial Bold, 18";
Arial_Bold_24 = "Arial Bold, 24";
#Linienstyles
set style line 12999 lt 1 lw 1.0 lc rgb "black";
set style line 13000 lt 1 lw 3.5 lc rgb "black";
set style line 13001 lt 1 lw 1.0 lc rgb "red";
set style line 13002 lt 1 lw 1.0 lc rgb "yellow";
set style line 13003 lt 1 lw 1.0 lc rgb "green";
set style line 13004 lt 1 lw 1.0 lc rgb "#0F0" #"blue";
set style line 130044 lt 1 lw 1.0 lc rgb "#020" #"dark-blue";
set style line 13005 lt 1 lw 0.7 lc rgb "black";
set style line 13006 lt 1 lw 1.0 lc rgb "violet-blue";
set style line 13011 lt 4 lw 2.5 lc rgb "red";
set style line 13012 lt 1 lw 6 lc rgb "red";
#-----------------------------------------------------------------
# Beginn Script zum Plotten
#-----------------------------------------------------------------
set encoding utf8;
set terminal svg size xsize,ysize font Arial_12 dashed linewidth 1.0 background rgb "white"
set noborder;
set zeroaxis;
set sample SAMPLES;
set lmargin xleftmargin
set tmargin ytopmargin
set bmargin ytopmargin
#Diagrammtitel
set title lblTITEL offset 0,1 font Arial_Bold_24
set label 1 at xmax/2,ymax center lblUNTERTITEL(VERH) font Arial_Bold_18;
#Legende Position/Breite:
xkey = xmax*2/3; ykey = 45; wkey = 1;
#Legende (key) setzen
set key at xkey,ykey left Left spacing 1.2 width wkey height 0.75 box 1
set key opaque reverse vertical maxrows 8
set key font Arial_Bold_14
#y-Achse:
set yzeroaxis ls 12999;
set yrange [ymin:ymax];
set format y "%.0f %%";
set ytics out nomirror ymin,dy font Arial_Bold_16;
set ytics add ("0" 0);
#x-Achse:
set xzeroaxis ls 12999;
set xrange [xmin:xmax];
set format x "%g";
set xtics out nomirror xmin,dx font Arial_Bold_16;
set xlabel lblXACHSE offset 2,0 font Arial_Bold_18;
#Labels:
x201 = (xmin + maxAEmini) / 2.0; y201 = 45;
x202 = (maxAEmini + maxAEmidi) / 2.0; y202 = 45;
x203 = xmax/3; y203 = 35;
set label 201 at x201,y201 rotate center lbl201 font Arial_Bold_16;
set label 202 at x202,y202 rotate center lbl202 font Arial_Bold_16;
set label 203 at x203,y203 right lbl203 font Arial_Bold_18;
set label 100 at -xmax*35/1000,-10 left lblLizenz font Arial_10;
set label 101 at -xmax*35/1000,ymax+6 left lblYACHSE font Arial_Bold_18;
#Gitternetz:
set grid xtics mxtics ytics mytics lw 0.3, lw 0.1;
#Fläche
set style fill solid 0.25 border lc rgb "black"
#-----------------------------------------------------------------
#Titel, Legendetext
t1 = "Arbeitgeberanteil SV";
t2 = "Bruttoarbeitsentgelt";
t3 = "Arbeitnehmeranteil SV";
t4 = "Auszahlung netto";
t4a = "Auszahlung netto + ALG II";
t5 = "Lohnsteuer + Solidaritätszuschlag"
tps = "Pauschalsteuer"
#tuv = "Unfallversicherung* + Umlagen"
#-----------------------------------------------------------------------
# Plotting
#-----------------------------------------------------------------------
ymini = (BAE(xmini) + SVB_AG(xmini) + UML_AG(xmini))*100.0/xmini;
#print(ymini);
#------------------------------------------------------------------------------
# print data files
#------------------------------------------------------------------------------
set print fn_dat_2_einzeln;
VERH = 0;
print "b; bag3; bag2; bag1; b; nan1; nan2; brel";
do for [i = 1:SAMPLES] {b = i * xmax/SAMPLES; bag3 = brutto_ag3(b); bag2 = brutto_ag2(b); bag1 = brutto_ag1(b); nan1 = netto_an1(b); nan2 = netto_an2(b,VERH); brel = brutto(b);
print b, "; ", bag3, "; ", bag2, "; ", bag1, "; ", b, "; ", nan1, "; ", nan2, "; ", brel;
}
unset print;
set print fn_dat_2_splitting;
VERH = 1;
print "b; bag3; bag2; bag1; b; nan1; nan2; brel";
do for [i = 1:SAMPLES] {b = i * xmax/SAMPLES; bag3 = brutto_ag3(b); bag2 = brutto_ag2(b); bag1 = brutto_ag1(b); nan1 = netto_an1(b); nan2 = netto_an2(b,VERH); brel = brutto(b);
print b, "; ", bag3, "; ", bag2, "; ", bag1, "; ", b, "; ", nan1, "; ", nan2, "; ", brel;
}
unset print;
#--------------------------------------------------------------------------
# Diagramm Anteile in Prozent plotten
#--------------------------------------------------------------------------
#y-Achse (Anteile in Prozent):
# Trennlinien Minijob/Midijob (rot):
set arrow 901 from x1,ymin to x1,ymax nohead filled ls 13011;
set arrow 902 from x2,ymin to x2,ymax nohead filled ls 13011;
# Plot Einzeln StKl I oder IV
VERH = 0;
set label 1 at xmax/2,ymax+3 center lblUNTERTITEL(VERH) font Arial_Bold_18;
set output fn2_einzeln;
print(fn2_einzeln);
plot brutto_ag2(x) / (x < 450) with filledcurve y1=100 ls 130044 t tps, \
brutto_ag3(x) ls 13005 notitle, \
brutto_ag1(x) ls 13005 notitle, \
fn_dat_2_splitting u 1:4:8 with filledcurve ls 13001 t t1, \
brutto(x) ls 13000 t t2, \
fn_dat_2_einzeln u 1:6:8 with filledcurve ls 13002 t t3, \
fn_dat_2_einzeln u 1:6:7 with filledcurve ls 13004 t t5, \
netto_an2(x,VERH) with filledcurve x1 ls 13003 t t4, \
netto_an2(x,VERH) ls 13005 notitle, \
netto_an1(x) ls 13005 notitle;
#plot netto_an1(x), brutto(x) with filledcurve ls 13005 t "xyz";
unset output;
# Plot Splitting StKl III
VERH = 1;
set label 1 at xmax/2,ymax+3 center lblUNTERTITEL(VERH) font Arial_Bold_18;
set output fn2_splitting;
print(fn2_splitting);
plot brutto_ag2(x) / (x < 450) with filledcurve y1=100 ls 130044 t tps, \
brutto_ag3(x) ls 13005 notitle, \
brutto_ag1(x) ls 13005 notitle, \
fn_dat_2_splitting u 1:4:8 with filledcurve ls 13001 t t1, \
brutto(x) ls 13000 t t2, \
fn_dat_2_splitting u 1:6:8 with filledcurve ls 13002 t t3, \
fn_dat_2_splitting u 1:6:7 with filledcurve ls 13004 t t5, \
netto_an2(x,VERH) with filledcurve x1 ls 13003 t t4, \
netto_an2(x,VERH) ls 13005 notitle, \
netto_an1(x) ls 13005 notitle;
unset output;
# END
Licensing
[edit]I, the copyright holder of this work, hereby publish it under the following license:
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
- share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 20:04, 19 March 2021 | 1,600 × 800 (349 KB) | Udo.Brechtel (talk | contribs) | {{Information |Description=Prozentuale Anteile von Sozialversicherung und Lohnsteuer 2015 in Abhängigkeit vom Bruttoarbeitsentgelt (Deutschland) normiert auf Arbeitgeberbrutto als 100 Prozent. |Source={{own}} |Date=2021-03-19 |Author= Udo.Brechtel |Permission= |other_versions= }} <source lang="gnuplot"> #------------------------------------------------------------- # Script for gnuplot 4.6, Lizenz: CC-BY-SA-4.0 by Udo Brechtel #-------------------------------------------... |
You cannot overwrite this file.
File usage on Commons
There are no pages that use this file.
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
Short title | Gnuplot |
---|---|
Image title | Produced by GNUPLOT 5.2 patchlevel 6 |
Width | 1600 |
Height | 800 |