配偶者の年収を入れたら、自分の手取りまで動いた

世帯モードを作ろうとして、配偶者の手取りだけ出せばいいと思っていた。
実際に計算してみたら、動いていたのは自分の手取りのほうだった。

手取りを増やそう!をつくる第9回 / 全12回目次

「二人分の手取りを見たい」という要望から、世帯モードを作ることにした。
最初はシンプルに考えていた。本人の手取りと配偶者の手取りを、それぞれ別々に計算して並べればいい。そのつもりだった。

ところが配偶者特別控除を実装している途中で、それでは足りないと気づいた。
配偶者の年収が上がると、本人が使える配偶者特別控除が減っていく。控除が減れば、本人の課税所得が増える。つまり本人の税額も動く。

二人を、同時に計算しないといけない

配偶者特別控除は給与収入150万円台までは満額の38万円で、169万円あたりまではそのまま続き、そこから201万円に向けて段階的に減っていく。
このカーブを描くには、配偶者の年収を1万円ずつ動かすたびに、本人の計算をまるごとやり直す必要がある。片方だけ動かして終わり、という設計では成立しなかった。

householdCurve() という関数を作って、配偶者の年収を横軸にしながら、その都度「本人+配偶者」のペア全体を再計算するようにした。
型を書いていて一度詰まったのが、この関数の入力だった。配偶者の年収は横軸として渡すので、固定の入力からは抜く必要がある。Omit で、その1項目だけを型から外して解決した。

働き損の区間は、単身のときと同じ形で出た

年収の壁カーブを描いたときと同じで、配偶者の年収を上げたのに世帯の手取りが下がる区間ができる。
配偶者自身の社会保険加入と、本人の配偶者控除の縮小が、同じあたりの年収で重なって効くためだ。

この区間には、単身モードの年収カーブで使っていた「赤い点」をそのまま流用した。
見せ方を変える理由が無かった。同じ現象には同じ見た目を使ったほうが、意味が伝わりやすい。

実装してみて感じたのは、世帯の手取りは「二人分を足し算する」話ではないということだ。
片方の選択が、もう片方の税額に直接効いてくる。単身のシミュレーターを二回動かすのとは、そもそも別の計算だった。

スタンプラリーに挑戦する 行った場所・気になる場所は、現地チェックインでスタンプに残せます。 みんなのコースを見てみる 会員が作ったスポット巡りのコースを都道府県から探せます。自分だけのコースも作れます。 運営者の個人noteも書いています AI活用やサイト運営で気づいたことを、もう少し個人の視点で掘り下げています。

※運営者が個人で書いているnoteです。

技術ブログ一覧へ戻る