Early retirement financial calculator
Switch branches/tags
Nothing to show
Clone or download
wscott Bug in Roth contributions while working.
When selecting contributions while working, Roth contributions
were incorrectly limited.
Latest commit 8aebc9d Mar 6, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Model contributions while working Mar 3, 2017
README.md Model contributions while working Mar 3, 2017
fplan.py Bug in Roth contributions while working. Mar 6, 2017


Retirement planner

This little calculator is a retirement planner designed to explore optimial withdraws from savings and IRA accounts. It uses a Linear Programming solution to maximize the minimum amount of money available to spend. As a side effect it minimizes the taxes that needs to be spent.

This is similar to the ideas of James Welch at www.i-orp.com but I wanted to explore some new ideas. ORP continues to be a much more complete tool. This version is mainly aimed at people who retire well before age 59.5.

Currently modeled

  • aftertax, IRA and Roth spending
  • IRA->Roth conversions
  • Federal income tax on IRA spending with 2017 tables
  • Simplistic capital gains, assuming an average cost basis, at a fixed 15%
  • Roth withdraw limitations before age 59
  • Early IRA withdrawals have a 10% penalty. (this is added to 'tax')
  • inflation
  • Required Minimum Distributions from IRA
  • Arbitrary income or expenses happening at certain years. Income can be taxed or not. This is used to model Social Security
  • IRA 72(t) withdrawals

Not modeled yet

  • Early withdrawals from Roth gains are not modeled (only contributions)
  • Recording when existing Roth contributions can be accessed in config file

Not modeled

  • Any other taxes
  • new contributions to IRA or Roth


  • Taxes are only for Married filing jointly at the moment
  • Only the standard deduction for 2 people
  • age 59 is assumed to be past 59.5


This program is written in Python and assumes the packages SciPy and toml are installed.

run pip install --user toml scipy numpy to install these libraries on most machines.


  • Copy sample.toml to a new file
  • Edit with your information
  • run python3 ./fplan.py NEW.toml


The output is a table by age with the following columns. All numbers in table are in 1000s of dollars.

  • save: amount in after-tax savings account
  • send: send from savings this year
  • IRA: balance of tax-deferred IRA acount
  • fIRA: amount to pull from IRA this year. (before 59 with penalty)
  • Roth: balance of tax-exempt Roth account
  • fRoth: amount to pull from Roth this year
  • IRA2R: money converted from the IRA to Roth this year
  • rate: US tax bracket this year
  • tax: tax spent this year (includes IRA 10% penlty)
  • spend: net amount spent this year (includes income)
  • extra: additional spending this year


This tool is being actively developed and eventually will have a much more user-friendly inteface. At the moment it is closer to a research tool. That said, I am more than happy to help people to use it and understand the resuls. Send mail at Wayne wsc9tt@gmail.com