Everything you check weekly.
A small, complete set of tools for understanding your audience, without profiling anyone in it.
One page for the numbers you check.
Visitors, sources, pages and places, with nothing buried three clicks deep.
-
A dashboard that explains itself
It opens with a plain-language summary and the top channel, page and country, then six headline metrics with a sparkline each, compared with the previous period or the same period last year.
The graph switches between hour, day, week and month, every chart has a table view, and a realtime count shows who is online now.
-
Reports for where people come from and what they read
Sources by channel, source and UTM campaign. Top, entry and exit pages. A world map with countries, regions and cities. Browsers, operating systems and device types.
Every list opens into a details view with search and paging.
-
Filter anything. Everything follows.
Click any row to filter, or open the filter menu: pick a field, search or tick several values with their visitor counts, and choose is, is not, contains or excludes, with wildcards such as /blog/*.
Pick today, yesterday, realtime, the last 24 hours, 7, 28 or 91 days, this or last month, this year, 12 months, all time or a custom range, each with a keyboard shortcut. The last period you chose on a site is remembered. A command palette (⌘K) switches sites, dates and filters from the keyboard.
Find out what actually works.
Goals, funnels and journeys, without profiling anyone.
-
Goals and events
Custom events with properties, and page goals. Script variants add outbound links, file downloads, form submissions and tagged click events.
Filtering by a goal switches the whole dashboard to conversion mode.
-
Notes on the graph
Mark a date with a short note, such as “launched v2” or “newsletter went out”, and it shows on the graph and in its table view, so a change in the numbers comes with its explanation.
Keep a note private, share it with everyone on the site, or show it on the public dashboard. Notes come with the CSV export and the Stats API.
-
Funnels and revenue
Chain two to eight goals into a funnel and see how many visitors complete each step in order, and where they drop off.
Give a custom-event goal a currency, send an amount with the event, and see total and average revenue next to every report.
-
Campaign links and tracking pixels
A link builder adds UTM values to any page of your site, so visits from a campaign show up under Sources and Campaigns. Turn the result into a short link that counts a click and forwards, or a tracking pixel for a newsletter that counts a view.
Each keeps only a daily total: no cookies, no addresses. Opens are approximate, because mail apps may preload or block images. A short link can only point at your own site.
-
Segments and journeys
Save any set of filters as a named segment and apply it in one click, privately or shared with everyone who can see the site.
Then explore journeys: pick a starting point or an ending point and follow visitors step by step through pages, folders and custom events.
-
Rollups
Add up several of your sites in one dashboard: all the subdomains of a brand, a network of blogs, or every site you run.
Choose the sites, or include all of them, with their own goals, funnels and shared links. Your sites keep their own dashboards.
Collect less, by choice.
Privacy settings that go beyond the defaults, and a dashboard that keeps its numbers honest.
-
Privacy controls for every site
Respect Global Privacy Control and Do Not Track, keep only the country or the region instead of the city, keep only the referrer’s domain, and choose which URL query parameters may be stored at all. Names that look like they carry a secret are refused.
-
Small groups stay hidden
Set a minimum and public dashboards and shared links leave out rows with fewer visitors than that, with a note saying so. A filter can’t narrow a public view down to a handful of people. People who belong to the site always see everything.
-
Personal data masked automatically
Email addresses, tokens, UUIDs and long numbers that a site sends by accident in a page address, referrer or event are replaced with a placeholder such as [email] before anything is stored. Only how often it happened is counted, never the values. It is on by default and can be switched off per site.
-
Delete data by filter
If something sensitive was recorded, or a test run polluted the numbers, choose conditions (a page, country, source, campaign, browser, event or event property) and a date range, preview how many visits match, then confirm by typing the site’s domain.
A matching visit is deleted whole, so reports stay consistent. Owners and admins only, and every deletion is logged with who ran it. Imported history is not touched.
-
Bot and spam filtering
Crawlers, headless browsers, traffic from cloud and hosting providers, referrer spam and floods from a single visitor are left out of your numbers, using only what the request already carries. The dashboard settings show how much was filtered, and each site can turn the filter off.
Hear about it without checking.
The numbers come to you, when they are worth a look.
-
Email reports
A weekly or monthly summary of each site you belong to: visitors, pageviews, bounce rate and visit duration against the period before, top pages, sources and countries, goals and the notes on your graph. It arrives at 08:00 in the site’s timezone and has no tracking pixel or tracked links.
-
Alerts and webhooks
Get told about a traffic spike or drop against the usual for that weekday, a goal reaching a number, new conversions, or a brand new traffic source. Send it by email, to Slack or Discord, or to your own service as signed JSON.
Rules have quiet hours and cooldowns, and carry totals only, never anything about a visitor.
An API, exports, and no lock-in.
Your data is yours to query, export and move.
-
A Plausible-style API, an MCP server, and your data stays yours
A Stats API that follows Plausible’s query format and adds goals and funnels, with bearer-token API keys that can be read-only, an OpenAPI description, and an Events API at POST /api/event that is compatible with Plausible’s.
A read-only MCP server lets an AI assistant answer questions about your stats. It sees totals and trends only, never a single visitor.
Export the dashboard as CSV for any period and filter, or download a site’s full raw data to move it between installs. Import your history from Plausible’s CSV export.
-
Runs where you already have hosting
Upload a zip to ordinary PHP hosting, or run one Docker container: either way you are measuring in about ten minutes, and the dashboard updates itself.
Tidemark Analytics is open source (MIT), so the code and the docs are yours to read.
See how to install it
Run it on your own server.
Open source (MIT), no cookies, no footprints. Install it in about ten minutes.