Quantitative Finance · Portfolio Analytics

Portfolio Risk & Performance Dashboard

A portfolio analytics workflow evaluating returns, volatility, drawdowns, diversification, and risk-adjusted performance across a multi-asset ETF portfolio — translating raw market data into the metrics that drive informed investment decisions.

Python pandas numpy yfinance matplotlib scipy

Client work is confidential. This case study uses publicly available market data to demonstrate my approach to portfolio analytics, risk reporting, and investment decision support.

The Challenge

The business problem

Investors and portfolio managers need to understand not only whether a portfolio has gone up or down, but how much risk was taken to achieve those returns. Raw performance numbers without risk context lead to poor decisions — a portfolio returning 12% annually with 30% volatility is very different from one returning 10% with 8% volatility. The challenge is building a rigorous, end-to-end risk and performance monitoring framework from public market data.

  • How has the portfolio performed versus the equity market and a balanced benchmark?
  • Which assets contributed most to return — and which to risk?
  • How severe and prolonged were historical drawdowns?
  • Is the portfolio genuinely diversified, or do correlations erode that benefit under stress?
  • How did portfolio risk levels change across different market regimes?
Approach

How the work was structured

01
Data Collection
Downloaded adjusted daily closing prices for six ETFs (SPY, QQQ, TLT, GLD, VNQ, BIL) using yfinance, covering January 2015 to December 2024 — approximately 2,500 trading days per asset.
02
Data Cleaning
Aligned all price series to common trading dates, calculated daily returns, verified for missing values across all tickers, and resampled to monthly and annual frequencies for multi-period analysis.
03
Portfolio Construction
Applied target weights (SPY 35%, QQQ 20%, TLT 20%, GLD 10%, VNQ 10%, BIL 5%) to compute daily portfolio returns. Built benchmark series for SPY and a 60/40 SPY/TLT blend for comparison.
04
Performance Analysis
Calculated cumulative growth ($10,000 base), annualised return, annualised volatility, and Sharpe ratio. Computed annual returns to assess consistency across calendar years.
05
Risk Analysis
Modelled running drawdowns to quantify the severity and duration of loss periods. Built 30-day and 90-day rolling annualised volatility series to identify changing risk regimes across the decade.
06
Diversification Analysis
Computed pairwise asset correlations and marginal risk contributions using covariance decomposition — assessing whether the portfolio was genuinely diversified or exposed to overlapping risk factors.
Portfolio

The portfolio under analysis

A six-asset ETF portfolio spanning US equities, growth technology, long-duration bonds, gold, real estate, and cash — representing a diversified, multi-asset allocation typical of a balanced investor.

SPY
S&P 500 ETF
35%
US Equities
QQQ
Nasdaq 100 ETF
20%
Growth / Technology
TLT
Long Treasury ETF
20%
Bonds / Duration
GLD
Gold ETF
10%
Defensive / Inflation Hedge
VNQ
Real Estate ETF
10%
Real Estate Exposure
BIL
Cash / T-Bill ETF
5%
Lower-Risk Allocation
Performance Analysis

How the portfolio performed

2026-05-22T17:57:12.066707 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
2026-05-22T17:57:12.442854 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
Risk Analysis

Drawdowns and volatility

2026-05-22T17:57:12.912143 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
2026-05-22T17:57:13.313911 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
Diversification Analysis

Correlation and risk contribution

2026-05-22T17:57:13.798751 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
2026-05-22T17:57:14.225734 image/svg+xml Matplotlib v3.10.8, https://matplotlib.org/
Benchmark Comparison

Portfolio vs benchmarks

Metric Portfolio SPY (Equity) 60/40 Blend
Annual Return 10.1% 13.1% 8.0%
Annual Volatility 12.1% 17.6% 11.0%
Sharpe Ratio 0.67 0.63 0.54
Max Drawdown -25.9% -33.7% -27.2%
Best Calendar Year 26.6% 31.2% 24.7%
Worst Calendar Year -21.5% -18.2% -22.8%
Business Insights

What this means in plain English

Equity exposure dominates portfolio risk
Despite SPY and QQQ representing 55% of capital, they drove a disproportionate share of total portfolio volatility — a common structural feature of multi-asset portfolios when equities carry higher volatility than other asset classes.
Drawdowns were reduced but not eliminated
The multi-asset structure softened peak drawdowns relative to a pure equity benchmark, but significant drawdowns still occurred during the COVID crash (2020) and the rate-hike shock (2022).
Bond diversification eroded in the 2022 rate environment
TLT, historically a flight-to-quality asset during equity selloffs, fell sharply alongside equities in 2022 as rising interest rates compressed both asset classes simultaneously — reducing the portfolio's diversification benefit.
Gold provided consistent low-correlation exposure
GLD maintained relatively low correlation to equities across multiple market regimes, providing meaningful diversification benefit during selected stress periods including early 2020 and parts of 2022.
Risk contribution does not match capital allocation
The portfolio's volatility was not evenly distributed across its assets. A risk-parity approach would require significantly reducing equity weights to equalise each asset's contribution to total portfolio risk.
Rolling correlations are regime-dependent
Correlations between equities and bonds shifted meaningfully across different market environments, confirming that static correlation assumptions are insufficient for sound risk management and portfolio monitoring.
Recommendations

Turning analysis into action

Finding Recommendation
Equity ETFs dominate risk contribution Rebalance based on risk contribution (risk parity), not capital weight alone
Significant drawdowns during equity selloffs Implement drawdown monitoring with pre-defined de-risking rules or circuit breakers
Bond-equity correlation turns positive during rate shocks Incorporate macro regime signals — not just historical correlation — into allocation decisions
Portfolio underperforms SPY in strong bull markets Clarify investment objective: growth vs. capital preservation vs. risk-adjusted return
Rolling volatility varies materially over time Use rolling risk metrics for ongoing monitoring rather than static annual figures