Clarity Reports

How Clarity Reports works

A 5-minute tour of every page, what it does, and how to use it day to day.

The big picture

Every day at 4:30am IST, the system fetches Microsoft Clarity data for each website you've added. Claude reads that data and writes a daily report (a digest) for each property group. The bullet-point problems inside that digest become persistent issues in a backlog. You triage those issues from the home page until each one is resolved or marked won't-fix.

Clarity API     →  Claude writes  →  Issues extracted  →  You triage on
  + sessions         a digest          (one per problem)    Triage page
                       (per group)        & deduped daily       (this is the home page)

Triage — your home page

/ answers one question: “what needs my attention right now?” It shows only OPEN and IN-PROGRESS issues, grouped by website. Resolved issues fall off; new ones land here.

Triage page with stats and issue cards
Top: stats strip — pending count by severity, in-progress count, resolved this week, monthly Claude cost. Below: cards per website with their open issues.

Acting on an issue

Each row has three buttons:

  • Fix — “the team is going to work on this.” Moves it to the In progress section.
  • Won't fix — “we've decided not to address this.” Removes it from triage.
  • Snooze 7d — “come back to me in a week.” Hides it from triage until then.

You can also tick checkboxes on multiple issues to apply the same action in bulk.

Triage page with In progress section showing one issue being fixed
After clicking Fix, the issue moves to In progress. From there: Mark resolved (done) or Back to triage (changed your mind).

Click any issue for details

Clicking the issue title opens a detail page with: an at-a-glance summary, a Claude-generated Suggested fix (most likely cause / what to check first / likely fix / how to verify), related session recordings, and the full technical body. Engineers and AI agents have everything they need to act.

Issues — the full backlog

/issues is a flat, searchable, filterable table of every issue ever flagged — open, fixing, snoozed, resolved, won't-fix. Use this when you want history, audit trail, or to find a specific issue.

Issues table with filters and resolution column
Filter by status, severity, property, or search across titles. Each row shows when it was first/last seen and (for resolved ones) who closed it, why, and when. Auto-resolved siblings show 'auto' instead of a username.

Same problem tomorrow ≠ duplicate row

When the next day's digest mentions the same problem on the same site, we don't create a new issue — we bump the existing row's “last seen” date. So your backlog stays sane even when a problem persists for weeks.

Resolving one issue closes its siblings

When you mark an issue resolved with a note like “fixed the carousel script,” we automatically close other open issues on the same site for the same metric (e.g. dead clicks across multiple pages likely share a root cause). Each auto-closed issue keeps a reference to the one you resolved, so you can review and reopen if you disagree.

Digests — what Claude wrote

/digests is the archive of Claude's daily reports. Each digest covers one property group's worth of sites, with a per-site narrative: TL;DR, top issues, sessions worth watching, traffic context.

Digests archive showing daily reports per group
Each row is one daily run. Click a row to read the full report, see which sites it covered, and which issues it surfaced.

You typically don't need to read digests — the issues extracted from them already show on Triage. But the archive is useful for: long-form context (what changed week over week), the per-session deep-dives, or when an issue refers to something you want to see in its original context.

Properties — drill into one website

/properties lists every Clarity project the team tracks. Click any property to open its detail page — that's where you go when you want to see everything about one site in one place.

Property detail page with sparklines, session triage, analyzed sessions, and latest report
A single property's page: 30-day trends at the top, session triage counts, individually analyzed sessions with recording links, then the most recent full report from Claude.

30-day trend sparklines

Five small charts showing how each key metric has moved over the last 30 days. Each one shows the latest value, an arrow (↑ ↓ →) indicating direction, and a sparkline. The first 7-ish days will look sparse — they fill in as more daily runs accumulate.

  • Dead clicks % — how often visitors clicked things that didn't respond.
  • Rage clicks % — how often they got frustrated and clicked the same spot repeatedly.
  • Quickbacks % — how often someone hit the back button right after landing.
  • Avg scroll depth — how far down the page the average visitor read.
  • Sessions — total visitor count.

Session triage

Every day the system fetches the longest session recordings for the property and classifies each one before deciding whether to ask Claude for a summary. The Session triage counts on the property page show how that played out:

  • interesting — substantive engagement (long active time + clicks, OR a rage-click pattern, OR multi-page browsing). These get Claude summaries.
  • idle — long total time but almost no activity. Tab left open. Filtered out.
  • admin — internal staff (URLs match /admin/). Filtered out.
  • noise — too short or no real signal. Filtered out.

Roughly 80% of recordings are filtered out as noise/idle/admin. Only the interesting ones reach Claude — that keeps cost reasonable and the analysis useful.

Watching session recordings

Session recordings are screen-replays of real user visits, hosted by Microsoft Clarity. You can open them from three places in this dashboard — pick whichever fits the moment:

1. From a property page — go to /properties, click a site, scroll to Analyzed sessions. Each entry has a ▶ Open recording link plus Claude's 2–3 sentence summary of what that user actually did. Use this when you want to browse interesting sessions for one site.
2. From inside a daily digest — open /digests, click a digest, scroll to the 🎬 Sessions worth watching section. Claude picks the most diagnostic recordings of the day and links them inline. Use this when you're reading the daily narrative and want to see the evidence.
3. From an issue's detail page — click any issue title from Triage or /issues, scroll to Related sessions. These are the recordings on the same property that are most likely to show the issue in action. Use this when you're working a specific issue and want to see it happen.

Clicking ▶ Open recording opens the Microsoft Clarity player in a new tab — you'll see the user's full session: cursor movement, clicks, scrolls, page navigations.

Admin (admins only)

/admin/properties — bulk-import properties from a CSV. Required columns: groupName, propertyName, clarityProjectId, websiteUrl, clarityApiToken. Optional: emailTo, slackChannel, scheduleCron. Preview first, commit when satisfied. Re-uploading the same project ID updates rather than duplicates.

/admin/users — add team members, reset passwords, change roles, disable accounts. Only admins see the Admin link in the header.

Property scope (header dropdown)

The dropdown next to your name scopes the entire UI to a single website. Pick “NFJP” and Triage, Digests, Issues, the stats strip — everything — shows only NFJP data. Pick “All properties” to reset.

A few status terms

StatusMeaning
openNew / untriaged. Default state when an issue is first extracted.
fixingYou hit Fix — the team is actively working on this.
snoozedHidden from triage until a date you chose.
resolvedFixed. Has a resolution note + who closed it (you, a teammate, or “auto” via similarity).
won't fixDecided not to address. Off the queue, kept for audit.

FAQ

Why is my Triage page empty?
Either the daily run hasn't fired yet (it's 4:30am IST), every issue is resolved, or your scope dropdown is set to a property that has no open issues.
Why does the digest say a site failed?
Most common cause: that property hit Microsoft Clarity's 10-call/day limit (auto-resets in 24h), or the Anthropic credit balance is empty. The other sites in the same group still produce reports.
An issue I resolved keeps coming back. Why?
It shouldn't. Resolved issues stay resolved even if the metric is re-flagged tomorrow. If you see a brand-new issue with the same metric, the scope (page) is probably different — Claude found the problem on a different URL.
How much does this cost?
~$0.05 per site per daily run on Sonnet 4.6 with prompt caching. The MTD cost tile on Triage shows your running total.