Open mghazlett opened 2 months ago
Questions: “anticipated duration for each degree” What does this mean? Is it supposed to be if you want a Bachelor’s, Master’s, PhD, etc.? Can we consolidate this to be included in “plans for pursuing undergraduate and/or graduate degrees”? --> User can input: desired field of study; level of study (Bachelor’s, Master’s, PhD) “lifestyle expectations, and vacation frequency” --> What does this mean? “Lifestyle expectations” is very vague: can we refine it to be defined, as most measurements of retirement are, in terms of income?
This is what NerdWallet assumes for retirement. I think we can be more flexible on the assumptions (let user input retirement age, assume life expectancy of 95 still), RR before retirement: 8%; after 5%, salary increase of 2% per year after desired job is achieved – ie. there may be a significant delay between current state and income, so account for jumps in income, not just 2% per year gains. • E.g., if your current state is 1st year bachelors, and you intend to pursue PhD, you are looking at another 8 years of school before your job starts, so your income should be based on current income (which may be 0, so 0 income for 8 years, then an income which corresponds to job after PhD + 2% increases start after that).
• Retirement age of 67 (when most people will receive full Social Security benefits). • Life expectancy of 95. • A 6% rate of return before retirement and a 5% rate of return during retirement (assuming a more conservative portfolio). • A 3% average annual inflation rate. • Salary increases of 2% per year.
actions: "school" (1); "work" (0) state: years_experience; years_schooling; savings; age
every year of school: savings -= $20K every year: savings -= 30K for living expenses <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
Experience | 0 years | 5 years | 10 years | 15 years | 20 years -- | -- | -- | -- | -- | -- HS | 24-27 | 30-38 | 40-50 | 55-85 | 85-150 BS | 45-60 | 60-70 | 70-100 | 80-120 | 100-200 MS | 70-85 | 85-100 | 95-110 | 105-125 | 125-225 PhD | 85-95 | 95-120 | 115-135 | 135-160 | 150-300
education-dp
EduDynamic (tentative name)
The EduDynamic project aims to model and optimize education and career planning decisions using dynamic programming. It will allow users to input their personal preferences, financial constraints, and career goals to receive tailored advice on education paths, potential investments, and career choices.
Project Structure
File Descriptions
src/__init__.py
: Initializes the source code directory as a Python package.src/main.py
: The entry point of the application. It will handle user inputs and display outputs based on the models' advice.src/education_model.py
: Contains the dynamic programming model for optimizing education decisions, including choosing majors, deciding between trade school and university, etc.src/career_model.py
: Contains the dynamic programming model for career planning, including job transitions, retirement planning, etc.src/optimization.py
: Implements the optimization algorithms used in the education and career models.src/utils.py
: Utility functions used across the project, such as data loading and preprocessing.tests/__init__.py
: Initializes the tests directory as a Python package.tests/test_*.py
: Unit tests for each corresponding module in src/.data/
: Contains CSV files with data on education paths and career options.docs/project_documentation.md
: Detailed documentation of the project, including the models' assumptions, limitations, and usage instructions.requirements.txt
: Lists all Python libraries required by the project.README.md
: Provides an overview of the project, installation instructions, and basic usage examples.Project Design
Target Input/Output
The EduDynamic project is designed to take user inputs regarding their personal preferences, financial constraints, career goals, and educational aspirations to provide a tailored, dynamic plan for education and career progression. Here's an overview of the target input and output for the project:
Input
Users will provide the following information through an interactive interface:
Output
Based on the inputs, the project will output:
Implementation Details
The project utilizes dynamic programming algorithms implemented in Python to optimize the decision-making process. Key components include:
src/optimization.py
, these algorithms consider various paths and choices to recommend the most beneficial plan based on the user's inputs.src/main.py
), the interface collects user inputs and uses them directly for optimization.Example Usage
After running the application, users will be prompted to enter their information and preferences. The application will then process this data and display an optimal life plan, including education and career recommendations, tailored to the user's specific goals and constraints.
help mermaid wont work i dont wanna use live editor lol