Steuersatz Deutschland 2007
>function map steuer (x:scalar, verheiratet:integer=0) ...
if verheiratet then xs=x/2; f=2; else xs=x; f=1; endif
if xs<7664 then return 0
elseif xs<12739 then y=(xs-7664)/10000; return (883.74*y+1500)*y*f
elseif xs<52151 then y=(xs-12739)/10000; return ((228.74*y+2397)*y+989)*f
elseif xs<250000 then return (0.42*xs-7914)*f
else return (0.45*xs-15414)*f
endif
endfunction
>plot2d("steuer",0,105000); plot2d("steuer";1,add=1,color=12); ...
title("Steuerbelastung (blau : verheiratet)"); xlabel("ZvE"):

>plot2d("steuer",0,125000); ...
x=[7664,12739,52151,250000]; y=steuer(x); ...
plot2d(x,y,points=true,add=true); insimg();

>function steuersatz (x,verheiratet=0) := steuer(x,verheiratet)/x
>steuersatz(30000,1)*100
10.2843677705
>plot2d("steuersatz(x)*100",a=1,b=105000,c=0,d=100); ...
plot2d("steuersatz(x,1)*100";1,add=1,color=12); ...
insimg;

>(steuer(31000,1)-steuer(30000,1))/1000*100
25.11873228
>function grenzsteuersatz (x,verheiratet=0) := diff("steuer",x;verheiratet)
>grenzsteuersatz(30000,1)*100
25.0043624746
>plot2d("grenzsteuersatz(x)*100",add=1); ...
plot2d("grenzsteuersatz(x,1)*100",add=1,color=12); ...
title("Steuersatz und Grenzsteuersatz (blau : verheiratet)"); ...
xlabel("ZvE"); ylabel("%"):

>plot2d("steuer",0,25000); ...
x0=20000; plot2d(x0,steuer(x0),points=1,add=true); ...
plot2d("steuer(x0)+grenzsteuersatz(x0)*(x-x0)",color=4,add=true,style="--"); ...
plot2d("steuer(x0)+steuersatz(x0)*(x-x0)",color=6,add=true,style="--"); ...
label("Grenzsteuersatz",13500,1000,color=4); ...
label("Steuersatz",6500,1000,color=6);
>function steuerelastizitaet (x) := grenzsteuersatz(x)*x/steuer(x)
>plot2d("steuerelastizitaet",10001,105000):

>plot2d("(1-grenzsteuersatz(x))*x/100",0,105000,n=500); ...
plot2d("(1-grenzsteuersatz(x,1))*x/100",add=1,n=500,color=12):

>function map S(X) ...
S=0;
if X>=250000 then S=0.45*(X-250000); X=250000; endif;
if X>=53000 then S=S+0.42*(X-53000); X=53000; endif;
if X>=35000 then S=S+0.35*(X-35000); X=35000; endif;
if X>=12500 then S=S+0.25*(X-12500); X=12500; endif;
if X>=8000 then S=S+0.14*(X-8000); endif;
return S;
endfunction
>plot2d("steuer",1,300000,color=2); ...
plot2d("S",add=1,title="Zu zahlende Steuer"); ...
insimg;

>plot2d("steuer(x)-S(x)",1,300000,title="Entlastung"):

>function SS(X) := Smap(X)/X
>plot2d("steuersatz(x)*100",1,300000,color=2); ...
plot2d("SS(x)*100",add=1,title="Steuersatz"):

>function dS(X) := diff("S",X)
>plot2d("grenzsteuersatz(x)*100",1,300000,color=2); ...
plot2d("dS(x)*100",add=1,n=500,title="Grenzsteuersatz"); ...
insimg;

>function SE(X) := dS(X)*X/S(X)
>plot2d("SE",11000,105000,n=500,title="Elastizität der Steuer"):

>plot2d("(1-dS(x))*x/100",0,105000,n=500, ...
title="Zugewinn bei 1% Gehaltswachstum"); ...
insimg;

Examples Homepage