Urban Cost of Living Analysis - Tableau & Machine Learning
View the Project on GitHub TejashwiniSaravanan/global-affordability-dashboard-tableau-ml
| Metric | Result |
|---|---|
| ποΈ Cities Analysed | 3,700+ |
| π Countries Covered | 195+ |
| π€ Random Forest RΒ² Score | 0.975 |
| π Model RMSE | 1.13 |
| π Top Affordability Driver | Median Salary (+9.43 coeff) |
| π¨ βCrisis Zoneβ Countries | 127 (High Cost - Low Salary) |
| π Most Affordable City Type | Small metros with rent-to-salary < 5% |
Click any dashboard title to explore the live, interactive Tableau version.
| Β | Β |
|---|---|
![]() |
|
| π Dashboard 1: Global Affordability Tracker 2025 | π Dashboard 2: Country-Level Insights |
| Visualises geographic βEconomic Red Zonesβ where living costs exceed local earnings. Uses a custom Affordability Score to identify global disparities. | Benchmarks average salaries against total essential costs (rent, groceries, utilities) to reveal which nations face the highest inflation pressure. |
![]() |
![]() |
| ποΈ Dashboard 3: City Deep-Dive | π‘ Dashboard 4: Key Insights |
| A granular analysis of the Top 10 and Bottom 10 cities. Highlights the βRent Trapβ where housing costs consume more than 40% of median salary. | Synthesises regional cost patterns and visualises K-Means clustering results to categorise cities into distinct economic profiles. |
| Category | Tools |
|---|---|
| Language | Python 3.x |
| Data Wrangling | Pandas, NumPy |
| Machine Learning | Scikit-Learn - Linear Regression, Random Forest, K-Means Clustering |
| Visualisation | Tableau Desktop / Public, Matplotlib, Seaborn |
| Project Management | MS Project, Notion, Google Workspace |
| Notebook | Jupyter Notebook |
pd.merge() inner join on City and Country."USA" vs "United States") and handled missing salary values via proxy imputation.
Most cities cluster around median affordability - proving that true financial comfort is reserved for a global minority.

The Random Forest Regressor achieved a near-perfect fit on held-out test data.
| Driver | Coefficient | Direction |
|---|---|---|
| π° Median Salary | +9.43 | β Strongest positive driver |
| π Grocery Prices | -4.29 | β Primary drag on affordability |
| π Rent | -4.11 | β Second largest negative driver |

Identifying Median Salary, Groceries, and Rent as the primary drivers of the Affordability Score.
Cities were segmented into 5 distinct economic profiles:
| Cluster | Profile | Countries |
|---|---|---|
| Cluster 1 | High Salary - High Cost (manageable rent burden) | 19 |
| Cluster 0 | High Cost - Low Salary (βCrisis Zoneβ) | 127 |
| Cluster 3 | Low Salary - Low Cost | 104 |

Rent as a percentage of salary varies dramatically across city clusters - revealing stark global inequality.
1. π Housing Policy Implement rent control or housing subsidies in any city where the Rent-to-Salary ratio exceeds 35%.
2. πΌ Corporate Strategy Businesses in high-cost cities should adopt Cost-of-Living-Adjusted (COLA) salaries to ensure wage fairness and improve talent retention.
3. π Supply Chain Optimisation Focus on local supply chain development for essential goods in βHigh Cost - Low Salaryβ cities to drive down grocery price indices.
#1. Clone the repository
git clone https://github.com/TejashwiniSaravanan/global-affordability-dashboard-tableau-ml.git
cd global-affordability-dashboard-tableau-ml
#2. Install dependencies
pip install -r requirements.txt
#3. Launch the notebook
jupyter notebook cost-of-living-crisis.ipynb
To explore the Tableau dashboards, open
cost-of-living-crisis.twbin Tableau Desktop, or visit the live Tableau Public version.
global-affordability-dashboard-tableau-ml/
β
βββ π images/ # Dashboard screenshots & analytical plots
βββ π Executive_Summary.pdf # 1-page business impact summary
βββ π Project_Presentation.pdf # Full visual slide deck
βββ π cost-of-living-crisis.ipynb # Python notebook - data cleaning & ML models
βββ ποΈ cost-of-living-crisis.csv # Cleaned & merged global dataset (3,700+ cities)
βββ π cost-of-living-crisis.twb # Tableau Workbook file
βββ π requirements.txt # Python dependencies
βββ π README.md # Project documentation (you are here)
βββ βοΈ LICENSE # MIT License
| Β | Β |
|---|---|
| β What Went Well | Successfully built a robust predictive framework (RΒ² = 0.975) and transformed complex global data into four user-friendly, interactive Tableau dashboards. |
| β οΈ What Didnβt Go Well | Missing and inconsistent data for smaller cities required proxy imputation, which may affect localised precision. |
| π Future Work | Integrate real-time datasets and additional cost categories - Healthcare, Transport, and Education - for a 360Β° affordability view. |
This project is licensed under the MIT License - see the LICENSE file for details.