Predecessor Data Explorer: implementation path
Inspected 4 October 2026; no changes to the predecessor’s deployment or bundled data.
Hosting and ownership
- Live: https://regiohub.github.io/soep-regiohub-dataexplorer/
- Source: https://github.com/RegioHub/soep-regiohub-dataexplorer
- Inspected revision:
f0f0602(public repository, shallow clone used for audit). - Static SvelteKit/Svelte 4 app, Apache ECharts charts, Arquero tables; no upload backend.
svelte.config.jsusesadapter-staticand the GitHub Pages path.npm run deploypublishesbuild/withgh-pages. No Actions workflow was present at this revision.src/routes/assets/data.jsonanddata-avg.jsonbundle precomputed data; maps and boundaries are local JSON in the same directory. No live tile provider is required byMap.svelte.- Ask Long/Dorian for write access to the RegioHub GitHub organisation/repository, Pages settings and branch/deployment ownership, plus the documented procedure for regenerating data. Do not ask for a generic server password before confirming whether a separate server exists.
Recommended next version
Keep preloaded indicators as one mode; add a separate Your CSV mode. Parse files entirely in the browser with a maintained CSV parser, in a Web Worker. Never upload raw files, invoke remote geocoding or persist personal datasets in browser storage by default. This needs no new server, account, database or authentication wall.
Suggested flow: choose CSV, preview columns, select geography/year/value fields, validate and review joins, then map and compare regions. Provide a downloadable example and Reset command. Join by AGS/NUTS code plus geography vintage, not ambiguous regional names. Current bundled map properties have only name; obtain documented, appropriately licensed coded boundaries before offering robust joins. Display unmatched/duplicate codes and reject ambiguous joins. Keep numeric codes as strings, recognise German separators/decimal commas, distinguish missing from zero, reject non-finite values and show units and a stable colour scale across years.
Handle data as text, never executable HTML. Prefer ECharts rich-text/canvas tooltips; escape any HTML tooltip strings and allowlist link protocols. Bound file size, row count and parser errors; render only after validation. Formula-neutralise CSV exports. Verify, using browser network capture, that uploading/viewing/exporting makes no outbound request containing file content. Browser-local processing reduces disclosure risk, but is not permission to use licensed SOEP microdata on an internet-connected machine. For restricted material, offer a documented offline build only within the approved analysis environment. Do not promise automatic anonymity.
UX improvements worth doing together
Responsive map/table/chart tabs, searchable region selection, a clear data-source/year/unit strip, visible missing-data legend, accessible selection state, table view, PNG/CSV export and Reset. Make comparisons explicit: region versus a justified reference, not an unexplained national mean. Review the currently unused mapShowHospitals switch before adding more controls. The app currently derives selectable years from NUTS1 even when displaying NUTS3; derive them from the selected level.
Data permissions before republication
LICENSE.md grants MIT rights to Long Nguyen’s software; the app footer instead names CC BY 4.0. Clarify which licence covers code, derived data and GISCO boundaries. Regional BMI, life/health satisfaction, worries and trust are labelled SOEP. Public availability alone does not establish that derived regional SOEP aggregates may be rehosted. Bundled records have name, year, value, but no sample counts or documented disclosure/suppression field. Ask for release approval, weighting/denominators, small-cell policy and geography vintage before migrating these data. This audit did not open respondent microdata or copy the predecessor’s datasets into GeoLAB.
Optional LLM description cleanup
The current finder SOEP descriptions are official v41 bilingual metadata, not the former small model enrichment. Current presentation cleanup separates question, official note, categories and distribution, with the original source still available. The official note for pgen/pglabnet documents monthly main-job income and imputation; pgisced11 documents education coding; pl/plh0033 and pl/plh0182 include alternate question wordings. These facts must not be rewritten away. GeoDB Regionalatlas examples have recognisable method/source/limitation headings and some legacy wiki markup; general source-specific parsing is preferable to inventing shorter meanings.
A local LLM with greedy decoding/temperature zero can later draft separate display summaries, not replacement definitions. Temperature zero does not prevent hallucination. Require structured output with verbatim supporting spans and preserved unit, population, period, denominator, imputation and comparability limits; reject unsupported assertions, keep prompt/model provenance, review a diverse held-out sample across sources/languages and compare retrieval before any index change. No bulk LLM rewrite or production embedding replacement was done for this presentation fix. An isolated title/current-document/official-field embedding experiment is recorded in the finder repositories; it must not be confused with a production index rebuild. See ../destatis-rag/DESCRIPTION_REVIEW.md: both alternative representations regressed on the existing 59-case gate, so the production embeddings remain unchanged. The report also documents top-hit population ambiguities and the need for stricter held-out judgments before further tuning.