Ten ways to show what people actually said.
A dashboard for qualitative research doesn't have to look like a Google Analytics report. Below: ten ideas — some rigorous, some editorial, some stolen from the trading floor or the philologist's index. All rendered against the real project-ikea data (42 quotes, 4 sessions, 7 sentiment types, 16 topics), now carrying triage verdicts.
The study's pulse
Lineage: Joy Division's "Unknown Pleasures" cover · Wilke's ridgeline / joyplot · seismogram.
p1 · 4:22
p3 · 4:06
Two of four sessions shown — enough to record why it lost: the smooth curve implies p1 passed through moderate feeling between the satisfaction plateau and the frustration ridge. They didn't. They changed topic.
Sentiment tape, with section boundaries
Lineage: Bloomberg / Reuters trading tape · Wall-Street sentiment tickers · tube-map interchange bands.
Each quote is a tick: colour = sentiment, height = intensity. New in v2: section boundaries show where the participant moved — homepage to checkout, pre-surgery to aftercare. Two alignment treatments below solve the "boundaries vs ticks" overlap worry three ways: labels get their own lane (never in the tick field); hairlines render behind ticks, dashed and dim; narrow zones lose labels before they lose their lines.
Which variant? A for the dashboard hero — the strip stays clean and the label lane doubles as a skim-read of the journey. B for compact contexts (session cards, sidebar previews) — it's the same idiom as the existing coverage bar, and the band survives shrinking better than floating labels do.
Kudos & kvetch — the order book
Lineage: Financial order books (bids left, asks right, spread in the middle). Recast as what worked vs what broke, sorted by intensity.
The single question every stakeholder asks — "is this working or not?" — has a shape. This makes the answer scannable in five seconds, both sides at their real weight.
Ambivalence portraits
Lineage: Scharp 2021, Thematic Co-occurrence Analysis (Journal of Communication).
Thematic co-occurrence matrix
Lineage: Scharp (2021) — participants × themes matrix, cells encode × (present), + (emphatic exemplar), colour (positive/negative/both). Read along three continua: Sporadic ↔ Pervasive (columns), Unilateral ↔ Bilateral (cells), Unbalanced ↔ Balanced (rows).
| participant · session | Pre-surgery info | Post-surgery aftercare | Post-surgery notifications | Top navigation | Beds category | Search results | Login & app | Shopping bag | Duvets browsing | Checkout & delivery |
|---|---|---|---|---|---|---|---|---|---|---|
| p1 · s1 | ×⁺ | ×⁺ | ×⁺ | — | — | — | — | — | — | — |
| p2 · s2 | — | — | — | × | × | — | — | — | — | — |
| p3 · s3 | — | — | — | — | × | × | × | × | — | × |
| p4 · s4 | — | — | — | — | × | — | — | — | ×⁺ | × |
Emphasis marker (⁺) = intensity-3 quote in that cell. Method after Scharp, K. (2021), Journal of Communication 71(4).
The 05 / 06 / signal-cards triangle. These three matrices carry different questions:
05 asks "where do participants agree?" — consensus and coverage. Its empty cells are information (who didn't hit checkout?). Nothing in the product answers this today.
06 asks "where is the negative signal densest?" — which is adjacent to what signal cards already compute in the analysis lens (concentration per label|sentiment cell). Shipping 06 on the dashboard would duplicate analysis.
So the dashboard slot goes to 05's axes, at 5b's scale. The GitHub grid reads Scharp's continua at a glance: a filled column is pervasive (Beds browsing — 3 of 4 rows, three different hues: everyone went, nobody agrees); a lone saturated cell is sporadic-but-strong (Aftercare, one row, full red); a split column is live disagreement (Checkout: p3 green, p4 red). Click through to the analysis lens for the full-fat version. Compare docs/mockups/mini-heatmaps-dashboard.html — the earlier GitHub-grid experiment this remixes.
Friction heatmap
Lineage: Sports analytics — soccer xG heatmaps, shot-density charts. Topics × sessions, cell heat = negative-sentiment density.
Cell = count of frustration + confusion + doubt quotes on that topic in that session. "str." marks an intensity-3 quote. Reading: beds category is spread across three sessions (product problem); aftercare is one participant, one session, maximum heat (single-voice, still a finding).
Session small multiples
Lineage: Tufte, The Visual Display of Quantitative Information. Bertin, Semiology of Graphics. Same thumbnail per session, compared at a glance.
Two of four rows shown (s1, s3 — the two long sessions).
Hero quote — "quote of the study"
Lineage: New Yorker pull quote, FT Weekend leader. One quote, big serif type, air around it. Designed to be screenshotted into a stakeholder deck.
That is nice to actually say that, to send that to someone. I think that's really nice.
Study fingerprint + KWIC concordance
Lineage: Key-Word-In-Context — philology's standard tool since the 1950s (Voyant, AntConc); classical concordances. Word clouds are decorative; concordances are readable evidence.
Every count below is real. The payoff word is back — 7 uses, frustration-leaning: "went back to my GP", "back to A&E", "referred back". The retry word. A researcher sees the red-tinted underline and clicks; the concordance shows the loop the participant was stuck in. Type size follows frequency; the underline splits by the sentiment mix of quotes containing the word.
Reading the pattern: four of seven uses of "back" are one participant re-entering a system that discharged them. The word itself is the journey map. This is what a concordance does that a word cloud cannot: it keeps the grammar, and the grammar is the finding.
Saturation curves — topics vs themes
Lineage: Glaser & Strauss (1967), grounded theory. Guest, Bunce & Johnson (2006), How many interviews are enough? The chart every methods reviewer wants and no commercial competitor ships.
No new theme since s3 — the pattern has stabilised. New sessions are adding colour, not categories.
Recommendation: 1–2 more sessions to confirm; expect theme count to hold at 4.
Verdict states: Not yet (curve steepening) · Approaching (last session added ≤1) · Saturated (0 new across last 2 sessions).
Topic counts are ground truth (3 → 5 → 12 → 16 cumulative). Theme-per-session attribution is approximated for the mockup; the real implementation keys on theme-cluster membership, which the pipeline already computes at s11.