The Consumer Division of Harold's company has decided to offer budgeting and financial planning services to customers. They want to build a report for customers that links to their banking and investment accounts and automatically refreshes the data and charts on login. However, some of the calculations are tricky, and Harold could really use some help connecting the accounts and simulating the retirement investment projections. Luckily, there are APIs available to obtain account transactions and fetch retirement portfolio prices.
In this homework assignment, you will help Harold complete the following tasks:
- Budget Analysis with Plaid
- Retirement Planner
- Financial Report
In this section, you will use the Plaid API to obtain transaction and account data for the budget analysis section of the report. Complete the following:
-
Generate a Plaid access token to access the Developer Sandbox.
-
Use the Access token to fetch account transactions from the sandbox. You should fetch the last 90 days of transactions from the sandbox using the following institution:
INSTITUTION_ID = "ins_109508"
-
Perform basic budget analysis on the sandbox transaction and generate the following plots:
-
Spending Categories Pie Chart.
-
Spending Per Month Bar Chart.
-
-
Use the API to fetch income data from the sandbox and print the following:
- Last Year's Income Before Tax.
- Current Monthly Income.
- Projected Year's Income Before Tax.
In this section, you will use the Alpaca API to fetch historical closing prices for a retirement portfolio and then run Monte Carlo simulations to project the portfolio performance at 30
years. You will then use the Monte Carlo data to answer questions about the portfolio.
Create a Monte Carlo simulation for the retirement portfolio:
-
Use the Alpaca API to fetch historical closing prices for a traditional 60/40 portfolio using the
SPY
andAGG
tickers to represent the60%
stocks (SPY
) and40%
bonds (AGG
). -
Run a Monte Carlo Simulation of
500
runs and30
years for the60/40
portfolio and plot the results. -
Select the ending cumulative returns from the Monte Carlo simulation and calculate the interval values for a
90
% confidence interval. -
Using the ending cumulative returns, plot a histogram of the results and plot the
90%
confidence interval as vertical lines on the histogram.
Use the Monte Carlo simulation data to answer the following questions:
-
What are the expected cumulative returns at
30
years for the10th
,50th
, and90th
percentiles? -
Given an initial investment of
$20,000
, what is the expected return in dollars at the10th
,50th
, and90th
percentiles? -
Given the current projected annual income from the Plaid analysis, will a
4%
withdrawal rate meet or exceed that value at the10th
percentile? Note: This is basically determining if retirement income is equivalent to current income. -
How would a
50%
increase in the initial investment amount affect the4%
retirement withdrawal? In other words, what happens if the initial investment had been bigger?
In this section, you will compile a financial report to demo your calculations to the Consumer App Team. The report should be written as a markdown file and include the following sections:
-
Budget Analysis: Summarize the transaction data from the budget analysis and include images for each chart and table produced.
-
Retirement Planning: Summarize the retirement portfolio analysis and include the charts for the Monte Carlo simulation.