{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Savings, Interest, and Future Value\n", "- `fv()` https://numpy.org/doc/1.17/reference/generated/numpy.fv.html#numpy.fv\n", "- `FV()` https://support.google.com/docs/answer/3093224?hl=en\n", "- `FV()` https://support.office.com/en-us/article/fv-function-2eef9f44-a084-4c61-bdd8-4fe4bb1b71b3\n", "- `FV()` https://wiki.openoffice.org/wiki/Documentation/How_Tos/Calc:_FV_function" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#!pip install numpy_financial pandas\n", "#import numpy as npf\n", "import numpy_financial as npf\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def annual_interest_to_daily_simple(rate):\n", " return rate / 365\n", "\n", "def annual_interest_to_daily_compounding(rate):\n", " return (((1+rate) ** (1/365)) - 1)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'$ 1.7660088312053745e+18 after 200 years at 10.0 % APR'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "savings_target = 145_000_000_000\n", "\n", "interest_rate_annual = 0.10\n", "n_years = 200\n", "\n", "interest_rate_daily = annual_interest_to_daily_simple(interest_rate_annual)\n", "rate = interest_rate_daily\n", "nper = 365 * n_years\n", "pmt = pmt_ = -1_000_000\n", "pv = 0\n", "\n", "fv = npf.fv(rate, nper, pmt, pv)\n", "f'$ {fv:,} after {n_years} years at {interest_rate_annual*100} % APR'" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-0.00000000e+00, 1.00000000e+06, 2.00027397e+06, ...,\n", " 1.76455811e+18, 1.76504155e+18, 1.76552513e+18])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "fv_array = npf.fv(rate, range(0, nper), pmt, pv)\n", "#f'{fv:,}'\n", "fv_array" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | value | \n", "
---|---|
days | \n", "\n", " |
0 | \n", "-0.000000e+00 | \n", "
1 | \n", "1.000000e+06 | \n", "
2 | \n", "2.000274e+06 | \n", "
3 | \n", "3.000822e+06 | \n", "
4 | \n", "4.001644e+06 | \n", "
... | \n", "... | \n", "
72995 | \n", "1.763592e+18 | \n", "
72996 | \n", "1.764075e+18 | \n", "
72997 | \n", "1.764558e+18 | \n", "
72998 | \n", "1.765042e+18 | \n", "
72999 | \n", "1.765525e+18 | \n", "
73000 rows × 1 columns
\n", "\n", " | 0.02 | \n", "0.05 | \n", "0.1 | \n", "0.2 | \n", "
---|---|---|---|---|
days | \n", "\n", " | \n", " | \n", " | \n", " |
0 | \n", "-0.000000e+00 | \n", "-0.000000e+00 | \n", "-0.000000e+00 | \n", "-0.000000e+00 | \n", "
1 | \n", "1.000000e+06 | \n", "1.000000e+06 | \n", "1.000000e+06 | \n", "1.000000e+06 | \n", "
2 | \n", "2.000055e+06 | \n", "2.000137e+06 | \n", "2.000274e+06 | \n", "2.000548e+06 | \n", "
3 | \n", "3.000164e+06 | \n", "3.000411e+06 | \n", "3.000822e+06 | \n", "3.001644e+06 | \n", "
4 | \n", "4.000329e+06 | \n", "4.000822e+06 | \n", "4.001644e+06 | \n", "4.003289e+06 | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
72995 | \n", "9.777841e+11 | \n", "1.605658e+14 | \n", "1.763592e+18 | \n", "4.237356e+26 | \n", "
72996 | \n", "9.778387e+11 | \n", "1.605878e+14 | \n", "1.764075e+18 | \n", "4.239678e+26 | \n", "
72997 | \n", "9.778933e+11 | \n", "1.606098e+14 | \n", "1.764558e+18 | \n", "4.242001e+26 | \n", "
72998 | \n", "9.779479e+11 | \n", "1.606318e+14 | \n", "1.765042e+18 | \n", "4.244325e+26 | \n", "
72999 | \n", "9.780025e+11 | \n", "1.606538e+14 | \n", "1.765525e+18 | \n", "4.246651e+26 | \n", "
73000 rows × 4 columns
\n", "interest rate | \n", "days | \n", "years | \n", "value | \n", "value_without_interest | \n", "diff | \n", "
---|---|---|---|---|---|
0.02 | \n", "39,989.00 | \n", "109.56 | \n", "145,000,059,420.29 | \n", "39,989,000,000.00 | \n", "105,011,059,420.29 | \n", "
0.05 | \n", "22,179.00 | \n", "60.76 | \n", "145,005,054,636.52 | \n", "22,179,000,000.00 | \n", "122,826,054,636.52 | \n", "
0.1 | \n", "13,532.00 | \n", "37.07 | \n", "145,003,286,468.73 | \n", "13,532,000,000.00 | \n", "131,471,286,468.73 | \n", "
0.2 | \n", "8,010.00 | \n", "21.95 | \n", "145,026,084,836.17 | \n", "8,010,000,000.00 | \n", "137,016,084,836.17 | \n", "
savings_target=145,000,000,000 | \n", "None | \n", "None | \n", "None | \n", "None | \n", "None | \n", "