Ruby で学ぶアメリカ税制 - 受贈財産の売却益の計算

税制って本当にどうしようもなくつまらんですよね。「税制大好き!!あのクネクネぶりがたまらん!!」なんていう変態チックな方はまさかいませんよね?(笑)私は、税制は至る所に落とし穴があって、本当に嫌になります。

このつまらない税制を少しでも興味をもって覚えるために、各種金額の計算公式をコンピュータプログラムで表現してみることにしました。使用言語は私が愛する RubyRuby かわいいよ Ruby。今日は、贈与に伴う受贈財産の売却益の計算に挑戦してみることにしました。

# ps Price for sales
# bd Basis of the donor
# fmv Fair market value
def gain_on_donated_property(ps, bd, fmv)
  gain = ps - bd
  loss = ps - [bd, fmv].min
  if gain < 0 and loss >= 0
    return 0
  end
  if gain >= 0
    return gain
  end
  if loss < 0
    return loss
  end
  # the flow should never come here
  raise
end

def main
  ps = 100
  bd = 80
  fmv = 60
  puts "case1: %d" % gain_on_donated_property(ps, bd, fmv)

  ps = 70
  bd = 80
  fmv = 60
  puts "case2: %d" % gain_on_donated_property(ps, bd, fmv)

  ps = 50
  bd = 80
  fmv = 60
  puts "case3: %d" % gain_on_donated_property(ps, bd, fmv)
end

この出力結果は、

case1: 20
case2: 0
case3: -10

となります。

次のようなことがいえます。

公正市場価格(fmv) >= 贈与者の Basis(bd) のとき

  1. 売却益(損)= 受贈者における売却価格(ps) - 贈与者の Basis(bd)

公正市場価格 < 贈与者の Basis のとき => 不思議なことが起きる

  1. 公正市場価格 <= 受贈者における売却価格(ps) < 贈与者の Basis → 売却益ゼロ
  2. それ以外のとき → 売却益(損)= 受贈者における売却価格(ps) - 贈与者の Basis(bd)

いかがでしたか?さすがは計算のために生まれてきたプログラミング言語(笑)。税制のクソな素敵な例外もエレガントに計算してくれますね。これに味をしめて、今後もいい素材があったら、プログラムの形で税制を表現してみたいと思います。