Ruby で学ぶアメリカ税制 - 同種財産の交換取引

同種財産の交換取引(Like-kind exchange)においては、原則として税法上の損益を認識しません。ただ、テストに出るのは例外のほうで、ややこしい話があります。

まず同種財産の定義から。

  • 事業用資産または投資用資産(個人使用目的の資産はダメ)
  • 不動産は不動産と(土地と建物の交換なんていうのもアリ)
  • 動産は同じ種類であればよい。(General Asset Class とか Product Class というのが税法上定義されているようです)
  • とはいえ、株式・債券・棚卸資産等はダメですよ

というわけで「同種」の定義はかなり緩い感じです。ある種類の2つの同種財産を交換するとき、2つの資産の価値の差異を穴埋めするため、同種ではない資産も同時に交換されることがあります。これを異種財産(boot)と呼びます。

同種財産の交換取引の話を複雑にするのはこのブートのせいです。ブートは財務会計の方でも大暴れして、話を面倒にしています。本当にいなくなって欲しいですね。ブートも細かい話がいろいろあるのですが、まずは原則的な話をしましょう。

いま XさんとYさんの2人がいたとします。X が主人公です(X の税務申告を考えます)。X は同種財産 G を Y に渡し、代わりに同種財産 R を受け取ります。同時に X と Y の間でいくつかの異種財産の交換があり、これらの資産を通算した結果、 X は B だけブートを受け取ったとします。これらの異種財産はすべて公正市場価格(FMV)で評価します。Y→X の方向の財産の移動をプラス、X→Y の方向の財産の移動をマイナスで表します。例えば、XはYへ100ドルの異種財産を渡し、代わりに80ドルの異種財産を受け取るのであれば、Xの受け取るブートは(-100) + 80 = -20 になります。

ここで、計算の目的は税法上の損益(認識損益)g を求めることです。(g が負ならば、損失を表します)(実際には、受け入れ財産 R の X にとっての税務簿価も算定も重要ですが、これは認識損益 g がわかれば計算できますので、とりあえず g の算出に集中しましょう)

Ruby のプログラムで表現するとどんな感じでしょうか。

# gb XがYに引き渡した財産 Gの調整税務簿価
# gf XがYに引き渡した財産 Gの公正市場価格
# b X が Y から受け取ったブート(マイナスのときは、XがYにブートを渡している)
def gain_on_like_kind_exchange(gb, gf, b)
  # no boot or boot has been given
  if b <= 0
    return 0
  else # give has been received
    # never recognizes loss here
    adjusted_realized_gain = [0, gf - gb].max
    return [adjusted_realized_gain, b].min
  end
end

def main
  gb = 100
  gf = 120
  b = 0
  puts "case1: recognized gain = %d" % gain_on_like_kind_exchange(gb, gf, b)

  gb = 100
  gf = 120
  b = -30
  puts "case2: recognized gain = %d" % gain_on_like_kind_exchange(gb, gf, b)

  gb = 100
  gf = 120
  b = 10
  puts "case3: recognized gain = %d" % gain_on_like_kind_exchange(gb, gf, b)

  gb = 100
  gf = 120
  b = 30
  puts "case4: recognized gain = %d" % gain_on_like_kind_exchange(gb, gf, b)

  gb = 100
  gf = 80
  b = 10
  puts "case5: recognized gain = %d" % gain_on_like_kind_exchange(gb, gf, b)
end

main

このプログラムの出力結果は、

case1: recognized gain = 0
case2: recognized gain = 0
case3: recognized gain = 10
case4: recognized gain = 20
case5: recognized gain = 0

となります。

case 1

入力

gb = 100
gf = 120
b = 0

出力

case1: recognized gain = 0

ブートがないケースです。認識損益はありません。

case 2

入力

gb = 100
gf = 120
b = -30

出力

case2: recognized gain = 0

ブートを渡しています。ブートを渡すときには税務上の損益を認識しません。

case 3

入力

gb = 100
gf = 120
b = 10

出力

case3: recognized gain = 10

ブートを受け取っています。このときは、ブートか実現利益(gf - gb)の小さい方を認識利益とします。ここではブートのほうが小さくなっています。

case 4

入力

gb = 100
gf = 120
b = 30

出力

case4: recognized gain = 20

ブートを受け取っています。ブートのほうが実現損益より大きいので、実現利益のうち全額を税法上の利益として認識します。

case 5

入力

gb = 100
gf = 80
b = 10

出力

case5: recognized gain = 0

ブートを受け取っています。実現しているのは損失ですが(80 - 100= -200)、同種財産の交換では損失を認識しませんので、認識損益はありません。

まとめ

上で X が Y から受け入れた同種財産 R の X における税務簿価 rb は、

rb = gb + g - b

で計算できます。

実はブートは、(1)債務の免除 (2)それ以外(一般異種財産)の2種類にわかれ、一般異種財産を受け入れるときには、債務の引き受けとは相殺できない(一般異種財産は受け取りとして認識せねばならず、利益を認識しなければならないことがある)という決まりがあるのですが、まあ、こんなの問題に出るのかしら?上の基本さえ押さえておけば十分な気もします。

次回は非自発的買い替えについて話をしたいと思います。