# Investibook 用户重复使用率调研

日期：2026-05-14

数据源：生产环境 VictoriaMetrics / Prometheus，`prod-devops` 集群，`investibook` namespace

统计时区：Asia/Shanghai

## 背景

本次调研关注同一个用户是否形成持续使用习惯。业务前提是每天都会有新的问题需要用户查看和解决，因此不把“问题已经解决所以不回来”作为主要解释，而是重点分析：

- 用户是否在多个工作日持续回来；
- 短期用户是最近刚开始使用，还是之前试用后没有继续回来；
- 哪些指标适合作为后续持续监控口径。

## 数据口径

活跃日定义：

```promql
increase(investibook_acp_session_interactions_total{user_email!="unknown"}[1d]) > 0
```

说明：

- `user_email="unknown"` 被排除；
- 2026-05-14 是部分日，只在需要判断“今天是否回来”时单独使用；
- `system@investibook` 是系统账号，在真实用户判断中单独排除；
- 本报告基于 ACP session interaction，而不是 HTTP 请求量，避免用后台请求量误判用户使用。

## 14 天复用概览

统计窗口：2026-05-01 至 2026-05-13 完整自然日，2026-05-14 作为部分日参考。

完整自然日结果：

| 指标 | 数值 |
| --- | ---: |
| 14 天去重活跃用户 | 67 |
| 日均 DAU | 15.31 |
| ACP 交互总数 | 1063 |
| 新建 workspace | 198 |
| 只活跃 1 天用户 | 18 |
| 只活跃 1-2 天用户 | 36 |
| 只活跃 1-2 天占比 | 53.7% |
| 活跃 5 天以上用户 | 13 |
| 平均次日留存 | 46.2% |
| 平均下一工作日留存 | 46.1% |

2026-05-14 截至 17:52 北京时间的部分日数据：

| 指标 | 数值 |
| --- | ---: |
| 今日 DAU | 17 |
| 今日 ACP 交互 | 138 |
| 今日 workspace | 19 |
| 今日完成率 | 96.4% |
| 2026-05-13 活跃用户中今天已回来 | 10 / 27 |
| 2026-05-13 到今日部分日留存 | 37.0% |

14 天活跃天数分布：

| 活跃天数 | 用户数 |
| ---: | ---: |
| 1 | 18 |
| 2 | 18 |
| 3 | 9 |
| 4 | 9 |
| 5 | 6 |
| 6 | 2 |
| 7 | 3 |
| 9 | 1 |
| 10 | 1 |

初步判断：

- 已经存在一批重度/稳定用户，最高用户在 13 个完整日里活跃 10 天；
- 但整体仍偏“试用或短期使用”，超过一半用户只活跃 1-2 天；
- 完成率多数时间较高，第一层问题不像是大量任务失败直接导致用户离开，更像是还没有形成日常工作流习惯。

## 30 天短期用户分析

统计窗口：2026-04-15 至 2026-05-14 17:59 北京时间。

短期用户定义：

```text
30 天窗口内 active_days <= 2
```

总体结果：

| 指标 | 数值 |
| --- | ---: |
| 30 天活跃用户 | 92 |
| 活跃天数 <= 2 的用户 | 36 |
| 占比 | 39.1% |
| 只活跃 1 天 | 19 |
| 活跃 2 天 | 17 |

排除 `system@investibook` 后：

| 指标 | 数值 |
| --- | ---: |
| 真实用户活跃 | 91 |
| 真实短期用户 | 35 |
| 占比 | 38.5% |

短期用户最后活跃时间分布：

| 最后活跃时间 | 用户数 |
| --- | ---: |
| 今天，2026-05-14 部分日 | 6 |
| 昨天，2026-05-13 | 6 |
| 2-6 天前 | 7 |
| 7-13 天前 | 0 |
| 14-29 天前 | 17 |

短期用户的最后活跃日期分布：

| 最后活跃日期 | 用户数 |
| --- | ---: |
| 2026-04-15 | 3 |
| 2026-04-16 | 1 |
| 2026-04-17 | 1 |
| 2026-04-20 | 1 |
| 2026-04-21 | 2 |
| 2026-04-22 | 2 |
| 2026-04-23 | 2 |
| 2026-04-24 | 1 |
| 2026-04-25 | 1 |
| 2026-04-28 | 1 |
| 2026-04-30 | 2 |
| 2026-05-08 | 2 |
| 2026-05-10 | 1 |
| 2026-05-11 | 4 |
| 2026-05-13 | 6 |
| 2026-05-14 | 6 |

判断：

- 30 天口径下，`active_days <= 2` 的用户不是单纯“最近还没来得及复用”。
- 12 人最近两天仍有使用，属于新用户或短期观察对象，暂时不应判定流失。
- 7 人最后活跃在 2-6 天前，需要继续观察。
- 17 人最后活跃在 14-29 天前，更像是试用后未留存。
- 7-13 天前没有短期用户最后活跃，说明短期用户明显分成两类：最近刚来的，以及两周前到一个月前试过后没回来的。

## 短期用户明细

### 最近两天仍有使用

这些用户还不能判定流失，更适合作为新用户或短期观察对象。

| Email | 活跃日期 | 交互数 | Workspace | Channel |
| --- | --- | ---: | ---: | --- |
| lingtao.li@pingcap.com | 2026-05-11, 2026-05-14 | 28 | 15 | web |
| tongzhigao@pingcap.com | 2026-05-14 | 9 | 0 | lark, web |
| lilinghai@pingcap.com | 2026-05-13, 2026-05-14 | 6 | 1 | web |
| cuiyiding@pingcap.com | 2026-05-14 | 2 | 1 | web |
| xiao.li@pingcap.com | 2026-05-13, 2026-05-14 | 2 | 1 | web |
| le.wang@pingcap.com | 2026-05-14 | 1 | 0 | lark |
| huyibin@pingcap.com | 2026-04-15, 2026-05-13 | 17 | 4 | web |
| zhipeng.su@pingcap.com | 2026-05-11, 2026-05-13 | 14 | 2 | web |
| yichen.han@pingcap.com | 2026-05-06, 2026-05-13 | 9 | 2 | web |
| lizhonglei@pingcap.com | 2026-05-12, 2026-05-13 | 6 | 2 | web |
| kaixing.yang@pingcap.com | 2026-04-21, 2026-05-13 | 4 | 0 | lark |
| qiaoxinke@pingcap.com | 2026-05-12, 2026-05-13 | 4 | 2 | web |

### 2-6 天前最后活跃

这些用户应继续观察，如果未来几天仍不回来，可以归入短期未留存。

| Email | 活跃日期 | 距今天数 | 交互数 | Workspace | Channel |
| --- | --- | ---: | ---: | ---: | --- |
| huangjunshen@pingcap.com | 2026-05-08, 2026-05-11 | 3 | 8 | 0 | lark, web |
| lurongrong@pingcap.com | 2026-05-09, 2026-05-11 | 3 | 8 | 2 | web |
| shentaining@pingcap.com | 2026-05-11 | 3 | 2 | 1 | web |
| liqing.zhu@pingcap.com | 2026-05-11 | 3 | 1 | 0 | lark |
| hu.guo@pingcap.com | 2026-05-05, 2026-05-10 | 4 | 4 | 1 | lark, web |
| lang.zhu@pingcap.com | 2026-05-08 | 6 | 1 | 2 | web |
| yuchao.li@pingcap.com | 2026-05-08 | 6 | 1 | 0 | lark |

### 14-29 天前试用后未回访

这些用户更像真实未留存用户。

| Email | 活跃日期 | 距今天数 | 交互数 | Workspace | Channel |
| --- | --- | ---: | ---: | ---: | --- |
| zhangjinpeng@pingcap.com | 2026-04-25, 2026-04-30 | 14 | 3 | 2 | lark, web |
| jett@pingcap.com | 2026-04-30 | 14 | 2 | 4 | web |
| songyuying@pingcap.com | 2026-04-24, 2026-04-28 | 16 | 4 | 0 | lark |
| xuyifan02@pingcap.com | 2026-04-25 | 19 | 2 | 0 | lark |
| chen.han@pingcap.com | 2026-04-22, 2026-04-24 | 20 | 4 | 1 | web |
| zhenjian.xiao@pingcap.com | 2026-04-23 | 21 | 5 | 6 | web |
| fei.chen@pingcap.com | 2026-04-23 | 21 | 1 | 0 | lark |
| jujiajia@pingcap.com | 2026-04-22 | 22 | 1 | 0 | lark |
| tadatoshi.sekiguchi@pingcap.com | 2026-04-22 | 22 | 1 | 1 | lark |
| darui.guo@pingcap.com | 2026-04-21 | 23 | 4 | 0 | lark |
| jiazhi.wen@pingcap.com | 2026-04-17, 2026-04-21 | 23 | 4 | 0 | web |
| yangxin@pingcap.com | 2026-04-20 | 24 | 1 | 0 | lark |
| chenyiwen@pingcap.com | 2026-04-17 | 27 | 6 | 1 | web |
| wangkang@pingcap.com | 2026-04-15 | 29 | 8 | 2 | web |
| jinling@pingcap.com | 2026-04-15 | 29 | 2 | 1 | web |
| huangwenjun@pingcap.com | 2026-04-15 | 29 | 1 | 2 | web |

`system@investibook` 同样满足 `active_days <= 2`，但这是系统账号，不纳入真实用户留存判断。

## 建议监控指标

建议把后续重复使用率固定成三层指标：

1. **30d Active Days Distribution**
   - 主指标：每个用户过去 30 天活跃了多少天；
   - 重点看 `1 天`、`2 天`、`3-4 天`、`5+ 天` 的占比。

2. **Next Business Day Retention**
   - 对每天活跃用户，看下一个工作日是否回来；
   - 比自然日次日留存更贴近日常工作场景。

3. **Short-Term User Recency Buckets**
   - `active_days <= 2` 的用户按最后活跃时间分桶：
     - 今天 / 昨天；
     - 2-6 天前；
     - 7-13 天前；
     - 14-29 天前。
   - 这样可以避免把“最近刚开始使用”的用户误判为流失。

## 后续拆分方向

下一轮建议继续拆：

- `channel`: web / lark / cli；
- `usage_scenario`: general / alert / jira_other / tcoc；
- workspace 创建后是否真的进入 ACP 交互；
- 短期用户首个 workspace 的完成状态、耗时、是否有 `client_disconnected` 或 `timeout`；
- 头部高复用用户的使用路径，作为产品默认工作流优化参考。

## 复现查询

核心 PromQL：

```promql
sum by (user_email) (
  increase(investibook_acp_session_interactions_total{user_email!="unknown"}[1d])
)
```

按 channel 拆分：

```promql
sum by (user_email, channel) (
  increase(investibook_acp_session_interactions_total{user_email!="unknown"}[1d])
)
```

按场景拆分：

```promql
sum by (usage_scenario, user_email) (
  increase(investibook_acp_session_interactions_total{user_email!="unknown"}[1d])
)
```

workspace 创建：

```promql
sum by (user_email) (
  increase(investibook_workspaces_created_total{user_email!="unknown"}[1d])
)
```
