تحلیل RFM را با مثال واقعی اجرا کنید؛ Recency، Frequency و Monetary، امتیاز ۱ تا ۵، Segment و اقدام قابل آزمون.
تحلیل RFM مشتریان را با سه رفتار قابل مشاهده دستهبندی میکند: آخرین خرید چقدر تازه است، مشتری چند بار خریده و چه مبلغی پرداخت کرده است. نتیجه پیشبینی قطعی وفاداری نیست؛ یک Snapshot رفتاری برای انتخاب پیام، اولویت پیگیری و آزمون کمپین است.
این مثال از داده تراکنش تا امتیاز و Segment پیش میرود و نشان میدهد چرا تعریف پنجره، Refund و آستانهها از خود فرمول مهمتر است.
تحلیل RFM چیست و سه حرف آن چه میگویند؟
- Recency (R): فاصله تاریخ مرجع تا آخرین خرید معتبر؛ روز کمتر بهتر است.
- Frequency (F): تعداد خرید معتبر در پنجره تحلیل؛ بیشتر معمولاً بهتر است.
- Monetary (M): مجموع مبلغ یا حاشیه مشارکت خریدها؛ بیشتر بهتر است.
RFM برای کسبوکاری مناسب است که خرید تکراری و شناسه مشتری نسبتاً پایدار دارد. برای خرید یکباره ملک یا قرارداد چندساله، Frequency کم لزوماً نشانه مشتری ضعیف نیست و مدل باید با چرخه کسبوکار تطبیق یابد.
داده را پیش از امتیازدهی پاک کنید
حداقل جدول تراکنش:
| customer_id | order_id | paid_at | net_amount | status |
|---|
قواعد را قبل از دیدن Segmentها بنویسید:
- فقط سفارش پرداختشده و نهایی؛
- Refund کامل حذف یا مبلغش منفی شود؛
- سفارش Test و کارکنان حذف؛
- Currency و واحد پول یکسان؛
- چند ردیف یک سفارش، یک Frequency؛
- شناسههای تکراری یک مشتری ادغام شوند؛
- تاریخ مرجع و پنجره—مثلاً ۱۸۰ روز—ثابت باشد.
اطلاعات پایه مشتری را در CRM نوتوا نگه دارید، اما محاسبه RFM را روی Export تراکنش تمیز و بدون داده اضافی انجام دهید.
مثال عملی با آستانههای شفاف
تاریخ مرجع ۳۰ اکتبر ۲۰۲۶ و پنجره ۱۸۰ روز است. آستانهها براساس توزیع و اقتصاد همین فروشگاه تعیین شدهاند:
| امتیاز | R: روز از خرید | F: تعداد سفارش | M: مبلغ خالص (میلیون تومان) |
|---|---|---|---|
| 5 | ۰ تا ۷ | ۱۰+ | ۱۰۰+ |
| 4 | ۸ تا ۳۰ | ۷ تا ۹ | ۵۰ تا ۹۹٫۹ |
| 3 | ۳۱ تا ۶۰ | ۴ تا ۶ | ۲۰ تا ۴۹٫۹ |
| 2 | ۶۱ تا ۱۲۰ | ۲ تا ۳ | ۵ تا ۱۹٫۹ |
| 1 | بیشتر از ۱۲۰ | ۱ | کمتر از ۵ |
خروجی شش مشتری:
| مشتری | R روز | F | M میلیون | RFM | تفسیر اولیه |
|---|---|---|---|---|---|
| A | ۳ | ۱۲ | ۱۴۰ | 555 | قهرمان |
| B | ۱۴ | ۸ | ۶۲ | 444 | وفادار |
| C | ۴۲ | ۵ | ۳۲ | 333 | نیازمند رشد |
| D | ۷۵ | ۹ | ۸۰ | 244 | ارزشمند در خطر |
| E | ۱۳۵ | ۳ | ۱۸ | 122 | خوابیده |
| F | ۵ | ۱ | ۳ | 511 | تازهوارد |
کد 244 عدد دویستوچهلوچهار نیست؛ سه رقم مستقل است. میانگینگرفتن کورکورانه میتواند مشتری 155 و 551 را مشابه نشان دهد، درحالیکه اقدامشان کاملاً متفاوت است.

Segmentها را به اقدام قابل آزمون وصل کنید
| Segment | قاعده نمونه | اقدام | Guardrail |
|---|---|---|---|
| قهرمان | R≥4,F≥4,M≥4 | Early access یا درخواست معرفی | تخفیف غیرضروری ندهید |
| وفادار | F≥4 و R≥3 | Cross-sell مرتبط | نرخ لغو پیام |
| در خطر | R≤2 و F/M≥4 | تماس علتمحور، نه پیام انبوه | حاشیه سود حفظ شود |
| تازهوارد | R≥4 و F=1 | آموزش خرید دوم | مزاحمت پیام کم |
| خوابیده | R=1 و F≤2 | یک کمپین بازگشت محدود | پس از عدم پاسخ متوقف شود |
برای هر Segment فرضیه بنویسید: «پیام راهنمای خرید دوم در ۱۴ روز، نرخ خرید دوم را بالا میبرد.» سپس گروه کنترل، بازه و Metric را تعیین کنید. Segment بدون اقدام فقط رنگآمیزی جدول است.
آستانه ثابت یا Quantile؟
دو روش رایج:
آستانه کسبوکاری
همان مثال بالا. قابل توضیح است و با چرخه خرید هماهنگ میشود، اما ممکن است گروهها نامتوازن باشند.
Quantile
برای هر متغیر مشتریان را به پنج بخش تقریباً هماندازه تقسیم میکنید. این روش با توزیع سازگار است، ولی Tieهای زیاد و جمعیت کوچک میتوانند مرز مصنوعی بسازند. همچنین امتیاز ۵ این ماه ممکن است با رفتار ضعیفتری از امتیاز ۵ ماه قبل ساخته شود.
روش را با تاریخ، کد و آستانه نسخهبندی کنید. گزارشهای دورهای باید از تعریف یکسان استفاده کنند یا تغییر را صریح نشان دهند.
فرمولهای قابل پیادهسازی
برای هر مشتری (i):
R_i = reference_date - max(valid_paid_at_i)
F_i = count(distinct valid_order_id_i)
M_i = sum(net_amount_i)
اگر Margin قابل اعتماد دارید، M را به Contribution تغییر دهید تا مشتری پرخرج ولی کمسود بیش از حد بالا نرود. خروجی Segment را میتوانید به فرصتها و پیگیریهای CRM وصل کنید؛ از ساخت خودکار Task انبوه پیش از Pilot خودداری کنید.
محدودیتهایی که باید کنار گزارش نوشته شوند
- RFM دلیل خرید یا ریزش را توضیح نمیدهد؛
- کانال، دسته محصول و حاشیه سود را نادیده میگیرد مگر اضافه کنید؛
- مشتری تازه فرصت Frequency بالا نداشته است؛
- فصل، تخفیف و کمبود کالا رفتار را جابهجا میکنند؛
- امتیاز نسبی بین دو کسبوکار قابل مقایسه نیست؛
- داده بد هویت مشتری هر سه شاخص را خراب میکند.
چکلیست بازبینی
- پنجره و تاریخ مرجع ثبت شده است.
- سفارش لغو، Refund و Test تعیین تکلیف شدهاند.
- Frequency تعداد سفارش یکتاست.
- M واحد پول و تعریف خالص/حاشیه مشخص دارد.
- جهت Recency درست است: روز کمتر، Score بیشتر.
- آستانهها نسخه و دلیل دارند.
- هر Segment اقدام و Guardrail دارد.
- نتیجه با آزمایش، نه حدس، ارزیابی میشود.
پرسش های متداول
در RFM امتیاز Recency بالاتر یعنی چه؟
یعنی خرید تازهتر؛ چون تعداد روز کمتر رفتار مطلوبتری است، هنگام تبدیل به Score جهت را معکوس کنید.
RFM وفاداری مشتری را ثابت میکند؟
خیر؛ رفتار خرید در پنجره را خلاصه میکند و دلیل، رضایت یا خرید آینده را اثبات نمیکند. اقدام بعدی باید آزمایش شود.
Refund را در Monetary چه کنیم؟
قاعده را از قبل تعیین کنید؛ معمولاً مبلغ خالص Refund و سفارش لغوشده مناسبتر است. در Frequency نیز سفارش معتبر یکتا بشمارید.
جمعبندی
RFM یک روش سبک و قابل توضیح برای تبدیل تاریخچه خرید به اولویت عمل است. ابتدا جمعیت و تراکنش معتبر را تعریف کنید، R/F/M را در یک پنجره واحد بسازید، آستانهها را نسخهبندی و هر Segment را به یک فرضیه قابل آزمون وصل کنید. کد سهرقمی پاسخ نهایی نیست؛ نقطه شروع گفتوگو و آزمایش بازاریابی است.