应收账款管理是每家企业财务部门的重点工作,也是最容易失控的风险点。现实中,财务人常常面对这样的困境:Excel表格堆了成百上千行,每笔账单的逾期天数全靠手工计算;催收工作依赖业务员的“感觉”,大客户被优先跟进,小客户却在不知不觉中从逾期变成了坏账;等到月末关账时,才发现某个客户已经逾期90天还未催收,金额还不小;而坏账计提只能机械地套用“账龄表百分比法”,与客户的真实信用状况严重脱节。问题的根源不是财务人不努力,而是用手工工具去处理一个本质上需要自动化和算法支撑的任务。
今天,我们构建一个完整的Python智能应收账款管理系统,从原始账单数据开始,自动完成账龄分组、逾期预警分级、催收邮件自动发送,以及基于机器学习的坏账概率预测——全部代码可以直接落地使用。系统的核心功能包括:自动计算每笔账款的账龄并生成标准账龄报表;按逾期程度将客户分为正常、关注、警告、危险四个级别,自动触发不同力度的催收动作;批量生成个性化催收邮件并自动发送;用机器学习模型预测每个客户的坏账概率,提前锁定高风险客户。
在数据准备阶段,我们模拟了200笔应收账款,涵盖60个客户,账期分别为30天、60天和90天,并设置了部分已收款的情况,最终保留未结清的账款进行后续分析。第一步是账龄自动计算与分组。系统根据当前日期与到期日的差值计算出每笔账款的逾期天数,并按照标准五段法进行分组:未到期、逾期1-30天、31-60天、61-90天、91-180天以及180天以上。同时,系统自动生成催收级别——逾期30天内为“关注”,30至90天为“警告”,超过90天则为“危险”,并以不同颜色图标进行视觉区分。最终输出按客户汇总的账龄报表,哪家客户有多少逾期金额、分布在哪个区间,一目了然。
第二步是自动生成个性化催收邮件。系统根据每个客户的逾期总额、最大逾期天数和账单笔数,动态生成不同语气的邮件内容。逾期30天以内采用友好的“账款提醒”语气;逾期31至90天升级为正式的“催款通知”;超过90天则发送“紧急催款”最终通知,并提示法律程序风险。邮件正文中包含该客户名下所有逾期发票的明细表格,以及合计应收金额。系统支持测试模式(只打印预览不真实发送)和正式发送模式,财务人只需配置好SMTP信息,即可一键向所有逾期客户发出针对性催收邮件。
第三步是用机器学习预测坏账概率。仅仅知道账龄还不够,我们需要预判哪些客户最终可能变成坏账。系统从客户维度提取特征,包括总逾期金额、发票数量、最大逾期天数、平均逾期天数、逾期笔数占比、高风险(逾期超90天)占比、单笔最大金额集中度等。然后使用梯度提升树模型,以历史坏账标签作为训练目标,构建坏账概率预测器。模型评估结果显示AUC-ROC达到良好水平,能够有效区分好坏客户。最终,每个客户都会得到一个0到1之间的坏账概率分数,系统自动筛选出概率超过60%的高风险客户,生成预警报告,提醒财务和业务部门重点跟进。
第四步是可视化完整风险地图。系统一次性生成四张图:账龄分布柱状图(展示不同逾期区间的金额占比)、TOP10逾期客户横向条形图、全体客户坏账概率的直方图,以及逾期天数与未收金额构成的风险矩阵散点图。这张风险矩阵图将客户按“正常、关注、警告、危险”四种风险等级用不同颜色标注,横轴是逾期天数,纵轴是未收金额,哪些客户既逾期久又金额大,一眼就能识别。
整个系统的价值非常直观:账龄计算从过去每月人工花费半天,变成秒级自动输出;催收邮件从复制粘贴通用模板,变成每封都带有个性化明细的自动发送;坏账预测从经验拍脑袋,变成机器学习模型量化输出的概率分数。部署这套系统后,每月可节省财务人员4到6小时的手工劳动,坏账识别的提前量平均达到30至45天,让催收工作从被动补救变为主动预警。对于希望系统掌握Python、BI、风控和RPA等AI财务管理师核心技能的财务人,这正是将技术落地到日常工作的最佳实践。想进一步了解工信部人才交流中心发布的AI财务管理师课程,私信回复「财务管理师」,获取最新课程大纲和开班信息。