Changes some default parameters -- social security amounts and starting
authorScott Gasch <[email protected]>
Wed, 15 Jan 2020 03:58:44 +0000 (19:58 -0800)
committerScott Gasch <[email protected]>
Wed, 15 Jan 2020 03:58:44 +0000 (19:58 -0800)
ages.  Changes behavior of Roth conversion.

Fixes exception swallowing.  Adds comments and assertions.

parameters.py
retire.py

index a8eb839e8e406131713fd91d33fb3a8f193391e1..ae66e1560d2b6875ca1ffc380b6fe78c367b8c92 100644 (file)
@@ -47,8 +47,9 @@ class parameters(object):
         #      age 67 - $30,000              age 67 - $30,420
         #      age 70 - $37,200              age 70 - $37,728
         #
-        self.social_security_age = [ 0, 62, 70 ]
-        self.initial_social_security_dollars = [ 0, 15000, 25000 ]
+        #                                        X  SCOTT   LYNN
+        self.social_security_age =             [ 0,    62,    62 ]
+        self.initial_social_security_dollars = [ 0, 21000, 21000 ]
 
         # Tax details... the standard deduction amount and tax
         # brackets for ordinary income and long term capital gains.
index a0b28cd2036fdd0115aa23bc96a6d65da535dc8a..3282a9e15dc180db5d9c18fbccc2b4010a504f57 100755 (executable)
--- a/retire.py
+++ b/retire.py
@@ -185,6 +185,7 @@ class simulation(object):
                     money_needed = 0
 
                 look_for_conversions = True
+                tax_limit = 25000
                 while True:
                     # Maybe do some opportunistic Roth conversions.
                     taxes_due = taxes.approximate_taxes(
@@ -193,12 +194,11 @@ class simulation(object):
                         self.params.get_federal_dividends_and_long_term_gains_income_tax_brackets())
                     total_income = taxes.get_total_income()
                     tax_rate = float(taxes_due) / float(total_income)
-                    print "INCOME: %s, TAXES: %s\n" % (utils.format_money(total_income), utils.format_money(taxes_due))
 
                     if (look_for_conversions and
                         tax_rate <= 0.14 and
-                        taxes_due < 20000 and
-                        self.year <= 2035):
+                        taxes_due < tax_limit and
+                        self.year <= 2036):
 
                         look_for_conversions = self.do_opportunistic_roth_conversions(taxes)
                         # because these conversions affect taxes, spin
@@ -236,7 +236,8 @@ class simulation(object):
 
                 self.params.get_federal_ordinary_income_tax_brackets().adjust_with_multiplier(inflation_multiplier)
                 self.params.get_federal_dividends_and_long_term_gains_income_tax_brackets().adjust_with_multiplier(inflation_multiplier)
-        except:
+        except Exception as e:
+            print "Exception: %s" % e
             print "Ran out of money!!!"
             pass