Averages hide the interesting people.

Define a group of visitors once, with a handful of conditions, then put a funnel, a revenue total, a set of recordings or a scroll-depth table behind it. Membership is resolved and stored, so it answers instantly.

What is cohort analysis?

Cohort analysis splits your audience into named groups that share a trait, then compares how those groups behave. The trait can be an attribute like device or campaign, or something they did, like converting or reading to the bottom. Comparing groups is what turns a site-wide average into something you can act on.

The average conversion rate on a site is the arithmetic mean of two populations that behave nothing alike: people who came for the thing you sell, and people who arrived by accident. Every useful insight starts with separating them.

Named groups, resolved and stored.

A cohort lists its conditions in plain language, its current member count, and when it was last resolved. Read to the bottom. Converted. Mobile visitors. Anything you can express in the condition vocabulary, saved once and reusable everywhere.

Cohorts are range independent by design. Membership is resolved from a visitor’s whole history rather than from whatever date range you happen to have selected, which is why the cohorts page carries no date picker: showing one would imply the counts move with it.

The Mrkr cohorts page listing saved visitor groups with their conditions and member counts.
Saved cohorts with member counts and last refresh time. Any of them can be applied as a filter on any other page. Open it in the live demo.

The nine condition types.

A deliberately small vocabulary. Every condition here resolves in a single query against sessions and events, which is what makes a cohort answer instantly instead of timing out on a busy site.

ConditionWhat it matchesExample
AttributeA session attribute equals any of a set of valuesCountry is Germany or Austria
Did eventFired a named event at least N timesStarted checkout at least twice
Never did eventNever fired a named eventNever opened pricing
Viewed pathSaw a page matching a path, exactly or by prefixViewed anything under /docs
Min sessionsLifetime session count is at least NThree or more sessions
Min pageviewsLifetime pageview count is at least NTen or more pageviews
Min revenueProduced at least a given amount of revenueSpent 100 or more
First seen withinFirst appeared in the last N daysNew in the last 7 days
ConvertedCompleted any event flagged as a conversionConverted at least once

Up to eight conditions per cohort, combined with all (an intersection) or any (a union). Attribute conditions cover country, region, city, device, browser, OS, source, medium, the three UTM dimensions, entry path and language.

conditions per cohort, combined with all or any
8
conditions per cohort, combined with all or any
member cap, and a truncation flag when it is reached
50K
member cap, and a truncation flag when it is reached
automatic refresh, plus an immediate one on every edit
24h
automatic refresh, plus an immediate one on every edit
before the interface labels a cohort stale
6h
before the interface labels a cohort stale

Membership is materialized rather than evaluated live. That is the whole reason a cohort filter is instant instead of re-running its rules on every page load.

Cohorts worth building first.

Converted, and not converted

The most useful pair. Run the same journey view for both and the difference is usually visible in one screen.

Arrived on one campaign

Attribute conditions cover the UTM dimensions, so a campaign becomes a reusable group rather than a filter you rebuild.

Read to the bottom

Anyone who fired a scroll milestone. If they convert far better, the problem is getting people to scroll.

High-value customers

Minimum revenue over a threshold, then look at where they came from. A far better acquisition brief than the site average.

Open the cohorts view

The live demo has saved cohorts on real demo traffic, each applicable as a filter across the whole dashboard. No signup.

Open the live demo
The Mrkr cohorts page listing saved visitor groups with their conditions and member counts.

What Mrkr’s cohorts are not.

No acquisition-retention triangle

Nothing draws signup week against share still active N weeks later. If that chart is a requirement, Mrkr lacks it.

No sequences, no time windows

You cannot express did A, then B within three days, but never C. Every condition must resolve in one query.

History-based conditions need a history

Cookielessly a visitor's lifetime is one day. Minimum sessions, pageviews and revenue need cookie mode, and its consent banner.

Questions, answered.

Keep reading

Your first visitor is already here.

Drop in the script and watch them land. It takes about a minute.