The dashboard didn't load.
Its scripts were blocked or failed, so no data was requested. Nothing on this screen is a real number — this is not zero traffic, it is no reading at all.
Most likely a Content-Security-Policy change at the edge. Open the browser console and
look for a script-src violation, then check the
content-security-policy response header for an injected nonce-.
Enter the admin key (in .dev.vars in the analytics repo).
Sales count the first payment, on the date it was received. Renewals, top-ups and free orders are excluded.
Trial conversion follows people whose seven-day trial ended in this period. It counts those who have paid so far; older trials have had longer to pay. Still trialing means under seven days old and not yet paid.
Visit → store follows the same visitor within each week, using retained tracking data. Store installs come from all listing traffic. Arrows compare with the preceding period of the same length; incomplete tracking has no comparison. A dash means there is no denominator or measurement.
The free site check counts reports, not visits. The counts are the new check's own, from its events since it went live on 24 Sep 2026 at 18:00 UTC; the old check's get one line under them. The list is every report, with everything anyone did in it during the window, each event read by its own date (before 24 Sep “opened a finding” was a panel, not the Claude window, and the site audit and the rival question still existed). It reads the raw events, which are kept 90 days, so a longer window shows the last 90. A report with no tracked visit (an excluded visitor, or our own run) is listed but left out of the counts. Opening a report from here switches the site's counting off in that browser, so your own reading never counts. A saved report lasts about 30 days, and a later check of the same site replaces it.
Churn comes from Lemon Squeezy's full subscription history, not the selected window. A paying customer has made at least one payment above $0; a trial that never paid and an order refunded in full are not customers. They churn on the day they stop paying, which is the first renewal that was not paid or the end of the period they had paid for, whichever comes first. A cancellation counts on the day access ends, so someone who cancelled but is still inside their paid month is leaving, not yet churned. Churn is customers lost divided by customers paying at the start of the period; someone who both started and stopped inside the period is in neither number. David's own and test subscriptions are excluded.
Pages with at least 40 views and fewer than 3 recorded clicks per 100 views.
node scripts/annotate.mjs "what changed" --type=release in the analytics repo.