Theme Coverage Report

Analysis: {{ result.analysis_name }}


Summary

Themes

{{ result.themes|length }}

Documents

{{ result.documents|length }}

Total Chunks

{{ result.config.n_chunks }}

Chunks/Doc

{{ (result.config.n_chunks / result.documents|length)|round(0)|int }}

Themes Analysed
    {% for theme in result.themes %}
  • {{ theme.name }}
    {{ theme.description }}
  • {% endfor %}

Document-Level Coverage

Coverage scores aggregated across each entire document ({{ result.config.aggregation }} of chunk similarities).

Colour scale from 30th percentile to maximum coverage score.

Theme coverage heatmap (continuous)

Red = above {{ threshold }}, Grey = below {{ threshold }}.

Theme coverage heatmap (thresholded)
{% if normalized_heatmap or absolute_heatmap %}

Chunk-Level Coverage

Shows where theme matches occur within documents. Each panel represents one theme. Max similarity within each bin.

{% if normalized_heatmap %}

Each document is divided into {{ n_bins }} equal bins (0-100% of document). All documents have the same width.

Normalised chunk-level heatmap
{% endif %} {% if normalized_heatmap_zscore %}

Z-scored values with negative scores truncated to 0. Highlights above-average regions.

Z-scored normalised heatmap
{% endif %} {% if absolute_heatmap %}

Chunks grouped by absolute position (groups of ~{{ (result.config.n_chunks / result.documents|length / n_bins)|round(0)|int }} chunks). Documents have variable widths based on length.

Absolute chunk-level heatmap
{% endif %}
{% endif %} {% if theme_trajectories %}

Theme Trajectories

How theme coverage varies across document position (LOESS-smoothed average across all documents).

Theme trajectories across document position
{% endif %} {% if within_doc_variation %}

Within-Document Variation

Statistics on max-binned similarity values within each document, averaged across all documents.

{% for theme_name, stats in within_doc_variation.items() %} {% endfor %}
Theme Avg Max P95
{{ theme_name[:50] }}{% if theme_name|length > 50 %}...{% endif %} {{ "%.3f"|format(stats.avg) }} {{ "%.3f"|format(stats.max) }} {{ "%.3f"|format(stats.p95) }}
{% endif %} {% if group_heatmap %}

Group-Level Coverage

Mean coverage scores aggregated by document group.

Group coverage heatmap
{% endif %}

Top Matching Chunks Per Theme

For each theme, the 50 highest-similarity chunks across all documents.

{% for theme in result.themes %} {% set theme_name = theme.name %}

{{ theme.description }}

{% if theme_name in result.top_chunks_per_theme %}
    {% for chunk in result.top_chunks_per_theme[theme_name] %}
  1. {{ chunk.filename }} {{ "%.3f"|format(chunk.similarity) }}
    {{ chunk.chunk_text }}
  2. {% endfor %}
{% else %}

No chunks available.

{% endif %}
{% endfor %}
{% if result.groups %}

Group Statistics

Coverage statistics aggregated by document group.

{% for theme_name in result.theme_names %} {% endfor %} {% for group in result.groups %} {% for theme_name in result.theme_names %} {% endfor %} {% endfor %}
Group N Docs{{ theme_name[:15] }}{% if theme_name|length > 15 %}...{% endif %}
{{ group.group_name }} {{ group.n_documents }} {{ "%.2f"|format(group.theme_scores[theme_name]) }}
±{{ "%.2f"|format(group.theme_scores_std[theme_name]) }}
{% endif %}

Document Details

Coverage scores for each document across all themes.

{% if result.groups %} {% endif %} {% for theme_name in result.theme_names %} {% endfor %} {% for doc in result.documents %} {% if result.groups %} {% endif %} {% for theme_name in result.theme_names %} {% endfor %} {% endfor %}
DocumentGroupChunks{{ theme_name[:12] }}{% if theme_name|length > 12 %}...{% endif %}
{{ doc.filename }}{{ doc.group or '-' }}{{ doc.n_chunks }} {{ "%.2f"|format(doc.theme_scores[theme_name]) }}

Configuration

Chunk Size
{{ result.config.chunk_size }} {{ result.config.split_unit }}
Overlap
{{ result.config.overlap }} {{ result.config.split_unit }}
Aggregation Method
{{ result.config.aggregation }}
Embedding Model
{{ result.config.embedding_model }}
Embed Source
{{ result.config.embed_source }}{% if result.config.n_quotes %} ({{ result.config.n_quotes }} quotes){% endif %}
Embedding Template
{{ result.config.embedding_template }}
Heatmap Threshold
{{ threshold }}
Normalised Bins
{{ n_bins }}
Total Documents
{{ result.config.n_documents }}
Total Chunks
{{ result.config.n_chunks_total }}{% if result.config.n_chunks_sampled != result.config.n_chunks_total %} (sampled: {{ result.config.n_chunks_sampled }}){% endif %}
Total Themes
{{ result.config.n_themes }}