اگر میخواهید رشدتان پایدار باشد، باید بدانید «کدام گروه از کاربران/خریداران» بعد از جذب چه رفتاری دارند: چند درصدشان برمیگردند، چقدر خرید میکنند و در نهایت چه ارزشی ایجاد میکنند. این دقیقاً کاری است که cohort analysis انجام میدهد؛ بهجای نگاه کردن به میانگینهای کلی (که اغلب گمراهکنندهاند)، رفتار را بر اساس «زمان جذب یا اولین خرید» دستهبندی میکند و الگوهای افت، بازگشت و تفاوت کانالها را شفاف میسازد.
در این راهنما، قدمبهقدم یک جدول و نمودار کوهورت در اکسل/Google Sheets میسازیم، Retention و Revenue Retention و LTV را حساب میکنیم، الگوهای رایج (مثل افت هفته اول یا بازگشت فصلی) را تفسیر میکنیم و در نهایت خروجی را به اقدامهای عملی برای فعالسازی، آنبوردینگ و پیشنهادهای بازگشتی تبدیل میکنیم؛ همچنین منطق یک قالب آماده را هم توضیح میدهم تا بتوانید برای دیتای خودتان پیادهسازی کنید.
فهرست مطالب
- تحلیل کوهورت چیست و چرا از گزارشهای کلی بهتر است؟
- پیشنیاز داده: چه ستونهایی لازم دارید؟
- انتخاب نوع کوهورت: تاریخ جذب یا اولین خرید
- ساخت جدول کوهورت در اکسل/Google Sheets (گامبهگام)
- محاسبه Retention و Revenue Retention
- محاسبه LTV از روی کوهورت
- نمودار و Heatmap: چطور الگوها را سریع ببینیم
- تفسیر الگوها: افت هفته اول، بازگشت فصلی، تفاوت کانالها
- تبدیل یافتهها به اقدام عملی (Activation، Onboarding، Win-back)
- مقایسه رویکردها و کاربردها (SaaS vs فروشگاه آنلاین)
- چکلیست اجرایی تحلیل کوهورت برای تیم رشد
- اشتباهات رایج در cohort analysis
- سوالات پرتکرار
تحلیل کوهورت چیست و چرا از گزارشهای کلی بهتر است؟
در cohort analysis، کاربران را به «گروههای همزمان» تقسیم میکنید؛ مثلاً تمام کاربرانی که در هفته 1403/02/01 ثبتنام کردهاند یا تمام مشتریانی که در یک ماه مشخص اولین خرید را انجام دادهاند. سپس برای هر گروه، رفتار را در هفته/ماههای بعدی اندازهگیری میکنید: بازگشت، خرید مجدد، درآمد و…
مزیت اصلی این رویکرد این است که اثر تغییرات شما را در طول زمان آشکار میکند. اگر امروز آنبوردینگ را بهتر کنید، اثرش باید در کوهورتهای جدید دیده شود، نه در میانگین کل کاربران که شامل کاربران قدیمی با تجربههای متفاوت است.
از منظر بازاریابی دادهمحور، cohort analysis پلی است بین «اندازهگیری» و «تصمیم». اگر هنوز زیرساخت اندازهگیری کمپینها و انتساب کانالها را منظم نکردهاید، اول سراغ راهنمای ردیابی UTM و رویدادها در GA4 و تگ منیجر بروید تا کوهورتهای کانالمحور قابل اعتماد شوند.
پیشنیاز داده: چه ستونهایی لازم دارید؟
برای ساخت کوهورت در اکسل/Sheets، حداقل به یک جدول رخداد (event table) یا سفارش نیاز دارید. سادهترین حالت:
- user_id: شناسه یکتا برای کاربر/مشتری
- event_date: تاریخ رخداد (ورود، خرید، تمدید،…)
- event_type: نوع رخداد (اختیاری اما مفید)
- revenue: مبلغ درآمد مرتبط با رخداد (برای فروشگاه آنلاین: مبلغ سفارش؛ برای SaaS: مبلغ پرداخت/تمدید)
- acquisition_date یا first_purchase_date: تاریخ جذب یا اولین خرید (اگر ندارید، میشود از داده استخراج کرد)
- channel: کانال جذب (اختیاری، برای مقایسه کانالها بسیار مهم)
نکته عملی: اگر تاریخ «اولین رخداد مهم» را ندارید، میتوانید آن را از روی جدول رخدادها با گرفتن کمینه تاریخ برای هر user_id بسازید. در اکسل این کار با PivotTable یا توابعی مثل MINIFS انجام میشود.
انتخاب نوع کوهورت: تاریخ جذب یا اولین خرید
قبل از ساخت جدول، باید تعریف کنید «کوهورت بر چه مبنایی ساخته میشود». دو انتخاب رایج:
- کوهورت بر اساس تاریخ جذب (Signup/Acquisition cohort): مناسب SaaS و محصولاتی که ارزش در طول استفاده ایجاد میشود (فعالسازی، استفاده، تمدید).
- کوهورت بر اساس اولین خرید (First purchase cohort): مناسب فروشگاه آنلاین و هر کسبوکاری که نقطه شروع رابطه، خرید است.
قاعده کاربردی: اگر هدف شما بهبود آنبوردینگ و فعالسازی است، کوهورت جذب بهتر جواب میدهد؛ اگر هدف بهبود خرید مجدد و Win-back است، کوهورت خرید اول واضحتر است.
ساخت جدول کوهورت در اکسل/Google Sheets (گامبهگام)
در این بخش، یک مسیر عملی و قابل تکرار ارائه میشود. هدف: ساخت ماتریسی که سطرها «کوهورت» و ستونها «ماه/هفته بعد از شروع» باشند.
گام 1: استانداردسازی تاریخها و تعیین بازه زمانی
تاریخها را به یک فرمت ثابت تبدیل کنید (مثلاً YYYY-MM-DD). سپس تصمیم بگیرید تحلیل هفتگی میخواهید یا ماهانه. برای فروشگاه آنلاین با تعداد سفارش بالا، هفتگی مفید است؛ برای SaaS با چرخه پرداخت ماهانه، ماهانه معمولاً بهتر است.
گام 2: ساخت ستون «cohort_period»
اگر تحلیل ماهانه است، ستون cohort_period را به «ماه شروع» تبدیل کنید (مثلاً 2025-01). اگر هفتگی است، به «هفته شروع».
در Google Sheets میتوانید از توابع تاریخ برای بریدن روز به ماه/هفته استفاده کنید (مثلاً تبدیل به اولین روز ماه). در اکسل نیز معادل همین کار با DATE و YEAR/MONTH انجام میشود.
گام 3: ساخت ستون «age» (سن کوهورت)
age یعنی چند هفته/ماه از شروع گذشته است. مثال: اگر کوهورت کاربر ماه 2025-01 است و رخداد در 2025-03 رخ داده، age=2 (دو ماه بعد از شروع).
این ستون برای cohort analysis حیاتی است؛ بدون آن، جدول شما صرفاً یک گزارش زمانی میشود، نه کوهورت.
گام 4: ساخت Pivot برای شمارش کاربران فعال یا خریدار
یک PivotTable بسازید:
- Rows: cohort_period
- Columns: age
- Values: تعداد یکتای user_id (Distinct count)
اگر اکسل شما Distinct count ندارد، دو راه رایج دارید: (1) استفاده از Power Pivot/Data Model، یا (2) ساخت یک جدول واسط که برای هر user_id و age فقط یک ردیف نگه دارد.
گام 5: ساخت Pivot درآمد (برای Revenue Retention و LTV)
یک Pivot دوم:
- Rows: cohort_period
- Columns: age
- Values: SUM(revenue)
در فروشگاه آنلاین، revenue معمولاً مبلغ سفارش است؛ در SaaS، بهتر است revenue را فقط پرداختهای واقعی (Invoice paid) در نظر بگیرید تا تصویر دقیقتری از درآمد داشته باشید.
محاسبه Retention و Revenue Retention
حالا که ماتریس «تعداد کاربران» را دارید، باید آن را به نرخ تبدیل کنید. در cohort analysis معمولاً ستون age=0 مبناست (همان اندازه کوهورت در شروع).
Retention Rate (نرخ نگهداشت)
فرمول: تعداد کاربران فعال در age=t تقسیم بر تعداد کاربران در age=0.
مثال: اگر کوهورت بهمن 1403 در age=0 تعداد 100 کاربر داشته و در age=1 تعداد 35 کاربر فعال، Retention ماه اول = 35%.
Revenue Retention (نگهداشت درآمدی)
بهجای تعداد کاربران، درآمد را نسبت میدهید. فرمول: درآمد در age=t تقسیم بر درآمد در age=0 (یا درآمد ماه/هفته اول). این شاخص برای SaaS بسیار مهم است چون رشد از طریق ارتقا (Upgrade) یا کاهش (Downgrade) را بهتر نشان میدهد.
نکته: اگر ماه اول درآمد بسیار کم است (بهخصوص در مدلهای آزمایشی)، بهتر است مبنا را «اولین ماه پرداخت» تعریف کنید تا نسبتها معنا داشته باشند.
محاسبه LTV از روی کوهورت
LTV یا ارزش طول عمر مشتری (Lifetime Value) را میتوان از روی ماتریس درآمد به شکل تجمعی حساب کرد. رویکرد ساده و عملی:
- برای هر کوهورت، درآمد هر age را دارید.
- درآمد تجمعی تا age=t را محاسبه میکنید.
- سپس بر تعداد مشتریان اولیه (age=0) تقسیم میکنید تا LTV سرانه بهدست آید.
این روش در cohort analysis عالی است چون LTV را «بر اساس واقعیات رفتاری کوهورتها» نشان میدهد، نه با یک میانگین کلی.
اگر LTV را برای تصمیمهای جذب استفاده میکنید (مثلاً سقف هزینه جذب)، حتماً آن را به تفکیک کانال و کمپین هم ببینید؛ در این صورت داشتن ردیابی دقیق کمپینها ضروری است و تنظیمات UTM بههمراه رویدادها نقش کلیدی دارد.
نمودار و Heatmap: چطور الگوها را سریع ببینیم
یک ماتریس کوهورت بدون بصریسازی، کند تفسیر میشود. بهترین راه، Heatmap است: هر خانه بر اساس مقدار Retention یا Revenue Retention رنگ میگیرد.
- در اکسل: Conditional Formatting (Color Scale)
- در Google Sheets: Format → Conditional formatting
در نمودارها، معمولاً دو نوع مفید است:
- نمودار خطی برای چند کوهورت منتخب (مثلاً ۳ کوهورت اخیر): میبینید آیا کوهورتهای جدید بهتر شدهاند یا نه.
- نمودار میلهای LTV سرانه به تفکیک کوهورت یا کانال: برای تصمیمهای بودجهای و اولویتبندی.
تفسیر الگوها: افت هفته اول، بازگشت فصلی، تفاوت کانالها
اینجا جایی است که cohort analysis ارزش واقعی ایجاد میکند: تشخیص «الگو» و اتصال آن به «علت احتمالی» و سپس «آزمایش/اقدام».
الگو 1: افت شدید در هفته/ماه اول (First-period drop)
اگر تقریباً همه کوهورتها در age=1 افت تند دارند، معمولاً مشکل در فعالسازی و تجربه اولیه است. برای SaaS: کاربر ارزش محصول را سریع نمیفهمد یا به لحظه «آها» نمیرسد. برای فروشگاه: تجربه خرید اول، ارسال، یا کیفیت محصول انتظارات را برآورده نکرده است.
اقدامهای پیشنهادی:
- بازطراحی مسیر آنبوردینگ و کاهش مراحل اولیه
- ایمیل/پیامهای راهنما بر اساس رفتار (نه زمان ثابت)
- بهبود زمان رسیدن به ارزش (Time-to-Value)
اگر برای اقدامها نیاز به اولویتبندی علمی دارید، میتوانید از چارچوبهای آزمون استفاده کنید؛ راهنمای تست A/B دادهمحور کمک میکند تغییرات آنبوردینگ/صفحات کلیدی را بهصورت قابل اتکا ارزیابی کنید.
الگو 2: بازگشت فصلی یا دورهای (Seasonal return)
گاهی میبینید در age=3 یا age=6 یک «برآمدگی» وجود دارد؛ یعنی درصدی از کاربران بعد از چند ماه دوباره فعال میشوند. این میتواند ناشی از:
- فصل خرید (مثلاً شروع سال، پایان فصل، مناسبتها)
- چرخه مصرف محصول (مثلاً خرید تکرارشونده هر 60–90 روز)
- تمدیدهای دورهای در SaaS
اقدامهای پیشنهادی:
- کمپینهای یادآوری و Win-back همزمان با چرخه واقعی مصرف/تمدید
- پیشنهادهای باندل یا اشتراکی برای هموارسازی درآمد
الگو 3: تفاوت معنادار بین کانالها
اگر کوهورت را به تفکیک channel هم بسازید، ممکن است ببینید یک کانال با حجم پایین، Retention و LTV بسیار بالاتری دارد. این یعنی بودجه و تمرکز باید بازتخصیص داده شود. اما مراقب باشید: حجم کم یعنی نوسان زیاد؛ به اندازه نمونه توجه کنید.
برای تصمیمهای کانالی، بهتر است چند کوهورت اخیر را کنار هم ببینید و بهجای یک ماه خاص، روند را قضاوت کنید.
تبدیل یافتهها به اقدام عملی (Activation، Onboarding، Win-back)
تحلیل بدون اقدام، فقط گزارش است. خروجی cohort analysis را به یک لیست اقدام تبدیل کنید که قابل اجرا و قابل اندازهگیری باشد.
چارچوب عملی تبدیل الگو به اقدام
- مشاهده: دقیقاً کدام کوهورت و در کدام age مشکل/فرصت دارد؟
- فرضیه: چرا این الگو رخ داده؟ (مثلاً کانال X کاربران کمکیفیت میآورد)
- اهرم: کدام نقطه تماس را میتوان تغییر داد؟ (صفحه قیمت، ایمیل فعالسازی، تجربه پرداخت)
- شاخص: موفقیت را با چه چیزی میسنجید؟ (Retention ماه اول، Revenue Retention ماه دوم، LTV تا ماه سوم)
- آزمایش: یک تست کنترلشده یا اجرای مرحلهای
اقدامهای نمونه برای SaaS
- تفکیک کاربران جدید بر اساس «رسیدن به رویداد کلیدی» و ساخت کوهورت رفتاری
- بهبود راهنمای درون محصول برای کاهش ریزش هفته اول
- طراحی پیشنهاد ارتقا برای کوهورتهایی که Revenue Retention افت میکند
اقدامهای نمونه برای فروشگاه آنلاین
- تقسیم کوهورت خرید اول بر اساس دسته محصول و بررسی خرید دوم
- کمپین بازگشتی بر اساس فاصله زمانی معمول خرید مجدد
- پیشنهادهای شخصیسازیشده برای افزایش ارزش سبد در خریدهای بعدی
مقایسه رویکردها و کاربردها (SaaS vs فروشگاه آنلاین)
| موضوع | SaaS | فروشگاه آنلاین |
|---|---|---|
| مبنای رایج کوهورت | تاریخ ثبتنام/فعالسازی | تاریخ اولین خرید |
| رویداد کلیدی | رسیدن به ارزش (مثلاً ایجاد پروژه/اتصال ابزار) | خرید دوم / تکرار خرید |
| Retention مهمتر | Retention کاربری و Revenue Retention | Retention خرید (Repeat purchase) |
| سیگنال هشدار | افت شدید ماه اول + کاهش Revenue Retention | عدم خرید دوم تا X روز + کاهش AOV |
| اقدامهای پرتأثیر | بهبود آنبوردینگ، آموزش، پیشنهاد ارتقا | Win-back، پیشنهاد بازخرید، بهبود تجربه ارسال/مرجوعی |
چکلیست اجرایی تحلیل کوهورت برای تیم رشد
- تعریف دقیق کوهورت (جذب یا اولین خرید) و بازه زمانی (هفتگی/ماهانه)
- اطمینان از یکتایی user_id و کیفیت تاریخها
- ساخت ستون cohort_period و age
- ساخت Pivot تعداد کاربران (Distinct) و Pivot درآمد (Sum)
- محاسبه Retention و Revenue Retention بر اساس age=0
- محاسبه LTV تجمعی سرانه تا چند نقطه (مثلاً 30/60/90 روز یا ماه 1/3/6)
- Heatmap برای شناسایی سریع افتها و برآمدگیها
- تفکیک حداقل یکبار بر اساس کانال یا دسته محصول برای یافتن تفاوتها
- نوشتن 3 فرضیه قابل آزمون از روی الگوها و اولویتبندی اجرا
- تعیین شاخص موفقیت و بازبینی ماهانه/هفتگی کوهورتها
اشتباهات رایج در cohort analysis
- قاطی کردن تعریف «فعال بودن»: اگر معیار فعالیت ثابت نباشد (مثلاً یکبار لاگین vs انجام رویداد کلیدی)، Retention قابل مقایسه نیست.
- استفاده از میانگینهای کلی بهجای کوهورت: میانگین کل میتواند بهبود کوهورتهای جدید را پنهان کند.
- نادیده گرفتن اندازه نمونه: کوهورتهای کوچک نوسان بالایی دارند؛ تصمیمهای بودجهای را با یک کوهورت کوچک نگیرید.
- محاسبه اشتباه Distinct: اگر کاربر چند رخداد در یک age داشته باشد و شما بهجای یکتا، تعداد رخدادها را بشمارید، Retention باد میکند.
- اتکا به درآمد ناخالص بدون اصلاحات: مرجوعی/ریفاند یا پرداختهای ناموفق میتواند Revenue Retention را منحرف کند.
- دیدن الگو بدون اقدام: خروجی باید به تغییر در آنبوردینگ، پیامرسانی، پیشنهاد بازگشتی یا بودجه کانالها منجر شود.
سوالات پرتکرار
1) بهترین بازه برای کوهورت هفتگی است یا ماهانه؟
اگر چرخه خرید/استفاده سریع است و داده زیاد دارید (مثل فروشگاه آنلاین)، هفتگی مفید است؛ اگر چرخه پرداخت ماهانه است (SaaS)، ماهانه تفسیرپذیرتر خواهد بود. مهمتر از انتخاب، ثابت نگه داشتن بازه در طول تحلیل است.
2) در cohort analysis «فعال بودن» را چطور تعریف کنم؟
فعال بودن را به یک رویداد معنادار گره بزنید؛ برای SaaS بهتر است رویداد کلیدی محصول باشد (نه صرفاً لاگین). برای فروشگاه آنلاین، خرید یا افزودن به سبد/شروع پرداخت میتواند معیار باشد، بسته به هدف شما.
3) چطور کوهورت را به تفکیک کانال بسازم؟
یک ستون channel داشته باشید و Pivot را فیلتر یا به صورت چند جدول جداگانه بسازید. اگر میخواهید دقیق باشد، انتساب کانال را با UTM و قوانین یکسان انجام دهید تا مقایسه منصفانه شود.
4) آیا میتوانم LTV را فقط از روی 2–3 ماه اول تخمین بزنم؟
بله، اما باید صادقانه با عدم قطعیت برخورد کنید. معمولاً LTV اولیه (مثلاً 90 روز) برای تصمیمهای کوتاهمدت جذب کافی است و بعداً با بالغ شدن کوهورتها بهروزرسانی میشود.
5) برای SaaS، Revenue Retention مهمتر است یا Retention کاربری؟
هر دو مهماند، اما Revenue Retention برای سلامت کسبوکار شاخص قویتری است چون اثر ارتقا/کاهش را نشان میدهد؛ با این حال اگر Retention کاربری در ماه اول میریزد، معمولاً اول باید مشکل فعالسازی/ارزش اولیه را حل کنید.
6) چگونه بفهمم افت هفته/ماه اول ناشی از کانال است یا محصول؟
کوهورت را به تفکیک کانال بسازید و Retention age=1 را مقایسه کنید؛ اگر همه کانالها افت مشابه دارند، مشکل محصول/تجربه اولیه محتملتر است، و اگر یک کانال افت شدیدتر دارد، کیفیت ورودی یا پیام کمپین آن کانال را بررسی کنید.
7) آیا اکسل برای تحلیل کوهورت کافی است؟
برای بسیاری از تیمها بله؛ مخصوصاً اگر مدل دادهتان ساده باشد. چالش اصلی اکسل، Distinct count و مدیریت حجم داده است؛ اگر داده خیلی بزرگ شد، میتوانید مرحله آمادهسازی را در ابزارهای تحلیلی انجام دهید و خروجی را برای گزارش به Sheets/Excel بیاورید.
8) هر چند وقت یکبار باید گزارش کوهورت را بهروزرسانی کنیم؟
برای SaaS معمولاً ماهانه کافی است؛ برای فروشگاه آنلاین و تیمهای رشد فعال، هفتگی یا دوهفتهای میتواند بهتر باشد. مهم این است که هر بار، تصمیم مشخصی از آن بیرون بیاید.
اگر میخواهید خروجی cohort analysis را به تصمیمهای عملی تبدیل کنید، پیشنهاد میکنم کنار این گزارشها، یک داشبورد ساده هم داشته باشید تا تیم سریعتر وضعیت را ببیند؛ در این زمینه مقاله معرفی داشبوردهای بازاریابی برای تجزیه و تحلیل داده میتواند مسیر طراحی شاخصها و لایهبندی گزارش را روشنتر کند.
