TotalApp Docs

Cohort Analysis

Group customers by acquisition date and track retention over time with a cohort-by-period heatmap.

Overview

Cohort Analysis groups customers by when they were acquired — based on each Contact's createdAt date — then tracks how actively each cohort stays in touch over time, using lastContact as the retention signal. It answers a question none of the other CRM analytics screens can: are customers acquired recently staying engaged at the same rate as customers acquired a year ago?

Retention, Not Revenue

Cohort Analysis measures contact recency, not money. A customer can show strong retention here (recent lastContact) independent of whether they have any open or won deals — it is purely a relationship-engagement view.

Key Features

Cohort Grouping

Group acquisition by Month, Quarter, or Year using the pill filter bar.

Retention Heatmap

Cohort rows × period columns, with cell opacity scaled to that cohort's retention percentage in that period.

Acquisition-Based Cohorts

Every contact is placed in exactly one cohort based on its createdAt date — the period it first entered the directory.

UI Walkthrough

Choose a grouping with the By Month / By Quarter / By Year pill filter. Each row of the heatmap is one acquisition cohort (e.g. "Jan 2026"); each column is a period since acquisition (Period 0, Period 1, Period 2, …). A cell's opacity reflects what percentage of that cohort's contacts had a lastContact date falling inside that period — darker means stronger retention, lighter means the cohort has gone quiet.

Reading the Heatmap

Reading down a column compares cohorts at the same relative age — for example, comparing every cohort's Period 2 retention shows whether newer customers are engaging better or worse than older ones did at the same stage. Reading across a row shows a single cohort's engagement decay over time.

Watch for a Widening Light Column

If retention opacity fades faster in recent cohorts' early periods than it did in older cohorts, that is an early warning sign for onboarding or engagement quality — something worth catching well before it shows up as reduced revenue in Revenue Analytics.

AI Assistant

Cohort Analysis has a built-in AI Assistant, opened from the tab on the right edge of the screen. It receives the same cohort table shown on screen — each cohort's size and its retention-percentage series over subsequent periods — as structured context, and answers in Markdown.

Retention Health

Ask whether customer retention is improving or declining over time.

Cohort Comparison

Ask which cohorts retain best or worst, and any outliers worth investigating.

Drop-off Analysis

Ask where retention drops off most sharply across the periods.

Sizing Context

Ask whether any cohorts are too small for their retention percentage to be reliable.

Any assistant reply can be saved as a report via Save as Report, and relevant Knowledge Base sources can be attached with Add Knowledge before asking. The assistant's AI backend follows the Writer Engine setting in Settings → Agentic — Ollama and other local/in-browser engines run entirely on your machine, never through TotalApp's servers.

Frequently Asked Questions

What determines which cohort a contact belongs to?
A contact's cohort is fixed at the time it was created, based on its createdAt date grouped into the selected period (month, quarter, or year). Switching the grouping pill re-buckets every contact by the new period width but does not change which contacts exist — only how they are grouped.
What counts as retention in a given period?
A contact counts as retained in a period if its lastContact date falls within that period relative to its acquisition date. This is driven by the same lastContact field that Activities & Tasks updates automatically whenever a call, meeting, or email is marked complete against that contact.
Does Cohort Analysis include leads and vendors, or only customers?
Cohort Analysis draws from the same unified contact directory used across CRM, so any contact with a createdAt date can appear in a cohort. In practice this is most useful when scoped to your customer base, since retention against leads or vendors carries a different meaning than customer engagement.