import numpy as np
import matplotlib.pyplot as plt
def kinderopvangtoeslage(inkomen, kind):
toeslagpct_eerste_kind_grenzen = [0,18849,18850,20105,20106,21358,21359,22614,22615,23870,23871,25124,25125,26379,26380,27630,27631,28981,28982,30329,30330,31680,31681,33029,33030,34381,34382,35730,35731,37112,37113,38496,38497,39880,39881,41263,41264,42649,42650,44033,44034,45416,45417,46800,46801,48312,48313,51278,51279,54242,54243,57209,57210,60176,60177,63140,63141,66107,66108,69072,69073,72038,72039,75006,75007,77970,77971,80938,80939,83903,83904,86867,86868,89833,89834,92858,92859,95896,95897,98933,98934,101970,101971,105006,105007,108044,108045,111083,111084,114120,114121,117155,117156,120193,120194,123231,123232,126268,126269,129305,129306,132341,132342,135379,135380,138419,138420,141454,141455,144492,144493,147528,147529,150566,150567,153604,153605,156641,156642,159678,159679,162713,162714,165752,165753,168789,168790,171827,171828,174864,174865,177901,177902,180939,180940,183975,183976]
toeslagpct_eerste_kind_pct = [0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.938,0.938,0.928,0.928,0.92,0.92,0.912,0.912,0.904,0.904,0.893,0.893,0.887,0.887,0.877,0.877,0.868,0.868,0.86,0.86,0.851,0.851,0.843,0.843,0.834,0.834,0.823,0.823,0.818,0.818,0.808,0.808,0.801,0.801,0.79,0.79,0.772,0.772,0.763,0.763,0.749,0.749,0.723,0.723,0.696,0.696,0.669,0.669,0.641,0.641,0.613,0.613,0.587,0.587,0.56,0.56,0.533,0.533,0.504,0.504,0.477,0.477,0.451,0.451,0.423,0.423,0.398,0.398,0.374,0.374,0.348,0.348,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333,0.333]
toeslagpct_tweede_kind_grenzen = [0,18849,18850,20105,20106,21358,21359,22614,22615,23870,23871,25124,25125,26379,26380,27630,27631,28981,28982,30329,30330,31680,31681,33029,33030,34381,34382,35730,35731,37112,37113,38496,38497,39880,39881,41263,41264,42649,42650,44033,44034,45416,45417,46800,46801,48312,48313,51278,51279,54242,54243,57209,57210,60176,60177,63140,63141,66107,66108,69072,69073,72038,72039,75006,75007,77970,77971,80938,80939,83903,83904,86867,86868,89833,89834,92858,92859,95896,95897,98933,98934,101970,101971,105006,105007,108044,108045,111083,111084,114120,114121,117155,117156,120193,120194,123231,123232,126268,126269,129305,129306,132341,132342,135379,135380,138419,138420,141454,141455,144492,144493,147528,147529,150566,150567,153604,153605,156641,156642,159678,159679,162713,162714,165752,165753,168789,168790,171827,171828,174864,174865,177901,177902,180939,180940,183975,183976]
toeslagpct_tweede_kind_pct = [0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.949,0.949,0.948,0.948,0.947,0.947,0.946,0.946,0.944,0.944,0.942,0.942,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.935,0.935,0.929,0.929,0.924,0.924,0.921,0.921,0.913,0.913,0.908,0.908,0.902,0.902,0.894,0.894,0.889,0.889,0.884,0.884,0.881,0.881,0.873,0.873,0.869,0.869,0.863,0.863,0.855,0.855,0.85,0.85,0.846,0.846,0.842,0.842,0.834,0.834,0.828,0.828,0.823,0.823,0.817,0.817,0.813,0.813,0.805,0.805,0.799,0.799,0.788,0.788,0.784,0.784,0.776,0.776,0.765,0.765,0.759,0.759,0.749,0.749,0.743,0.743,0.735,0.735,0.728,0.728,0.72,0.72,0.709,0.709,0.703,0.703,0.695,0.695,0.687,0.687,0.679,0.679,0.672,0.672,0.664,0.664,0.656,0.656,0.65,0.65,0.64]
if kind == 1:
pct = 1 - np.interp(inkomen, toeslagpct_eerste_kind_grenzen, toeslagpct_eerste_kind_pct)
else:
pct = 1 - np.interp(inkomen, toeslagpct_tweede_kind_grenzen, toeslagpct_tweede_kind_pct)
return pct
Pkot_max = 6.95 # maximum_uurprijs_buitenschoolse_opvang voor KOT
Pt = 7.06 # ludens_tarief_totaal_pakket
Ps = 9.46 # ludens_tarief_schoolweken_pakket_school_uren
Pv = 8.46 # ludens_tarief_schoolweken_pakket_vakantie_uren
Us = 40 * 3 # school_uren_per_jaar; 40 weken per jaar; 3 uur per schooldag
Uv = 13 * 10 # vakantie uren per jaar; 13 weken per jaar; 10 uur ver vakantiedag
x = np.arange(10, 200,1)
w0 = []; w1 = []; w2 = []
y0 = []; y1 = []; y2 = []
z0 = []; z1 = []; z2 = []; z3 = []
for xi in x:
# geen KOT
U = (((Us + Uv) * Pt - Us * Ps) / Pv ) / 10.0
Tt = Pt * (Us + Uv)
w0.append(Pt)
y0.append(U)
z0.append(Tt)
z3.append(Tt*2.0)
# met KOT, 1 kind
pct = kinderopvangtoeslage(1000.0 * xi, 1)
Pt_netto = Pt - Pkot_max + pct * Pkot_max # Pt - Pkot_max * (1 - pct)
Ps_netto = Ps - Pkot_max + pct * Pkot_max
Pv_netto = Pv - Pkot_max + pct * Pkot_max
U = max(0, (((Us + Uv) * Pt_netto - Us * Ps_netto) / Pv_netto) / 10.0)
Tt = Pt_netto * (Us + Uv)
w1.append(Pt_netto)
y1.append(U)
z1.append(Tt)
# met KOT, 2 kinderen
pct = (kinderopvangtoeslage(1000.0 * xi, 1) + kinderopvangtoeslage(1000.0 * xi, 2) ) / 2
Pt_netto = Pt - Pkot_max + pct * Pkot_max
Ps_netto = Ps - Pkot_max + pct * Pkot_max
Pv_netto = Pv - Pkot_max + pct * Pkot_max
U = max(0, (((Us + Uv) * Pt_netto - Us * Ps_netto) / Pv_netto) / 10.0)
Tt = 2 * Pt_netto * (Us + Uv)
w2.append(Pt_netto)
y2.append(U)
z2.append(Tt)
plt.plot(x,w0)
plt.plot(x,w1)
plt.plot(x,w2)
plt.legend(['zonder KOT', 'met KOT, 1 kind','met KOT, 2 kinderen'])
plt.grid()
plt.xlabel('Toetsingsinkomen [KEuro]')
plt.ylabel('BSO netto uurtarief per kind (totaalpakket) [Euro]')
plt.savefig('fig1.png')
plt.show()
plt.plot(x,y0)
plt.plot(x,y1)
plt.plot(x,y2)
plt.legend(['zonder KOT', 'met KOT, 1 kind','met KOT, 2 kinderen'])
plt.grid()
plt.xlabel('Toetsingsinkomen [KEuro]')
plt.ylabel('Minimum aantal BSO vakantiedagen per jaar')
plt.savefig('fig2.png')
plt.show()
plt.plot(x,z0)
plt.plot(x,z3)
plt.plot(x,z1)
plt.plot(x,z2)
plt.legend(['zonder KOT, 1 kind', 'zonder KOT, 2 kinderen', 'met KOT, 1 kind','met KOT, 2 kinderen'])
plt.grid()
plt.xlabel('Toetsingsinkomen [KEuro]')
plt.ylabel('Totaal BSO kosten per jaar [Euro]')
plt.savefig('fig3.png')
plt.show()