# Session: 2026-05-22 17:21:50 GMT+8 - **Session Key**: agent:main:feishu:direct:ou_e63ce6b760ad39382852472f28fbe2a2 - **Session ID**: c16efa36-0bd0-4559-b566-3c0f664d56b1 - **Source**: feishu ## Conversation Summary assistant: 承龙,你发来的文件里有 1113 条手机号。当前脚本配置的查询范围是: - **L2 S0 U00** L01-L05(id: 55-59) - **L1 S0 U00** L01-L05(id: 343-348) 也就是 **U0 单元全部 10 节课**的首次完成记录(含耗时)。 需要我直接按这个范围跑查询吗?还是你想查其他课时? user: 通过手机号匹配用户ID,看看能匹配到多少用户ID。 assistant: 匹配完成: | 统计项 | 数量 | 占比 | |--------|------|------| | 文件原始行数 | 1113 | - | | 去重后手机号 | 913 | 100% | | **匹配成功** | **124** | **13.6%** | | 未匹配 | 789 | 86.4% | 匹配率偏低,大部分手机号在线上正式库中没有注册记录(很多可能是销售线索/未注册用户)。 结果已保存到 `output/phone_match_result_20260522_161539.xlsx`,需要我发给你吗?或者需要进一步做课时查询? user: 在最近14天里面,没有完课行为的付费用户,占总付费用户的比例有多少?其中LV1的有多少,LV2的有多少? assistant: 结果出来了。口径说明:付费用户 = 历史有过已完成/已退款订单的非测试账号,完课行为 = `play_status=1` 的课时完成记录。 --- **最近14天(5/8~5/21)无完课行为的付费用户占比** | 类别 | 总付费用户 | 无完课 | 占比 | 有完课 | |------|:---:|:---:|:---:|:---:| | **总体** | **4,367** | **2,583** | **59.1%** | 1,784 | | 仅L1 | 249 | 90 | 36.1% | 159 | | 仅L2 | 2,090 | 1,525 | **73.0%** | 565 | | L1+L2 | 2,021 | 961 | 47.6% | 1,060 | | 其他 | 7 | 7 | 100% | 0 | --- 几个要点: - **近六成付费用户最近14天没上过一节课**,整体活跃度偏低 - **仅L2用户最严重**:73% 处于沉默状态,仅L2又占付费用户近一半(2,090/4,367=48%) - **L1用户最活跃**:仅L1的沉默率仅 36.1%,远好于L2 - L1+L2 沉默率居中(47.6%),但也在半数左右 user: 说一下仅L1、仅L2和L1+L2的口径 assistant: 当前用的口径(来自之前你确认过的规则): **商品分类:** | 类别 | goods_id | 对应产品 | |------|----------|----------| | L1 | 57, 60, 63 | 瓦拉英语level1 / level1·单季 | | L2 | 31, 32, 33, 54 | 瓦拉英语level2/年包/单季度包/三季度课包/季度包 | | L1+L2 | 61 | 瓦拉英语level1+2 | **用户分类逻辑:** 汇总该用户所有已完成/已退款订单(order_status IN 3,4)的 goods_id,然后: - 仅买过 L1 商品 → **仅L1** - 仅买过 L2 商品 → **仅L2** - 买过 goods_id=61(L1+L2商品),或同时买过 L1 和 L2 商品 → **L1+L2** - 只买过旧版通行券等其他 goods_id → **其他**(仅7人) 这个口径需要调整吗? user: 统计的时候剔除了退费订单么 assistant: 没有剔除。当前的付费用户定义是:只要有过 `order_status IN (3, 4)` 且 `pay_success_date IS NOT NULL` 的订单就算付费用户,包含了已退费的订单。 需要调整吗?比如: - **方案A**:剔除所有订单均已退费的用户(至少保留一笔未退款订单才算付费用户) - **方案B**:其他口径? user: 需要剔除已退费的订单然后再进行统计 assistant: 明白,剔除退费订单后重新统计。退费判定:`bi_refund_order.status=3` 且 `bi_vala_order.order_status=4`。 assistant: 剔除退费订单后的结果: --- **最近14天(5/8~5/21)无完课行为的有效付费用户占比** | 类别 | 总付费用户 | 无完课 | 占比 | 有完课 | |------|:---:|:---:|:---:|:---:| | **总体** | **3,074** | **1,338** | **43.5%** | 1,736 | | 仅L1 | 219 | 53 | 24.2% | 166 | | 仅L2 | 1,434 | 870 | **60.7%** | 564 | | L1+L2 | 1,417 | 411 | 29.0% | 1,006 | | L1相关(含L1+L2) | 1,636 | 464 | 28.4% | 1,172 | | L2相关(含L1+L2) | 2,851 | 1,281 | 44.9% | 1,570 | --- **剔除退费前后的对比:** | 指标 | 剔除前 | 剔除后 | 变化 | |------|:---:|:---:|:---:| | 总付费用户 | 4,367 | 3,074 | -1,293 | | 无完课占比 | 59.1% | **43.5%** | -15.6pp | | 仅L2减少 | 2,090 | 1,434 | -656 | 退费用户占原来口径近30%,剔除后整体沉默率从59.1%降到43.5%。但**仅L2用户的沉默率(60.7%)依然是最大问题**,明显高于仅L1(24.2%)和L1+L2(29.0%)。 user: 不需要这么麻烦,只统计order_status=3就可以了 assistant: 明白,直接用 `order_status=3` 最简单。 assistant: 结果(`order_status=3`,即仅已完成未退款订单): --- **最近14天(5/8~5/21)无完课行为付费用户** | 类别 | 总付费用户 | 无完课 | 占比 | 有完课 | |------|:---:|:---:|:---:|:---:| | **总体** | **3,071** | **1,335** | **43.5%** | 1,736 | | 仅L1 | 219 | 53 | 24.2% | 166 | | 仅L2 | 1,434 | 870 | **60.7%** | 564 | | L1+L2 | 1,414 | 408 | 28.9% | 1,006 | - 仅L1 最活跃(24.2% 沉默) - 仅L2 最沉默(60.7%) - L1+L2 居中(28.9%)