法人を作ったので、税金計算のスクリプトを作ってみました。
収入と報酬と税金と
法人の収入にかかってくる費用は以下の通り
- 社会保険料(健康保険、厚生年金保険、介護保険、雇用保険、労災保険)
- 健康保険は支払う給与の9%を給与所得者と半分ずつ負担
- 厚生年金保険は支払う給与の18.3%を給与所得者と半分ずつ負担
- 雇用保険は支払う給与の9%を法人が全額負担
- 労災保険は支払う給与の2.5%を法人が全額負担
- 介護保険は、自分の場合は該当しなかったので未調査
- 収入-(上記の保険料 + 役員報酬 + 給料) * 37.4%
個人の収入にかかってくる費用は以下の通り
- 住民税
- 所得税
- 社会保険料(健康保険、厚生年金保険)
住民税の計算式
(所得 - 控除※) * 10 / 100
※33万円
所得税の計算式
課税所得によって決まってくる。
国税庁HPより
課税所得の決まり方
課税所得 = 所得 - 社会保険料 - 基礎控除(※1) - 所得控除(※2)
(※1)38万円
(※2)の決まり方
給与収入額 | 所得控除額 |
---|---|
360万円以下 | 給与収入 * 30 / 100 + 18万円 |
660万円以下 | 給与収入 * 20 / 100 + 54万円 |
1000万円以下 | 給与収入 * 10 / 100 + 120万円 |
それ以上 | 220万円 |
スクリプトにしてみた。
- 入力
- 収入額と、役員数、役員一人あたりの報酬額を指定
- calc(収入額, 役員数, 役員一人あたり報酬額)
- 出力
- 指定された役員一人あたりの報酬額を10万円ずつ繰り上げて、それぞれの場合の
総資産, 法人の収入, 役員一人あたりの報酬額, 役員の税引き後収入
を出力する。 - カンマ区切りの値が以下のように出力されます。
revenue is 2000 総資産,法人の収入,個人の額面収入,個人の税引き後収入 1262.70608,406.38668000000007,360,285.4398 1261.65186,383.54080999999996,370,292.70368333333334 1258.51564,359.44294,380,299.6909 1256.8354199999999,335.97106999999994,390,306.95478333333335 1253.6992,311.8732,400,313.942 1252.64498,289.02733,410,321.2058833333333 1250.96476,265.55546000000004,420,328.46976666666666 1247.82854,241.45759000000004,430,335.4569833333333 1246.7743200000002,218.61172000000002,440,342.72086666666667 1245.0940999999998,195.13985000000002,450,349.98474999999996 1241.95788,171.04198000000002,460,356.9719666666667 1240.6638100000002,148.19611,470,364.15590000000003 1238.72104,124.72424000000001,480,371.33226666666667 1235.33227,100.62637000000001,490,378.23530000000005 1233.3895000000002,77.1545,500,385.4116666666667
- 指定された役員一人あたりの報酬額を10万円ずつ繰り上げて、それぞれの場合の
def calc(revenue, manager_num, compensation)
return if revenue < manager_num * compensation
total_compensation = manager_num * compensation
kenpo = total_compensation * 9 / 100
nenkin = total_compensation * 18.3 / 100
koyou_hoken = total_compensation * 9 / 100
rousai = total_compensation * 2.5 / 100
tax_for_comp = (kenpo / 2) + (nenkin / 2) + koyou_hoken + rousai
tax_for_individual = (kenpo / 2) + (nenkin / 2)
rev_for_comp = revenue - total_compensation - tax_for_comp
tax_for_comp = rev_for_comp * 37.4 / 100
rev_for_comp -= tax_for_comp
compensation_after_social_tax = compensation - (tax_for_individual / manager_num)
jumin_tax = (compensation_after_social_tax - 33) * 10 / 100
kazei_shotoku = (compensation_after_social_tax -38)
shotoku_koujo = if kazei_shotoku <= 360
kazei_shotoku * 0.3 + 18
elsif kazei_shotoku <= 660
kazei_shotoku * 0.2 + 54
elsif kazei_shotoku <= 1000
kazei_shotoku * 0.1 + 120
else
220
end
kazei_shotoku -= shotoku_koujo
shotoku_tax = if kazei_shotoku <= 330
((kazei_shotoku - 195) * 0.1 + (195 * 0.05) - 9.75)
elsif kazei_shotoku <= 695
((kazei_shotoku - 330) * 0.2 + (300 * 0.1) + (195 * 0.05) - 42.75)
elsif kazei_shotoku <= 900
((kazei_shotoku - 695) * 0.23 + (695 - 330) * 0.2 + (300 * 0.1) + (195 * 0.05) - 63.6)
elsif kazei_shotoku <= 1800
((kazei_shotoku - 900) * 0.33 + (900 - 695) * 0.23 + (695 - 330) * 0.2 + (300 * 0.1) + (195 * 0.05) - 153.6)
elsif kazei_shotoku <= 4000
((kazei_shotoku - 1800) * 0.4 + (1800 - 900) * 0.33 + (900 - 695) * 0.23 + (695 - 330) * 0.2 + (300 * 0.1) + (195 * 0.05) - 153.6)
else
((kazei_shotoku - 4000) * 0.45 + (4000 - 1800) * 0.4 + (1800 - 900) * 0.33 + (900 - 695) * 0.23 + (695 - 330) * 0.2 + (300 * 0.1) + (195 * 0.05) - 153.6)
end
compensation_after_tax = compensation_after_social_tax - (jumin_tax + shotoku_tax)
puts "#{rev_for_comp + (compensation_after_tax * manager_num)},#{rev_for_comp},#{compensation},#{compensation_after_tax}"
calc(revenue, manager_num, compensation + 10)
end
puts "総資産,法人の収入,個人の額面収入,個人の税引き後収入"
calc(2000, 1, 360)