Analytics for Ghost publishers
Know which stories get read to the end.
circ is analytics built for editorial decisions: how far readers get through each story, by author and tag, when they show up and where they come from. It's light on your pages, and built on reader privacy.

-
Insight
Editorially insightful
Reports that start from the questions editors ask: what gets finished, whose stories hold readers, and which sources bring readers who stay.
The reports -
Performance
Light on your pages
About 1.5 KB, loaded asynchronously, and about two requests per pageview. No heartbeats, no dependencies, nothing that slows a story down.
The tracker -
Privacy
Built on reader privacy
No cookies, nothing stored on the reader's device, no IP addresses kept, and no way to follow a reader from one day to the next.
The privacy model
Reports built for editors
Each report starts from a question an editor would ask, and can be narrowed to an author, a tag or a source.
-
What gets read, not just opened?
Completion through the story body and engaged time, the time the page is actually in front of the reader, for every story.
-
Whose stories do readers finish?
Pageviews are matched to your Ghost posts, authors and tags, and the match survives slug changes. See which beats hold attention.
-
When do readers show up?
Hour of day by day of week, in your time zone, so you can time publishing and newsletters on evidence.
-
Which sources bring readers who stay?
Sources, referrers and campaigns, each with the completion rate of the readers it sends.
-
What do readers click next?
The links clicked inside each story, internal and outbound, counted per link.
Off unless you turn it on -
Do members read differently?
Every report filtered to signed-out readers, free members or paid members. Never which member, and any number under 5 is withheld.
Off unless you turn it on
Inside the dashboard
Light on your pages
The tracker is a guest on your page, and behaves like one.
- About 1.5 KB, compressed, with no dependencies, loaded asynchronously from Ghost's Site Footer.
- About two requests per pageview: one when the page loads, one when the reader leaves. No heartbeats.
- Never in the way. It doesn't hold up the page, and an error inside it never reaches your page.
- Pinned, so it can't change under you. Each version has its own permanent address and an integrity hash, so the browser refuses any other file.
Built on reader privacy
circ counts what readers do with your stories without recognising any reader. That isn't a setting; it's how circ is built.
- Nothing on the reader's device. No cookies, no local storage, and its requests carry no cookies at all.
- No IP addresses kept. The IP address gives the country and the day's unique count, and is then dropped. So is the raw browser string.
- Readers counted one day at a time. The code that counts them uses a secret deleted at the end of each day, so no reader can be followed from one day to the next. The trade is that circ has no returning-visitor counts.
- No identities, no trails. No member IDs, emails or names, ever. Clicks are counted per link and never joined into one reader's trail.
- Nothing turns on by itself. Optional collection changes only when you change your settings and your snippet, and every change is logged. Settings suggests your privacy policy's wording, from exactly what your site collects.
- Your data, kept apart. Each publisher's data lives in its own database, never combined with another's, never sold or shared. When you leave, you can have it, and then it's deleted.
Getting started
- Get in touch. Your site is set up for you; there's no self-serve signup yet.
- Paste one line into Ghost Admin's Site Footer code injection. The dashboard generates it for you.
- Add a read-only Content API key from a custom integration in Ghost Admin, so pageviews match your posts, authors and tags.
- Update your privacy policy with the wording the dashboard suggests.
Pricing and questions
Pricing depends on your site. Email for pricing, a walkthrough of the dashboard, or anything else about circ.
hello@circapp.io


