Skip to content

Instantly share code, notes, and snippets.

@bstancil
Created March 9, 2021 00:10
Show Gist options
  • Save bstancil/4d21c58981b60d08119c3002c3e5ea89 to your computer and use it in GitHub Desktop.
Save bstancil/4d21c58981b60d08119c3002c3e5ea89 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"def create_year(year, start_shares, start_share_value, growth_rate, wealth_tax_rate, cap_gains_tax_rate):\n",
" start_wealth = start_shares * start_share_value\n",
" after_growth_share_value = start_share_value * growth_rate\n",
" after_growth_wealth = start_shares * after_growth_share_value\n",
" wealth_increase = after_growth_wealth - start_wealth\n",
" cg_tax_owed = wealth_increase * cap_gains_tax_rate\n",
" cg_shares_sold = cg_tax_owed/after_growth_share_value\n",
" after_cg_tax_shares = start_shares - cg_shares_sold\n",
" after_cg_tax_wealth = after_cg_tax_shares * after_growth_share_value\n",
" taxable_wealth = max(after_cg_tax_wealth - 50 * (10**6), 0)\n",
" wealth_tax_owed = taxable_wealth * wealth_tax_rate\n",
" wealth_shares_sold = wealth_tax_owed/after_growth_share_value\n",
" end_shares = after_cg_tax_shares - wealth_shares_sold\n",
" end_wealth = end_shares * after_growth_share_value\n",
" \n",
" return {\n",
" \"year\": year,\n",
" \"start_shares\": start_shares,\n",
" \"start_share_value\": start_share_value,\n",
" \"start_wealth\": start_wealth,\n",
" \"after_growth_share_value\": after_growth_share_value,\n",
" \"after_growth_wealth\": after_growth_wealth,\n",
" \"wealth_increase\": wealth_increase, \n",
" \"cg_tax_owed\": cg_tax_owed, \n",
" \"cg_shares_sold\": cg_shares_sold, \n",
" \"after_cg_tax_shares\": after_cg_tax_shares, \n",
" \"after_cg_tax_wealth\": after_cg_tax_wealth, \n",
" \"taxable_wealth\": taxable_wealth, \n",
" \"wealth_tax_owed\": wealth_tax_owed, \n",
" \"wealth_shares_sold\": wealth_shares_sold, \n",
" \"end_shares\": end_shares, \n",
" \"end_wealth\": end_wealth\n",
" }\n",
"\n",
"def model(inputs):\n",
" shares = inputs[\"shares\"]\n",
" share_value = inputs[\"share_value\"]\n",
" growth_rate = inputs[\"growth_rate\"]\n",
" wealth_tax_rate = inputs[\"wealth_tax_rate\"]\n",
" cg_tax_rate = inputs[\"cap_gains_tax_rate\"]\n",
"\n",
" data = []\n",
" \n",
" y = create_year(0, shares, share_value, growth_rate[0], wealth_tax_rate, cg_tax_rate)\n",
" data.append(y)\n",
" \n",
" for i, r in enumerate(growth_rate[1:]):\n",
" yn = create_year(i+1, y[\"end_shares\"], y[\"after_growth_share_value\"], r, wealth_tax_rate, cg_tax_rate)\n",
" data.append(yn)\n",
" y = yn\n",
" \n",
" return data\n",
"\n",
"def summarize(results, model):\n",
" years = len(results)\n",
" \n",
" start = result[0]\n",
" end = result[-1]\n",
" \n",
" start_shares = start[\"start_shares\"]\n",
" start_value = start[\"start_share_value\"]\n",
" \n",
" end_shares = end[\"end_shares\"]\n",
" end_value = end[\"after_growth_share_value\"]\n",
" end_wealth = end[\"end_wealth\"]\n",
" \n",
" cap_gains_shares_sold = sum([r[\"cg_shares_sold\"] for r in result])\n",
" cap_gains_taxes_paid = sum([r[\"cg_tax_owed\"] for r in result])\n",
" wealth_shares_sold = sum([r[\"wealth_shares_sold\"] for r in result])\n",
" welath_taxes_paid = sum([r[\"wealth_tax_owed\"] for r in result])\n",
" \n",
" return {\n",
" \"rate_type\": model[\"rate_type\"],\n",
" \"target\": model[\"target\"],\n",
" \"years\": years,\n",
" \"value_multiple\": round(end_value/start_value,0),\n",
" \"shares_percent_owned\": round(100 * end_shares/start_shares,2),\n",
" \"ending_wealth\": round(end_wealth/10**6,1),\n",
" \"cap_gains_shares_sold\": round(cap_gains_shares_sold),\n",
" \"cap_gains_taxes_paid\": round(cap_gains_taxes_paid/10**6,1),\n",
" \"wealth_shares_sold\": round(wealth_shares_sold),\n",
" \"wealth_taxes_paid\": round(welath_taxes_paid/10**6,1)\n",
" }\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"def make_growth_rates(years):\n",
" rates = []\n",
" multiples = [50,250,500,5000,25000,50000]\n",
"\n",
" \n",
" for m in multiples:\n",
" growth_rate = [m ** (1/years)] * years\n",
" rate = {\n",
" \"type\": { \"rate_type\": \"constant\", \"target\": \"%s million\" % \"{:,}\".format((m*2)) },\n",
" \"rate\": growth_rate\n",
" }\n",
" \n",
" rates.append(rate)\n",
" \n",
" for m in multiples:\n",
" out_years = 1.05**(years-1)\n",
" first_year = m/out_years\n",
" growth_rate = [first_year] + [1.05] * (years-1)\n",
" \n",
" rate = {\n",
" \"type\": { \"rate_type\": \"year_one\", \"target\": \"%s million\" % \"{:,}\".format((m*2)) },\n",
" \"rate\": growth_rate\n",
" }\n",
" \n",
" rates.append(rate)\n",
" \n",
" for m in multiples:\n",
" pg = [3,3,2,2,1.5,1.5] + ([1.08] * (years-6))\n",
"# pg = [2,2,2,2,1.5,1.5] + ([1.08] * (years-6))\n",
"# pg = [1.5,1.5,1.5,1.5,1.5,1.5] + ([1.08] * (years-7))\n",
" year_59 = np.product(pg)\n",
" year_60 = 5000/year_59\n",
"# full_pg = pg + [year_60]\n",
" full_pg = pg\n",
" \n",
" growth_multiplier = {\n",
" 50: 0.4,\n",
" 250: 0.596,\n",
" 500: 0.685,\n",
" 5000: 1,\n",
" 25000: 1.238,\n",
" 50000: 1.345\n",
" }\n",
" \n",
" gm = growth_multiplier[m]\n",
" \n",
" rate = {\n",
" \"type\": { \"rate_type\": \"pg\", \"target\": \"%s million\" % \"{:,}\".format((m*2)) },\n",
" \"rate\": [((r-1)*gm) + 1 for r in full_pg]\n",
" }\n",
"\n",
" rates.append(rate)\n",
" \n",
" return rates"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rate_type</th>\n",
" <th>target</th>\n",
" <th>years</th>\n",
" <th>value_multiple</th>\n",
" <th>shares_percent_owned</th>\n",
" <th>ending_wealth</th>\n",
" <th>cap_gains_shares_sold</th>\n",
" <th>cap_gains_taxes_paid</th>\n",
" <th>wealth_shares_sold</th>\n",
" <th>wealth_taxes_paid</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>constant</td>\n",
" <td>100 million</td>\n",
" <td>60</td>\n",
" <td>50.0</td>\n",
" <td>93.99</td>\n",
" <td>94.0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>60116</td>\n",
" <td>4.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>constant</td>\n",
" <td>500 million</td>\n",
" <td>60</td>\n",
" <td>250.0</td>\n",
" <td>73.83</td>\n",
" <td>369.2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>261655</td>\n",
" <td>61.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>constant</td>\n",
" <td>1,000 million</td>\n",
" <td>60</td>\n",
" <td>500.0</td>\n",
" <td>67.42</td>\n",
" <td>674.2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>325823</td>\n",
" <td>122.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>constant</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5000.0</td>\n",
" <td>54.22</td>\n",
" <td>5422.1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>457791</td>\n",
" <td>912.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>constant</td>\n",
" <td>50,000 million</td>\n",
" <td>60</td>\n",
" <td>25000.0</td>\n",
" <td>49.19</td>\n",
" <td>24593.2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>508137</td>\n",
" <td>3580.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>constant</td>\n",
" <td>100,000 million</td>\n",
" <td>60</td>\n",
" <td>50000.0</td>\n",
" <td>47.57</td>\n",
" <td>47574.6</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>524254</td>\n",
" <td>6506.9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>year_one</td>\n",
" <td>100 million</td>\n",
" <td>60</td>\n",
" <td>50.0</td>\n",
" <td>92.32</td>\n",
" <td>92.3</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>76799</td>\n",
" <td>6.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>year_one</td>\n",
" <td>500 million</td>\n",
" <td>60</td>\n",
" <td>250.0</td>\n",
" <td>58.22</td>\n",
" <td>291.1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>417779</td>\n",
" <td>93.2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>year_one</td>\n",
" <td>1,000 million</td>\n",
" <td>60</td>\n",
" <td>500.0</td>\n",
" <td>45.47</td>\n",
" <td>454.7</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>545273</td>\n",
" <td>187.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>year_one</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5000.0</td>\n",
" <td>31.33</td>\n",
" <td>3132.7</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>686729</td>\n",
" <td>1777.4</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>year_one</td>\n",
" <td>50,000 million</td>\n",
" <td>60</td>\n",
" <td>25000.0</td>\n",
" <td>30.07</td>\n",
" <td>15034.8</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>699303</td>\n",
" <td>8845.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>year_one</td>\n",
" <td>100,000 million</td>\n",
" <td>60</td>\n",
" <td>50000.0</td>\n",
" <td>29.91</td>\n",
" <td>29912.5</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>700875</td>\n",
" <td>17680.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>pg</td>\n",
" <td>100 million</td>\n",
" <td>60</td>\n",
" <td>50.0</td>\n",
" <td>88.90</td>\n",
" <td>89.1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>111030</td>\n",
" <td>8.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>pg</td>\n",
" <td>500 million</td>\n",
" <td>60</td>\n",
" <td>255.0</td>\n",
" <td>56.51</td>\n",
" <td>288.2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>434943</td>\n",
" <td>97.8</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>pg</td>\n",
" <td>1,000 million</td>\n",
" <td>60</td>\n",
" <td>513.0</td>\n",
" <td>47.94</td>\n",
" <td>491.5</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>520552</td>\n",
" <td>184.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>35.96</td>\n",
" <td>3717.2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>640405</td>\n",
" <td>1246.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>pg</td>\n",
" <td>50,000 million</td>\n",
" <td>60</td>\n",
" <td>26008.0</td>\n",
" <td>33.46</td>\n",
" <td>17402.4</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>665438</td>\n",
" <td>4817.6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>pg</td>\n",
" <td>100,000 million</td>\n",
" <td>60</td>\n",
" <td>52210.0</td>\n",
" <td>32.83</td>\n",
" <td>34282.4</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>671685</td>\n",
" <td>8729.7</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate_type target years value_multiple shares_percent_owned \\\n",
"0 constant 100 million 60 50.0 93.99 \n",
"1 constant 500 million 60 250.0 73.83 \n",
"2 constant 1,000 million 60 500.0 67.42 \n",
"3 constant 10,000 million 60 5000.0 54.22 \n",
"4 constant 50,000 million 60 25000.0 49.19 \n",
"5 constant 100,000 million 60 50000.0 47.57 \n",
"6 year_one 100 million 60 50.0 92.32 \n",
"7 year_one 500 million 60 250.0 58.22 \n",
"8 year_one 1,000 million 60 500.0 45.47 \n",
"9 year_one 10,000 million 60 5000.0 31.33 \n",
"10 year_one 50,000 million 60 25000.0 30.07 \n",
"11 year_one 100,000 million 60 50000.0 29.91 \n",
"12 pg 100 million 60 50.0 88.90 \n",
"13 pg 500 million 60 255.0 56.51 \n",
"14 pg 1,000 million 60 513.0 47.94 \n",
"15 pg 10,000 million 60 5169.0 35.96 \n",
"16 pg 50,000 million 60 26008.0 33.46 \n",
"17 pg 100,000 million 60 52210.0 32.83 \n",
"\n",
" ending_wealth cap_gains_shares_sold cap_gains_taxes_paid \\\n",
"0 94.0 0 0.0 \n",
"1 369.2 0 0.0 \n",
"2 674.2 0 0.0 \n",
"3 5422.1 0 0.0 \n",
"4 24593.2 0 0.0 \n",
"5 47574.6 0 0.0 \n",
"6 92.3 0 0.0 \n",
"7 291.1 0 0.0 \n",
"8 454.7 0 0.0 \n",
"9 3132.7 0 0.0 \n",
"10 15034.8 0 0.0 \n",
"11 29912.5 0 0.0 \n",
"12 89.1 0 0.0 \n",
"13 288.2 0 0.0 \n",
"14 491.5 0 0.0 \n",
"15 3717.2 0 0.0 \n",
"16 17402.4 0 0.0 \n",
"17 34282.4 0 0.0 \n",
"\n",
" wealth_shares_sold wealth_taxes_paid \n",
"0 60116 4.9 \n",
"1 261655 61.6 \n",
"2 325823 122.9 \n",
"3 457791 912.5 \n",
"4 508137 3580.9 \n",
"5 524254 6506.9 \n",
"6 76799 6.2 \n",
"7 417779 93.2 \n",
"8 545273 187.1 \n",
"9 686729 1777.4 \n",
"10 699303 8845.5 \n",
"11 700875 17680.6 \n",
"12 111030 8.8 \n",
"13 434943 97.8 \n",
"14 520552 184.1 \n",
"15 640405 1246.5 \n",
"16 665438 4817.6 \n",
"17 671685 8729.7 "
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"final = []\n",
"rates = make_growth_rates(60)\n",
"\n",
"for r in rates:\n",
" inputs = {\n",
" \"shares\": 1000000,\n",
" \"share_value\": 2,\n",
" \"wealth_tax_rate\": 0.02,\n",
" \"cap_gains_tax_rate\": 0.0,\n",
" \"growth_rate\": r['rate']\n",
" }\n",
" \n",
" result = model(inputs)\n",
" summary = summarize(result, r[\"type\"])\n",
" final.append(summary)\n",
"\n",
"df = pd.DataFrame(final)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 138,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rate_type</th>\n",
" <th>target</th>\n",
" <th>years</th>\n",
" <th>value_multiple</th>\n",
" <th>shares_percent_owned</th>\n",
" <th>ending_wealth</th>\n",
" <th>cap_gains_shares_sold</th>\n",
" <th>cap_gains_taxes_paid</th>\n",
" <th>wealth_shares_sold</th>\n",
" <th>wealth_taxes_paid</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>30.10</td>\n",
" <td>3111.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>699049.0</td>\n",
" <td>7226.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>35.96</td>\n",
" <td>3717.2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>640405.0</td>\n",
" <td>1246.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>39.52</td>\n",
" <td>4085.6</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>604761.0</td>\n",
" <td>1113.3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>46.47</td>\n",
" <td>4803.2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>535345.0</td>\n",
" <td>1033.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>pg</td>\n",
" <td>10,000 million</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>54.09</td>\n",
" <td>5591.4</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>459090.0</td>\n",
" <td>938.3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate_type target years value_multiple shares_percent_owned \\\n",
"0 pg 10,000 million 60 5169.0 30.10 \n",
"1 pg 10,000 million 60 5169.0 35.96 \n",
"2 pg 10,000 million 60 5169.0 39.52 \n",
"3 pg 10,000 million 60 5169.0 46.47 \n",
"4 pg 10,000 million 60 5169.0 54.09 \n",
"\n",
" ending_wealth cap_gains_shares_sold cap_gains_taxes_paid \\\n",
"0 3111.0 0.0 0.0 \n",
"1 3717.2 0.0 0.0 \n",
"2 4085.6 0.0 0.0 \n",
"3 4803.2 0.0 0.0 \n",
"4 5591.4 0.0 0.0 \n",
"\n",
" wealth_shares_sold wealth_taxes_paid \n",
"0 699049.0 7226.1 \n",
"1 640405.0 1246.5 \n",
"2 604761.0 1113.3 \n",
"3 535345.0 1033.5 \n",
"4 459090.0 938.3 "
]
},
"execution_count": 138,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg = [3,3,2,2,1.5,1.5] + ([1.08] * (60-6))\n",
"cumulative = np.product(pg)\n",
"\n",
"slow_1 = [2,2,2,2,1.5,1.5]\n",
"slow_2 = [1.5,1.5,1.5,1.5,1.5,1.5]\n",
"\n",
"cumulative_slow_1 = np.product(slow_1)\n",
"cumulative_slow_2 = np.product(slow_2)\n",
"\n",
"long_term_1 = (cumulative/cumulative_slow_1) ** (1/54)\n",
"long_term_2 = (cumulative/cumulative_slow_2) ** (1/54)\n",
"long_term_3 = cumulative ** (1/60)\n",
"\n",
"pg_1 = slow_1 + ([long_term_1] * 54)\n",
"pg_2 = slow_2 + ([long_term_2] * 54)\n",
"pg_3 = ([long_term_3] * 60)\n",
"pg_0 = [cumulative] + ([1] * 59)\n",
"\n",
"rates = []\n",
"\n",
"for x in [pg_0, pg, pg_1, pg_2, pg_3]:\n",
" rate = {\n",
" \"type\": { \"rate_type\": \"pg\", \"target\": \"%s million\" % \"{:,}\".format((5000*2)) },\n",
" \"rate\": [((r-1)*1) + 1 for r in x]\n",
" }\n",
" \n",
" rates.append(rate)\n",
"\n",
"final = []\n",
"\n",
"for r in rates:\n",
" inputs = {\n",
" \"shares\": 1000000,\n",
" \"share_value\": 2,\n",
" \"wealth_tax_rate\": 0.02,\n",
" \"cap_gains_tax_rate\": 0.00,\n",
" \"growth_rate\": r['rate']\n",
" }\n",
" \n",
" result = model(inputs)\n",
" summary = summarize(result, r[\"type\"])\n",
" final.append(summary)\n",
"\n",
"df = pd.DataFrame(final)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 136,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rate_type</th>\n",
" <th>target</th>\n",
" <th>years</th>\n",
" <th>value_multiple</th>\n",
" <th>shares_percent_owned</th>\n",
" <th>ending_wealth</th>\n",
" <th>cap_gains_shares_sold</th>\n",
" <th>cap_gains_taxes_paid</th>\n",
" <th>wealth_shares_sold</th>\n",
" <th>wealth_taxes_paid</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Fl: 0, M 50</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>24.0</td>\n",
" <td>68.86</td>\n",
" <td>33.5</td>\n",
" <td>311410.0</td>\n",
" <td>5.1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Fl: 0, M 75</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>82.0</td>\n",
" <td>61.36</td>\n",
" <td>100.4</td>\n",
" <td>386438.0</td>\n",
" <td>16.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Fl: 0, M 100</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>238.0</td>\n",
" <td>55.84</td>\n",
" <td>265.7</td>\n",
" <td>441570.0</td>\n",
" <td>42.9</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Fl: 0, M 50</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>53.0</td>\n",
" <td>61.81</td>\n",
" <td>66.0</td>\n",
" <td>381893.0</td>\n",
" <td>10.4</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Fl: 0, M 75</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>262.0</td>\n",
" <td>52.33</td>\n",
" <td>274.6</td>\n",
" <td>476697.0</td>\n",
" <td>44.4</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Fl: 0, M 100</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>1109.0</td>\n",
" <td>45.33</td>\n",
" <td>1005.4</td>\n",
" <td>546662.0</td>\n",
" <td>163.3</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Fl: 0, M 50</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>117.0</td>\n",
" <td>55.48</td>\n",
" <td>129.7</td>\n",
" <td>445161.0</td>\n",
" <td>20.8</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Fl: 0, M 75</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>842.0</td>\n",
" <td>44.63</td>\n",
" <td>751.2</td>\n",
" <td>553679.0</td>\n",
" <td>122.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Fl: 0, M 100</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>36.80</td>\n",
" <td>3804.3</td>\n",
" <td>631976.0</td>\n",
" <td>619.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Fl: 1, M 50</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>15.0</td>\n",
" <td>71.30</td>\n",
" <td>21.8</td>\n",
" <td>287038.0</td>\n",
" <td>3.2</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Fl: 1, M 75</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>47.0</td>\n",
" <td>63.25</td>\n",
" <td>59.6</td>\n",
" <td>367494.0</td>\n",
" <td>9.4</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Fl: 1, M 100</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>130.0</td>\n",
" <td>57.17</td>\n",
" <td>149.2</td>\n",
" <td>428315.0</td>\n",
" <td>24.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Fl: 1, M 50</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>39.0</td>\n",
" <td>62.66</td>\n",
" <td>49.1</td>\n",
" <td>373385.0</td>\n",
" <td>7.7</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Fl: 1, M 75</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>190.0</td>\n",
" <td>52.33</td>\n",
" <td>198.9</td>\n",
" <td>476723.0</td>\n",
" <td>32.1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Fl: 1, M 100</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>821.0</td>\n",
" <td>44.63</td>\n",
" <td>733.0</td>\n",
" <td>553691.0</td>\n",
" <td>119.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Fl: 1, M 50</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>100.0</td>\n",
" <td>55.07</td>\n",
" <td>110.5</td>\n",
" <td>449274.0</td>\n",
" <td>17.7</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>Fl: 1, M 75</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>767.0</td>\n",
" <td>43.29</td>\n",
" <td>664.2</td>\n",
" <td>567089.0</td>\n",
" <td>107.8</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Fl: 1, M 100</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>34.84</td>\n",
" <td>3601.7</td>\n",
" <td>651571.0</td>\n",
" <td>586.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>Fl: 2, M 50</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>9.0</td>\n",
" <td>75.45</td>\n",
" <td>13.0</td>\n",
" <td>245532.0</td>\n",
" <td>1.8</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>Fl: 2, M 75</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>23.0</td>\n",
" <td>67.28</td>\n",
" <td>30.4</td>\n",
" <td>327195.0</td>\n",
" <td>4.6</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>Fl: 2, M 100</td>\n",
" <td>None</td>\n",
" <td>20</td>\n",
" <td>56.0</td>\n",
" <td>60.76</td>\n",
" <td>67.6</td>\n",
" <td>392415.0</td>\n",
" <td>10.7</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>Fl: 2, M 50</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>28.0</td>\n",
" <td>64.35</td>\n",
" <td>35.6</td>\n",
" <td>356483.0</td>\n",
" <td>5.5</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>Fl: 2, M 75</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>126.0</td>\n",
" <td>53.33</td>\n",
" <td>134.8</td>\n",
" <td>466746.0</td>\n",
" <td>21.6</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>Fl: 2, M 100</td>\n",
" <td>None</td>\n",
" <td>40</td>\n",
" <td>536.0</td>\n",
" <td>44.91</td>\n",
" <td>481.7</td>\n",
" <td>550865.0</td>\n",
" <td>78.1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>Fl: 2, M 50</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>89.0</td>\n",
" <td>54.89</td>\n",
" <td>97.3</td>\n",
" <td>451118.0</td>\n",
" <td>15.5</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>Fl: 2, M 75</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>708.0</td>\n",
" <td>42.26</td>\n",
" <td>598.6</td>\n",
" <td>577352.0</td>\n",
" <td>97.1</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>Fl: 2, M 100</td>\n",
" <td>None</td>\n",
" <td>60</td>\n",
" <td>5169.0</td>\n",
" <td>33.20</td>\n",
" <td>3432.0</td>\n",
" <td>667994.0</td>\n",
" <td>558.4</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rate_type target years value_multiple shares_percent_owned \\\n",
"0 Fl: 0, M 50 None 20 24.0 68.86 \n",
"1 Fl: 0, M 75 None 20 82.0 61.36 \n",
"2 Fl: 0, M 100 None 20 238.0 55.84 \n",
"3 Fl: 0, M 50 None 40 53.0 61.81 \n",
"4 Fl: 0, M 75 None 40 262.0 52.33 \n",
"5 Fl: 0, M 100 None 40 1109.0 45.33 \n",
"6 Fl: 0, M 50 None 60 117.0 55.48 \n",
"7 Fl: 0, M 75 None 60 842.0 44.63 \n",
"8 Fl: 0, M 100 None 60 5169.0 36.80 \n",
"9 Fl: 1, M 50 None 20 15.0 71.30 \n",
"10 Fl: 1, M 75 None 20 47.0 63.25 \n",
"11 Fl: 1, M 100 None 20 130.0 57.17 \n",
"12 Fl: 1, M 50 None 40 39.0 62.66 \n",
"13 Fl: 1, M 75 None 40 190.0 52.33 \n",
"14 Fl: 1, M 100 None 40 821.0 44.63 \n",
"15 Fl: 1, M 50 None 60 100.0 55.07 \n",
"16 Fl: 1, M 75 None 60 767.0 43.29 \n",
"17 Fl: 1, M 100 None 60 5169.0 34.84 \n",
"18 Fl: 2, M 50 None 20 9.0 75.45 \n",
"19 Fl: 2, M 75 None 20 23.0 67.28 \n",
"20 Fl: 2, M 100 None 20 56.0 60.76 \n",
"21 Fl: 2, M 50 None 40 28.0 64.35 \n",
"22 Fl: 2, M 75 None 40 126.0 53.33 \n",
"23 Fl: 2, M 100 None 40 536.0 44.91 \n",
"24 Fl: 2, M 50 None 60 89.0 54.89 \n",
"25 Fl: 2, M 75 None 60 708.0 42.26 \n",
"26 Fl: 2, M 100 None 60 5169.0 33.20 \n",
"\n",
" ending_wealth cap_gains_shares_sold cap_gains_taxes_paid \\\n",
"0 33.5 311410.0 5.1 \n",
"1 100.4 386438.0 16.0 \n",
"2 265.7 441570.0 42.9 \n",
"3 66.0 381893.0 10.4 \n",
"4 274.6 476697.0 44.4 \n",
"5 1005.4 546662.0 163.3 \n",
"6 129.7 445161.0 20.8 \n",
"7 751.2 553679.0 122.0 \n",
"8 3804.3 631976.0 619.0 \n",
"9 21.8 287038.0 3.2 \n",
"10 59.6 367494.0 9.4 \n",
"11 149.2 428315.0 24.0 \n",
"12 49.1 373385.0 7.7 \n",
"13 198.9 476723.0 32.1 \n",
"14 733.0 553691.0 119.0 \n",
"15 110.5 449274.0 17.7 \n",
"16 664.2 567089.0 107.8 \n",
"17 3601.7 651571.0 586.0 \n",
"18 13.0 245532.0 1.8 \n",
"19 30.4 327195.0 4.6 \n",
"20 67.6 392415.0 10.7 \n",
"21 35.6 356483.0 5.5 \n",
"22 134.8 466746.0 21.6 \n",
"23 481.7 550865.0 78.1 \n",
"24 97.3 451118.0 15.5 \n",
"25 598.6 577352.0 97.1 \n",
"26 3432.0 667994.0 558.4 \n",
"\n",
" wealth_shares_sold wealth_taxes_paid \n",
"0 0.0 0.0 \n",
"1 0.0 0.0 \n",
"2 0.0 0.0 \n",
"3 0.0 0.0 \n",
"4 0.0 0.0 \n",
"5 0.0 0.0 \n",
"6 0.0 0.0 \n",
"7 0.0 0.0 \n",
"8 0.0 0.0 \n",
"9 0.0 0.0 \n",
"10 0.0 0.0 \n",
"11 0.0 0.0 \n",
"12 0.0 0.0 \n",
"13 0.0 0.0 \n",
"14 0.0 0.0 \n",
"15 0.0 0.0 \n",
"16 0.0 0.0 \n",
"17 0.0 0.0 \n",
"18 0.0 0.0 \n",
"19 0.0 0.0 \n",
"20 0.0 0.0 \n",
"21 0.0 0.0 \n",
"22 0.0 0.0 \n",
"23 0.0 0.0 \n",
"24 0.0 0.0 \n",
"25 0.0 0.0 \n",
"26 0.0 0.0 "
]
},
"execution_count": 136,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pg = [3,3,2,2,1.5,1.5] + ([1.08] * (60-6))\n",
"cumulative = np.product(pg)\n",
"\n",
"slow_1 = [2,2,2,2,1.5,1.5]\n",
"slow_2 = [1.5,1.5,1.5,1.5,1.5,1.5]\n",
"\n",
"cumulative_slow_1 = np.product(slow_1)\n",
"cumulative_slow_2 = np.product(slow_2)\n",
"\n",
"long_term_1 = (cumulative/cumulative_slow_1) ** (1/54)\n",
"long_term_2 = (cumulative/cumulative_slow_2) ** (1/54)\n",
"\n",
"pg_1 = slow_1 + ([long_term_1] * 54)\n",
"pg_2 = slow_2 + ([long_term_2] * 54)\n",
"\n",
"rates = []\n",
"\n",
"pg_rates = [pg, pg_1, pg_2]\n",
"years = [20, 40, 60]\n",
"multiples = [50,75,100]\n",
"\n",
"for i, p in enumerate(pg_rates):\n",
" for y in years:\n",
" for m in multiples:\n",
" rate_type = \"Fl: %i, M %i\" % (i, m)\n",
" final_rate = [((r-1)*(m/100)) + 1 for r in p][:y]\n",
" \n",
" rate = {\n",
" \"type\": { \"rate_type\": rate_type, \"target\": \"None\" },\n",
" \"rate\": [((r-1)*1) + 1 for r in final_rate]\n",
" }\n",
" \n",
" rates.append(rate)\n",
"\n",
"final = []\n",
"\n",
"for r in rates:\n",
" inputs = {\n",
" \"shares\": 1000000,\n",
" \"share_value\": 2,\n",
" \"wealth_tax_rate\": 0.00,\n",
" \"cap_gains_tax_rate\": 0.14,\n",
" \"growth_rate\": r['rate']\n",
" }\n",
" \n",
" result = model(inputs)\n",
" summary = summarize(result, r[\"type\"])\n",
" final.append(summary)\n",
"\n",
"df = pd.DataFrame(final)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 146,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>year</th>\n",
" <th>start_shares</th>\n",
" <th>start_share_value</th>\n",
" <th>start_wealth</th>\n",
" <th>after_growth_share_value</th>\n",
" <th>after_growth_wealth</th>\n",
" <th>wealth_increase</th>\n",
" <th>cg_tax_owed</th>\n",
" <th>cg_shares_sold</th>\n",
" <th>after_cg_tax_shares</th>\n",
" <th>after_cg_tax_wealth</th>\n",
" <th>taxable_wealth</th>\n",
" <th>wealth_tax_owed</th>\n",
" <th>wealth_shares_sold</th>\n",
" <th>end_shares</th>\n",
" <th>end_wealth</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>1000000.000000</td>\n",
" <td>2.000000</td>\n",
" <td>2.000000e+06</td>\n",
" <td>6.000000</td>\n",
" <td>6.000000e+06</td>\n",
" <td>4.000000e+06</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1000000.000000</td>\n",
" <td>6.000000e+06</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" <td>1000000.000000</td>\n",
" <td>6.000000e+06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>1000000.000000</td>\n",
" <td>6.000000</td>\n",
" <td>6.000000e+06</td>\n",
" <td>18.000000</td>\n",
" <td>1.800000e+07</td>\n",
" <td>1.200000e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1000000.000000</td>\n",
" <td>1.800000e+07</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" <td>1000000.000000</td>\n",
" <td>1.800000e+07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>1000000.000000</td>\n",
" <td>18.000000</td>\n",
" <td>1.800000e+07</td>\n",
" <td>36.000000</td>\n",
" <td>3.600000e+07</td>\n",
" <td>1.800000e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1000000.000000</td>\n",
" <td>3.600000e+07</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" <td>1000000.000000</td>\n",
" <td>3.600000e+07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3</td>\n",
" <td>1000000.000000</td>\n",
" <td>36.000000</td>\n",
" <td>3.600000e+07</td>\n",
" <td>72.000000</td>\n",
" <td>7.200000e+07</td>\n",
" <td>3.600000e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>1000000.000000</td>\n",
" <td>7.200000e+07</td>\n",
" <td>2.200000e+07</td>\n",
" <td>4.400000e+05</td>\n",
" <td>6111.111111</td>\n",
" <td>993888.888889</td>\n",
" <td>7.156000e+07</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4</td>\n",
" <td>993888.888889</td>\n",
" <td>72.000000</td>\n",
" <td>7.156000e+07</td>\n",
" <td>108.000000</td>\n",
" <td>1.073400e+08</td>\n",
" <td>3.578000e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>993888.888889</td>\n",
" <td>1.073400e+08</td>\n",
" <td>5.734000e+07</td>\n",
" <td>1.146800e+06</td>\n",
" <td>10618.518519</td>\n",
" <td>983270.370370</td>\n",
" <td>1.061932e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>5</td>\n",
" <td>983270.370370</td>\n",
" <td>108.000000</td>\n",
" <td>1.061932e+08</td>\n",
" <td>162.000000</td>\n",
" <td>1.592898e+08</td>\n",
" <td>5.309660e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>983270.370370</td>\n",
" <td>1.592898e+08</td>\n",
" <td>1.092898e+08</td>\n",
" <td>2.185796e+06</td>\n",
" <td>13492.567901</td>\n",
" <td>969777.802469</td>\n",
" <td>1.571040e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>6</td>\n",
" <td>969777.802469</td>\n",
" <td>162.000000</td>\n",
" <td>1.571040e+08</td>\n",
" <td>174.960000</td>\n",
" <td>1.696723e+08</td>\n",
" <td>1.256832e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>969777.802469</td>\n",
" <td>1.696723e+08</td>\n",
" <td>1.196723e+08</td>\n",
" <td>2.393446e+06</td>\n",
" <td>13679.963914</td>\n",
" <td>956097.838555</td>\n",
" <td>1.672789e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>7</td>\n",
" <td>956097.838555</td>\n",
" <td>174.960000</td>\n",
" <td>1.672789e+08</td>\n",
" <td>188.956800</td>\n",
" <td>1.806612e+08</td>\n",
" <td>1.338231e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>956097.838555</td>\n",
" <td>1.806612e+08</td>\n",
" <td>1.306612e+08</td>\n",
" <td>2.613224e+06</td>\n",
" <td>13829.741831</td>\n",
" <td>942268.096724</td>\n",
" <td>1.780480e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8</td>\n",
" <td>942268.096724</td>\n",
" <td>188.956800</td>\n",
" <td>1.780480e+08</td>\n",
" <td>204.073344</td>\n",
" <td>1.922918e+08</td>\n",
" <td>1.424384e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>942268.096724</td>\n",
" <td>1.922918e+08</td>\n",
" <td>1.422918e+08</td>\n",
" <td>2.845836e+06</td>\n",
" <td>13945.162916</td>\n",
" <td>928322.933808</td>\n",
" <td>1.894460e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>9</td>\n",
" <td>928322.933808</td>\n",
" <td>204.073344</td>\n",
" <td>1.894460e+08</td>\n",
" <td>220.399212</td>\n",
" <td>2.046016e+08</td>\n",
" <td>1.515568e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>928322.933808</td>\n",
" <td>2.046016e+08</td>\n",
" <td>1.546016e+08</td>\n",
" <td>3.092033e+06</td>\n",
" <td>14029.237363</td>\n",
" <td>914293.696446</td>\n",
" <td>2.015096e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>10</td>\n",
" <td>914293.696446</td>\n",
" <td>220.399212</td>\n",
" <td>2.015096e+08</td>\n",
" <td>238.031148</td>\n",
" <td>2.176304e+08</td>\n",
" <td>1.612077e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>914293.696446</td>\n",
" <td>2.176304e+08</td>\n",
" <td>1.676304e+08</td>\n",
" <td>3.352608e+06</td>\n",
" <td>14084.743083</td>\n",
" <td>900208.953363</td>\n",
" <td>2.142778e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>11</td>\n",
" <td>900208.953363</td>\n",
" <td>238.031148</td>\n",
" <td>2.142778e+08</td>\n",
" <td>257.073640</td>\n",
" <td>2.314200e+08</td>\n",
" <td>1.714222e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>900208.953363</td>\n",
" <td>2.314200e+08</td>\n",
" <td>1.814200e+08</td>\n",
" <td>3.628400e+06</td>\n",
" <td>14114.243099</td>\n",
" <td>886094.710264</td>\n",
" <td>2.277916e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>12</td>\n",
" <td>886094.710264</td>\n",
" <td>257.073640</td>\n",
" <td>2.277916e+08</td>\n",
" <td>277.639532</td>\n",
" <td>2.460149e+08</td>\n",
" <td>1.822333e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>886094.710264</td>\n",
" <td>2.460149e+08</td>\n",
" <td>1.960149e+08</td>\n",
" <td>3.920298e+06</td>\n",
" <td>14120.101642</td>\n",
" <td>871974.608622</td>\n",
" <td>2.420946e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>13</td>\n",
" <td>871974.608622</td>\n",
" <td>277.639532</td>\n",
" <td>2.420946e+08</td>\n",
" <td>299.850694</td>\n",
" <td>2.614622e+08</td>\n",
" <td>1.936757e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>871974.608622</td>\n",
" <td>2.614622e+08</td>\n",
" <td>2.114622e+08</td>\n",
" <td>4.229244e+06</td>\n",
" <td>14104.499058</td>\n",
" <td>857870.109564</td>\n",
" <td>2.572329e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>14</td>\n",
" <td>857870.109564</td>\n",
" <td>299.850694</td>\n",
" <td>2.572329e+08</td>\n",
" <td>323.838750</td>\n",
" <td>2.778116e+08</td>\n",
" <td>2.057864e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>857870.109564</td>\n",
" <td>2.778116e+08</td>\n",
" <td>2.278116e+08</td>\n",
" <td>4.556232e+06</td>\n",
" <td>14069.445604</td>\n",
" <td>843800.663960</td>\n",
" <td>2.732554e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>15</td>\n",
" <td>843800.663960</td>\n",
" <td>323.838750</td>\n",
" <td>2.732554e+08</td>\n",
" <td>349.745850</td>\n",
" <td>2.951158e+08</td>\n",
" <td>2.186043e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>843800.663960</td>\n",
" <td>2.951158e+08</td>\n",
" <td>2.451158e+08</td>\n",
" <td>4.902316e+06</td>\n",
" <td>14016.794217</td>\n",
" <td>829783.869743</td>\n",
" <td>2.902135e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>16</td>\n",
" <td>829783.869743</td>\n",
" <td>349.745850</td>\n",
" <td>2.902135e+08</td>\n",
" <td>377.725518</td>\n",
" <td>3.134305e+08</td>\n",
" <td>2.321708e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>829783.869743</td>\n",
" <td>3.134305e+08</td>\n",
" <td>2.634305e+08</td>\n",
" <td>5.268611e+06</td>\n",
" <td>13948.252337</td>\n",
" <td>815835.617405</td>\n",
" <td>3.081619e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>17</td>\n",
" <td>815835.617405</td>\n",
" <td>377.725518</td>\n",
" <td>3.081619e+08</td>\n",
" <td>407.943559</td>\n",
" <td>3.328149e+08</td>\n",
" <td>2.465295e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>815835.617405</td>\n",
" <td>3.328149e+08</td>\n",
" <td>2.828149e+08</td>\n",
" <td>5.656298e+06</td>\n",
" <td>13865.392850</td>\n",
" <td>801970.224555</td>\n",
" <td>3.271586e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>18</td>\n",
" <td>801970.224555</td>\n",
" <td>407.943559</td>\n",
" <td>3.271586e+08</td>\n",
" <td>440.579044</td>\n",
" <td>3.533313e+08</td>\n",
" <td>2.617269e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>801970.224555</td>\n",
" <td>3.533313e+08</td>\n",
" <td>3.033313e+08</td>\n",
" <td>6.066625e+06</td>\n",
" <td>13769.664215</td>\n",
" <td>788200.560340</td>\n",
" <td>3.472646e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>19</td>\n",
" <td>788200.560340</td>\n",
" <td>440.579044</td>\n",
" <td>3.472646e+08</td>\n",
" <td>475.825367</td>\n",
" <td>3.750458e+08</td>\n",
" <td>2.778117e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>788200.560340</td>\n",
" <td>3.750458e+08</td>\n",
" <td>3.250458e+08</td>\n",
" <td>6.500916e+06</td>\n",
" <td>13662.399840</td>\n",
" <td>774538.160499</td>\n",
" <td>3.685449e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>20</td>\n",
" <td>774538.160499</td>\n",
" <td>475.825367</td>\n",
" <td>3.685449e+08</td>\n",
" <td>513.891397</td>\n",
" <td>3.980285e+08</td>\n",
" <td>2.948359e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>774538.160499</td>\n",
" <td>3.980285e+08</td>\n",
" <td>3.480285e+08</td>\n",
" <td>6.960570e+06</td>\n",
" <td>13544.826760</td>\n",
" <td>760993.333740</td>\n",
" <td>3.910679e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>21</td>\n",
" <td>760993.333740</td>\n",
" <td>513.891397</td>\n",
" <td>3.910679e+08</td>\n",
" <td>555.002708</td>\n",
" <td>4.223534e+08</td>\n",
" <td>3.128543e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>760993.333740</td>\n",
" <td>4.223534e+08</td>\n",
" <td>3.723534e+08</td>\n",
" <td>7.447067e+06</td>\n",
" <td>13418.073665</td>\n",
" <td>747575.260075</td>\n",
" <td>4.149063e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>22</td>\n",
" <td>747575.260075</td>\n",
" <td>555.002708</td>\n",
" <td>4.149063e+08</td>\n",
" <td>599.402925</td>\n",
" <td>4.480988e+08</td>\n",
" <td>3.319250e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>747575.260075</td>\n",
" <td>4.480988e+08</td>\n",
" <td>3.980988e+08</td>\n",
" <td>7.961976e+06</td>\n",
" <td>13283.178341</td>\n",
" <td>734292.081734</td>\n",
" <td>4.401368e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>23</td>\n",
" <td>734292.081734</td>\n",
" <td>599.402925</td>\n",
" <td>4.401368e+08</td>\n",
" <td>647.355159</td>\n",
" <td>4.753478e+08</td>\n",
" <td>3.521095e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>734292.081734</td>\n",
" <td>4.753478e+08</td>\n",
" <td>4.253478e+08</td>\n",
" <td>8.506955e+06</td>\n",
" <td>13141.094541</td>\n",
" <td>721150.987193</td>\n",
" <td>4.668408e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>24</td>\n",
" <td>721150.987193</td>\n",
" <td>647.355159</td>\n",
" <td>4.668408e+08</td>\n",
" <td>699.143572</td>\n",
" <td>5.041881e+08</td>\n",
" <td>3.734726e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>721150.987193</td>\n",
" <td>5.041881e+08</td>\n",
" <td>4.541881e+08</td>\n",
" <td>9.083762e+06</td>\n",
" <td>12992.698361</td>\n",
" <td>708158.288831</td>\n",
" <td>4.951043e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>25</td>\n",
" <td>708158.288831</td>\n",
" <td>699.143572</td>\n",
" <td>4.951043e+08</td>\n",
" <td>755.075057</td>\n",
" <td>5.347127e+08</td>\n",
" <td>3.960835e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>708158.288831</td>\n",
" <td>5.347127e+08</td>\n",
" <td>4.847127e+08</td>\n",
" <td>9.694253e+06</td>\n",
" <td>12838.794126</td>\n",
" <td>695319.494705</td>\n",
" <td>5.250184e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>26</td>\n",
" <td>695319.494705</td>\n",
" <td>755.075057</td>\n",
" <td>5.250184e+08</td>\n",
" <td>815.481062</td>\n",
" <td>5.670199e+08</td>\n",
" <td>4.200147e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>695319.494705</td>\n",
" <td>5.670199e+08</td>\n",
" <td>5.170199e+08</td>\n",
" <td>1.034040e+07</td>\n",
" <td>12680.119847</td>\n",
" <td>682639.374858</td>\n",
" <td>5.566795e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>27</td>\n",
" <td>682639.374858</td>\n",
" <td>815.481062</td>\n",
" <td>5.566795e+08</td>\n",
" <td>880.719547</td>\n",
" <td>6.012138e+08</td>\n",
" <td>4.453436e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>682639.374858</td>\n",
" <td>6.012138e+08</td>\n",
" <td>5.512138e+08</td>\n",
" <td>1.102428e+07</td>\n",
" <td>12517.352269</td>\n",
" <td>670122.022590</td>\n",
" <td>5.901896e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>28</td>\n",
" <td>670122.022590</td>\n",
" <td>880.719547</td>\n",
" <td>5.901896e+08</td>\n",
" <td>951.177111</td>\n",
" <td>6.374047e+08</td>\n",
" <td>4.721517e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>670122.022590</td>\n",
" <td>6.374047e+08</td>\n",
" <td>5.874047e+08</td>\n",
" <td>1.174809e+07</td>\n",
" <td>12351.111536</td>\n",
" <td>657770.911053</td>\n",
" <td>6.256566e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>29</td>\n",
" <td>657770.911053</td>\n",
" <td>951.177111</td>\n",
" <td>6.256566e+08</td>\n",
" <td>1027.271279</td>\n",
" <td>6.757092e+08</td>\n",
" <td>5.005253e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>657770.911053</td>\n",
" <td>6.757092e+08</td>\n",
" <td>6.257092e+08</td>\n",
" <td>1.251418e+07</td>\n",
" <td>12181.965522</td>\n",
" <td>645588.945532</td>\n",
" <td>6.631950e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>30</td>\n",
" <td>645588.945532</td>\n",
" <td>1027.271279</td>\n",
" <td>6.631950e+08</td>\n",
" <td>1109.452982</td>\n",
" <td>7.162506e+08</td>\n",
" <td>5.305560e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>645588.945532</td>\n",
" <td>7.162506e+08</td>\n",
" <td>6.662506e+08</td>\n",
" <td>1.332501e+07</td>\n",
" <td>12010.433819</td>\n",
" <td>633578.511713</td>\n",
" <td>7.029256e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>31</td>\n",
" <td>633578.511713</td>\n",
" <td>1109.452982</td>\n",
" <td>7.029256e+08</td>\n",
" <td>1198.209220</td>\n",
" <td>7.591596e+08</td>\n",
" <td>5.623405e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>633578.511713</td>\n",
" <td>7.591596e+08</td>\n",
" <td>7.091596e+08</td>\n",
" <td>1.418319e+07</td>\n",
" <td>11836.991445</td>\n",
" <td>621741.520268</td>\n",
" <td>7.449764e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>32</td>\n",
" <td>621741.520268</td>\n",
" <td>1198.209220</td>\n",
" <td>7.449764e+08</td>\n",
" <td>1294.065958</td>\n",
" <td>8.045745e+08</td>\n",
" <td>5.959811e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>621741.520268</td>\n",
" <td>8.045745e+08</td>\n",
" <td>7.545745e+08</td>\n",
" <td>1.509149e+07</td>\n",
" <td>11662.072267</td>\n",
" <td>610079.448000</td>\n",
" <td>7.894830e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>33</th>\n",
" <td>33</td>\n",
" <td>610079.448000</td>\n",
" <td>1294.065958</td>\n",
" <td>7.894830e+08</td>\n",
" <td>1397.591235</td>\n",
" <td>8.526417e+08</td>\n",
" <td>6.315864e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>610079.448000</td>\n",
" <td>8.526417e+08</td>\n",
" <td>8.026417e+08</td>\n",
" <td>1.605283e+07</td>\n",
" <td>11486.072166</td>\n",
" <td>598593.375835</td>\n",
" <td>8.365889e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>34</th>\n",
" <td>34</td>\n",
" <td>598593.375835</td>\n",
" <td>1397.591235</td>\n",
" <td>8.365889e+08</td>\n",
" <td>1509.398533</td>\n",
" <td>9.035160e+08</td>\n",
" <td>6.692711e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>598593.375835</td>\n",
" <td>9.035160e+08</td>\n",
" <td>8.535160e+08</td>\n",
" <td>1.707032e+07</td>\n",
" <td>11309.351966</td>\n",
" <td>587284.023868</td>\n",
" <td>8.864456e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>35</th>\n",
" <td>35</td>\n",
" <td>587284.023868</td>\n",
" <td>1509.398533</td>\n",
" <td>8.864456e+08</td>\n",
" <td>1630.150416</td>\n",
" <td>9.573613e+08</td>\n",
" <td>7.091565e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>587284.023868</td>\n",
" <td>9.573613e+08</td>\n",
" <td>9.073613e+08</td>\n",
" <td>1.814723e+07</td>\n",
" <td>11132.240153</td>\n",
" <td>576151.783715</td>\n",
" <td>9.392141e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>36</th>\n",
" <td>36</td>\n",
" <td>576151.783715</td>\n",
" <td>1630.150416</td>\n",
" <td>9.392141e+08</td>\n",
" <td>1760.562449</td>\n",
" <td>1.014351e+09</td>\n",
" <td>7.513713e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>576151.783715</td>\n",
" <td>1.014351e+09</td>\n",
" <td>9.643512e+08</td>\n",
" <td>1.928702e+07</td>\n",
" <td>10955.035374</td>\n",
" <td>565196.748341</td>\n",
" <td>9.950642e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>37</th>\n",
" <td>37</td>\n",
" <td>565196.748341</td>\n",
" <td>1760.562449</td>\n",
" <td>9.950642e+08</td>\n",
" <td>1901.407445</td>\n",
" <td>1.074669e+09</td>\n",
" <td>7.960513e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>565196.748341</td>\n",
" <td>1.074669e+09</td>\n",
" <td>1.024669e+09</td>\n",
" <td>2.049339e+07</td>\n",
" <td>10778.008763</td>\n",
" <td>554418.739579</td>\n",
" <td>1.054176e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>38</th>\n",
" <td>38</td>\n",
" <td>554418.739579</td>\n",
" <td>1901.407445</td>\n",
" <td>1.054176e+09</td>\n",
" <td>2053.520041</td>\n",
" <td>1.138510e+09</td>\n",
" <td>8.433407e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>554418.739579</td>\n",
" <td>1.138510e+09</td>\n",
" <td>1.088510e+09</td>\n",
" <td>2.177020e+07</td>\n",
" <td>10601.406084</td>\n",
" <td>543817.333494</td>\n",
" <td>1.116740e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>39</th>\n",
" <td>39</td>\n",
" <td>543817.333494</td>\n",
" <td>2053.520041</td>\n",
" <td>1.116740e+09</td>\n",
" <td>2217.801644</td>\n",
" <td>1.206079e+09</td>\n",
" <td>8.933918e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>543817.333494</td>\n",
" <td>1.206079e+09</td>\n",
" <td>1.156079e+09</td>\n",
" <td>2.312158e+07</td>\n",
" <td>10425.449719</td>\n",
" <td>533391.883776</td>\n",
" <td>1.182957e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>40</td>\n",
" <td>533391.883776</td>\n",
" <td>2217.801644</td>\n",
" <td>1.182957e+09</td>\n",
" <td>2395.225776</td>\n",
" <td>1.277594e+09</td>\n",
" <td>9.463659e+07</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>533391.883776</td>\n",
" <td>1.277594e+09</td>\n",
" <td>1.227594e+09</td>\n",
" <td>2.455188e+07</td>\n",
" <td>10250.340498</td>\n",
" <td>523141.543277</td>\n",
" <td>1.253042e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>41</th>\n",
" <td>41</td>\n",
" <td>523141.543277</td>\n",
" <td>2395.225776</td>\n",
" <td>1.253042e+09</td>\n",
" <td>2586.843838</td>\n",
" <td>1.353285e+09</td>\n",
" <td>1.002434e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>523141.543277</td>\n",
" <td>1.353285e+09</td>\n",
" <td>1.303285e+09</td>\n",
" <td>2.606571e+07</td>\n",
" <td>10076.259405</td>\n",
" <td>513065.283872</td>\n",
" <td>1.327220e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>42</th>\n",
" <td>42</td>\n",
" <td>513065.283872</td>\n",
" <td>2586.843838</td>\n",
" <td>1.327220e+09</td>\n",
" <td>2793.791345</td>\n",
" <td>1.433397e+09</td>\n",
" <td>1.061776e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>513065.283872</td>\n",
" <td>1.433397e+09</td>\n",
" <td>1.383397e+09</td>\n",
" <td>2.766795e+07</td>\n",
" <td>9903.369140</td>\n",
" <td>503161.914732</td>\n",
" <td>1.405729e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>43</th>\n",
" <td>43</td>\n",
" <td>503161.914732</td>\n",
" <td>2793.791345</td>\n",
" <td>1.405729e+09</td>\n",
" <td>3017.294652</td>\n",
" <td>1.518188e+09</td>\n",
" <td>1.124584e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>503161.914732</td>\n",
" <td>1.518188e+09</td>\n",
" <td>1.468188e+09</td>\n",
" <td>2.936376e+07</td>\n",
" <td>9731.815575</td>\n",
" <td>493430.099157</td>\n",
" <td>1.488824e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>44</th>\n",
" <td>44</td>\n",
" <td>493430.099157</td>\n",
" <td>3017.294652</td>\n",
" <td>1.488824e+09</td>\n",
" <td>3258.678225</td>\n",
" <td>1.607930e+09</td>\n",
" <td>1.191059e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>493430.099157</td>\n",
" <td>1.607930e+09</td>\n",
" <td>1.557930e+09</td>\n",
" <td>3.115860e+07</td>\n",
" <td>9561.729094</td>\n",
" <td>483868.370063</td>\n",
" <td>1.576771e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>45</th>\n",
" <td>45</td>\n",
" <td>483868.370063</td>\n",
" <td>3258.678225</td>\n",
" <td>1.576771e+09</td>\n",
" <td>3519.372482</td>\n",
" <td>1.702913e+09</td>\n",
" <td>1.261417e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>483868.370063</td>\n",
" <td>1.702913e+09</td>\n",
" <td>1.652913e+09</td>\n",
" <td>3.305826e+07</td>\n",
" <td>9393.225838</td>\n",
" <td>474475.144225</td>\n",
" <td>1.669855e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>46</th>\n",
" <td>46</td>\n",
" <td>474475.144225</td>\n",
" <td>3519.372482</td>\n",
" <td>1.669855e+09</td>\n",
" <td>3800.922281</td>\n",
" <td>1.803443e+09</td>\n",
" <td>1.335884e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>474475.144225</td>\n",
" <td>1.803443e+09</td>\n",
" <td>1.753443e+09</td>\n",
" <td>3.506886e+07</td>\n",
" <td>9226.408844</td>\n",
" <td>465248.735381</td>\n",
" <td>1.768374e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47</th>\n",
" <td>47</td>\n",
" <td>465248.735381</td>\n",
" <td>3800.922281</td>\n",
" <td>1.768374e+09</td>\n",
" <td>4104.996064</td>\n",
" <td>1.909844e+09</td>\n",
" <td>1.414699e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>465248.735381</td>\n",
" <td>1.909844e+09</td>\n",
" <td>1.859844e+09</td>\n",
" <td>3.719688e+07</td>\n",
" <td>9061.369115</td>\n",
" <td>456187.366266</td>\n",
" <td>1.872647e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>48</th>\n",
" <td>48</td>\n",
" <td>456187.366266</td>\n",
" <td>4104.996064</td>\n",
" <td>1.872647e+09</td>\n",
" <td>4433.395749</td>\n",
" <td>2.022459e+09</td>\n",
" <td>1.498118e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>456187.366266</td>\n",
" <td>2.022459e+09</td>\n",
" <td>1.972459e+09</td>\n",
" <td>3.944918e+07</td>\n",
" <td>8898.186591</td>\n",
" <td>447289.179675</td>\n",
" <td>1.983010e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>49</td>\n",
" <td>447289.179675</td>\n",
" <td>4433.395749</td>\n",
" <td>1.983010e+09</td>\n",
" <td>4788.067409</td>\n",
" <td>2.141651e+09</td>\n",
" <td>1.586408e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>447289.179675</td>\n",
" <td>2.141651e+09</td>\n",
" <td>2.091651e+09</td>\n",
" <td>4.183301e+07</td>\n",
" <td>8736.931062</td>\n",
" <td>438552.248613</td>\n",
" <td>2.099818e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50</th>\n",
" <td>50</td>\n",
" <td>438552.248613</td>\n",
" <td>4788.067409</td>\n",
" <td>2.099818e+09</td>\n",
" <td>5171.112801</td>\n",
" <td>2.267803e+09</td>\n",
" <td>1.679854e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>438552.248613</td>\n",
" <td>2.267803e+09</td>\n",
" <td>2.217803e+09</td>\n",
" <td>4.435606e+07</td>\n",
" <td>8577.662999</td>\n",
" <td>429974.585615</td>\n",
" <td>2.223447e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>51</th>\n",
" <td>51</td>\n",
" <td>429974.585615</td>\n",
" <td>5171.112801</td>\n",
" <td>2.223447e+09</td>\n",
" <td>5584.801825</td>\n",
" <td>2.401323e+09</td>\n",
" <td>1.778758e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>429974.585615</td>\n",
" <td>2.401323e+09</td>\n",
" <td>2.351323e+09</td>\n",
" <td>4.702646e+07</td>\n",
" <td>8420.434329</td>\n",
" <td>421554.151286</td>\n",
" <td>2.354296e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>52</th>\n",
" <td>52</td>\n",
" <td>421554.151286</td>\n",
" <td>5584.801825</td>\n",
" <td>2.354296e+09</td>\n",
" <td>6031.585971</td>\n",
" <td>2.542640e+09</td>\n",
" <td>1.883437e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>421554.151286</td>\n",
" <td>2.542640e+09</td>\n",
" <td>2.492640e+09</td>\n",
" <td>4.985280e+07</td>\n",
" <td>8265.289152</td>\n",
" <td>413288.862133</td>\n",
" <td>2.492787e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>53</th>\n",
" <td>53</td>\n",
" <td>413288.862133</td>\n",
" <td>6031.585971</td>\n",
" <td>2.492787e+09</td>\n",
" <td>6514.112849</td>\n",
" <td>2.692210e+09</td>\n",
" <td>1.994230e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>413288.862133</td>\n",
" <td>2.692210e+09</td>\n",
" <td>2.642210e+09</td>\n",
" <td>5.284421e+07</td>\n",
" <td>8112.264397</td>\n",
" <td>405176.597736</td>\n",
" <td>2.639366e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>54</td>\n",
" <td>405176.597736</td>\n",
" <td>6514.112849</td>\n",
" <td>2.639366e+09</td>\n",
" <td>7035.241877</td>\n",
" <td>2.850515e+09</td>\n",
" <td>2.111493e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>405176.597736</td>\n",
" <td>2.850515e+09</td>\n",
" <td>2.800515e+09</td>\n",
" <td>5.601031e+07</td>\n",
" <td>7961.390431</td>\n",
" <td>397215.207305</td>\n",
" <td>2.794505e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>55</th>\n",
" <td>55</td>\n",
" <td>397215.207305</td>\n",
" <td>7035.241877</td>\n",
" <td>2.794505e+09</td>\n",
" <td>7598.061227</td>\n",
" <td>3.018065e+09</td>\n",
" <td>2.235604e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>397215.207305</td>\n",
" <td>3.018065e+09</td>\n",
" <td>2.968065e+09</td>\n",
" <td>5.936131e+07</td>\n",
" <td>7812.691624</td>\n",
" <td>389402.515681</td>\n",
" <td>2.958704e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>56</th>\n",
" <td>56</td>\n",
" <td>389402.515681</td>\n",
" <td>7598.061227</td>\n",
" <td>2.958704e+09</td>\n",
" <td>8205.906125</td>\n",
" <td>3.195400e+09</td>\n",
" <td>2.366963e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>389402.515681</td>\n",
" <td>3.195400e+09</td>\n",
" <td>3.145400e+09</td>\n",
" <td>6.290801e+07</td>\n",
" <td>7666.186867</td>\n",
" <td>381736.328814</td>\n",
" <td>3.132492e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>57</td>\n",
" <td>381736.328814</td>\n",
" <td>8205.906125</td>\n",
" <td>3.132492e+09</td>\n",
" <td>8862.378615</td>\n",
" <td>3.383092e+09</td>\n",
" <td>2.505994e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>381736.328814</td>\n",
" <td>3.383092e+09</td>\n",
" <td>3.333092e+09</td>\n",
" <td>6.666184e+07</td>\n",
" <td>7521.890052</td>\n",
" <td>374214.438762</td>\n",
" <td>3.316430e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>58</th>\n",
" <td>58</td>\n",
" <td>374214.438762</td>\n",
" <td>8862.378615</td>\n",
" <td>3.316430e+09</td>\n",
" <td>9571.368905</td>\n",
" <td>3.581744e+09</td>\n",
" <td>2.653144e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>374214.438762</td>\n",
" <td>3.581744e+09</td>\n",
" <td>3.531744e+09</td>\n",
" <td>7.063489e+07</td>\n",
" <td>7379.810512</td>\n",
" <td>366834.628250</td>\n",
" <td>3.511110e+09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>59</td>\n",
" <td>366834.628250</td>\n",
" <td>9571.368905</td>\n",
" <td>3.511110e+09</td>\n",
" <td>10337.078417</td>\n",
" <td>3.791998e+09</td>\n",
" <td>2.808888e+08</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>366834.628250</td>\n",
" <td>3.791998e+09</td>\n",
" <td>3.741998e+09</td>\n",
" <td>7.483997e+07</td>\n",
" <td>7239.953432</td>\n",
" <td>359594.674817</td>\n",
" <td>3.717158e+09</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" year start_shares start_share_value start_wealth \\\n",
"0 0 1000000.000000 2.000000 2.000000e+06 \n",
"1 1 1000000.000000 6.000000 6.000000e+06 \n",
"2 2 1000000.000000 18.000000 1.800000e+07 \n",
"3 3 1000000.000000 36.000000 3.600000e+07 \n",
"4 4 993888.888889 72.000000 7.156000e+07 \n",
"5 5 983270.370370 108.000000 1.061932e+08 \n",
"6 6 969777.802469 162.000000 1.571040e+08 \n",
"7 7 956097.838555 174.960000 1.672789e+08 \n",
"8 8 942268.096724 188.956800 1.780480e+08 \n",
"9 9 928322.933808 204.073344 1.894460e+08 \n",
"10 10 914293.696446 220.399212 2.015096e+08 \n",
"11 11 900208.953363 238.031148 2.142778e+08 \n",
"12 12 886094.710264 257.073640 2.277916e+08 \n",
"13 13 871974.608622 277.639532 2.420946e+08 \n",
"14 14 857870.109564 299.850694 2.572329e+08 \n",
"15 15 843800.663960 323.838750 2.732554e+08 \n",
"16 16 829783.869743 349.745850 2.902135e+08 \n",
"17 17 815835.617405 377.725518 3.081619e+08 \n",
"18 18 801970.224555 407.943559 3.271586e+08 \n",
"19 19 788200.560340 440.579044 3.472646e+08 \n",
"20 20 774538.160499 475.825367 3.685449e+08 \n",
"21 21 760993.333740 513.891397 3.910679e+08 \n",
"22 22 747575.260075 555.002708 4.149063e+08 \n",
"23 23 734292.081734 599.402925 4.401368e+08 \n",
"24 24 721150.987193 647.355159 4.668408e+08 \n",
"25 25 708158.288831 699.143572 4.951043e+08 \n",
"26 26 695319.494705 755.075057 5.250184e+08 \n",
"27 27 682639.374858 815.481062 5.566795e+08 \n",
"28 28 670122.022590 880.719547 5.901896e+08 \n",
"29 29 657770.911053 951.177111 6.256566e+08 \n",
"30 30 645588.945532 1027.271279 6.631950e+08 \n",
"31 31 633578.511713 1109.452982 7.029256e+08 \n",
"32 32 621741.520268 1198.209220 7.449764e+08 \n",
"33 33 610079.448000 1294.065958 7.894830e+08 \n",
"34 34 598593.375835 1397.591235 8.365889e+08 \n",
"35 35 587284.023868 1509.398533 8.864456e+08 \n",
"36 36 576151.783715 1630.150416 9.392141e+08 \n",
"37 37 565196.748341 1760.562449 9.950642e+08 \n",
"38 38 554418.739579 1901.407445 1.054176e+09 \n",
"39 39 543817.333494 2053.520041 1.116740e+09 \n",
"40 40 533391.883776 2217.801644 1.182957e+09 \n",
"41 41 523141.543277 2395.225776 1.253042e+09 \n",
"42 42 513065.283872 2586.843838 1.327220e+09 \n",
"43 43 503161.914732 2793.791345 1.405729e+09 \n",
"44 44 493430.099157 3017.294652 1.488824e+09 \n",
"45 45 483868.370063 3258.678225 1.576771e+09 \n",
"46 46 474475.144225 3519.372482 1.669855e+09 \n",
"47 47 465248.735381 3800.922281 1.768374e+09 \n",
"48 48 456187.366266 4104.996064 1.872647e+09 \n",
"49 49 447289.179675 4433.395749 1.983010e+09 \n",
"50 50 438552.248613 4788.067409 2.099818e+09 \n",
"51 51 429974.585615 5171.112801 2.223447e+09 \n",
"52 52 421554.151286 5584.801825 2.354296e+09 \n",
"53 53 413288.862133 6031.585971 2.492787e+09 \n",
"54 54 405176.597736 6514.112849 2.639366e+09 \n",
"55 55 397215.207305 7035.241877 2.794505e+09 \n",
"56 56 389402.515681 7598.061227 2.958704e+09 \n",
"57 57 381736.328814 8205.906125 3.132492e+09 \n",
"58 58 374214.438762 8862.378615 3.316430e+09 \n",
"59 59 366834.628250 9571.368905 3.511110e+09 \n",
"\n",
" after_growth_share_value after_growth_wealth wealth_increase \\\n",
"0 6.000000 6.000000e+06 4.000000e+06 \n",
"1 18.000000 1.800000e+07 1.200000e+07 \n",
"2 36.000000 3.600000e+07 1.800000e+07 \n",
"3 72.000000 7.200000e+07 3.600000e+07 \n",
"4 108.000000 1.073400e+08 3.578000e+07 \n",
"5 162.000000 1.592898e+08 5.309660e+07 \n",
"6 174.960000 1.696723e+08 1.256832e+07 \n",
"7 188.956800 1.806612e+08 1.338231e+07 \n",
"8 204.073344 1.922918e+08 1.424384e+07 \n",
"9 220.399212 2.046016e+08 1.515568e+07 \n",
"10 238.031148 2.176304e+08 1.612077e+07 \n",
"11 257.073640 2.314200e+08 1.714222e+07 \n",
"12 277.639532 2.460149e+08 1.822333e+07 \n",
"13 299.850694 2.614622e+08 1.936757e+07 \n",
"14 323.838750 2.778116e+08 2.057864e+07 \n",
"15 349.745850 2.951158e+08 2.186043e+07 \n",
"16 377.725518 3.134305e+08 2.321708e+07 \n",
"17 407.943559 3.328149e+08 2.465295e+07 \n",
"18 440.579044 3.533313e+08 2.617269e+07 \n",
"19 475.825367 3.750458e+08 2.778117e+07 \n",
"20 513.891397 3.980285e+08 2.948359e+07 \n",
"21 555.002708 4.223534e+08 3.128543e+07 \n",
"22 599.402925 4.480988e+08 3.319250e+07 \n",
"23 647.355159 4.753478e+08 3.521095e+07 \n",
"24 699.143572 5.041881e+08 3.734726e+07 \n",
"25 755.075057 5.347127e+08 3.960835e+07 \n",
"26 815.481062 5.670199e+08 4.200147e+07 \n",
"27 880.719547 6.012138e+08 4.453436e+07 \n",
"28 951.177111 6.374047e+08 4.721517e+07 \n",
"29 1027.271279 6.757092e+08 5.005253e+07 \n",
"30 1109.452982 7.162506e+08 5.305560e+07 \n",
"31 1198.209220 7.591596e+08 5.623405e+07 \n",
"32 1294.065958 8.045745e+08 5.959811e+07 \n",
"33 1397.591235 8.526417e+08 6.315864e+07 \n",
"34 1509.398533 9.035160e+08 6.692711e+07 \n",
"35 1630.150416 9.573613e+08 7.091565e+07 \n",
"36 1760.562449 1.014351e+09 7.513713e+07 \n",
"37 1901.407445 1.074669e+09 7.960513e+07 \n",
"38 2053.520041 1.138510e+09 8.433407e+07 \n",
"39 2217.801644 1.206079e+09 8.933918e+07 \n",
"40 2395.225776 1.277594e+09 9.463659e+07 \n",
"41 2586.843838 1.353285e+09 1.002434e+08 \n",
"42 2793.791345 1.433397e+09 1.061776e+08 \n",
"43 3017.294652 1.518188e+09 1.124584e+08 \n",
"44 3258.678225 1.607930e+09 1.191059e+08 \n",
"45 3519.372482 1.702913e+09 1.261417e+08 \n",
"46 3800.922281 1.803443e+09 1.335884e+08 \n",
"47 4104.996064 1.909844e+09 1.414699e+08 \n",
"48 4433.395749 2.022459e+09 1.498118e+08 \n",
"49 4788.067409 2.141651e+09 1.586408e+08 \n",
"50 5171.112801 2.267803e+09 1.679854e+08 \n",
"51 5584.801825 2.401323e+09 1.778758e+08 \n",
"52 6031.585971 2.542640e+09 1.883437e+08 \n",
"53 6514.112849 2.692210e+09 1.994230e+08 \n",
"54 7035.241877 2.850515e+09 2.111493e+08 \n",
"55 7598.061227 3.018065e+09 2.235604e+08 \n",
"56 8205.906125 3.195400e+09 2.366963e+08 \n",
"57 8862.378615 3.383092e+09 2.505994e+08 \n",
"58 9571.368905 3.581744e+09 2.653144e+08 \n",
"59 10337.078417 3.791998e+09 2.808888e+08 \n",
"\n",
" cg_tax_owed cg_shares_sold after_cg_tax_shares after_cg_tax_wealth \\\n",
"0 0.0 0.0 1000000.000000 6.000000e+06 \n",
"1 0.0 0.0 1000000.000000 1.800000e+07 \n",
"2 0.0 0.0 1000000.000000 3.600000e+07 \n",
"3 0.0 0.0 1000000.000000 7.200000e+07 \n",
"4 0.0 0.0 993888.888889 1.073400e+08 \n",
"5 0.0 0.0 983270.370370 1.592898e+08 \n",
"6 0.0 0.0 969777.802469 1.696723e+08 \n",
"7 0.0 0.0 956097.838555 1.806612e+08 \n",
"8 0.0 0.0 942268.096724 1.922918e+08 \n",
"9 0.0 0.0 928322.933808 2.046016e+08 \n",
"10 0.0 0.0 914293.696446 2.176304e+08 \n",
"11 0.0 0.0 900208.953363 2.314200e+08 \n",
"12 0.0 0.0 886094.710264 2.460149e+08 \n",
"13 0.0 0.0 871974.608622 2.614622e+08 \n",
"14 0.0 0.0 857870.109564 2.778116e+08 \n",
"15 0.0 0.0 843800.663960 2.951158e+08 \n",
"16 0.0 0.0 829783.869743 3.134305e+08 \n",
"17 0.0 0.0 815835.617405 3.328149e+08 \n",
"18 0.0 0.0 801970.224555 3.533313e+08 \n",
"19 0.0 0.0 788200.560340 3.750458e+08 \n",
"20 0.0 0.0 774538.160499 3.980285e+08 \n",
"21 0.0 0.0 760993.333740 4.223534e+08 \n",
"22 0.0 0.0 747575.260075 4.480988e+08 \n",
"23 0.0 0.0 734292.081734 4.753478e+08 \n",
"24 0.0 0.0 721150.987193 5.041881e+08 \n",
"25 0.0 0.0 708158.288831 5.347127e+08 \n",
"26 0.0 0.0 695319.494705 5.670199e+08 \n",
"27 0.0 0.0 682639.374858 6.012138e+08 \n",
"28 0.0 0.0 670122.022590 6.374047e+08 \n",
"29 0.0 0.0 657770.911053 6.757092e+08 \n",
"30 0.0 0.0 645588.945532 7.162506e+08 \n",
"31 0.0 0.0 633578.511713 7.591596e+08 \n",
"32 0.0 0.0 621741.520268 8.045745e+08 \n",
"33 0.0 0.0 610079.448000 8.526417e+08 \n",
"34 0.0 0.0 598593.375835 9.035160e+08 \n",
"35 0.0 0.0 587284.023868 9.573613e+08 \n",
"36 0.0 0.0 576151.783715 1.014351e+09 \n",
"37 0.0 0.0 565196.748341 1.074669e+09 \n",
"38 0.0 0.0 554418.739579 1.138510e+09 \n",
"39 0.0 0.0 543817.333494 1.206079e+09 \n",
"40 0.0 0.0 533391.883776 1.277594e+09 \n",
"41 0.0 0.0 523141.543277 1.353285e+09 \n",
"42 0.0 0.0 513065.283872 1.433397e+09 \n",
"43 0.0 0.0 503161.914732 1.518188e+09 \n",
"44 0.0 0.0 493430.099157 1.607930e+09 \n",
"45 0.0 0.0 483868.370063 1.702913e+09 \n",
"46 0.0 0.0 474475.144225 1.803443e+09 \n",
"47 0.0 0.0 465248.735381 1.909844e+09 \n",
"48 0.0 0.0 456187.366266 2.022459e+09 \n",
"49 0.0 0.0 447289.179675 2.141651e+09 \n",
"50 0.0 0.0 438552.248613 2.267803e+09 \n",
"51 0.0 0.0 429974.585615 2.401323e+09 \n",
"52 0.0 0.0 421554.151286 2.542640e+09 \n",
"53 0.0 0.0 413288.862133 2.692210e+09 \n",
"54 0.0 0.0 405176.597736 2.850515e+09 \n",
"55 0.0 0.0 397215.207305 3.018065e+09 \n",
"56 0.0 0.0 389402.515681 3.195400e+09 \n",
"57 0.0 0.0 381736.328814 3.383092e+09 \n",
"58 0.0 0.0 374214.438762 3.581744e+09 \n",
"59 0.0 0.0 366834.628250 3.791998e+09 \n",
"\n",
" taxable_wealth wealth_tax_owed wealth_shares_sold end_shares \\\n",
"0 0.000000e+00 0.000000e+00 0.000000 1000000.000000 \n",
"1 0.000000e+00 0.000000e+00 0.000000 1000000.000000 \n",
"2 0.000000e+00 0.000000e+00 0.000000 1000000.000000 \n",
"3 2.200000e+07 4.400000e+05 6111.111111 993888.888889 \n",
"4 5.734000e+07 1.146800e+06 10618.518519 983270.370370 \n",
"5 1.092898e+08 2.185796e+06 13492.567901 969777.802469 \n",
"6 1.196723e+08 2.393446e+06 13679.963914 956097.838555 \n",
"7 1.306612e+08 2.613224e+06 13829.741831 942268.096724 \n",
"8 1.422918e+08 2.845836e+06 13945.162916 928322.933808 \n",
"9 1.546016e+08 3.092033e+06 14029.237363 914293.696446 \n",
"10 1.676304e+08 3.352608e+06 14084.743083 900208.953363 \n",
"11 1.814200e+08 3.628400e+06 14114.243099 886094.710264 \n",
"12 1.960149e+08 3.920298e+06 14120.101642 871974.608622 \n",
"13 2.114622e+08 4.229244e+06 14104.499058 857870.109564 \n",
"14 2.278116e+08 4.556232e+06 14069.445604 843800.663960 \n",
"15 2.451158e+08 4.902316e+06 14016.794217 829783.869743 \n",
"16 2.634305e+08 5.268611e+06 13948.252337 815835.617405 \n",
"17 2.828149e+08 5.656298e+06 13865.392850 801970.224555 \n",
"18 3.033313e+08 6.066625e+06 13769.664215 788200.560340 \n",
"19 3.250458e+08 6.500916e+06 13662.399840 774538.160499 \n",
"20 3.480285e+08 6.960570e+06 13544.826760 760993.333740 \n",
"21 3.723534e+08 7.447067e+06 13418.073665 747575.260075 \n",
"22 3.980988e+08 7.961976e+06 13283.178341 734292.081734 \n",
"23 4.253478e+08 8.506955e+06 13141.094541 721150.987193 \n",
"24 4.541881e+08 9.083762e+06 12992.698361 708158.288831 \n",
"25 4.847127e+08 9.694253e+06 12838.794126 695319.494705 \n",
"26 5.170199e+08 1.034040e+07 12680.119847 682639.374858 \n",
"27 5.512138e+08 1.102428e+07 12517.352269 670122.022590 \n",
"28 5.874047e+08 1.174809e+07 12351.111536 657770.911053 \n",
"29 6.257092e+08 1.251418e+07 12181.965522 645588.945532 \n",
"30 6.662506e+08 1.332501e+07 12010.433819 633578.511713 \n",
"31 7.091596e+08 1.418319e+07 11836.991445 621741.520268 \n",
"32 7.545745e+08 1.509149e+07 11662.072267 610079.448000 \n",
"33 8.026417e+08 1.605283e+07 11486.072166 598593.375835 \n",
"34 8.535160e+08 1.707032e+07 11309.351966 587284.023868 \n",
"35 9.073613e+08 1.814723e+07 11132.240153 576151.783715 \n",
"36 9.643512e+08 1.928702e+07 10955.035374 565196.748341 \n",
"37 1.024669e+09 2.049339e+07 10778.008763 554418.739579 \n",
"38 1.088510e+09 2.177020e+07 10601.406084 543817.333494 \n",
"39 1.156079e+09 2.312158e+07 10425.449719 533391.883776 \n",
"40 1.227594e+09 2.455188e+07 10250.340498 523141.543277 \n",
"41 1.303285e+09 2.606571e+07 10076.259405 513065.283872 \n",
"42 1.383397e+09 2.766795e+07 9903.369140 503161.914732 \n",
"43 1.468188e+09 2.936376e+07 9731.815575 493430.099157 \n",
"44 1.557930e+09 3.115860e+07 9561.729094 483868.370063 \n",
"45 1.652913e+09 3.305826e+07 9393.225838 474475.144225 \n",
"46 1.753443e+09 3.506886e+07 9226.408844 465248.735381 \n",
"47 1.859844e+09 3.719688e+07 9061.369115 456187.366266 \n",
"48 1.972459e+09 3.944918e+07 8898.186591 447289.179675 \n",
"49 2.091651e+09 4.183301e+07 8736.931062 438552.248613 \n",
"50 2.217803e+09 4.435606e+07 8577.662999 429974.585615 \n",
"51 2.351323e+09 4.702646e+07 8420.434329 421554.151286 \n",
"52 2.492640e+09 4.985280e+07 8265.289152 413288.862133 \n",
"53 2.642210e+09 5.284421e+07 8112.264397 405176.597736 \n",
"54 2.800515e+09 5.601031e+07 7961.390431 397215.207305 \n",
"55 2.968065e+09 5.936131e+07 7812.691624 389402.515681 \n",
"56 3.145400e+09 6.290801e+07 7666.186867 381736.328814 \n",
"57 3.333092e+09 6.666184e+07 7521.890052 374214.438762 \n",
"58 3.531744e+09 7.063489e+07 7379.810512 366834.628250 \n",
"59 3.741998e+09 7.483997e+07 7239.953432 359594.674817 \n",
"\n",
" end_wealth \n",
"0 6.000000e+06 \n",
"1 1.800000e+07 \n",
"2 3.600000e+07 \n",
"3 7.156000e+07 \n",
"4 1.061932e+08 \n",
"5 1.571040e+08 \n",
"6 1.672789e+08 \n",
"7 1.780480e+08 \n",
"8 1.894460e+08 \n",
"9 2.015096e+08 \n",
"10 2.142778e+08 \n",
"11 2.277916e+08 \n",
"12 2.420946e+08 \n",
"13 2.572329e+08 \n",
"14 2.732554e+08 \n",
"15 2.902135e+08 \n",
"16 3.081619e+08 \n",
"17 3.271586e+08 \n",
"18 3.472646e+08 \n",
"19 3.685449e+08 \n",
"20 3.910679e+08 \n",
"21 4.149063e+08 \n",
"22 4.401368e+08 \n",
"23 4.668408e+08 \n",
"24 4.951043e+08 \n",
"25 5.250184e+08 \n",
"26 5.566795e+08 \n",
"27 5.901896e+08 \n",
"28 6.256566e+08 \n",
"29 6.631950e+08 \n",
"30 7.029256e+08 \n",
"31 7.449764e+08 \n",
"32 7.894830e+08 \n",
"33 8.365889e+08 \n",
"34 8.864456e+08 \n",
"35 9.392141e+08 \n",
"36 9.950642e+08 \n",
"37 1.054176e+09 \n",
"38 1.116740e+09 \n",
"39 1.182957e+09 \n",
"40 1.253042e+09 \n",
"41 1.327220e+09 \n",
"42 1.405729e+09 \n",
"43 1.488824e+09 \n",
"44 1.576771e+09 \n",
"45 1.669855e+09 \n",
"46 1.768374e+09 \n",
"47 1.872647e+09 \n",
"48 1.983010e+09 \n",
"49 2.099818e+09 \n",
"50 2.223447e+09 \n",
"51 2.354296e+09 \n",
"52 2.492787e+09 \n",
"53 2.639366e+09 \n",
"54 2.794505e+09 \n",
"55 2.958704e+09 \n",
"56 3.132492e+09 \n",
"57 3.316430e+09 \n",
"58 3.511110e+09 \n",
"59 3.717158e+09 "
]
},
"execution_count": 146,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"inputs = {\n",
" \"shares\": 1000000,\n",
" \"share_value\": 2,\n",
" \"wealth_tax_rate\": 0.02,\n",
" \"cap_gains_tax_rate\": 0.00,\n",
" \"growth_rate\": rates[1]['rate']\n",
"}\n",
"\n",
"result = model(inputs)\n",
"pd.DataFrame(result)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment