Skip to content

02 · Stat Explorer

Theme 02 · Modern interaction · data: synthetic · reimagines METviewer + METcalcpy

A direct-manipulation answer to METviewer’s form-driven workflow: pick a Metric, a Dimension for the x-axis, Filters, and a Facet, and three cross-filtered views (brushable line plot, sortable table, faceted small multiples) respond immediately. Aggregation is done the correct ratio-of-sums way over raw aggregables carried per row.

apps/stat-interaction/
index.html entry
src/store.js dataset + selection state
src/model.js metric derivation (CNT via shared lib; CTS local by design)
src/controls.js metric/dimension/filter/facet controls
src/view_line.js / view_table.js / view_facets.js the three linked views
data/stat_inline.mjs synthetic MET-line-type dataset (10,080 rows)
  • Its row schema already carries raw aggregables (c=[a,b,c,d], s=[fbar,obar,...]+sae) — a 1:1 match to the parser’s ctcCell()/sl1l2Line() output, which is why the blueprint sequences it first for real-data wiring (queued: read the real .stat Parquet from R2).
  • The categorical path intentionally stays local: its Math.max(1, denom) guard differs from the lib’s NaN-safety and repointing would change near-empty-cell values.
  • Single-file build: dist/stat-interaction.html (~1 MB).