Giter Club home page Giter Club logo

tsp-data's Introduction

TSP Data

This project is kind of a catch-all for different scripts I think might be useful for retirement planning with the Thrift Savings Plan (US federal employee retirement plan).

Intro

The one problem with the Thrift Savings Plan for federal employees is that it's very simplistic. Very limited choices help keep costs down. Unfortunately, though, the lack of features that people might be interested in don't exist as a result of these cost-savings measures.

One of the features I feel like the TSP lacked was the ability to easily collect and chart historical prices. Luckily, the TSP does publish the share prices for the funds at least since June, 2003. However, they're in a table on the website that is only accessible 30 days at a time.

Current Development

Step 1

The first goal of this project is to create a script / class that takes care of gathering this data from the website and making it available to scripts that might be run by the user (future parts of this project). Getting the basic funtionality of gathering the data, saving the data to a local file, and updating this data file automatically when run will be the first milestone.

Step 2

Once the data is available locally, the next step will be to wrap this into a class that packages this functionality so that it takes care of it itself without management from an external script. This will allow another script to easily use this data, and essentially query it as needed.

Step 3

The last preliminary goal of this project will be to link up this data with a viewer of some kind. The hope is to have something similar to Google Finance for all of the data.

The Future

There are some features that I believe might be useful to add to this toolset once the preliminary project is completed:

  • A separate financial calculator to project cleanly into retirement
  • A modification to this calculator that will use historical prices to modify the "ideal" retirement calculator
  • Statistical display of performance curves over different time-frames

Eventually, this might be useful as a free-to-use web-service - and I have already been thinking about this possibility throughout my current development.

I'm sure I will think of many more features on my own as the time goes by. However, I am but one man; this will most likely benefit from other's contributions in feature requests or direct development contributions.

tsp-data's People

Contributors

elaske avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

fesp21

tsp-data's Issues

Retrieval Termination Logic Breaks

On 12/26/14, the share price history page only showed 11/18 to 12/24, or 26 lines. This means that the logic that is checking when to terminate the retrieval of new data is fooled: it's looking for 30 items.

We should really compare the date information to what is already in the data structure.

Append New Data

Complete the appending of new data that is found from the TSP site.

Compare CSV and HTML data gathering methods.

The most obvious thing is what is going to be faster. The CSV will have gains in not having to parse as much, but the HTML version might get posted back to us quicker (less server processing time?).

Need to measure this to be sure which is the best option. This will become the default option. The other will stay in the code as a user option.

Remove Data Storage From Repository

Should this really be stored in the repository? It might be a good baseline to include with each revision so that less data has to be downloaded on everyone's end. However, it's not really that useful...

Retrieve TSP Prices Directly From CSV Request

It seems that there is a new way to retrieve data from the TSP share price history site in that it allows you to request a CSV by dates. We should be able to retrieve all of the data as one download instead of having to scrape their site.

Add Old TSP Statement Parser

The only way to really get all of the historical data from your TSP account is to download the PDFs. On the website, it is only possible to get the data from the last statement.

There are two versions of the TSP statements that have been used. This is the current version.

Add Logic for Checking for New Data

Currently, it always looks at the current page to check for new data. It shouldn't check if it doesn't expect there to be new data from what it's already loaded.

This means that if it's already got data for today in the dictionary, don't look.
If it doesn't have data for today:

  • Make sure it's not a weekend
  • Make sure it's not a federal holiday
  • Check to see if it's after 7PM EST (when new data is posted)

Add Current TSP Statement Parser

The only way to really get all of the historical data from your TSP account is to download the PDFs. On the website, it is only possible to get the data from the last statement.

There are two versions of the TSP statements that have been used. This is the current version.

Package Data Interface Into Class

Once the data is available locally, the next step will be to wrap this into a class that packages this functionality so that it takes care of it itself without management from an external script. This will allow another script to easily use this data, and essentially query it as needed.

Create TSP Statement Support Classes

In order to organize the data from the TSP statements, we should create some classes that will also be used in analysis. These might be based on the mufund repository's classes / representation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.