Python/Plotly data-app export for exploring OECD Better Life Index data, country-level wellbeing gaps, and simple "what-if" policy scenarios.
Status: archived Plotly Studio demo export. The previously linked hosted Plotly app currently returns
404as of 2026-05-07. This repo needs packaging work before it should be treated as a reproducible application.
Static policy dashboards often show rankings without explaining the drivers behind them. This project explores a more guided workflow: normalize OECD wellbeing indicators, compare countries across dimensions, and generate rule-based diagnostic text for country profiles and scenario changes.
OECD raw data
|
v
oecd_transform.py
|
v
Cleaned country-level dataset
|
v
Plotly Dash / DDK layout
|
v
Callbacks in diagonosis.py and simulator.py
|
v
Interactive charts and template-driven narrative text
- Python
- Pandas
- Plotly / Dash / DDK
- OECD Better Life Index data
- Data transformation pipeline that filters, pivots, and normalizes OECD wellbeing indicators.
- Composite wellbeing score and gap columns for country comparison.
- Dash layout for overview, country diagnosis, and scenario simulation screens.
- Callback logic for country selection, dimension comparison, slider-based scenario changes, and narrative text generation.
- Percentile-based handling for inverted indicators where lower values are better.
- The hosted Plotly app link is currently unavailable.
- The repository does not include a standalone
app.pyentrypoint. - The source and processed datasets are not included.
- Some Plotly Studio support modules are missing from this export.
- Narrative generation is rule-based; there is no live LLM or external AI service in the current code.
diagonosis.pyis misspelled and should be renamed todiagnosis.pyduring packaging.- No tests, CI workflow, Dockerfile, or dependency file are included yet.
The most relevant files are:
oecd_transform.py Data cleaning, normalization, and feature creation
layout.py Plotly/Dash layout structure
diagonosis.py Country diagnosis callbacks and narrative logic
simulator.py Policy scenario callback logic
policy.py App registration/bootstrap code from the Plotly export
- Add
pyproject.tomlorrequirements.txt. - Add a standalone Dash entrypoint.
- Include sample data or documented download steps for the OECD dataset.
- Rename
diagonosis.pytodiagnosis.pyand update imports/docs. - Add unit tests for transformation and scenario calculations.
- Add GitHub Actions for linting and tests.
- Add Dockerfile and deployment instructions if this becomes a live demo again.
- Working deployment URL or remove homepage entirely.
- Screenshot of the dashboard running locally or on a hosted platform.
- Example input/output from
oecd_transform.py. - Test output for transformation logic.
- Short note explaining which modules came from Plotly Studio export and which were handwritten.