订阅更新

订阅业务怎么建模?扣款、续费、取消和会员到期是一回事吗?

面试问 294 约 3 分钟读完

本文目录
  1. 面试怎么回答
  2. 先拆开合同、资金与使用资格
  3. 取消续订与立即终止,要保留不同事件
  4. 会员存量最好按观察时点计算
  5. 一个典型场景:取消按钮让会员数提前下降
  6. 续费率也不能只数成功支付

面试怎么回答

我会把订阅合同、支付退款事件和权益有效区间分开建模。取消自动续费通常改变未来续订意愿,是否立即终止权益要看产品规则,不能直接等同会员流失。有效会员按观察时点与权益区间判断,付费人数按成功资金事件去重,续费按周期关系定义。试用、宽限期、退款和恢复购买需要独立路径,指标可追溯到事件与规则版本。

先把这段讲顺;面试官追问时,再展开下面的原理和细节。

详细讲解

用户今天关闭自动续费,但会员还有20天才到期。运营问他算不算会员,财务问这月有没有扣款,产品问下月会不会续订。三个问题都围绕“订阅”,却不能用同一个 status 字段给出答案。

订阅合同、资金事件和权益区间应分开记录;取消续订不一定立即失去权益,付费也不自动等于已生效。

先拆开合同、资金与使用资格

订阅合同表达用户订了什么产品、以什么周期续订以及当前续订设置。它不是每一笔扣款本身。

资金事件记录扣款成功、失败、退款等动作。一次续费可能有多次失败重试,成功扣款次数、扣款尝试次数和订阅人数分别是不同指标。

权益区间表达用户什么时候可以使用功能。试用、赠送、宽限期可能产生没有当期成功扣款的权益;延迟生效的购买也可能有扣款但暂未开始权益。

这些差异由具体产品和渠道协议决定。本文给的是数仓建模框架,不把某个平台的规则当成所有订阅产品的共同约定。

取消续订与立即终止,要保留不同事件

关闭自动续费,通常是在未来不再自动扣下一周期费用;立即终止权益,则会改变当前有效区间。它们即使在界面上都叫“取消”,也不该被统一压成一个状态。

恢复续订可能只是重新打开下期扣款开关,并不新增长一段当前权益。恢复购买也可能是找回已有权益,而非新的一次成交。

应保留原始事件类型、渠道订阅标识、周期标识和生效时间,再映射成统一分析含义,避免把渠道差异在采集层提前抹掉。

围绕订阅的三种问题,分别找三类事实

会员存量最好按观察时点计算

给定时点,满足权益开始不晚于该时点且尚未结束的记录,可以进入对应有效会员口径;区间通常采用左闭右开,避免相邻周期交界重复。

但一个用户可能有多个产品或重叠权益。统计产品订阅数可以分产品,统计独立会员人数则要按统一用户去重,不能把多个有效区间直接当多个人。

按日统计时,还要定义是日末会员、当天任意时刻拥有权益,还是会员服务时长。三者会得出不同结果,不能统称日会员数后自由切换。

一个典型场景:取消按钮让会员数提前下降

比如收到取消续订事件后,直接把当前会员状态设为失效。报表当天会员数明显下降,但用户仍然能够正常观看付费内容。

最初怀疑应用权限缓存没有刷新,核对协议后发现当前周期权益本来就应持续到期。根因是把未来续费设置当成当前权益状态。

旧验收只检查“取消事件是否进入数仓”,没有验证取消后的权益结束时间。修复应保留取消续订时间,并保持已确认的当前权益区间,除非另有即时撤销事件。

测试中加入取消后到期、取消后恢复、退款撤销和部分退款等情境,才能证明模型处理的是完整生命周期,而不是按钮名称。

续费率也不能只数成功支付

续费率的母集合应是到达续费机会、符合统计条件的订阅周期。分子是这些周期按规则完成续费,而不是所有当期成功扣款。

宽限期或补扣可能使结果晚于原定续费日才确定。需要区分暂估与成熟周期,避免把尚在重试中的周期提前认定为永久流失。

退款是否撤销权益、是否影响续费成功口径,应明确记录。资金报表与权益报表不必每一天都相等,但差异应该可以沿事件解释。

涉及收入确认、税费和渠道结算时,还要遵循实际财务口径,不能从权益天数直接推出法定收入。数仓应保留计算依据,而不是擅自制定会计规则。

好的订阅模型,是让“还在用、刚付钱、下月想不想续”各有准确答案,再把它们联系起来分析。

刷题进度保存在当前浏览器