Group analysis: what each module produces¶
When you run analysis on a group, outputs fall into four product-facing classes. The same module id can mean different things depending on whether you run on one transcript or a group.
All registered pipeline modules support group runs (supports_group=true) and have an aggregation entry. BERTopic (bertopic) is a registered module whose native stack is optional ([bertopic] / [full] / Docker — see bertopic_optional_module.md); group aggregation refits from pooled source segments (member topic IDs are not joined across fits).
Four output classes¶
Class |
What the user gets |
How it is implemented |
|---|---|---|
Group charts (registry-backed) |
Aggregate charts under the group run directory, tagged |
|
Group visuals (module-specific path) |
Charts that are not produced by |
wordclouds — charts written inside |
Group data outputs only |
CSV/JSON row bundles (and similar) for the group, no group-level chart generator |
temporal_dynamics, insight_eligibility, voice_contours, llm_speaker_summary, contextual_emotion, fine_grained_emotion, llm_custom_qa — aggregated in |
Group composite / blob only |
A JSON blob artifact, not the standard row aggregation + chart pass |
summary, llm_summary, narrative_summary, transcript_output — |
Examples by module¶
Module |
Class |
|---|---|
stats, sentiment, acts, ner, lexical_diversity, simplified_transcript, transcript_quality, epistemic_markers, politeness, keyphrases, topic_shift, … |
Registry-backed group charts (+ row CSV/JSON); transcript_quality pools only within matching ASR provenance cohorts (see below); keyphrases pools noun_chunks by |
wordclouds |
Module-specific group visuals (special path); includes pooled keyphrase_noun_chunks cloud when |
temporal_dynamics, insight_eligibility, voice_contours, llm_speaker_summary, contextual_emotion, fine_grained_emotion, llm_custom_qa |
Data outputs only (no group chart registry entry); llm_speaker_summary may also feed group LLM synthesis |
summary, llm_summary, narrative_summary, transcript_output |
Blob-only composite; llm_summary may also feed group LLM synthesis |
llm_action_items, insights, semantic_similarity*, voice_mismatch/tension/fingerprint |
Rows (+ charts where registered) |
prosody (from voice_features / voice_charts_core / prosody_dashboard) |
Registry-backed via existing |
* semantic_similarity, semantic_similarity_advanced, and semantic_similarity share one aggregation entry. B14: v2 motif envelope + group centroid match within a comparable provenance cohort (valid-zero sessions included; TF-IDF incomparable). repetition_rows remain content_rows; additive motif_rows + versioned semantic_similarity_pooled. Chart class: composite session bars + motif prevalence (group_charts_semantic_motifs_contract.md).
keyphrases group aggregation (B16)¶
Pool per-transcript noun_chunk ranks by
canonical_key(never reparse concatenated multi-session text).Aggregate: sum
occurrence_count, sum memberrank_weightthen re-normalise,member_session_support, display = mode.Drop phrases below
min_member_sessions(default 2).Registry chart:
keyphrases.phrases.global(top-N pooled rank_weight); requireskeyphrases_pooledon chart_outcome allowlist.YAKE/KeyBERT: explicitly deferred for group pooling this wave.
Wordclouds special-path: pooled noun_chunk cloud from explicit
keyphrase_noun_chunk_poolintorun_group_wordclouds(seepooled_variants.py).Runtime note:
../runtime/keyphrases.md.Pooled chart contract:
group_charts_keyphrases_pooled_contract.md.
transcript_quality group aggregation¶
ASR confidence is not comparable across ASR engines/models/normalisation policies.
Members are grouped by
provenance.comparable_key.The primary cohort is the largest compatible set; other members are counted as
incompatible_member_countand excluded from pooled confidence metrics.Within a cohort (word-weighted, never unweighted mean of session summaries):
coverage = sum(scored) / sum(eligible)mean_score = sum(mean_i * scored_i) / sum(scored_i)low_score_ratio = sum(low_score_words) / sum(scored)
Group charts emit session bars only for the primary cohort; they never blend incompatible provenance.
See also runtime/transcript_quality.md.
Insights / Overview UI (group subjects)¶
Pipeline already runs selected modules on each member. The web Insights and Overview blocks load both:
Group rollups (
*_rows.json, summary blobs, optional group LLM synthesis)Per-session member contracts via a session picker (
storage_root-aware loader)
See docs/dev/web_blocks.md and docs/dev/group_functionality_audit_2026-07-17.md (E6/E7).