└── taxes.rb /taxes.rb: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/ruby 2 | # 3 | # Bereken vanuit je bruto, je sociale zekerheid en je netto 4 | # 5 | # Usage: ./belastingen.rb 30000 6 | 7 | jaarloon = ARGV.first.to_i 8 | vapz = [jaarloon*0.0817, 2853].min 9 | vjaarloon = jaarloon - vapz 10 | sociaal = jaarloon*0.22 11 | vsociaal = vjaarloon*0.22 12 | bruto = jaarloon-sociaal 13 | vbruto = vjaarloon-vsociaal 14 | vrijstelling = 6430 15 | 16 | def belasting(bruto) 17 | 18 | bar1 = 7900 19 | bar2 = 11240 20 | bar3 = 18730 21 | bar4 = 34330 22 | 23 | schijf1 = [bruto, bar1].min 24 | schijf2 = [0, [bruto, bar2].min - bar1].max 25 | schijf3 = [0, [bruto, bar3].min - bar2].max 26 | schijf4 = [0, [bruto, bar4].min - bar3].max 27 | schijf5 = [0, bruto-bar4].max 28 | 29 | belastingen = schijf1*0.25 + 30 | schijf2*0.30 + 31 | schijf3*0.40 + 32 | schijf4*0.45 + 33 | schijf5*0.50 34 | belastingen 35 | end 36 | 37 | last = belasting(bruto) - belasting(vrijstelling) 38 | vlast = belasting(vbruto) - belasting(vrijstelling) 39 | netto = bruto - last 40 | vnetto = vbruto - vlast 41 | 42 | puts "Without VAPZ:" 43 | puts " Jaarloon: #{jaarloon} (#{jaarloon/12} p/m)" 44 | puts " Sociale zekerheid (22%): #{sociaal}" 45 | puts " Bruto (Jaarloon - Sociale zekerheid): #{bruto}" 46 | puts " Personenbelasting: #{last} (#{last/12} p/m)" 47 | puts " ---------------------------------" 48 | puts " Netto: #{netto} (#{netto/12} p/m)" 49 | puts 50 | puts "With VAPZ (#{vapz}):" 51 | puts " Jaarloon: #{vjaarloon} (#{vjaarloon/12} p/m)" 52 | puts " Sociale zekerheid (22%): #{vsociaal}" 53 | puts " Bruto (Jaarloon - Sociale zekerheid): #{vbruto}" 54 | puts " Personenbelasting: #{vlast} (#{vlast/12} p/m)" 55 | puts " ---------------------------------" 56 | puts " Netto: #{vnetto} (#{vnetto/12} p/m) + #{vapz} = #{vnetto+vapz} (+#{vnetto+vapz-netto})" 57 | puts 58 | puts "Estonia:" 59 | puts " Sociale zekerheid (33%): #{jaarloon*0.33}" 60 | puts " Personenbelasting (20%): #{jaarloon*0.67*0.2}" 61 | puts " Netto: #{jaarloon*0.67*0.8}" 62 | --------------------------------------------------------------------------------