Skip to main content

Open in AthenaHQ

app.athenahq.ai/heatmap

Purpose

The Heatmap page gives customers a single-screen, color-coded view of how their brand and each tracked competitor perform across every topic they’ve configured. Rows are topics, columns are brands (the customer’s brand plus their competitors), and each cell shows either a Mention % or a Citation %: the deeper the color, the higher the value. This is the primary surface marketers reach for when doing competitive gap analysis: “Which topics is competitor X dominating that we’re missing from?” or “Are we being cited on the topics we care about?” Unlike the Olympus dashboard, which trends a single metric over time, the Heatmap is a snapshot of relative coverage across the entire topic set. It’s also the launchpad into deeper investigation: clicking any cell jumps the user to the Prompts page pre-filtered to that topic and (when it’s a competitor cell) that competitor, so they can read the actual model responses driving the percentage. The page sits alongside Olympus, Prompts, and Sources as one of the core analysis surfaces. It requires at least one configured competitor: without competitors, there’s nothing to compare against, so the page shows an empty-state nudge instead.

What’s on the page

A simple title bar reading “Competitors vs Topics Heatmap”. On desktop, the filter row’s action buttons (metric toggle and ⋯ menu) are portaled into this header on the right. On mobile, a Filters button and ⋯ menu appear here instead.

Filter row

A sticky bar directly below the page header containing:
  • Views dropdown: load, save, edit, and delete saved filter combinations.
  • Filter chips. Date Range, Models, Prompt Status, Prompt Variation, Competitors, Personas, Locations, Topics & Prompts, Prompt Tags, Owned Domains, plus client-side Mention % and Sentiment % threshold filters.
  • Clear All button: appears in orange when any filter differs from its default.
  • Metric toggle (Mention % / Citation %): switches what every cell displays.
  • ⋯ More options menu: currently contains a single “Export” action.
On mobile, all filter chips collapse into a Filters drawer; the metric toggle and Export action move into a sticky mobile bar with the ⋯ menu.

Heatmap matrix

The main visualization. Columns are brand + competitors; rows are topics.
  • First column (your brand): rendered with an indigo-tinted logo badge to distinguish it from competitors. Always preserved, even when threshold filters would otherwise hide it.
  • Competitor columns: sorted alphabetically by name; each header shows the competitor’s logo and name.
  • Topic rows: sorted alphabetically by topic name. Only topics that the brand actually tracks are shown (the system filters out an “Uncategorized” bucket on the server side).
  • Cells: show the selected metric formatted as a percentage with one decimal (e.g. 42.3%). Empty cells (no data) show and are not clickable. Values between 0% and 0.1% are floored to 0.1% so they remain visible.
  • Color scale: in light mode, cells range from a light indigo for low values to saturated indigo for the maximum value in the matrix. In dark mode, the gradient runs from near-black (#020617) at 0% through deep blue to bright indigo at the maximum.
  • Hover behaviour: hovering a cell dims every cell not in the same row or column, so the user sees the crosshair of that topic vs. that brand. A cursor-following tooltip displays the exact value and a comparison to the brand’s value in the same row. A small arrow appears in the cell pointing at the tooltip.
  • First column and header row are sticky while the matrix scrolls horizontally and vertically.
A single-line summary bar at the bottom of the matrix:
  • When data is present: “Showing N topics across N competitors”.
  • When no data matches the filters: “No topics or competitors to display”.
  • While loading: blank placeholder of the same height (no message).

No-competitors blank state

Replaces the entire matrix when the website has zero competitors configured. Shows a blurred mock heatmap (Topic / Your Brand / Competitor A / B / C with sample percentages) behind a centered card that reads:
  • Title: “No Competitors Yet”
  • Description: “Add competitors to compare your brand visibility”
  • Button: “Add Competitor” → navigates to the Competitors page.

What you can do here

Switch the displayed metric

Mention % / Citation %: a two-tab toggle in the filter row’s action area. The selection is stored in the URL (?metric=mention or ?metric=citation), so the link can be shared. On mobile, the toggle appears in the sticky bar above the filter drawer.

Filter the data

All filter chips described in the Filters section above. Combine them freely: most filters fetch new data from the server; Mention % and Sentiment % thresholds are applied client-side after fetch.

Save, load, edit, and delete views

In the Views dropdown in the filter row:
  • Save as view: opens an input and icon picker, then stores the current filter state under a name.
  • Click a saved view: loads its filter values.
  • Per-view menu (⋯ next to a saved view). Edit (rename / change icon), Update filters (overwrite the view’s filters with the current ones), Set as default / Remove default (auto-load on page entry), Export (download a CSV of prompts scoped to the view’s filters), Delete (with confirmation: “Are you sure you want to delete the view ‘Name’? This action cannot be undone.”).
  • Clear All: appears in the filter row when filters differ from defaults; resets every filter back to its default value.

Export the heatmap to CSV

Click the button in the filter row’s action area and choose Export. This downloads a CSV with one row per topic and one column per brand/competitor, using the current column order (including pinned columns first) and the currently-selected metric. The Export item is disabled when there’s no data to export. On mobile, Export CSV lives in the ⋯ overflow menu in the page header.

Sort rows by a column’s values

Click a column header in the heatmap. First click sorts descending (highest values at top), second click sorts ascending, third click clears the sort and returns to the default alphabetical-by-topic order.

Reorder columns

Drag a column header horizontally to a new position within the matrix. The new order is used immediately and is reflected in CSV exports.

Pin / unpin columns

Use the column header controls to pin a competitor column. Pinned columns are moved to the left side of the matrix and stay visible while scrolling horizontally. Unpinning returns the column to its natural alphabetical position. Pinning state is held only in memory: it does not persist across page refreshes.

Drill into the underlying prompts

Click any cell that has a numeric value. The page navigates to /prompts, applying:
  • A prompts filter scoped to the prompts that belong to the clicked row’s topic.
  • A competitors filter scoped to the clicked column’s competitor (skipped if the clicked column is the brand itself).
  • All other contextual filters (date range, models, etc.) that were active on the heatmap.
Cells with no data (showing ) do not navigate.

Add a first competitor (blank state)

When no competitors exist, click Add Competitor in the empty-state card to jump to the Competitors page and set one up.

Data shown

  • Columns: the customer’s brand (always first) plus every competitor configured for the active website, optionally narrowed by the Competitors filter.
  • Rows: the topics associated with the brand’s prompts (an “Uncategorized” bucket is excluded).
  • Cell values: for each (topic, brand) pair: the percentage of AI-model responses in the selected date range where that brand was mentioned (Mention %) or cited (Citation %). The calculation respects every applied filter: date range, models, prompt status, prompt variation, locations, personas, prompt tags, selected prompts, and owned domains.
  • Logos: fetched in batch for the brand and every competitor; while pending, shimmering placeholders appear in the column headers.

Common workflows

Find topics where competitors are beating you

  1. Open /heatmap.
  2. Confirm the desired date range and models are selected.
  3. Leave the metric set to Mention % (or switch to Citation %).
  4. Scan each row: look for rows where a competitor cell is more saturated than your brand cell.
  5. Click the strongest competitor cell in that row to drill into the actual prompts and responses driving the gap.

Export a snapshot for a stakeholder report

  1. Apply the date range and any other filters that scope the analysis.
  2. (Optional) Pin the most important competitor columns so they appear first in the export.
  3. Click the menu in the filter row.
  4. Click Export: a CSV downloads with topics as rows and brand/competitor columns in the current display order.

Focus the matrix on a subset of competitors

  1. Click the Competitors filter chip.
  2. Select one or more competitors.
  3. The matrix re-renders showing only those competitor columns alongside your brand.

Save a recurring filter combination

  1. Apply the filters you want to reuse.
  2. Open the Views dropdown.
  3. Click Save as view, name it, pick an icon, Save.
  4. Optionally open the view’s ⋯ menu and choose Set as default so it auto-loads on subsequent visits.

Compare a single competitor side-by-side with your brand

  1. Drag the target competitor’s column to sit immediately to the right of your brand column, or pin it.
  2. Use the column header sort to order rows by that competitor’s values descending.
  3. Read down the matrix to see exactly where they out-rank you.

Empty, loading, and error states

  • No competitors configured: the blank-state overlay (“No Competitors Yet”) replaces the heatmap entirely, with an Add Competitor CTA.
  • Competitors exist but no data for the filters: the heatmap area shows the message “No data available for the selected filters.” and the footer reads “No topics or competitors to display”.
  • Loading: a centered animated loader fills the heatmap area; the footer shows a blank placeholder. Loading also runs while competitors themselves are still being fetched.
  • Errors, if the underlying heatmap data request fails, the page treats the result as empty rather than showing an error banner. The customer will see the “no data” state. If a customer reports a persistent empty heatmap despite having competitors and data elsewhere, this is the path to suspect.
  • Linked from: typically reached via direct URL /heatmap or a nav entry that points to it. The page itself does not advertise inbound links from other Athena pages.
  • Links to:
    • /competitors: from the Add Competitor button in the empty state.
    • /prompts: from clicking any cell with data. The Prompts page opens with the clicked topic’s prompts and (for competitor cells) the clicked competitor pre-applied as filters.

Common support questions

Q: Why is my heatmap empty even though I have prompts running? A: The Heatmap requires at least one competitor to be configured for the website. If there are zero competitors, the empty-state overlay replaces the matrix. If competitors exist but the matrix still shows no data, check the date range filter and prompt status filter: the default is “active” prompts only. Q: What’s the difference between Mention % and Citation %? A: Mention % is the share of model responses in which the brand was mentioned in the response text. Citation % is the share of responses where the brand was cited as a source. Use the toggle in the top right of the filter row to switch. Q: I set a Mention % filter of “>50” but I still see low-value cells in the matrix. Why? A: The Mention % and Sentiment % threshold filters are column filters, not cell filters. They hide competitor columns where no topic meets the threshold; they do not blank out individual cells. Your brand column is always kept regardless. Q: Can I click a cell to see the underlying responses? A: Yes: clicking any cell that has a value drills into the Prompts page filtered to that topic and (for competitor cells) that competitor. Cells with no data show and are not clickable. Q: I reordered/pinned my columns but they’re back to default after a refresh. Is this a bug? A: No: column order and pinning are intentionally per-session and not persisted. The intended way to make a configuration stick is to save the filter combination as a view (column order itself is not part of the saved view, but the filter combination is). Q: How do I share a heatmap view with a teammate? A: Two options: (1) copy the page URL: it contains the selected metric (?metric=mention or ?metric=citation), or (2) save the filter combination as a view and ask your teammate to load the same saved view from their Views dropdown. Q: Where is the Export button? A: On desktop, click the icon to the right of the Mention %/Citation % toggle and choose Export. On mobile, tap the icon in the page header and select Export CSV.