init: 项目初始提交 - NeoZQYY Monorepo 完整代码

This commit is contained in:
Neo
2026-02-15 14:58:14 +08:00
commit ded6dfb9d8
769 changed files with 182616 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
<!-- AI_CHANGELOG [2026-02-13] 更新 NCI/WBI/OS/MS/ML 描述以对齐代码实现;移除 RECALL/INTIMACY -->
各指数作用与算法逻辑概览(更新于 2026-02-13
| 指数 | 粒度 | 主要解决的问题 | 核心信号(输入) | 算法逻辑(简述) | 输出形式 |
| ------------------------------- | ------------ | ------------------------ | -------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| **NCI 新客转化指数** | 客户member | 新客欢迎建联与二访转化优先级排序 | 首访/单访、近14/60天到店次数、距上次到店/充值天数、消费与余额、充值未回访 | 将 NEW 客户分为"欢迎窗口"和"转化窗口":欢迎分在首访后短窗口内递减;转化分=紧迫度×可救度,并叠加"充值未回访压力/价值"(充值和价值分在免打扰窗口后渐进生效,由 touch_multiplier 控制);对近期高活跃新客做抑制,避免打扰;最终做 010 映射 | `raw` + `display(010)`,并提供 welcome/convert 子展示分 |
| **WBI 老客挽回指数** | 客户member | 老客召回紧急程度与价值潜力的综合排序 | 距上次到店/充值天数、到店间隔分布个人周期、近14/60天降频、充值未回访、近180天消费与余额 | 先分流NEW/OLD/STOP高余额 STOP 例外可进入并参与评分OLD/STOP_HIGH_BALANCE 客户 WBI=超期加权经验CDF的p^alpha变换+降频+充值未回访压力+价值双层抑制机制hard_floor_days 硬截断 + sigmoid 门控recency_gate_days + slope_days额外输出 ideal_interval_days理想回访间隔和 ideal_next_visit_date建议下次到店日期最终 010 映射 | `raw` + `display(010)` + `ideal_next_visit_date` |
| **RS 关系强度指数** | 客户-助教对pair | 判断"这位助教和该客户是否真的熟、关系是否牢" | 近窗口内合并会话:次数、时长、课型权重、会话距今天数;最近一次服务距今天数 | 将"频次+时长"融合成单一"互动量"base = weight_f×f_score + weight_d×d_score并做时间衰减再用最近接触作为门控gate = r_score^gate_alpha降低"只靠历史堆积"的误判rs_raw = base × gate最终 010 映射 | `raw` + `display(010)` |
| **OS 归属份额指数** | 客户-助教对pair | 客户到底该分给谁跟(防多人撞单) | 同一客户在所有助教上的 RS | 先过滤 RS < min_rs_raw_for_ownership 的噪声对OS = 该助教 RS / 该客户所有 eligible 助教 RS 之和(份额化);若 sum_rs < min_total_rs_raw 则全部标记 UNASSIGNED标签分配top1 份额 ≥ main_threshold 且与第二名差距 ≥ gap_threshold → MAIN主责份额 ≥ comanage_threshold → COMANAGE共管其余 → POOL公海同时输出 os_rank 排名 | **01 份额** + 标签MAIN/COMANAGE/POOL/UNASSIGNED + 排名 |
| **MS 动量/升温指数** | 客户-助教对pair | 判断"近期是否明显升温/回流",用于跟进紧急程度 | 短期加权频次 vs 长期加权频次(仅用课型权重 course_weight不含时长含时间衰减 | 计算短期活跃与长期基线的比值ratio = f_short / f_long取正向"升温"部分作为动量ms_raw = max(0, log(ratio))**不再乘进 RS**避免动量掩盖真实关系强度MS 只关心频次变化趋势,时长由 RS 负责;最终 010 映射 | `raw` + `display(010)` |
| **ML 付费关联指数** | 客户-助教对pair | 判断"由谁去推储值/增值更可能成功" | 人工台账归因充值(金额、距今天数);由 Excel 导入的 dws_ml_manual_order_alloc 表提供 | 仅使用人工台账数据不使用自动归因对归因充值金额做对数压缩log1p(amount/amount_base))并时间衰减累加;无台账数据时 ML_raw=0最终 010 映射 | `raw` + `display(010)` |
按运营场景归类——用哪些指数、怎么配合运营
| 场景大类 | 具体场景/触发 | 主用指数 | 辅助指数 | 运营动作(怎么做) | 分派/排序建议(怎么用分数) |
| -------------- | ---------------------------- | ------------ | --------------------------- | ----------------------------- | --------------------------------------------------------- |
| **客户分配(归属)** | 新客首次到店/单访NEW | NCIwelcome | RS/OS若有服务记录 | 建联、加微信、解释规则与权益、预约二访 | NEW 客户按 NCI_welcome 从高到低分配给"新客官/当班";若已有服务记录则优先分给 RS 最高的助教 |
| **客户分配(归属)** | 多助教共同服务、避免撞单 | OS | RS | 确定主跟进人+备份协同;低份额进入公海 | 先过滤 RS 过低的噪声对OS≥阈值判主责OS 中间段做共管OS 低入公海 |
| **跟进紧急程度(活跃)** | 近期明显升温/回流 | MS | OS、RS | 48小时内快速承接约局、续约、体验升级 | 在各助教名下按 MS 排序拉任务;只给 OS 主责助教派单,避免多人同时触达 |
| **跟进紧急程度(活跃)** | 关系强但开始变冷(尚未进入老客召回) | RS | MS | 关怀回访、确认体验、轻激励召回 | 按"RS 高且最近温度下降"的组合优先;仍由 OS 主责助教执行 |
| **新客转化** | 二访转化窗口Need×Salvage 高) | NCIconvert | OS/RS选人 | 明确二访理由与时间点,减少硬推;对活跃新客遵守免打扰 | NEW 客户按 NCI_convert 排序;触达频次由 NCI 的抑制机制控制 |
| **老客召回紧急程度** | OLD 客户召回(过门槛且可触达) | WBI | OS/RS选人、ML若涉及储值 | 召回话术:周期超期/降频原因探询+回访安排;高余额优先人工 | OLD 客户按 WBI 排序形成召回队列;优先派给 OS 主责助教;无归属进公海召回组 |
| **专项召回** | 充值未回访recharge_unconsumed=1 | WBI充值相关信号 | ML、OS、RS | "余额权益/使用提醒"切入,目标是回店消耗与续充 | WBI 高者优先;由 ML 高且 OS 合理的助教主推(提高转化) |
| **增值推荐(由谁推)** | 要推储值/包时/陪练等增值 | ML | OS、RS、MS | 由"更可能促成付费的人"主推;升温期可提高转化强度 | 先按客户价值/意愿侧(在 NCI/WBI 价值项里已体现)筛人,再用 ML 选人、用 OS 定责 |
| **触达控制(避免打扰)** | 新客刚来过、仍活跃 | NCI内置抑制 | — | 降低触达,转为到店现场服务转化 | 对触达任务队列,直接用 NCI 的抑制结果降低优先级或不派单 |
| **门店管理/复盘** | 助教名下 RS 高但 WBI 也高(熟客仍流失) | WBI + RS | OS、MS | 复盘服务质量/排班稳定性/体验问题,调整服务策略 | 不是派单场景,而是"异常监控看板":按组合信号筛出需复盘的助教与客户群 |