Every report, with its definition.

Organisations for the big picture, project reports for the detail, and Insights when you want to look for patterns. Each number says exactly what it counts.

Organisations and projects

An installation holds organisations, and each organisation groups projects: your product, a client’s shop, a documentation site. A project keeps its own website settings and tracking ID.

The organisation home shows combined daily pageviews against the previous period, then ranks each project’s contribution. Exact values sit in tooltips and in an accessible table under the chart.

  • Administrators create, rename and move projects with their full history.
  • Date and exact dimension filters apply to the combined report.
  • Existing tracking IDs and report links keep working when projects move.
Sample data

Studio clients

Pageviews512.9k
Visitor-days141.6k
Completions14.1k
Fernhill Goods417.3k
Lantern UI docs71.2k
Quillcast24.4k

Visitor-days add each project’s daily counts. They don’t deduplicate people across projects or days.

Project reports

Overview, Audience and Conversions are computed from stored events for the range you pick: today, 7, 30 or 90 days, 12 months, or custom dates. Compare with the previous period or the same period last year.

Break traffic down by source, referrer, campaign, country, device, browser, page and entry page, and combine filters. The website, range, comparison and filters stay in the address, so any view can be bookmarked or shared with a colleague who has access.

Visit
Ends after 30 minutes without activity, at local midnight, or when the time zone changes.
Bounce
A visit with exactly one pageview and no goal.
Visible duration
An estimate of time the page was actually visible, averaged over measured visits only. Very short glimpses can be missed, so it can read low. Older, unmeasured visits are shown as unknown.
Days and hours
Follow each website’s own time zone.
Sample data

Sources · Fernhill Goods

SourceVisitorsConv.
Google39.0k9.2%
Direct25.4k12.4%
Instagram16.2k6.4%
Newsletter12.7k19.3%
Pinterest9,3835.6%
Home & Hearth blog6,88013.7%

Last 30 days compared with the previous 30.

Goals and conversion rates

A goal is either a page path, such as /thanks, or a named event you send after a successful action. Page goals need no extra code. Named events take one line, and can carry revenue.

// after the order is confirmed postdeploy.track('Purchase', { revenue: 84 });

Completion counts include repeats. Conversion rates divide visitor-days that completed a goal by visitor-days in the same window, so a visitor who buys twice in a day still counts once in the rate.

  • Up to 40 goals per website, including archived ones.
  • Rename or archive a goal; archived history stays reportable.
  • A funnel per website and the most common paths to a purchase.
Sample data

Goals · Studio clients

PurchaseNamed event · Fernhill Goods2,4222.1%
Newsletter signupPage /thanks3,1902.7%
Copied install commandNamed event · Lantern UI docs1,2086.1%
Booked a demoNamed event · Quillcast4126.4%

Rates are daily-unique: converted visitor-days over eligible visitor-days.

Insights

When you want to look for patterns, Insights opens from any organisation or project report. It covers traffic trends with comparisons, source and project composition, rankings of pages, landing pages and campaigns, a weekday and hour heatmap, conversion trends and a histogram of measured visit duration.

Ranges reach two years. Long sections load progressively, each with its own progress and retry, and a pending number is shown as pending, never as zero.

  • Top categories plus a complete “Other”, so shares always add up.
  • Every chart keeps an exact table and a CSV download.
Sample data

Pageviews by weekday and hour

MonTueWedThuFriSatSun

Two-hour columns from midnight, in the website’s time zone.

Measured visible duration

0s30s1m3m10m+

Live view and CSV

Live shows visitors in the last five minutes, pageviews per minute and the latest events. Open any visit to see its timeline.

Administrators and Viewers can download project series, goals and tables, and organisation series, projects, goals and totals, as CSV. Each file records its date range, filters, coverage and limits. Unknown durations stay blank, never zero. There is no raw event or visitor export.

Sample data

organisation-sources.csv

# organisation,Studio clients
# range,2026-10-07,2026-11-05,UTC
# filters,none
source,visitor_days,completions,conversion_rate
Google,46213,2958,0.064
Direct,31004,2449,0.079
Instagram,16180,663,0.041
Newsletter,14902,1877,0.126

Up to 731 days and 10,000 rows per file.

Collection controls

Each website has a canonical hostname and up to 20 aliases. Unlisted staging sites and subdomains can’t send data to production, and two projects can’t claim the same hostname.

Exclude up to 20 path prefixes, such as /account, and matching pages are dropped before anything is stored. Choose how long events are kept: 6, 12 or 24 months, or forever. Cleanup runs every hour.

  • Known bots are excluded on new projects.
  • Do Not Track and Global Privacy Control are honoured by default.
  • A check confirms that a website’s tracking code is sending events.
What is stored, and what isn’t
<!-- one tag per website --> <script defer src="https://analytics.your-domain.example/script.js" data-site="fernhill"></script>

Team access

Sign-in is by email and password, with no public registration. The first administrator is created with a one-time setup secret that only the person installing it holds.

Administrator
Manages users, organisations, projects, goals and settings, and reads everything.
Viewer
Reads every organisation and project, copies tracking snippets and downloads CSV.
  • With Cloudflare Email configured: invitations and password resets using expiring single-use links.
  • Hashed session tokens, secure cookies for signed-in team members, and CSRF checks.
  • Operator recovery from the command line if every administrator is locked out.

Built for your internal team

Organisations group reports. Every active team member can read every project in the installation.

Use a separate installation when another team needs a separate data boundary. For sharing a report outside the team, export the filtered data as CSV.

Try it on sample data.

Explore traffic, acquisition and goal reports using three fictional websites.