Cohorts & Retention
Invision Community can tell you how many members you have and how many joined last month. It cannot tell you the thing that actually matters: of the people who joined in March, how many were still here in April? In June?
That single question is the difference between a community that is growing and one that is churning while the registration counter goes up.
The grid
Every row is everyone who joined in one month. Reading across shows how many of them came back one month later, two months later, and so on. Reading down a column shows whether the community is getting better or worse at keeping people — which is the number to watch after you change anything about registration, onboarding or moderation.
Twelve months of history, on the day you install it. This reads data Invision Community has been keeping since your community started, so the grid is complete from the first build. Nothing has to accumulate first.
Two definitions of "still here", because they answer different questions
Signed in | The broad measure. Includes people who read without ever posting, who are the majority of any community. Answers: are they still turning up? |
|---|---|
Posted something | The hard measure. Any content in any application — a forum reply, a file, a blog comment. Answers: did they become a participant, or just an audience? |
Both are worth looking at, and the gap between them is often the most interesting thing on the screen.
It collects nothing
There is no tracker, no new logging and no external service. Everything comes from three things your community already stores: when each member registered, the record of which days they signed in, and the index of who posted what and when. Uninstalling removes only this application's cached grid.
The grid is built in the background, never while you wait. Building it compares every member against their whole history, so it runs as a background job and stores the result. Opening the screen reads a small cached table — it does not recompute anything.
Honest about what it shows
Periods that have not happened yet are left blank, not shown as zero. A cohort that joined last month has no month-6 figure. Printing 0%% there would read as "everybody left" when the truth is "we do not know yet", and that difference matters when you are deciding whether something is wrong.
Month 0 is rarely 100%%. It is the month people joined, so anything missing is people who registered and never came back at all — one of the more useful numbers on the grid, and one most analytics never shows you.
Activity dated before somebody joined is discarded. Imported members, merged accounts and hand-edited join dates all produce it. It is dropped rather than shown in a column nobody can interpret.
Small cohorts are noisy. A cohort of nine people moves 11%% every time one person returns. The grid shows the underlying counts on hover for exactly this reason.
Also
Weekly or monthly cohorts. Weekly is worth using when you are measuring something specific — a launch, a campaign, a change to registration.
Up to 36 periods across, though twelve is usually where the interesting part has already happened.
No core files are edited. Upgrading Invision Community will not break it.
Requirements
Invision Community 5.0 or newer (self-hosted)
A running task scheduler, to build the grid in the background
Nothing else. No account, no key, no external service.
What's New in Version 1.0.1
Released
Fixed a raw language key appeared on the administrator restrictions screen
When choosing what an administrator is allowed to reach Members > Staff > Administrators, then Edit Restrictions this application's section was listed under a raw key, module__edcohort_cohorts, instead of its name.
Nothing was broken by it. The restrictions themselves applied correctly, and the rest of the application was unaffected. But there was no error and nothing in the logs — the screen simply showed an internal name, which is not something you can act on, and on a site with several applications installed it is not obvious which one it belongs to.
The cause was a missing language string. Invision builds that screen from a string named after each section, and when one is absent it falls back to printing the name of the string it wanted. That string is now declared:
module__edcohort_cohorts
It is an ordinary language string, so it appears under Customization > Languages with everything else this application adds, and can be translated or reworded like any other.
Upgrading
No new settings and no configuration changes. The language string is added automatically on upgrade, and any translation you have already made of this application's other strings is left untouched.
You may only provide a review once you have downloaded the file.
There are no reviews to display.