ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

催收成本在单体经济中的分析

2020-12-20 20:59:51  阅读:297  来源: 互联网

标签:df 单体 催收 M1 M2 mob 成本


       在信贷业务中,一个产品是否盈利取决于收益和成本。收益来源于产品的利率以及罚金,成本则包括获客、坏账、催收、人力等。这篇文章主要是讲催收成本在单体经济中的占比分析,这也是领导经常关心的问题,毕竟做业务赚不赚钱才是最重要的。关于催收成本及单体经济的分析,这块网上几乎没有资料,因此本人结合工作中的一点思考及实践发表一点想法,方法并不一定正确,望大家多多指正。

 

目录

1.催收计价方式

2.催收成本在单体经济中占比

3.各资产包催收成本分析

4.催收成本的影响因素

5.总结

 

一、催收计价方式

      催收计价方式有坐席制、费率制、计件制三种,各有其优缺点,但通过换算最后的成本应该是一样的。这点在之前的文章中【贷后运营管理】有提及过。因此本文接下来的催收成本计算方式都按计件制来预估,如果非此种方式结佣,可将催收成本换算成计件制单价后再进行预估。

       假设本文产品为件均1000元12期的小额分期,催收按M1单价20元,M2单价50元,后端案件由于回收率较低常按费率制计算,占催收成本的比值较小,因此粗略估算的话可不考虑,预估完M1-M2的催收成本后再适当进行放大即可。

 

二、催收成本在单体经济中的占比

      在业务开始初期,设计信贷产品时需要做盈利测算(P&L测算)。比如该产品毛收益在10%,其中去掉获客1%、坏账3%、催收1%,净收益在5%。这里催收的1%其实和坏账的3%是强相关的,坏账越高相应的催收成本也就越高,所以一般都是预估一下产品的坏账,然后直接估一下相应的催收成本。一款额度为1000元的产品,按上述测算,一个客户盈利100元,期望催收成本10元,可以等数据有表现之后根据逾期表现进行预估。下面介绍一下预估的方法:

  1. 列出当前所以客户的还款历史、当前期数,根据还款历史计算其发生M1逾期、M2逾期的次数。

  2. 计算出每一种还款历史的个数以及占比。

  3. 将还款历史的占比与还款历史对应的催收成本相乘并累加,即得到期望催收成本。

为了便于理解,列出下表会更为直观易懂:

单体经济.png

       实际情况中还款历史的类型会有很多种,上表中未全部列出,大致思路是如上。这样计算出来一个期望催收成本,可以理解为当前时点在每一个人身上花费的催收成本。除此之外,还需要计算一下当前的期望账龄,方法同上,比如一个12期的产品当前情况下的期望账龄是6.4,期望催收成本是3.2元,则其12期之后的期望成本是3.2/6.4*12=6元。再考虑到上面只计算的是M1-M2的催收成本,然后可根据每月催收成本中M3+以上的成本占比进行折算,比如M3+以上成本占20%,则期望催收成本应为6*(1+20%)=7.2元。

下面是上面实现过程的代码:

conn=pymysql.connect(host='',user='',password='',db='')

df=pd.read_sql('select app_id,\

repayment_history,length(repayment_history)as mob,length(repayment_history)-length(replace(repayment_history,1,"")) as M1, \

length(repayment_history)-length(replace(repayment_history,2,"")) as M2 \

from XX ',conn)

 

df['个数']=df.groupby(['repayment_history'])['app_id'].transform('count')

df['占比']=df['个数']/df.shape[0]

df['催收成本']=df['M1']*20+df['M2']*50

df['期望催收成本']=df['催收成本']*df['占比']

 

df_unique=df[['repayment_history','个数','占比','催收成本','期望催收成本']].drop_duplicates()

print(sum(df_unique['期望损失']))

 

三、各资产包催收成本分析

       其实这和Vintage有点类似,只不过Vintage是反应每个资产包每一期的资产情况,而各资产包的催收成本则是将每个资产包的M1、M2个数进行累加,反映的是整个生命周期内该包资产的催收成本,可以借此预估资产包的损益情况。此外,还可以考虑收取的罚金,即每包资产对应的催收成本减去每包资产对应的罚金,步骤大致如下:

  1. 通过mob统计每包资产每一期的M1个数、M2个数。

  2. 通过还款计划表统计每包资产每一期的罚金收取情况。

  3. 将每个资产包的M1个数、M2个数、每期罚金进行累加计算,得到催收成本。

第一步的sql代码如下,将得到的文件输出为excel“催收成本”:

select a.*,b.cnt,b.principalsum from (

select date_format(open_date,'%Y-%m') as open_month,mob,

sum(case when 当期状态=1 then 1 else null end ) as 'm1',

sum(case when 当期状态=2 then 1 else null end ) as 'm2'

from mob表 

group by date_format(open_date,'%Y-%m'),mob)a

inner join 

(select date_format(open_date,'%Y-%m') as open_month,count(distinct app_id)as cnt,sum(principal) as principalsum

from 放款件表

group bydate_format(open_date,'%Y-%m'))b

on a.open_month=b.open_month

第二步的sql代码如下,将得到的文件输出为excel“罚金”:

select date_format(app_create_time,'%Y-%m') as open_month,period,sum(pay_punitive) from `还款计划表` a

group by date_format(app_create_time,'%Y-%m'),period

为了便于理解,选取某个月的资产包以及计算结果如下:

催收成本.png

      将催收成本占比绘制成图,就得到类似Vintage的一条曲线,但是这条曲线不会走平。如果M1的个数随着账期深入维持在相对稳定得水平,那么催收成本的vintage则会呈线性上升的趋势。

催收成本2.png

 

四、催收成本的影响因素

      影响催收成本的因素有很多,大致列举如下:

1.客群风险。

      前端风控坏账水平和催收成本指标是强相关的。风控做得好,进件质量好,逾期水平自然就低,相应的催收成本就低。这是影响催收成本最重要的因素。

2.贷后策略

       由于一些件均较小的产品自然回收率较高且产品对催收成本较敏感,因此对部分客群进行延缓催收的策略,目的也是为了降低催收成本,这一块在之前的文章【贷后策略】中提到过。

3.催收管理

       催收管理运营是一个比较复杂的过程,需要催收系统、语音系统、短信系统等联动起来,在良好的系统的支撑下最大化催收员的效率,达到降本增效的结果。

       前端风控的好坏会直接影响到每月产生的逾期个数,因此不会影响上面催收成本的计算。

      贷后缓催策略(主要是针对M1),意味着mob表中产生的逾期并不会全部入催,因此需要对逾期个数进行折算。这个问题最准确的处理办法是对mob表中每个订单每一期的状态打上标签—是否命中缓催策略且缓催期内是否回收。如果无法做到准确打标的话,则相对简单的方法是对单价打折,比如对20%的客户实施缓催策略,缓催期内回收率为50%,则催收成本变为原来的90%(1-20%*50%),即从20元变成18元。

      催收管理的影响也可以变换到对单价的影响上,比如在没有语音系统的情况下,催收员一个月最多打300个M1案子,在有语音系统的情况下可以打600个M1的案子,因此折算成单价就会从20元变成10元。

      下面以一个例子,考虑上述影响因素,简单介绍催收成本的计算方式:

催收成本3.png

       上图中考虑了两种因素。一是4月份上线缓催策略,预估降低10%的催收成本;二是9月份调整单价,降为原来的一半。因此需要对各资产包在4月份以及9月份之后的资产表现采用新的单价进行计算,如上表中就会有3种单价。反映在催收成本的Vintage曲线上如下:

催收成本4.png

      上述计算方式的实现过程代码如下,输入文件为第三部分中导出两个excel文件:

def pro_detail(df):

    df.replace(np.nan,0,inplace=True)

    #根据mob、放款月计算出表现月时间

    df['表现月']=df.apply(lambda x:pd.to_datetime(x['放款月'])+relativedelta(months=x['mob']),axis=1)

    df.sort_values(['产品线','放款月','mob'],inplace=True)

    #累加求和

    df['sum_m1']=df.groupby(['产品线','放款月'])['M1'].transform('cumsum')

    df['sum_m2']=df.groupby(['产品线','放款月'])['M2'].transform('cumsum')

    return df

 

def pro_punitive(df):

    df.replace(np.nan,0,inplace=True)

    df.sort_values(['产品线','放款月','mob'],inplace=True)

    df['sum_punitive']=df.groupby(['产品线','放款月'])['罚金'].transform('cumsum')

    return df

 

def merge(df1,df2):

    df=pd.merge(df1,df2,on=['产品线','放款月','mob'])

    df.loc[df['表现月']<'2020-03','催收成本']=(df['sum_m1']*20+df['sum_m2']*50)

    for index,row in df.iterrows():

        if row['表现月'].strftime('%Y-%m-%d')>='2020-03-01' and row['mob']>=2:#如果mob为1会直接使用上个月的资产包的结果再进行累加

            df.ix[index,'催收成本']=df.ix[index-1,'催收成本']+row['M1']*18+row['M2']*45

        if row['表现月'].strftime('%Y-%m-%d')>='2020-09-01':

            df.ix[index,'催收成本']=(df.ix[index-1,'催收成本']+(row['M1']*9+row['M2']*22.5)

 

    df['催收成本占比_剔除罚金']=(df['催收成本']-df['sum_punitive'])/df['放款本金']

    df['催收成本占比_未剔除罚金']=(df['催收成本'])/df['放款本金']

    return df

 

def main():

    # 读取催收成本文件并进行累加计算

    df_detail=pd.read_excel('催收成本.xlsx')

    df1=pro_detail(df_detail)

    #读取罚金文件并进行累加计算

    df_punitive=pd.read_excel('罚金.xlsx')

    df2=pro_punitive(df_punitive)

    #将累加之后的催收成本和罚金进行合并并计算催收成本

    df_last=merge(df1,df2)

    #将结果输出成excel

    df_last.to_excel('催收成本占比分析.xlsx')

 

if __name__=='__main__':

    main()

 

五、总结

       催收成本的分析更多地是财务方面计算的事情,上述计算方式从资产包的角度对催收成本进行分析,这是比较客观且正确的方式。但是上述计算方式中仍存在诸多不足,比如只考虑了M1和M2的成本、需要换算成计件制等,因此只是一个大致的预估,可以以此对业务有更准确的把控,实现对资产的精细化运营。

>【作者】:Labryant  
>【原创公众号】:风控猎人  
>【简介】:某创业公司策略分析师,积极上进,努力提升。乾坤未定,你我都是黑马。  
>【转载说明】:转载请说明出处,谢谢合作!~

 

 

 

 

 

 

 

标签:df,单体,催收,M1,M2,mob,成本
来源: https://blog.csdn.net/lc434699300/article/details/111462314

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有