年末調整の「保険料控除」、ややこしい計算を自動化!

2015年11月30日
日本人は「生命保険」がスキだ。

人口1億人程度にもかかわらず、毎年40~50兆円のお金が保険金として収められる。1人当たり年間40万円も支払う計算だ。(ちなみに、パチンコにも25兆円ほど…)
  • 専業主婦が多く(共働きが少なく)サラリーマン死亡時の家族リスクが大きい
  • 保険会社も、企業の大株主やビルの建設といった社会貢献している
  • そもそも、国民性として貯蓄志向が強い

理由は色々とあるだろうが、
  • 所得税と個人住民税が減額される(年間24万円まで)
という税制優遇制度の存在によるところも大きい。


つまり日本では「多くの国民が保険に入るべき」という思想(?)のもとに、

「保険の加入にはキャッシュバック特典付けるよ。
年間24万円分までだけど、最大で約3.2万円(※)も戻ってくるよ!!」

という制度になっているのだ。(※ 所得税率20%・個人住民税10%の人の場合)
  • 『最大12万円控除×税率』の所得税還付
  • 『最大8.4万円控除×税率』の住民税減額
事実「控除の上限額」にあわせて、保険に加入するケースは少なくない。


ただ、この特典を受けるためには毎年末の申請が必要だ。2枚提出する年末調整書類のうち「保険料控除」と書かれた方だ。
  • A. 「平成27年度分 給与所得者の保険料控除申請書 兼 給与所得者の配偶者特別控除申請書」
  • B. 「平成28年度分 給与所得者の扶養控除等(異動)申告書」

以下のワークフローは、この「申請書 PDF」が自動的に生成される仕組みとなっている。一度頑張れば、来年以降はデータコピー(再利用開始)によって非常にラクになる。


[年末調整:保険料控除の申請]

年末調整は「加入している保険内容」を再認識する良い機会だ。

しかし、紙に書き込んで提出してしまったのでは、せっかくの「まとめ」が残らない。(コピーして持っておけというハナシもあるが)、やはりデジタル情報として手元に残しておきたいものだ。このワークフローを活用すれば、自身が提出した書類を PDF で確認できるようになる。そして次年度以降は、差分だけを注意すればよい。


ところでこの「保険料控除」の制度は、2012年(平成24年)1月1日に大きく変わった。

つまり「一般生命保険料控除」「個人年金保険料控除」に加え、「介護医療保険料控除」が追加されたのだ。最大控除10万円だった控除枠も12万円に広がっている。ただ、『旧制度』や『新制度』なる表現が追加され、申請書類自体が更に複雑なものとなってしまった。

このワークフローを使えば、入力のヒントとして、様々な注記を記載できる。自社の年末調整業務を、少しずつブラッシュアップしていく事が可能となる。また、ヤヤコシイ計算式を解読する必要もなくなる。

[年末調整:保険料控除の申請:「1. 情報登録」画面]



▼『活動詳細』の[入力ヒント]の設定サンプル(HTML/JavaScript)
<script type="text/javascript">
jQuery('input[name="data\\[14\\].input"], input[name="data\\[22\\].input"], input[name="data\\[30\\].input"],input[name="data\\[38\\].input"],input[name="data\\[13\\].selects"], input[name="data\\[21\\].selects"], input[name="data\\[29\\].selects"], input[name="data\\[37\\].selects"] ').on('keypress keyup change',function(){ 
//データ項目番号「14,22,30,38, 13,21,29,37」のTextフォーム値に変化があれば、

//// Retrieving
var checked13 = jQuery("input[name='data\\[13\\].selects']:checked").val(); // ラジオボタン
var checked21 = jQuery("input[name='data\\[21\\].selects']:checked").val(); 
var checked29 = jQuery("input[name='data\\[29\\].selects']:checked").val(); 
var checked37 = jQuery("input[name='data\\[37\\].selects']:checked").val(); 

var insurance14 = jQuery("input[name='data\\[14\\].input']").val() - 0;
var insurance22 = jQuery("input[name='data\\[22\\].input']").val() - 0;
var insurance30 = jQuery("input[name='data\\[30\\].input']").val() - 0;
var insurance38 = jQuery("input[name='data\\[38\\].input']").val() - 0;

//// Calculating
var insuranceNew = 0;
var insuranceOld = 0;

if (checked13 == "新"){
  insuranceNew += insurance14 - 0;
} else if (checked13 == "旧"){
  insuranceOld += insurance14 - 0;
}

if (checked21 == "新"){
  insuranceNew += insurance22 - 0;
} else if (checked21 == "旧"){
  insuranceOld += insurance22 - 0;
}

if (checked29 == "新"){
  insuranceNew += insurance30 - 0;
} else if (checked29 == "旧"){
  insuranceOld += insurance30;
}

if (checked37 == "新"){
  insuranceNew += insurance38 - 0;
} else if (checked37 == "旧"){
  insuranceOld += insurance38 - 0;
}

var deductionNew = 0;
if (insuranceNew < 20000){
  deductionNew = insuranceNew;
} else if (insuranceNew < 40000){
  deductionNew = insuranceNew / 2 + 10000 - 0;
} else if (insuranceNew < 80000){
  deductionNew = insuranceNew / 4 + 20000 - 0;
} else if (insuranceNew >= 80000){
  deductionNew = 40000;
}

var deductionOld = 0;
if (insuranceOld < 25000){
  deductionOld = insuranceOld;
} else if (insuranceOld < 50000){
  deductionOld = insuranceOld / 2 + 12500 - 0;
} else if (insuranceOld < 100000){
  deductionOld = insuranceOld / 4 + 25000 - 0;
} else if (insuranceOld >= 100000){
  deductionOld = 50000;
}

var cap40k = deductionNew + deductionOld; 
if (cap40k > 40000){ cap40k = 40000 }
var cap50k = 0;
if (cap40k < deductionOld){ cap50k = deductionOld }
if (cap40k >= deductionOld){ cap50k = cap40k }

//// Updating
jQuery('input[name="data\\[39\\].input"]').val( insuranceNew );
jQuery('input[name="data\\[40\\].input"]').val( insuranceOld );
jQuery('input[name="data\\[41\\].input"]').val( deductionNew );
jQuery('input[name="data\\[42\\].input"]').val( deductionOld );
jQuery('input[name="data\\[43\\].input"]').val( cap40k );
jQuery('input[name="data\\[44\\].input"]').val( cap50k );

});
</script>
◆44,60,90→91 (91の入力ヒント)
<script type="text/javascript">
jQuery('input[name="data\\[44\\].input"], input[name="data\\[60\\].input"], input[name="data\\[90\\].input"] ').on('keypress keyup change',function(){ 
//データ項目番号「44,60,90」のTextフォーム値に変化があれば、

var insurance44 = jQuery("input[name='data\\[44\\].input']").val() - 0;
var insurance60 = jQuery("input[name='data\\[60\\].input']").val() - 0;
var insurance90 = jQuery("input[name='data\\[90\\].input']").val() - 0;

var cap120k = 0;
cap120k = insurance44 + insurance60 + insurance90 - 0;
if (cap120k > 120000 ){ cap120k = 120000 }

jQuery('input[name="data\\[91\\].input"]').val( cap120k );

});
</script>


<データ項目一覧画面>


[雛形ダウンロード (無料)]
<類似プロセス>
≪関連記事≫

[英文記事 (English Entry) ]

0 件のコメント :

コメントを投稿