خوب اول از همه اینکه این موضوع فقط به میانگین قیمت سفارش وابسته نیست. و باید توجه داشت که ما یک نموداری داریم به عنوان Retention rate که نشون میده مثلا چقدر از کسایی که ۱ خرید داشتن اومدن و دومین خریدشون رو انجام دادن. معمولا این نمودار همراه دوره زمانی و میزان قیمت سفارش با هم تحلیلهایی مثل RFM رو پوشش میدن.
دانشتن LFV (Life Time Value) هم برای این منظور کافی نیست. چون در نمودار RFM مشتریان ارزشهای مختلفی دارن.
کارهای غلط:
* محاسبه شرطی « بازگشت به شرط اولین خرید و بازگشت به شرط خرید زیر ۳۰ روز» کمکی به ما نمیکنن.
* محاسبه احتمال استفاده از کد تخفیف ارسال شده نباید در این مورد در نظر گرفته بشه و تاثیری بر حداکثر میزان تخفیف نداره.
هر متری که این تخفیف براش ارسال میشه، از یه جالیی از نمودار تعداد خحرید میخواد به جای دیگه برسه. و زمان خرید قبلیش مهم نیست. پس در نتیجه باید فقط تعداد خریدهای قبلی فرد مد نظر قرار گرفته بشه.
فرمول محاسبه (از نظر ما) اینه:
حداکثر تخفیف قابل تخصیص = میانگین درآمد از هر سفارش + احتمال بازگشتهای بیشتر * متوسط تعداد خریدهای بعدی * میانگین درآمد از هر سفارش
«متوسط تعداد خریدهای بعدی * میانگین درآمد از هر سفارش» استفاده میشه چون تورم باعث میشه اعداد تاریخچه با اعداد پیشبینی تفاوت داشته باشن. و اینجوری اون تاثیر از بین میره.
متوسط تعداد خریدهای بعدی: این عدد، بر اساس تعداد سفارش فعلی+۱ (سفارشی که با کد تخفیف گذاشته) محاسبه میشه.
جدولی باید تهیه بشه از اینکه، مثلا کسایی که ۲ تا سفارش به بالا داشتن، میانگین چنتا سفارش گذاشتن. این عدد برای ۱ سفارشی ها، مطمئنا برابر میانگین کل سفارشته ( تعداد کل سفارشات تقسیم بر تعداد کل کاربران).
ما الان میدونیم کاربر ما ۱ سفارش قبلا داشته و با این کد تخفیف تعداد سفارشاتش میشن ۲ تا. حالا میبینیم کسایی که ۲ تا یا بیشتر سفارش داشتن چنتا سفارش به صورت میانگین گذاشتن.
احتمال بازگشتهای بیشتر:
یک جدولی داریم که میگه، نسبت تعداد کسایی که مثلا ۳ تا یا بیشتر سفارش داشتن به تعداد کسایی که ۲ سفارش یا بیشتر داشتن چقدره. این میگه احتمال اینکه فردی با ۲ سفارش، ۳ یا بیشتر سفارش بذاره چقدره.
#Python Code with pandas
fre =pd.DataFrame(df.groupby('Frequency')['customer_id'].agg('count'))
fre.rename(columns = {'customer_id':'cci'} , inplace = True )
# Number of customers with n and more orders.
fre['num'] = fre['cci'].sum() - fre['cci'].cumsum() + fre['cci']
# The probability of retention of user with n orders to put (n+1) orders and more.
frequencies['prob'] = (frequencies['num'].shift(-1) / frequencies['num'])
#Number of orders in each group
frequencies['ords'] = frequencies['Frequency'] * frequencies['cci']
frequencies['numOrds'] = frequencies['ords'].sum() - frequencies['ords'].cumsum() + frequencies['ords']
frequencies['lifeTimeOrders'] = frequencies['numOrds'] / frequencies['num']
نکتهها:
۱) اعداد به دست آمده، حداکثر میزان درآمد پیشبینی شده ما هستند. پس اگر همه این مقدار، تخفیف داده شود، ما هیچ درآمدی از این فرد نخواهیم داشت.
۲) میزان CAC (Customer Acquisition Cost) که هزینههای تبلیغات و … را شامل میشود، باید در این اعداد دیده شوند.
۳) منطقا، بهتره از همون میزان میانگین درآد از هر سفارش عددمون بالا نزنه!!