Select both files together: your performing topics and the opportunities export. Everything is parsed in your browser.
Click any segment to see the prompts inside it.
| Model | Mention rate | Mentioned | Missed | Gaps | Total prompts |
|---|
Mention rate is mentioned divided by mentioned plus missed. Gaps are opportunity prompts where the model never cited the brand at all.
| Topic | Mentions | Misses in same topic | Win rate | Search volume |
|---|
A high miss count next to a high mention count is a quick-win signal: the topic is on-brand, the answers just need targeted optimization.
Priority 1: topics where the brand already partially wins. Priority 2: high-volume topics with no current presence. Priority 3: long-tail. Citation links are not present in the source data — only citation counts (sources_count) are available.
| Topic | Tier | Gap prompts | Competitor mentions | Topic volume | Score |
|---|
Score is gap prompts multiplied by the log of topic volume. It rewards topics that combine breadth and depth.
| Brand | Total mentions | Topics appeared in | Avg mentions per topic | Share of voice |
|---|
Share of voice is each brand's mentions divided by total mentions, with the brand itself included for reference.
| Country | Mentioned | Missed | Gaps | Mention rate | Total |
|---|
Markets where mention rate lags but gap volume is high are the strongest case for localized content investment.
Matching is case-insensitive and trims whitespace. Punctuation must match exactly.
Example: keyword free excludes "free trial" and "is X free" but not "freedom" or "freelance". Matching uses word boundaries.
Run this once in the Supabase SQL editor.