Back to projects
Data Science / VisualizationIn progress

Income & Demographics Explorer

An academic data visualization project analyzing income-related demographic patterns across education, occupation, age, and geography.

Role
Data analyst / visualization developer
Timeline
2026
Type
Data visualization project
Team
Academic project
PythonPandasMatplotlibSeabornJupyter

Case study public · source private

case-study/income-demographics-explorer.tsx
Income & Demographics Explorer project visual
// 01. Overview

Project overview

This project explores demographic income patterns through cleaning, aggregation, visualization, and interpretation.

The case study focuses on the decisions behind making messy data understandable without overstating what the analysis can prove.

// 02. Problem

The product problem

Income data can be difficult to communicate because relationships between education, occupation, geography, and age are easy to flatten into misleading summaries.

The challenge was to build an analysis workflow that preserves nuance while still producing clear charts and takeaways.

// 03. Solution

Solution direction

The workflow separates cleaning, feature grouping, exploratory analysis, and visualization so each chart has a clear analytical purpose.

Visualizations are selected for comparison and pattern recognition rather than decorative dashboard density.

// 04. My Contribution

What I owned

  • Cleaned and prepared census-style data for analysis.
  • Grouped demographic dimensions for income comparison.
  • Created visualizations for education, occupation, age, and geography patterns.
  • Documented limitations and interpretation notes for responsible communication.
// 05. Key Features

Feature system

feature.01

Cleaning pipeline

Data preparation is separated from visualization so assumptions are easier to inspect.

feature.02

Grouped analysis

Income patterns are explored across meaningful demographic dimensions.

feature.03

Readable visuals

Charts are chosen to make comparisons visible without unnecessary complexity.

feature.04

Interpretation notes

Findings include caveats so charts are not presented as stronger evidence than they are.

// 06. Technical Architecture

How the system fits together

architecture.map
system view
LayerResponsibilityTools
Notebook
Exploration, cleaning notes, visual iteration
Jupyter
Data prep
Filtering, grouping, aggregation, feature cleanup
Pandas, NumPy
Visualization
Charts, comparison views, visual encoding choices
Matplotlib, Seaborn
Analysis
Findings, caveats, summary interpretation
Python
orchestration.ts
income_by_group = (
  df.groupby(["education", "occupation"])
    .agg(median_income=("income", "median"))
    .sort_values("median_income", ascending=False)
)
// 07. Challenges & Decisions

Engineering decisions

Avoiding misleading averages

decision.01
Decision

Use grouped medians and compare distributions where possible.

Result

The analysis better reflects skewed income patterns.

Communicating limitations

decision.02
Decision

Document caveats around correlation, sampling, and category grouping.

Result

The final story stays more responsible and analytically honest.

// 08. Outcome & Status

Where the project stands

The project is in progress and presented as a public case study with private source.

It demonstrates data cleaning, exploratory analysis, visualization judgment, and responsible interpretation.