​Mutual Fund & ETF Performance
Benchmarking return, risk, and risk-adjusted performance
​
Business question
Investors are often told to “diversify” across asset classes, but diversification alone does not answer the most important questions:
​
-
Which ETFs delivered the best long-term returns?
-
Which achieved those returns with the least risk?
-
Which provided the best risk-adjusted performance?
-
How severe were the worst drawdowns, and where did downside risk truly sit?
​
The goal of this project was to benchmark a small universe of core ETFs across return, volatility, Sharpe ratio, and maximum drawdown, and present the results in a clear, interactive dashboard suitable for decision-making.
Dataset and scope
The analysis focuses on widely used core ETFs representing major asset classes:
​
-
US equities (broad market and growth)
-
International equities
-
Small-cap equities
-
Real estate
-
Bonds
​
Daily and monthly price data was used to calculate long-term performance metrics consistently across all ETFs.
​
Methodology overview
This project was built end-to-end using Python, SQL, and Tableau, with each tool used intentionally for what it does best.
Python — data preparation and financial metrics
Python was used for data ingestion, cleaning, and financial calculations.
Key steps included:
-
Loading historical ETF price data
-
Calculating returns from adjusted close prices
-
Computing core performance metrics:
-
CAGR (Compound Annual Growth Rate)
-
Annualised volatility
-
Sharpe ratio (risk-free rate = 0%)
-
Maximum drawdown
-
-
Validating results across daily vs monthly frequencies
-
Exporting clean, analysis-ready CSVs for visualisation
​
Python ensured the calculations were:
-
Reproducible
-
Transparent
-
Consistent across all assets
​
This stage answered the quantitative side of the problem:
What does the raw performance data actually say?
​
SQL — analytical modelling
SQL (via DuckDB) was used to structure the results into a clean analytical model:
-
A fact table containing ETF-level metrics
-
A dimension table containing ETF categories
-
Clear separation of measures and descriptive attributes
​
This modelling step:
-
Reduced complexity in Tableau
-
Made the analysis scalable
-
Reflected real-world BI practices
​
The output of the Python + SQL stages was a set of well-structured CSVs, ready for dashboarding.
​
Tableau — analysis, storytelling, and interactivity
Tableau was used to answer the interpretive side of the business question:
“Given these metrics, how should an investor understand the trade-offs between return and risk?”
Key dashboard components include:
​
-
Risk–return scatter plot
Visualising annualised volatility vs CAGR to show the fundamental trade-off between risk and reward. -
Sharpe ratio ranking
Highlighting which ETFs delivered the most return per unit of risk. -
Maximum drawdown ranking
Showing where downside risk was most severe. -
Dynamic KPI tiles
Identifying:-
Best risk-adjusted ETF
-
Best performing ETF
-
Lowest-risk ETF
-
-
Fully interactive filtering
Allowing users to dynamically change the ETF universe while keeping KPIs and charts in sync.
​
Special care was taken to ensure:
-
Correct handling of LOD expressions
-
Proper context filtering for dynamic KPIs
-
Clean, professional layout suitable for a portfolio
​
Key findings and insights
Several important patterns emerged from the analysis:
​
1. Higher returns came with higher volatility — but not always better outcomes
Growth-oriented equity ETFs achieved the highest CAGRs, but they also carried significantly higher volatility and deeper drawdowns. High returns alone did not guarantee superior risk-adjusted performance.
​
2. Risk-adjusted performance told a different story
When evaluating performance using the Sharpe ratio, broad US equity exposure emerged as the most efficient trade-off between risk and return. Some higher-return ETFs looked less attractive once volatility was considered.
3. Bonds played a defensive role, not a performance role
Bond ETFs delivered the lowest volatility and shallowest drawdowns, confirming their role as risk stabilisers, not return drivers. They ranked lowest on CAGR but highest on downside protection.
​
4. Drawdowns revealed investor experience, not just statistics
Maximum drawdown highlighted how painful the worst periods would have felt in real time. Assets with similar long-term returns often differed dramatically in downside risk.
​
Business takeaway
This project demonstrates that:
-
Performance cannot be evaluated on returns alone
-
Risk-adjusted metrics fundamentally change rankings
-
Visualising trade-offs leads to better investment decisions than isolated numbers
-
Interactive dashboards allow decision-makers to explore scenarios rather than accept static conclusions
​​​
Tools and skills demonstrated
-
Python: financial calculations, time-series analysis, data cleaning
-
SQL (DuckDB): analytical modelling and data structuring
-
Tableau Public: interactive dashboards, LOD expressions, KPI design
-
Financial analysis: CAGR, volatility, Sharpe ratio, drawdown
-
Data storytelling: turning metrics into insights
​
Final result
The final output is a single-page, fully interactive Tableau dashboard that benchmarks core ETFs across return, risk, and downside exposure, built using best practices from data engineering through to business intelligence.
This project reflects how I approach data problems:
start with a business question, use the right tools at each stage, and communicate results clearly.