top of page

​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.

© 2026 by Shah Choudhury. 

bottom of page