Metrics
Every Trakkr score, ratio, stage state and window, with the formula behind it and the thresholds the product actually uses.
On this pageVisibility metrics
Most Trakkr scores run 0 to 100, and a few are plain counts. None has a universal good number. A visibility score of 40 can be strong in a category with fifty rivals and weak in a niche you should own outright.
Read every score against three things: your own number from last week, the tracked competitors beside it, and the slice you care about. A headline number covers one market and combines every prompt and AI in it, which hides most of what matters. Start with the per-model split, because scoring 80 on
Claude and 30 on Perplexity is normal rather than alarming.
This page is the formula and definition lookup. If you need to decide what to do with an empty value or a zero, start with Zero and missing scores. For the mental model first, read Core concepts.
Visibility metrics
Visibility score
How often AIs name a brand when people ask, and how high in the answer. From 0 to 100.
On this pageWhat it counts
What it counts
On each scan, Trakkr collects an answer from every AI you track for each of your prompts. In each answer we find the highest place your brand is named, and count it once. First place earns 10 points, second earns 9, and so on down to tenth at 1. Lower than tenth, or not named, earns 0.
A request that fails isn’t an answer, so it doesn’t count either way. It never shows up as a zero.
The example brand has 21 prompts, so its scan on Oct 8 read 168 answers. It was named in 54 of them, and first in 14.
| Place in the answer | Answers | Points |
|---|---|---|
| First, 10 points each | 14 | 140 |
| Second or third, 9 or 8 | 18 | 154 |
| Fourth or fifth, 7 or 6 | 10 | 66 |
| Sixth to tenth, 5 to 1 | 12 | 52 |
| Not named | 114 | 0 |
| Example, Oct 8 | 168 | 412 / 1,680 |
How it’s worked out
Add up the points, divide by the most the answers could have earned, then take the square root. The Dashboard’s Visibility figure is worked out this way; when its answers are on hand, opening it shows the sum.
points = 11 − place, for places 1 to 10, else 0 raw = points ÷ (answers × 10) × 100 score = 100 × √(raw ÷ 100)
raw = 412 ÷ (168 × 10) × 100 = 24.52 score = 100 × √(24.52 ÷ 100) = 49.5
Why the square root
Raw scores bunch near the bottom, because few brands are named first in most answers. The root stretches that end, so a real gain for a small brand is a change you can see. It lifts low scores more than high ones, and it never changes who is ahead.
What the root doesn’t do is reward being steady. That comes from the denominator: every answer counts, named or not, so a brand named in only a few answers scores low however high it places in them.
Is a change real?
Visibility moves a little from scan to scan, because AIs rarely answer the same way twice. So each brand gets a usual range, learned from its own recent scans: the average of its last 7 readings, give or take how far the score normally strays. A figure turns green or red only outside it, and the bell waits until it stays outside two scans in a row, on the same side.
One AI at a time
Each AI gets its own score from its own answers. The overall score adds every AI’s points and answers first, then takes the root once. Averaging the AI scores instead would give a different, wrong number.
Grok44 of 210 points45.8
Meta AI40 of 210 points43.6
Claude55 of 210 points51.2DeepSeek36 of 210 points41.4
Gemini62 of 210 points54.3
ChatGPT78 of 210 points60.9
Perplexity70 of 210 points57.7
AI Overviews27 of 210 points35.9
- Overall412 of 1,680 points, one root49.5
The average of the AI scores above is 48.9. That’s why it’s never used.
Where you’ll see it
The first figure on the page. When its answers are on hand, opening it shows the sum.
One score per prompt, from its own answers, worked out the same way.
Every brand gets a score from the same answers, so they line up fairly.
Each scan’s score is this sum. A range shows the average of its days.
Sentiment does not enter this formula. Branded prompts are not automatically excluded from the position score, so mixing them into a discovery baseline changes its meaning. Use Prompts to choose a fair set and tags to compare it.
Presence rate
In the live dashboard, individual reports and Data Explorer, presence is the share of usable AI answers that mention you, whatever the position. Failed requests do not count as answers where you were absent. Check collection coverage beside the score: a smaller or different sample can still change the result. With no usable answers, presence is unavailable.
Historical app values use this same calculation where exact answer counts are saved. Older values without those counts are unavailable. Existing external API fields, frozen monthly archives and previously generated reports retain their original calculation, which includes failed attempts in the denominator. Do not compare those percentages directly with app presence.
Good is 50% or more, excellent is 75% or more, and near 100% is a reason to review whether your prompt set fairly tests category discovery. Branded questions can inflate it. Presence is breadth, visibility is depth: a brand named tenth in every answer has 100% presence and 31.6 visibility.
Average position
The mean answer position, counted only in answers that mentioned you, so prompts where you never appear push presence down rather than average position up. Excellent is 1 to 2, good is 3 to 4. A strong average position next to a weak presence rate means you only show up in your easiest prompts.
Mentions
Answers that named your brand, at any place, counted once per answer, across all prompts and models in the period. One scan a day counts (the day's latest), as everywhere: the Dashboard's figure is the last 7 days summed, Reports shows a daily average, and a scan's own page shows that scan. Mention share is the same count as a proportion: your mentions divided by all brand mentions in the same model, tag, market, prompt and time scope.
Competitive metrics
Rank
Your place among the brands AI named, ordered by Visibility on the latest scan, and "of N" is how many brands that is. Each brand counts once: a product AI names on its own ("Puma Ultra Nitro 7") counts with its brand when the brand has a saved group, and so does a name that differs only by case. A product isn't added to its brand's score until you save it to the group in Manage. On one AI's page and the Competitors AIs tab, the rank counts the brands that AI named. A month-end rank on Reports and Perception's rank say their own sets.
Share of voice
Check which share the page labels. On Explore, Share of voice is answer presence. On Competitors, Share is your share of all brand mentions in the same scope. Named first (earlier called Recommended first) is a different figure: how often you were the first brand named in an answer. Compare either over the same scope.
Win rate
How often you rank above one competitor in answers where you both appear: on Competitors, shared answers where you rank higher divided by shared answers, over the last 14 days. Winning is 55% or more, dominant is 70% or more. It ignores answers where you never appear, so check presence before trusting a high number.
On Competitors, use the Filter to compare the same tags and AI.
Competitive gap
The difference in points between your visibility score and one competitor's. Positive means you are ahead. It presents two scores you already have, not a new measurement.
Head-to-head
The competitor detail view, opened from any competitor row: your wins, their wins and ties across every shared prompt, plus a per-model breakdown.
Citation metrics
Citations
Every time an answer cited a page, on any site, over the last 30 days. The Dashboard and the Citations page show the same number. Two counts sit beside it and never take its name: cited pages (each different page once) and sources (each site once). A source's own tile or row is in citations too, so no tile is ever bigger than the total.
Domain Rating
Ahrefs' 0 to 100 estimate of a domain's backlink authority. It belongs to the domain, not to your brand, so treat it as a supporting signal rather than a ranking. High is 70 or more, medium is 40 to 69, low is below 40. Look for the Ahrefs attribution and read the available source date; a domain rating is not a live measurement of citation performance.
Citation quality
The average authority of the sources citing you. In the product, authority is read per domain as Domain Rating in the Source explorer rather than as one rolled-up site score, so judge the mix of domains rather than chasing a single figure.
Source type
Every citing domain is classified into one of eight types.
| Type | What it covers |
|---|---|
| Media | News and editorial publications |
| Institutions | Government, education and research sites |
| Reviews | Review platforms |
| Yours | Your own sites |
| Social | User-generated content, including community threads |
| Rivals’ own sites | Competitor sites |
| Press releases | Press distribution services |
| Other | Sources outside the other categories |
Citation intent
The buyer intent behind the queries that produced each citation. Coverage per cluster is the queries where your brand appears divided by the queries in that cluster.
| Intent | What it captures |
|---|---|
| Comparison | "X vs Y" queries |
| Alternative | "Alternatives to X" queries |
| Best For | "Best X for use case Y" queries |
| Discovery | "What is X" and definition queries |
| Recommendation | "Recommend me something for X" |
Heavy Discovery coverage and nothing on Comparison means buyers know you exist but you are not in the shortlist.
Citation sentiment
Whether each citing page discusses your brand positively, neutrally or negatively, judged with your brand as the subject. Use the tone filter on Sources to narrow by sentiment. The split bar shows pages naming you, only rivals, or other pages, which is not sentiment.
Perception metrics
Overall perception
How positively AI models describe your brand, as one 0 to 100 score across 20 attributes in five categories. It averages the ratings the AIs give your brand on the latest weekly read. Excellent is 75 or more, good is 60 to 74, below 60 needs work.
The five categories
Each category averages four attributes. The Perception page shows the full grid plus a per-model breakdown.
| Category | Attributes | Top brands |
|---|---|---|
| Trust & Reliability | Overall trust, Reliability score, Transparency level, Safety perception | 70+ |
| Quality & Performance | Overall quality, Problem resolution, Responsiveness, User satisfaction | 72+ |
| Value & Experience | Value for money, Ease of interaction, Accessibility, Necessity level | 68+ |
| Market Position | Brand recognition, Professional image, Recommendation likelihood, Uniqueness | 70+ |
| Innovation & Appeal | Forward thinking, Adaptability, Likability, Confidence inspiring | 65+ |
Prompt demand metrics
Demand score
A 0 to 100 estimate of how likely people are to ask a question in AI chat. It blends measured search demand with LLM affinity, which is how naturally the query fits a conversation rather than a search box, then deducts points for very long and narrow phrasing. The output is compressed with a floor of 20, so a quiet prompt never sits at zero and an outlier never pins the chart.
High is 70 or more, medium is 40 to 69, niche is below 40. It is a bucket, not a rank: 72 against 68 is a coin flip.
AI volume
The estimated number of times people ask AI platforms about a topic each month. Platforms do not publish query volume, so Trakkr runs a waterfall and takes the highest-confidence source available. Hover any volume to see its tier.
| Tier | Label | Where the number comes from |
|---|---|---|
| High | Measured | Panel data from AI search platforms |
| Medium | Calibrated | Search volume plus learned per-category ratios |
| Medium | Interpolated | Measured prompts elsewhere in your own set |
| Low | Projected | Topic classification, with no search data |
Estimates carry a ~ prefix and round conservatively. High is 10K or more, medium is 1K to 10K, niche is below 1K.
The platform split uses fixed market-share estimates: ChatGPT 72%,
Gemini 12%,
Claude 6%, Perplexity 5%, Microsoft Copilot 3%, everything else 2%. It is then skewed by query type, and every prompt is classified as
comparison, recommendation, how_to, factual, navigational, creative or technical. Those shares estimate volume only, which is why Microsoft Copilot appears; the AIs your answers come from are listed on Core concepts.
Crawler and visitor metrics
The Crawlers page counts requests, not outcomes. A matching request proves a signature reached the page, and nothing beyond that: not that the content was parsed, retained, indexed or cited.
| Card | What it counts |
|---|---|
| Total requests | AI bot requests over the last 30 days, every purpose |
| Conversations | User-triggered fetchers such as ChatGPT-User |
| Agents | Agent and coding-tool signatures such as Claude Code |
| Indexing | Search-class crawlers such as OAI-SearchBot |
| Training | Crawlers classified for training or bulk collection |
Conversations
A strong leading signal, because a user-triggered fetch is usually someone's question leading an AI to your page. Pages with search-class requests and no citations are an investigation set, not a verdict.
AI Visitors
Real people landing on your site from an AI referrer, read from your connected Google Analytics 4 or PostHog property. The registry covers ChatGPT,
Perplexity,
Claude, Gemini, Microsoft Copilot,
Meta AI, You.com, Phind, Poe and a generic bucket. Crawler hits record a matching request; AI visitors record an attributable session, though the referrer rarely names the answer behind the click.
Reddit metrics
Reddit citation score
A 0 to 100 estimate used to rank threads worth investigating. It considers the title, discussion depth (when the scan could count the replies; otherwise that factor is left out), recency and relevance to your category. It is not a measured probability that a model will learn from or cite the thread. Vote popularity and community authority are not fully measured, so inspect the thread and its community rules yourself. The score drives the citation band filter and the Reddit work ranking.
Reddit draft grade
The quality of a drafted reply, scored 0 to 10 on four weighted dimensions plus a disclosure check.
| Dimension | Weight | What it grades |
|---|---|---|
| Helpfulness | 30% | Does it answer the question |
| Specificity | 25% | Concrete and actionable, or generic |
| Reddit tone | 25% | Reads like a person, not a brand |
| Non-spammy | 20% | Product mentions stay proportionate |
| Disclosure | Flag | Is the affiliation stated plainly |
Outreach metrics
These rank the citation gaps worth chasing and power the Outreach tab in Citations. Everything here is computed from the citation snapshot; no model grades a publisher.
Impact
How much tracked-prompt visibility a publisher is costing you, 0 to 100. Under the number is a visibility-leak score that multiplies how often the engine pulled the page, how many of your tracked prompts and queries it answers, how many rivals are cited on it, and the site's Domain Rating. Pages you cannot realistically pitch (Reddit, Wikipedia, Amazon and similar) and pages a competitor owns are scaled down. Raw leaks are compressed so your biggest gap reads about 100 and the long tail stays legible. Impact is the default order in every Outreach lens.
Difficulty
How hard the publisher is likely to be, graded against your own gap set rather than absolute thresholds.
| Grade | When it applies |
|---|---|
| High | Competitor-owned or unpitchable, Domain Rating 80 or more, or the top tenth of your gap set by appearances |
| Medium | Domain Rating 55 or more, or the top 40% |
| Low | Everything else |
The estimate is corrected later by the dossier, which checks whether the site actually accepts contributions.
Tier and Quick win
Each publisher also gets a relative tier by rank inside your own set: the top quarter is high, down to 60% is medium, the rest is low. Ranking rather than thresholding keeps the spread useful when one publisher dwarfs the others. A Quick win is a high-tier publisher with Low difficulty, the rare "do this first" flag shown on the row until you contact them.
Retired: Fit score and quadrants
Earlier versions of Outreach ranked publishers by a fit score and sorted them into Quick Wins, Worth It, Low Priority and Skip quadrants. Both were replaced by Impact, Difficulty and the tier above.
Journey stage states
Every Page moves through six stages. Ok, Degraded and Stalled are deterministic rules, never a model's opinion. Relevant is inferred and always carries an Estimated label.
| Stage | Ok | Degraded | Stalled |
|---|---|---|---|
| Available | 200 and indexable | HTTP warning or canonical mismatch | HTTP or robots fails, or indexing blocked |
| Reached | 5 or more fetches in 30 days, one from a search crawler | 1 to 4 fetches, or no search crawler | 0 fetches in 30 days |
| Understood | Passed the text-volume check against the browser baseline | It gets 30% to 60% of the text, or extra content | It is blocked or gets a thin shell |
| Relevant | 2 or more detected queries match tracked prompts, or Search Console overlaps them | Some signal, below the bar | No topical signal |
| Selected | Cited by an AI answer in the last 30 days | Cited before, not in the last 30 days | Never cited |
| Visited | An AI-referral click, or clicks above the brand's page median | Impressions without clicks, or clicks under it | No arrivals |
A stage reads Not measured when the source or check is missing, not when the page failed. At site level, Bottleneck marks the observed stage that loses the largest share of measured pages, and Relevant can never be the bottleneck because it is inferred.
Results metrics
Results measures finished work against a window fixed before the work started. Work state and outcome stay separate: an action can be done while its result is still Measuring, and done never means Earned.
Earn rate
The share of judged results that earned.
Earn rate = Earned / (Earned + Below the bar + Coincided with a drop) × 100Couldn't measure is excluded from the denominator, because Trakkr did not have the evidence to judge it, and that count is always shown beside the rate. With 6 earned, 4 below the bar and 3 unmeasured, the earn rate is 60% and the three stay visible.
The earned bar
A result earns when its frozen primary metric clears both a relative and an absolute gain.
after ≥ max(before × 1.25, before + 3)Both halves matter: 2 to 3 is a 50% rise but one extra event, and 100 to 103 adds three but is only 3%. Google impressions use an absolute floor of 50 rather than 3 because they are noisier. The metric, target page, window and rule are frozen when the work starts, so the bar cannot move once the result is known.
The drop threshold
Coincided with a drop is deliberately harder to fire than Earned. The window has to be at least 28 days, the fall has to clear the mirrored 25% and absolute bar, and the weekly fall has to beat normal variance across the four earlier weeks.
The absolute floors are 5 for crawler fetches and clicks, 2 for citations and 50 for impressions, and the before value has to be at least four times its floor. If variance history is missing, the fleet guard cannot be checked, or suspect data falls inside the window, no drop verdict fires. Even when one does, Trakkr describes timing, never cause.
Measurement windows
The work type sets the after period, and the baseline uses the same number of days immediately before the work finished. Slower work gets a longer window: a technical fix is read after 14 days, while content and outreach get 42 to 70.
| Work type | Window |
|---|---|
| Technical fix | 14 days |
| Page improvement | 28 days |
| Content refresh | 42 days |
| New content | 42 days |
| Outreach draft | 42 days |
| Reply draft | 42 days |
| Campaign | 70 days |
| Setup | Not measured |
Variance and short history
For count-based journey stages, a dip does not move a stage away from Ok unless the current seven-day total also sits more than max(absolute floor, 2 × standard deviation) from the mean of the four earlier weekly totals. The floors are 5 fetches for Reached, 2 citations for Selected and 5 clicks for Visited. The hold needs at least 28 days of history.
Suspect data
When crawler fetches across the whole Trakkr fleet fall by more than 40% from one day to the next, that day is marked suspect. A page stage never falls because of a suspect window, and a drop verdict cannot fire for a window containing a suspect day.
Periods and the monthly archive
The dashboard headline is one day's report. A rolling window such as the last 30 days is recomputed from today every time it is asked, so the same question answers differently on the 3rd and the 9th. Neither belongs in a monthly report, so Trakkr keeps a frozen monthly archive that the API and Agent read wherever a month is asked for by name. Reports computes its headline monthly figures from the scans in its current scope.
Why a closed month is frozen
After each month ends, hourly batches write one row per brand to the archive and retry any brand that did not finish. The row holds every reportable metric for the month, formed from the daily reports, the weekly perception scans, the citation snapshots and the site audits that fell inside it. A closed month stays fixed unless a correction is recorded: the figure you publish in September for August is the figure you can fetch again in December, and it changes only if a correction is recorded.
| Source | What it is | When it changes |
|---|---|---|
| Dashboard headline | The latest single day's report | After a completed scan |
Rolling window (days=30) | Recomputed over the last 30 days from today | Every day, and differently depending on the day you ask |
Period (period=2026-08) | The archived row for the calendar month | Never, except by a recorded restatement |
The open month is computed month to date and is labelled status: open. It is not archived and will change until the month closes. Every period response says where each figure came from: archive for a frozen month, computed for the open month or for a closed month archived on demand, derived_from_months for a quarter, and missing when the archive holds nothing for that brand and month.
Period keys and quarters
A month is YYYY-MM, so August 2026 is 2026-08. A quarter is YYYY-Qn, so July to September 2026 is 2026-Q3. Either key is a scoping parameter, not a date filter: it names the row to read rather than a range to recompute over.
A quarter is derived from its three months by a rule per metric:
- Averages (visibility, presence, average rank, perception) are weighted by the days measured or the scans completed in each month, so a month with 30 reports counts for more than a month with 12.
- Counts (mentions, citations, days measured, scans) are summed.
- End-of-period figures (rank, competitors tracked, pages citing the brand, site health) are taken from the last archived month in the quarter.
- Rank by average visibility is not derived for a quarter: a quarter's average ranking would need every brand's quarter average, which the archive does not keep.
- Lists are merged by page or domain with their citation counts summed, or taken from the last month, depending on the metric.
A quarter with a month still open reads status: open and says so in its notes.
Restatements
An archived figure only changes when a month is recomputed, and a recompute that changes a stored figure records a restatement instead of silently overwriting it. Each restatement keeps the date, a note saying why, the pipeline version before and after, and every field that changed with its old and new value. The original freeze date is kept, and restated_at marks the latest restatement. A period response carries the full list in period.restatements, so a report can say that August was restated on September 14 and mentions went from 812 to 815, rather than showing a different number with no explanation.
Two things are not restatements. Adding a breakdown to an older month that was archived before the full report set existed extends the row without changing any figure already on it. And the open month changes freely until it closes, because nothing about it is frozen yet.
Where to get a period
- Reports, Months tab. Up to 12 closed months and the current month so far, each compared with the month before. Opening a month shows its rank both on the last measured day and on the month's average.
- API.
GET /get-period-summary?brand_id=BRAND_ID&period=2026-08returns the whole month: every metric with its prior value, delta and direction, plus the breakdowns. Addperiod=to/get-scores,/get-rankings,/get-models,/get-competitor-data,/get-citations,/get-perceptionor/get-auditsto read that endpoint's own shape from the archive.GET /get-metricsreturns the definitions below. See the Periods endpoint page. - MCP. The
get_period_summarytool, and thetrakkr://brand/{id}/period/{period}andtrakkr://metricsresources. - Agent. Ask for a month by name, such as how August compared with July, and the Agent reads the same archive through its
get_monthly_historytool.
The API and Agent read this archive row for a period. Reports builds its figures from the scans in its current scope, so they can differ from the archived figures. The metrics below are the archive's vocabulary, in the order a report reads them. Each entry gives the definition, then how the month is formed and how two periods compare.
Visibility
How often and how prominently the brand shows up in AI answers.
- Visibility average: How prominently AI models mention the brand across every tracked prompt and model, weighted by where it appears in the answer, averaged over each measured day in the period. 0 to 100. (mean of daily values; compared in points)
- Presence average: The share of tracked prompt and model requests where the brand appears at all, whatever the position, averaged over each measured day in the period. (mean of daily values; compared in points)
- Mentions: How many times AI models named the brand in answers to the tracked prompts during the period. Counts occurrences, not distinct sources. (sum of daily values; compared as a percentage change)
- Lowest daily visibility: The lowest single-day visibility score in the period. Read it with the average to see whether a dip was one day or a trend. (lowest daily value; not compared)
- Highest daily visibility: The highest single-day visibility score in the period. A high far above the average is a spike, not the month. (highest daily value; not compared)
- Days measured: Days in the period with at least one completed report. (count of measured days; not compared)
- Visibility by model: Average visibility and presence per AI model over the period, from the same daily reports as the headline. The strongest and weakest model are read from here. (mean of daily values per model; compared in points)
Competitors
Where the brand sits among every brand AI names for its prompts.
- Rank at month end: The brand's position at the end of the period in the list of every brand observed in AI answers to its prompts. Brands are ordered by their visibility on the last measured day of the period, not by the period average. Always read it with the pool size. (rebuilt from the retained raw answers when the month closed; compared in positions, where a positive number is an improvement)
- Average rank: The average of the daily rank readings recorded during the period, on the days the rankings were computed. (mean of daily values; compared in positions)
- Rank by average visibility: The brand's position in the same pool as Rank at month end, with every brand ordered by its average daily visibility over the month instead of the last measured day, so one day does not decide it. Each brand's figure comes from the same ranking data, so the brand's own average can differ slightly from the visibility headline. Months archived before October 2026 do not have it. Not derived for a quarter. (rebuilt from the retained raw answers when the month closed; compared in positions, where a positive number is an improvement)
- Competitors tracked: How many distinct brands AI answers named alongside the brand over the period. A rank means nothing without it, and the pool grows and shrinks as answers change. (rebuilt from the retained raw answers when the month closed; compared as a percentage change)
- Top competitors: The most visible other brands at the end of the period, with their rank and their visibility on the last measured day of the period, which is what the rank is ordered by. The brand's own figure for that day is kept alongside, so it can be compared on the same basis; the visibility headline is the period average instead. Who gained ground is read by comparing this list with the prior period. (rebuilt from the retained raw answers when the month closed; not compared as one number, each entry carries its prior rank and visibility)
- Top competitors by average visibility: The most visible other brands over the month, ordered by their average daily visibility, with their rank on that basis and the brand's own average kept alongside. This is the table behind Rank by average visibility. Not derived for a quarter. (rebuilt from the retained raw answers when the month closed; not compared as one number, each entry carries its prior rank and visibility)
Citations
Where AI models are learning from, and which of those sources name the brand.
- Citations: New citations observed across every source AI models used for the tracked prompts during the period, whether or not the page names the brand. Market activity, not the brand's own. (sum of new activity between daily snapshots; compared as a percentage change)
- Brand mentions in citations: Source pages naming the brand that AI models cited for the first time during the period. Each page counts once however often it was cited, so this measures new sources, not citation volume. (sum of new activity between daily snapshots; compared as a percentage change)
- Pages citing the brand, all time: The running total of distinct source pages that name the brand, as it stood at the end of the period. This is the archive's all-time figure. The Citations page may show a rolling 30-day count, which can fall. (value at the end of the period; compared as a percentage change)
- Citation days: Days in the period with a citation snapshot. (count of measured days; not compared)
- Source domains: Distinct domains AI models had drawn on for the tracked prompts, as of the end of the period. (value at the end of the period; compared as a percentage change)
- Source domains naming the brand: Of those domains, how many had at least one cited page that names the brand, as of the end of the period. (value at the end of the period; compared as a percentage change)
- Share of source domains naming the brand: Source domains naming the brand divided by all source domains, at the end of the period. Of everything AI draws on, how much of it mentions the brand. (derived from the two figures above; compared in points)
- Top pages citing the brand: The source pages naming the brand that AI models cited most during the period, with how often and by which models. The assets carrying the brand into AI answers. (sum of new activity between daily snapshots; not compared, new entries are flagged against the prior period)
- Top source domains not naming the brand: The domains AI models drew on most during the period where no cited page names the brand. Outreach targets. (sum of new activity between daily snapshots; not compared, new entries are flagged against the prior period)
Prompts
Which questions the visibility comes from, and which it does not.
- Prompts measured: Tracked prompts with at least one successful model response in the period. (value at the end of the period; not compared)
- Prompts with visibility: Tracked prompts where the brand appeared at least once during the period. (value at the end of the period; compared as a percentage change)
- Prompt coverage: The share of measured prompts where the brand appeared at all during the period. The headline for how many questions the brand is in the room for. (derived from the two figures above; compared in points)
- Top prompts: The tracked prompts with the highest average visibility over the period. A prompt new to this list is called out against the prior period. (mean of daily values per prompt; not compared, new entrants are flagged)
- Visibility by tag: Average visibility per prompt tag over the period, with how many of its prompts scored zero. Tags are the brand's own grouping, such as service lines. (mean of daily values per tag; not compared as one number, each tag carries its prior visibility)
Perception
How AI models describe the brand.
- Perception average: The average of the weekly perception scores from scans completed in the period. Perception scores how AI models describe the brand, 0 to 100. (mean of the weekly scans in the period; compared in points)
- Perception categories: Average score per category (trust, quality, value, market position, innovation) over the weekly scans in the period. (mean of the weekly scans per category; compared in points)
- Perception by competitor: Average perception score per tracked competitor over the weekly scans in the period, the brand included. Each scan's figure is the mean of the twenty perception metrics, the same basis for every brand, so it can differ slightly from the headline perception average, which averages the measured model ratings. (mean of the weekly scans per competitor; not compared as one number, each entry carries its prior score)
- Descriptors at period end: The words AI models used most to describe the brand in the last perception scan of the period, with the descriptors that emerged and faded. (taken from the last weekly scan in the period; not compared)
- Perception scans: Weekly perception scans that completed inside the period. (count of scans; not compared)
Site health
How well the site is built for AI visibility.
- Site health score: The overall score of the newest completed site audit at the end of the period, 0 to 100. Site scans are weekly; a period with no scored audit falls back to the most recent one within 90 days. (value at the end of the period; compared in points)
- Open audit issues: Issues open in that audit, across all severities. (value at the end of the period; compared as a percentage change)
- Site scans: Site scans that completed inside the period. (count of scans; not compared)
Trend and comparison windows
Trends compare the latest value against the most recent reading from before the window: 7-day change against a reading over 7 days old, 30-day change against one over 30 days old.
Window choices depend on the surface. The Dashboard offers 7 and 30 days. Competitors offers 7, 30 and 90-day presets, This month and custom dates. Crawlers offers 24 hours, 7, 30 and 90 days. Visitors offers 7, 30 and 90-day presets. Comparison labels vary by page; Competitors offers Nothing, The period before and The same period last year.
A change turns green or red only when the figure lands outside its usual range; inside it, it stays grey. When nothing comes before the window, it reads No prior data.
Inspect sustained changes and large movements, but do not infer a cause from their size alone. Compare per-model results, prompt changes, coverage and cited sources in the same scope. A competitor's new source or a provider change is a hypothesis to investigate, not a diagnosis from the chart.
Benchmarks
Industry percentile ranks your perception score against a stored benchmark for your industry, built from the 25th, 50th, 75th and 90th percentiles of brands in it. It renders as a band, not a number: Top 10%, Top 25%, Above Median, Below Median or Bottom 25%. The current Perception page does not show it.
vs competitor average compares one of your category scores against the mean of that score across tracked competitors, so a Market Position reading of +6.8 puts you almost seven points above them.
Site and storyline scores
Checks score
Your site's 0 to 100 checks score from Optimize, weighted by AI attention and shown as Health in the page bar with its change since the last audit. Use it for trend, then read the verdict and the checks to decide what to fix.
Storyline score
For any storyline you track, a 0 to 100 score that averages how kindly the AIs tell it on the latest weekly read. Visibility asks how often you appear; this asks what AI says about one theme.
Common questions
Why is my visibility score lower than my presence rate?
Presence asks whether you were mentioned at all. Visibility weights where you landed and divides by every successful response in the slice, not only the ones you appeared in. A brand mentioned in every answer but always last shows full presence and low visibility.
Why did my score move when I changed nothing?
Reports can change as the observed answers, provider behavior, prompt set or available coverage change. Check the report date and per-model evidence first, then compare the same market and prompt group. A pattern across models helps narrow the investigation but does not establish its cause.
Why is a result still Measuring after the work is done?
Work state and outcome are separate. When work starts, Trakkr saves a window for its kind of work, from 14 days for a technical fix to 70 for a campaign, and waits for the full window after it is done before judging.
Why does my month-over-month figure change depending on the day I ask?
A rolling window such as the last 30 days is recomputed from today, so on the 3rd it covers different days than on the 9th. Anything that will be compared month to month should read a period instead: period=2026-08 returns the archived row for August, as it stood when the month closed. The same figures come back however later you ask, unless a correction is recorded, so check the row's restatement details when you reproduce a past figure. The API, MCP and the Agent read that row. Reports calculates its figures from the scans in its current scope.
Why does Trakkr say a page has crawler hits but no citations?
A crawler hit records that a matching request reached the page. It does not prove the content was parsed, retained or used in an answer. Treat those pages as an investigation set: check prompt relevance, access, the canonical URL and who else is cited.
