11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Ateam Finergy Inc.Advent Calendar 2019

Day 15

もういくつ払うと完済できる?Rubyでローンの計算をしてみよう!

Last updated at Posted at 2019-12-14

この記事は、株式会社エイチームフィナジーAdvent Calendar 2019 15日目です。

はじめに

皆さまクリスマスシーズンいかがお過ごしですか?:christmas_tree: :santa: :christmas_tree:
株式会社エイチームフィナジーAdvent Calendar 2019 15日目 は、 @kazenomachi が担当します。

株式会社エイチームフィナジーでは、「世の中からお金の不安を解消し、より人生が豊かになる社会を実現する」ことをミッションに、金融領域を中心とした様々なサービスを運営しています。

今回は、ナビナビ住宅ローンの開発に携わっているWebエンジニア(住宅ローンアドバイザー:house:)の私が、Rubyでローンの計算をするライブラリをご紹介します。
※本稿の内容は、弊社で運営しているサービスの内容とは関係ありません。

使用するライブラリ

今回は、exonioというgemを使用してみます。
とてもシンプルに財務関数を扱えるgemです。

インストール

$ gem install exonio

様々なローンの計算をしてみよう

支払い回数を算出する

年利15%のローン商品で25万円を借り入れ、毎月1万円を支払っている場合、総支払い回数はNPER関数を使って以下のように算出できます。

# 月利(年利15%)
# 月単位の支払いなので、月利で計算します。
interest_rate = (15.0 / 100) / 12
# 毎月の支払額 
amount_of_payment = -10_000
# 借入金額
borrowing_amount = 250_000

Exonio.nper(interest_rate, amount_of_payment, borrowing_amount)
# => 30.16243479462554

30回払い、2年半…長い道のりです:santa:

借入金額から、毎月の支払額を算出する

年利15%のローン商品で100万円を借り入れ、5年で返済する場合、毎月の支払額はPMT関数を使って以下のように算出できます。

# 月利(年利15%)
# 月単位の支払いなので、月利で計算します。
interest_rate = (15.0 / 100) / 12
# 支払い回数(5年)
number_of_payments = 5 * 12
# 借入金額
borrowing_amount = 1_000_000

Exonio.pmt(interest_rate, number_of_payments, borrowing_amount)
# => -23789.930086358785

年利15%なので、利息も高いですね…:santa:

ローンの利率を算出する

100万円を借り入れ、毎月2万円を5年間払い続ける場合の利率をRATE関数を使って算出します。

# 支払い回数
number_of_payments = 5 * 12
# 毎月の支払額
amount_of_payment = -20_000
# 借入金額
borrowing_amount = 1_000_000

# 月利
monthly_rate = Exonio.rate(number_of_payments, amount_of_payment, borrowing_amount)

# 年利
monthly_rate * 100 * 12
# => 7.420095794554806

およそ7.42%の年利となりました :santa:

毎月の支払額から、借り入れ可能額を算出する

住宅ローンの借り入れ可能額を計算してみましょう。
年利1.5%の35年住宅ローンを毎月6万円支払う場合の借り入れ可能額は、PV関数を使って以下のように算出できます。

# 月利(年利1.5%)
# 月単位の支払いなので、月利で計算します。
interest_rate = (1.5 / 100) / 12
# 支払い回数(35年)
number_of_payments = 35 * 12
# 毎月の支払額 
amount_of_payment = -60_000

Exonio.pv(interest_rate, number_of_payments, amount_of_payment)
# => 19596031.744103875

頭金やボーナス払い等を考慮しない場合、およそ1900万円の住宅を購入できる計算です。
煙突はつけられるかな…:santa::house:

まとめ

財務関数はローン以外にも積立預金などの計算もできます。
exonioはシンプルなgemなので、ちょっとした計算をしたい時等にぜひ使ってみてください。
ご利用は計画的に…ふぉっふぉっふぉ…:santa:

11
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?