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 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.
| Condition | What it matches | Example |
|---|---|---|
| Attribute | A session attribute equals any of a set of values | Country is Germany or Austria |
| Did event | Fired a named event at least N times | Started checkout at least twice |
| Never did event | Never fired a named event | Never opened pricing |
| Viewed path | Saw a page matching a path, exactly or by prefix | Viewed anything under /docs |
| Min sessions | Lifetime session count is at least N | Three or more sessions |
| Min pageviews | Lifetime pageview count is at least N | Ten or more pageviews |
| Min revenue | Produced at least a given amount of revenue | Spent 100 or more |
| First seen within | First appeared in the last N days | New in the last 7 days |
| Converted | Completed any event flagged as a conversion | Converted 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
- 8conditions per cohort, combined with all or any
- member cap, and a truncation flag when it is reached
- 50Kmember cap, and a truncation flag when it is reached
- automatic refresh, plus an immediate one on every edit
- 24hautomatic refresh, plus an immediate one on every edit
- before the interface labels a cohort stale
- 6hbefore 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 demoWhat 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
- Retention analysis
Stickiness, returning share, and which parts need cookie mode.
- Cohorts documentation
Every condition type, matching modes, refresh, and the member cap.
- Funnel analysis
Put a cohort behind a funnel and compare the two conversion curves.
- Revenue attribution
Where the high-value cohort actually came from.
- Filters and segments
How a cohort combines with the rest of your filters.
- Every Mrkr feature
The full index of what the product measures.
Your first visitor is already here.
Drop in the script and watch them land. It takes about a minute.