An interactive Tableau dashboard that compares five years of performance across 341 U.S.-listed exchange-traded funds (ETFs). It helps users quickly identify top and bottom performers, compare total returns, and review summary statistics without working directly with the raw market data.
View the interactive dashboard on Tableau Public
How did U.S.-listed ETFs perform between January 3, 2012 and December 30, 2016, and which funds produced the highest and lowest total returns during that period?
The project turns hundreds of separate historical price files into one analysis-ready dataset and presents the results in an accessible dashboard. A user can search for a ticker, compare funds, inspect start and end prices, and identify performance patterns without manually reviewing individual files.
- Interactive bar chart comparing total return by ETF
- Search and filtering for individual ticker symbols
- Tooltips showing ticker, start price, end price, and total return
- Average and median return summaries
- Sorted views for identifying top and bottom performers
- Methodology and data-source information
The source data came from Kaggle's Price-Volume Data for All US Stocks & ETFs. The raw dataset contained separate daily price and volume files for each ticker.
- Combined the files with Python and pandas. Each ETF file was read, assigned its ticker symbol from the filename, and added to a consolidated dataset.
- Cleaned and validated the data. Records were standardized, incomplete or malformed rows were removed, and the analysis was limited to ETFs with data at both ends of the selected period.
- Loaded the prepared data into PostgreSQL. This created a structured source for repeatable SQL analysis.
- Calculated total return with SQL. Window functions identified the first and last available closing prices for each ETF, and total return percentage was calculated from those values.
- Built the dashboard in Tableau. The SQL results were exported and visualized so users could explore the findings interactively.
- Python and pandas — file consolidation, cleaning, and data preparation
- PostgreSQL and SQL — structured storage, filtering, and return calculations
- Tableau — interactive dashboard design and data visualization
ETF File Cleaner Script.txt— Python/pandas workflow used to combine the source ETF filesETF SQL Sorting Script.sql— SQL query that identifies each ETF's first and last closing prices and calculates total returnTableau Stock Workbook.twb— Tableau workbookTableau ETF Bar Chart.png— dashboard visualization previewTableau Stock Image.png— supporting project image
- End-to-end data workflow development
- Data wrangling and validation
- SQL window functions and financial calculations
- Dashboard design and data storytelling
- Translating raw data into information that nontechnical users can explore
- Add benchmark comparisons against major market indexes
- Include annualized return, volatility, and risk-adjusted performance measures
- Add sector or asset-class groupings
- Automate the data-refresh process
Zachary Maness
