Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gatsbyz/retirement-global-plus
https://github.com/gatsbyz/retirement-global-plus
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/gatsbyz/retirement-global-plus
- Owner: gatsbyz
- Created: 2022-05-03T00:54:11.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-05-15T00:49:37.000Z (over 2 years ago)
- Last Synced: 2023-03-10T01:31:47.946Z (over 1 year ago)
- Language: Jupyter Notebook
- Size: 8.92 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Retirement Global +
## How To Run
0. *open terminal at the root of project1*
1. Run `python3 src/main.py` in terminal to start calculator.
2. Enter your retirement information.
3. Your input will be saved in `cache/user_data.csv`
4. The CLI will show you the cities you can retire in.
5. Your retirement cities will be saved in `cache/retirement-cities.csv`
6. run `jupyter/retirement_tool.ipynb` to visualize your retirement data. the most recent user input will be used.
7. run `jupyter/map_retirement_cities.ipynb` to visualize your retirement cities. the most recent retirement cities will be used.
8. map results saved in `Interactive_retirement_map.html`
9. retire## Sample Input
? What is your current age 25? By what age, would you prefer to retire? 65
? How much do you have in liquid cash savings (USD) 50000
? Would you like your portfolio to be conservative[1], conservatively moderate[2], or moderate[3]? 3
? How much would you like to invest in stocks and bonds? 40000
## Sample Output
You can retire in
['Paris/France', 'Hamilton/Canada', 'Milan/Italy', 'Bucaramanga/Colombia', 'Madrid/Spain', 'Delhi/India']# Executive Summary
The Retirement Global+ app seeks to flip the script for working citizens around the world. This tool enables users to assess their current assets, as well as their future needs in order to establish an optimized retirement plan to live in any city around the world. The Retirement Global+ app tells you exactly where you can comfortably retire at your preferred retirement age.
# For Users -- General Overview & Flow
Part 1: Data inputs will be generated to determine the years in retirement, size and risk profile of the user's investment portfolio, and historical growth rates of indices.
Part 2: Users will forecast the performance of their portfolio at the age they wish to retire until the time they choose to retire. Historical price data will be used to generate Monte Carlo simulations to compute total savings (mean) for the time, which elapses btwn the user's current age and the year they prefer to retire.
Part 3: This total cash savings, in addition to asset appreciation will be exported to the Cost of Living Calculator to determine the list of viable cities where the user can retire.
# List of Cities within Scope of Analysis
Hamilton (Bermuda)
Hong Kong
Los Angeles
Paris
Milan
Bucaramanga (Colombia)
Mardrid
Delhi
Hamilton (Canada)---
# Documents
Team Charter
https://docs.google.com/document/d/1laAHUYkqxnocPBQqIeRB0HaU6wA8JShfNR4nlD4YaIU/edit?usp=sharingTeam Presentation (Slides)
https://docs.google.com/presentation/d/1lwsZ5ntYcasI9LIwBdJl4LitR0IjZjs6vO7VatrjSHk/edit?usp=sharing---
## Technologies
Required programs, libraries, systems, and overall dependencies:
Python (version 3.0 or later)
`Pathlib`
`pandas`
`%matplotlib`
`hvplot.pandas`
`sqlalchemy`
`numpy`
`simulation`
`fileio`
`questionary`
---## Installation Guide
`pip install Voila`
`pip install Fire`
`pip install folium`
`conda install -c pyviz hvplot geoviews`---
## Usage of Retirement Global+ App
Getting User info:
```python
import questionary
def get_retire_plan_user():
age = questionary.text("What is your current age").ask()
retirement_age = questionary.text("By what age, would you prefer to retire?").ask()
savings = questionary.text("How much do you have in liquid cash savings (USD)").ask()
portfolio_type = questionary.text("Would you like your portfolio to be conservative[1], conservatively moderate[2], or moderate[3]? (Enter 1, 2, or 3)").ask()
total_stocks_bonds = questionary.text("How much would you like to invest in stocks and bonds?").ask()
age = int(age)
retirement_age = int(retirement_age)
savings = float(savings)
portfolio_type = int(portfolio_type)
total_stocks_bonds = float(total_stocks_bonds)
return age, retirement_age, savings, portfolio_type, total_stocks_bonds
```Snippet of Monte Carlo code
```python
output = simulation.run_mc_output(df_portfolio, portfolio_type, years_to_retirement)
output
output.calc_cumulative_return()
```## View of Questionary Stage
![view_questionary](https://user-images.githubusercontent.com/11021924/168452484-30cb0b8b-74b0-4a17-b8da-7570feaa83e8.png)## Forecast Simulation
![sample_output_MC](https://user-images.githubusercontent.com/11021924/168452488-f5470627-b15b-4166-8dd5-ace160e4e9c0.png)---
# Useful GitHub commands for Group Coordination
`git checkout -b [BRANCH_NAME]`: new branch
`git checkout [BRANCH_NAME]`: change branch
`git branch` : which branch am I in
when i wanna push code:
`git add -A` / `git add filename`
`git commit -m "COMMIT_MESSAGE"`
`git push`
if this doesn’t work
`git pull --rebase origin master` then try `git push` again`git branch -D {BRANCH_NAME}` delete branch
---
## Contributors
Tracy Davis
Reginald Hyppolite
Jesse Lee
Wonkyung Lee
Tyler ShubertBIG THANKS to all the great TAs and Professor Vinicio DeSola
---
## License
MIT