ریزش مشتری در مدل SaaS؛ اعمال ریزش فقط در ماه تمدید
در بسیاری از مدلهای اشتراکی، نرخ ریزش مشتری هر ماه به همهی مشتریان اعمال میشود. نتیجه یک کاهش صاف و یکنواخت است که با رفتار واقعی مشتری نمیخواند. مشتری با قرارداد سهماهه وسط قرارداد نمیرود؛ در لحظهی تمدید تصمیم میگیرد بماند یا برود. تابع MOD در اکسل کمک میکند ریزش را دقیقاً در همین لحظهها وارد مدل کنید.
چرا ریزش ماهانهی ثابت گمراهکننده است
فرض کنید قراردادها سهماهه است و نرخ ریزش را «۵ درصد در ماه» گذاشتهاید. مدل هر ماه ۵ درصد از مشتریان را حذف میکند، در حالی که در دنیای واقعی تا پایان قرارداد هیچکس نمیتواند بهطور رسمی برود. مشکلها از اینجا شروع میشود:
- منحنی نگهداشت بهصورت شیب نرم پایین میآید، اما دادهی واقعی پلهپله است.
- زمانبندی جریان نقد غلط میشود، چون درآمدی که در واقع تا پایان قرارداد قطعی است در مدل زودتر کم میشود.
- مقایسهی مدل با واقعیت در گزارشهای ماهانه پر از انحرافهای بیدلیل میشود.
راهحل این است که ریزش فقط در ماههای تمدید فعال شود و در بقیهی ماهها صفر بماند.
تابع MOD چه میکند
MOD باقیماندهی تقسیم یک عدد بر عدد دیگر را برمیگرداند. ساختار آن =MOD(عدد، مقسومعلیه) است. مثلاً MOD(7,3) برابر ۱ است، چون ۷ تقسیم بر ۳ دو میشود و ۱ باقی میماند.
نکتهی کلیدی این است که وقتی عدد مضربی از مقسومعلیه باشد، باقیمانده صفر میشود. اگر «عدد» را فاصلهی ماه جاری از شروع قرارداد بگیریم و «مقسومعلیه» را طول قرارداد، صفر شدن باقیمانده یعنی به ماه تمدید رسیدهایم.
ساخت پرچم ماه تمدید
برای قرارداد سهماهه، الگوی زیر تکرار میشود:
| ماه از شروع قرارداد | MOD(ماه، ۳) | وضعیت |
|---|---|---|
| ۰ | ۰ | تمدید |
| ۱ | ۱ | ماه عادی |
| ۲ | ۲ | ماه عادی |
| ۳ | ۰ | تمدید دوباره |
| ۶ | ۰ | تمدید دوباره |
در مدل، یک ردیف جدا برای پرچم تمدید بسازید:
=MOD(فاصله_ماهی، طول_قرارداد)=0
این فرمول فقط TRUE یا FALSE برمیگرداند. پرچم را یک بار تعریف کنید و بقیهی مدل را به آن وصل کنید، نه اینکه در هر فرمول شرط جداگانه بنویسید. بهتر است «فاصلهی ماهی» و «طول قرارداد» در ورودیهای مدل باشند تا برای قراردادهای ماهانه، سهماهه و سالانه همان فرمول کار کند. این رویکرد با جدول قرارداد در مدلسازی قرارداد SaaS کاملاً سازگار است.
اعمال ریزش فقط وقتی مهم است
حالا نرخ ریزش را به پرچم گره بزنید. اگر پرچم درست باشد، نرخ ریزش اعمال میشود و اگر نه، مشتریان بدون تغییر ادامه میدهند:
=IF(پرچم_تمدید, مشتریان_قبلی × (۱ − نرخ_ریزش), مشتریان_قبلی)
مثال عددی ساده
فرض کنید ۱۰۰ مشتری با قرارداد سهماهه و نرخ ریزش ۱۵ درصد در هر تمدید دارید. در ماههای ۱ و ۲ تعداد مشتری ۱۰۰ میماند. در ماه ۳، پرچم تمدید فعال میشود و ۱۵ نفر میروند، پس ۸۵ مشتری باقی میماند. دوباره در ماههای ۴ و ۵ همان ۸۵ نفر میمانند و در ماه ۶ دومین ریزش رخ میدهد. نمودار مشتریان پلهای میشود و دقیقاً شبیه رفتار واقعی قراردادهاست.
نرخ ریزش متفاوت برای هر دورهی تمدید
یکی از مزیتهای این روش آن است که میتوانید برای هر تمدید نرخ نگهداشت جداگانه بگذارید. معمولاً مشتری که چند بار تمدید کرده وفادارتر است. برای نمونه، فرض کنید نگهداشت در تمدید اول ۸۵ درصد، در تمدید دوم ۹۲ درصد و در تمدید سوم ۹۵ درصد باشد.
برای پیدا کردن شمارهی تمدید میتوانید از تقسیم صحیح فاصلهی ماهی بر طول قرارداد استفاده کنید و با آن نرخ مناسب را از یک جدول کوچک بخوانید. به این ترتیب مدل نگهداشت واقعیتر میشود. برای فهم بهتر معیارهای نگهداشت، GRR و NRR در SaaS را هم ببینید.
کاربردهای بیشتر پرچم تمدید
پرچم تمدید فقط برای ریزش نیست. چون زمان تصمیمهای مشتری را مشخص میکند، میتوانید از آن در جاهای دیگر هم استفاده کنید:
- اعمال افزایش قیمت یا تعدیل تعرفه فقط در ماه تمدید
- ثبت ارتقا و افزایش تعداد کاربر که معمولاً همزمان با تمدید رخ میدهد
- محاسبهی احتمال تمدید برای پیشبینی درآمد دورههای بعد
- ساخت یادآوری و هشدار برای تیم موفقیت مشتری پیش از رسیدن تمدید
- برنامهریزی نقدینگی بر اساس ماههایی که صورتحسابهای بزرگتر صادر میشود
اگر اصول کلی ساخت مدل اشتراکی را میخواهید، مدل مالی SaaS و شناخت درآمد نقطهی شروع خوبی است.
پرسشهای متداول
MOD در اکسل دقیقاً چه کاری میکند؟
باقیماندهی تقسیم دو عدد را برمیگرداند. در مدل اشتراکی از آن برای تشخیص ماههایی استفاده میشود که فاصله از شروع قرارداد مضرب طول قرارداد است.
برای قرارداد ماهانه هم این روش لازم است؟
نه. وقتی طول قرارداد یک ماه باشد، MOD همیشه صفر میشود و هر ماه تمدید است. فرمول همچنان درست کار میکند و نیازی به تغییر ساختار نیست.
اگر مشتریان در ماههای مختلف قرارداد ببندند چه؟
هر کوهورت یا هر قرارداد باید فاصلهی ماهی خودش را از تاریخ شروع خودش حساب کند. پرچم تمدید برای هر ردیف جداگانه به دست میآید و سپس نتیجهها جمع میشود.
آیا ریزش خارج از تمدید کاملاً صفر است؟
برای قراردادهای قطعی، تقریباً بله. اگر قرارداد شما امکان لغو میاندوره دارد، میتوانید نرخ بسیار کوچکی برای ماههای عادی هم بگذارید.
جمعبندی
ریزش مشتری در مدل SaaS باید با تقویم قرارداد هماهنگ باشد. با پرچم MOD میفهمید کدام ماهها تمدید است، ریزش را فقط همانجا اعمال میکنید و منحنی نگهداشت و جریان نقد واقعگرایانهتر میشود. همین پرچم را برای قیمتگذاری، ارتقا و هشدارها هم میتوانید استفاده کنید.