2. 触达策略设计原则:客户分群策略、触达频率控制、最佳触达时间窗口、渠道优先级排序
催收触达策略的核心目标是在合规、低成本的前提下,最大化还款转化率。本章围绕四大设计原则展开:客户分群、频率控制、时间窗口与渠道排序。这四项原则相互耦合,共同构成一套动态、可量化的触达决策引擎。
核心观点: 没有分群的触达是“骚扰”,没有频率控制的触达是“轰炸”,没有时间窗口的触达是“无效”,没有渠道排序的触达是“浪费”。
2.1 客户分群策略
客户分群是触达策略的第一入口。基于风险等级、行为偏好、历史响应率等维度,将客户划分为不同群体,为后续的频率、时间、渠道策略提供差异化依据。
2.1.1 分群维度与标签体系
| 分群维度 | 典型标签 | 数据来源 | 策略影响 |
|---|---|---|---|
| 风险等级 | M1、M2、M3+、失联 | 贷后评分卡、逾期天数 | 决定触达强度与施压话术 |
| 历史响应率 | 高响应、低响应、沉默 | 历史触达日志、IVR按键 | 决定渠道偏好与频次上限 |
| 行为偏好 | APP活跃、短信偏好、电话拒接 | 埋点数据、渠道退订记录 | 决定渠道优先级排序 |
| 还款能力 | 部分还款、承诺未还、无收入 | 收入流水、历史还款模式 | 决定是否提供分期方案 |
| 时间敏感度 | 工作日白天、夜间、周末 | 历史接通时间分布 | 决定最佳触达时间窗口 |
2.1.2 分群策略示例
- M1 高响应客户: 短信 + APP Push 为主,电话为辅,每日最多 2 次触达。
- M2 低响应客户: 电话为主,短信为辅,每日最多 3 次触达,尝试不同时段。
- 失联客户: 启动失联修复策略,多渠道交叉验证,降低单渠道频次。
- 承诺未还客户: 电话提醒为主,短信确认承诺,频次可适当提高至 4 次/日。
实践建议: 分群标签需要定期更新(建议 T+1),避免使用静态标签导致策略失效。例如,客户从 M1 进入 M2 后,触达策略应自动切换。
2.2 触达频率控制
频率控制是合规与用户体验的平衡器。过高的频率会导致投诉、退订甚至法律风险;过低的频率则可能错过最佳催收时机。频率控制需要同时考虑单渠道频次和全渠道总频次。
2.2.1 频率控制策略矩阵
| 风险等级 | 单渠道上限(次/日) | 全渠道上限(次/日) | 最小间隔(分钟) | 静默期(天) |
|---|---|---|---|---|
| M1 | 2 | 3 | 120 | 1 |
| M2 | 3 | 5 | 60 | 0.5 |
| M3+ | 4 | 6 | 30 | 0 |
| 失联 | 1 | 2 | 240 | 2 |
2.2.2 频率控制实现要点
- 滑动窗口计数器: 使用 Redis Sorted Set 或滑动窗口算法,记录每个客户在时间窗口内的触达次数。
- 渠道隔离: 短信、电话、APP Push 各自维护独立的计数器,避免单一渠道过度使用。
- 全局熔断: 当客户在 24 小时内触达总次数超过阈值时,自动跳过所有非紧急触达任务。
- 节假日与夜间保护: 法定节假日、22:00-08:00 期间,所有渠道频次减半或暂停。
// 频率控制伪代码示例(Redis + Lua)
local key = "freq:" .. KEYS[1] .. ":" .. KEYS[2] -- 客户ID:渠道
local now = tonumber(ARGV[1])
local window = tonumber(ARGV[2]) -- 时间窗口(秒)
local limit = tonumber(ARGV[3]) -- 频次上限
-- 移除窗口外的记录
redis.call("ZREMRANGEBYSCORE", key, 0, now - window)
-- 获取当前窗口内计数
local count = redis.call("ZCARD", key)
if count >= limit then
return 0 -- 拒绝触达
end
-- 记录本次触达
redis.call("ZADD", key, now, now)
redis.call("EXPIRE", key, window)
return 1 -- 允许触达
避坑指南: 不要使用固定时间窗口(如 00:00-23:59)做频次统计,会导致凌晨触达后白天仍可大量触达。推荐使用滑动窗口(如 24 小时滚动)。
2.3 最佳触达时间窗口
时间窗口直接影响接通率和还款转化率。不同客户群体、不同渠道的最佳时间窗口差异显著。策略引擎需要根据历史数据动态调整每个客户的时间偏好。
2.3.1 渠道时间窗口参考
| 渠道 | 最佳时段 | 次优时段 | 禁止时段 | 备注 |
|---|---|---|---|---|
| 电话 | 10:00-11:30, 15:00-17:00 | 09:00-10:00, 14:00-15:00 | 12:00-14:00, 21:00-08:00 | 避开午休与深夜 |
| 短信 | 09:00-11:00, 14:00-17:00 | 08:00-09:00, 19:00-21:00 | 22:00-08:00 | 可适当放宽至晚间 |
| APP Push | 08:00-09:00, 12:00-13:00, 18:00-20:00 | 10:00-12:00, 14:00-17:00 | 23:00-07:00 | 利用碎片时间 |
| 邮件 | 08:00-10:00 | 14:00-16:00 | 20:00-07:00 | 工作日优先 |
2.3.2 个性化时间窗口算法
基于客户历史接通时间分布,构建时间偏好模型:
- 数据采集: 记录每次触达的接通/失败时间戳。
- 时段划分: 将一天划分为 48 个时段(每 30 分钟一个 slot)。
- 权重计算: 统计每个时段的接通率,加权平滑后得到偏好分数。
- 动态调整: 每周更新一次模型,新客户使用群体默认窗口。
// 时间窗口评分伪代码
function calculateTimeScore(customerId, hourSlot) {
// 获取该客户在 hourSlot 的历史接通数据
history = getHistory(customerId, hourSlot)
if (history.count < 5) {
// 数据不足,使用群体默认值
return groupDefaultScore(customerId.group, hourSlot)
}
// 加权平均:近期数据权重更高
score = (history.recentRate * 0.7) + (history.overallRate * 0.3)
return score
}
优化技巧: 对于新客户或数据稀疏的客户,可以采用协同过滤或矩阵分解,利用相似客户群体的时间偏好进行冷启动。
2.4 渠道优先级排序
渠道优先级决定了在多个可用渠道中,先触达哪个渠道。排序依据包括:渠道成本、历史转化率、客户偏好、合规要求等。优先级排序需要动态计算,而非静态配置。
2.4.1 渠道评分模型
| 评估维度 | 权重 | 电话 | 短信 | APP Push | 邮件 |
|---|---|---|---|---|---|
| 单次成本 | 15% | 0.2 | 0.8 | 1.0 | 0.9 |
| 历史转化率 | 40% | 0.9 | 0.5 | 0.6 | 0.3 |
| 客户偏好 | 25% | 0.4 | 0.7 | 0.8 | 0.5 |
| 合规风险 | 20% | 0.6 | 0.8 | 0.9 | 0.9 |
| 综合得分 | 100% | 0.61 | 0.66 | 0.78 | 0.56 |
上例中,APP Push 综合得分最高,应作为首选渠道;电话虽然转化率高,但成本与合规风险拉低了总分。
2.4.2 渠道优先级动态排序流程
- 获取可用渠道: 排除客户已退订、设备离线、号码无效的渠道。
- 计算渠道得分: 根据评分模型计算每个渠道的实时得分。
- 应用业务规则: 例如“M3+ 客户必须电话触达至少 1 次”,强制提升电话优先级。
- 排序与选择: 按得分降序排列,选择 Top 1 或 Top N 渠道进行触达。
- 记录与反馈: 记录本次触达结果,用于后续模型迭代。
合规红线: 客户明确表示“不再接收催收电话”或“仅接受短信”时,必须立即将该渠道优先级置为最低或直接禁用,并记录到客户偏好标签中。
2.5 触达策略决策流程总览
以下 SVG 图展示了从客户分群到最终触达的完整决策流程,涵盖本章四大原则的协同工作方式。
2.6 策略组合示例
以下表格展示一个 M2 低响应客户在完整策略下的触达计划示例:
| 触达顺序 | 渠道 | 时间 | 内容 | 频率检查 |
|---|---|---|---|---|
| 1 | APP Push | 08:30 | 账单逾期提醒 + 还款链接 | 通过 |
| 2 | 短信 | 10:00 | 逾期金额 + 违约金说明 | 通过 |
| 3 | 电话 | 15:30 | 人工催收 + 还款方案协商 | 通过 |
| 4 | 短信 | 19:00 | 今日最后提醒 + 还款入口 | 通过(间隔 > 60 分钟) |
策略效果验证: 建议通过 A/B 测试对比不同策略组合的还款转化率、投诉率、接通率等核心指标,持续迭代优化。每次策略调整后至少观察 7 天数据再下结论。