Segments vs Populations: Why Your Segmentation Resets

If you have ever exported a segment to compare it against last month’s export, you needed a population. Three things a filter cannot do, and how to define membership that stays true.

KISSmetrics Editorial

|10 min read

A segment is a condition applied to a report at the moment you run it. A population is a filter over people that everything else then runs inside, so you can narrow by who someone is, then by what they did, then by the properties of the doing, and have all three hold at once. The difference sounds like vocabulary and it decides how many layers deep a question can go.

Most tools give you one layer. You can filter a report by a condition, and if you want a second condition you rewrite the first one into a compound. That works until the question has three parts, which most real questions do.

The newsletter

Join our KISS newsletter

One short read a week on what actually moves revenue, in a free email. Read by 10,000+ operators and founders.

No spam. Unsubscribe in one click.

I.A segment is one condition on one report

It is evaluated at query time, against that report's rows, and it does not survive the trip to the next report.

A.What you are actually doing when you apply one

Apply a segment in most analytics tools and the tool takes the rows already in scope for that report and keeps the ones matching your condition. The result is correct and it is entirely local to that query.

Open a different report and you start again. The condition you wrote lives in the report you wrote it in, so a definition you care about, say enterprise accounts that have run a report in the last month, gets rebuilt by hand in every view where it matters, and the three rebuilds drift.

The definition is the valuable thing, and a segment gives it nowhere to live.

B.And it flattens as soon as the question has parts

The sharper limit is depth. A single condition can be made compound, so you can write something reasonably long, but you are writing it into one flat expression and reading it back later is unpleasant.

What you usually want is structurally different: a set of people, then a behaviour, then a qualifier on that behaviour. Those are three separate questions that happen to apply together, and expressing them as one string is why analytics segment builders end up looking like regular expressions.

II.What a population adds: layers that compose

Filter the people first, then query events inside that set, then qualify the events by their properties. Each layer is written and read separately.

A.Layer one: the population itself

A population is a filter over unique people. Define it once, by behaviour, and it becomes the set that other analysis runs inside rather than a condition you re-enter per report.

Because it resolves to people rather than sessions, membership means something durable: a person is in the set or they are not, on the strength of everything they have ever done, not on what happened in one visit.

B.Layer two: events, with AND and OR

Inside that set you then ask about events, and you can combine them. Did these people do A and B. Did they do A or B and not C. That is a genuinely different operation from narrowing the population, and keeping it separate is what makes it legible.

This is the layer most tools do have, and having it without the one above means every question restates the audience along with the behaviour.

C.Layer three: property WHERE clauses on those events

Then you qualify the events themselves. Not just purchased, but purchased where the plan was Growth, the source was paid social, and the order value was over some threshold.

Event properties are custom, so the qualifiers available are whatever you chose to record at the time. That is the point of putting the moment on the event rather than on the person, which is covered in people, events and properties.

The three layers, and what each one narrows

Populations view
LayerNarrowsExample
Population filterWhich people are in scope at allAccounts on a paid plan for 90+ days
Event conditionsWhat those people didRan a report AND invited a teammate
Property clausesUnder what circumstancesWhere report type = funnel
Written and read as three statements rather than one compound expression. Most tools give you the middle row and make you fold the other two into it.

III.The questions that only open up once the layers stack

Any one layer is ordinary. The combination is what answers the questions teams normally give up on.

A.Three that are awkward with one layer and direct with three

Which enterprise accounts that adopted the API have stopped using it. Population: enterprise, paid, over 90 days. Events: used the API historically, has not in 30 days. Properties: endpoint category.

Do paid-social customers behave differently from organic ones after month three. Population: acquired via paid social. Events: everything after day 90. Properties: whatever distinguishes the actions.

Of the people who read three or more articles before signing up, which topics did the ones who are still paying read. Population: still paying. Events: read blog post, at least three. Properties: the category on each read.

That last one is the loop this blog is measured by, and it is only expressible because the category rides on the event as a property.

Who
the population
a set of people, defined once
What
events, AND / OR
combined, not restated
Which
property clauses
qualifying the event itself
What each layer contributes to a single question.

B.Define membership by behaviour, not by attributes

Attribute-defined membership goes stale without telling you. Industry, company size and plan tier were true when they were written and may not be now, and nothing in the data marks the moment they stopped being accurate.

Behaviour-defined membership cannot go stale, because it is recomputed from events that are still arriving. Use attributes to slice a behavioural population, not to define one: enterprise accounts that stopped running reports is a population, enterprise accounts is a list.

C.Keep the set small, and the honest limits

The failure mode is proliferation: forty overlapping definitions, three of them some variant of active, nobody sure which is canonical. Most businesses need under ten, each with a name a salesperson would recognise.

Two limits worth stating. A population is only as good as the events underneath it, so this is downstream of instrumentation rather than a substitute for it. And composition makes it easy to build a query so specific it describes four people, which will feel like a finding and is not; check the size of the set before you read anything into what it does.

Kissmetrics keeps populations as a filter over unique people, with event conditions and property clauses layered inside, which is what makes the three questions above single queries rather than three exports and a spreadsheet. Related: segment to campaign and cohort analysis.

Verdict

Segments answer who matches this condition in this report. That is genuinely useful and it is one layer, which is why the second and third parts of a real question end up folded into a compound expression nobody can read a month later.

Filter the people first, then ask about events, then qualify by their properties. Written as three statements rather than one, kept under ten definitions, and defined by behaviour rather than by attributes that quietly expire.

Continue Reading

segmentationcustomer segmentspopulationsbehavioral segmentationcohort membershipaudience building
KISSmetrics

Build your business intelligence layer for free.

KISSmetrics layers a population filter, event conditions with AND and OR, and property clauses on those events, so a question about a specific cohort doing a specific thing under specific circumstances is one query rather than three exports.