老板问"我们到底有多少个指标"——指标体系怎么从0搭起来才不混乱?
本文目录
先说结论
指标体系不是「分类」,是「分层+域+主题」三维结构。分层:原子→派生→衍生;域:用户域、交易域、内容域;主题:增长、留存、变现、质量。三个维度交叉确定一个指标的位置。
从0搭体系的5个步骤:①盘点存量指标 ②按OSM拆解业务目标 ③定义原子指标库 ④派生指标按业务域归类 ⑤建指标字典+落地平台。每一步都不能跳。
最大的坑是「贪多求全」。我见过团队第一版就要做500+个指标的,最后没人维护全废。第一版核心指标控制在30-50个,覆盖80%业务场景就够了。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
"我们到底有多少个指标?"——这是CEO级别的问题,但90%的数据团队答不上来。我在某元宇宙社交App从0搭实时数据平台时,老板第一周就问这句话。当时我们整个公司在用的指标加起来3000+个,分散在BI报表、Excel、PPT、飞书消息里,没人能给出准确数。这道题面试官想听的是你怎么把混乱的指标整理成体系,而不是你知道几个指标分类。
业务场景:我在元宇宙社交App从0搭体系的过程
接手时的状态:BI平台3000+报表,每个报表里平均5-10个指标,去重后估计还有1500个不同名称的指标。但很多名字不一样定义一样(如"日活""DAU""日活跃用户"),名字一样定义不一样(如不同部门的"留存"差到天上去)。
我做的第一件事不是写代码,而是开了三周的指标盘点会——把每个业务线的核心指标拉成一张大表,逐个核对定义。结果让人崩溃:
Markdown
## 第一周盘点出来的「DAU」定义
| 部门 | 名称 | 定义 |
| --- | --- | --- |
| 增长部 | DAU | 当日启动过APP的设备数 |
| 产品部 | 日活 | 当日有页面访问的UID数 |
| 商业化 | 活跃用户 | 当日有曝光广告的UID数 |
| CEO周报 | 日活跃 | 当日登录成功的UID数 |
## 同一个"DAU",4个部门4个定义,差异最大达18%
步骤一:按OSM模型拆解业务目标
OSM = Object(业务目标)→ Strategy(策略)→ Measurement(度量)。这是搭体系的灵魂——指标必须服务于业务目标,不能为了指标而指标。
Markdown
## 元宇宙社交App的OSM拆解
Object: 提升DAU、提升付费转化
├─ Strategy 1: 拉新(外部渠道投放)
│ └─ Measurement: 新增用户数、新用户次留、获客成本CAC
├─ Strategy 2: 留存(内容生态、社交关系)
│ └─ Measurement: 7日留存、30日留存、人均互动次数
└─ Strategy 3: 变现(虚拟礼物、订阅)
└─ Measurement: ARPU、付费率、付费用户LTV
每个Strategy下面挂的Measurement就是指标。一个业务目标拆下来一般有8-15个核心指标,正好够第一版用。
步骤二:分层 - 原子指标 / 派生指标 / 衍生指标
这是阿里OneData的标准做法,但小公司也得用——三层结构能让指标复用率提升5倍以上。
| 层级 | 定义 | 示例 | 存放位置 |
|---|---|---|---|
| 原子指标 | 不可再分的最小度量 | 支付金额、订单数、用户ID去重数 | DWS层主题宽表 |
| 派生指标 | 原子指标+维度+时间+修饰 | 近7日北美区订单支付金额 | ADS层或派生指标表 |
| 衍生指标 | 派生指标的运算结果 | 近7日北美区客单价(GMV/订单数) | ADS层或BI计算 |
关键:原子指标必须收敛——一家公司一个GMV、一个DAU、一个订单数。派生指标可以爆炸式生成,但都基于同一份原子指标。
步骤三:按业务域归类
我把所有派生指标按业务域归类,画了一张「指标资产图」:
用户域
├─ 拉新主题: 新增用户数、激活率、CAC
├─ 活跃主题: DAU、MAU、人均时长、启动次数
└─ 留存主题: 次日留存、7日留存、30日留存、流失率
交易域
├─ 订单主题: 订单数、订单金额、退款率
├─ 支付主题: GMV、客单价、付费率
└─ 商品主题: SKU销量、毛利率、库存周转
内容域
├─ 生产主题: 发布数、UGC率、内容曝光
└─ 消费主题: 播放量、互动率、完播率
步骤四:原子指标库的SQL实现
在DWS层建主题宽表,把同一业务对象的所有原子指标聚合到一张表。这样上层派生只需要简单SUM/GROUP BY:
-- DWS层用户主题宽表(每用户每天一行)
CREATE TABLE dws_user_action_1d (
dt STRING,
user_id BIGINT,
-- 原子指标:每个字段都是一个原子
is_active INT, -- 是否活跃(0/1)
is_new INT, -- 是否新用户
duration_sec BIGINT, -- 在线时长
pv_cnt BIGINT, -- PV次数
order_cnt BIGINT, -- 下单数
pay_amount DECIMAL, -- 支付金额
-- 维度
country STRING,
channel STRING,
app_version STRING
) PARTITIONED BY (dt);
-- 派生指标都从这一张表出,保证口径一致
SELECT country, SUM(pay_amount) AS gmv_7d
FROM dws_user_action_1d
WHERE dt BETWEEN '${start}' AND '${end}' GROUP BY country;
步骤五:指标字典的最小可行实现
没买阿里DataWorks的话,最小可行版本就是一张MySQL表+一个简单前端:
CREATE TABLE metric_dict (
metric_id VARCHAR(64) PRIMARY KEY,
metric_name_cn VARCHAR(128) NOT NULL,
metric_name_en VARCHAR(128) NOT NULL,
metric_type ENUM('atomic','derived','composite'),
business_domain VARCHAR(64), -- 用户域/交易域/内容域
business_topic VARCHAR(64), -- 主题
formula TEXT, -- 计算公式
source_table VARCHAR(128), -- 数据源表
filter_logic TEXT, -- 过滤条件
owner_data VARCHAR(64), -- 数据Owner
owner_business VARCHAR(64), -- 业务Owner
status ENUM('draft','published','deprecated'),
version INT DEFAULT 1,
create_time DATETIME,
update_time DATETIME
);
面试高频追问
追问一:你们的指标体系有多少个指标?怎么管理?
我会答具体数:原子指标47个,派生指标约300个,衍生指标无限可派生。47个原子指标是核心,是数据团队的KPI;300个派生指标按业务线分Owner,由BI同学维护;衍生指标在BI工具里自由组合。这样答比说"我们有几千个"专业得多。
追问二:怎么避免指标爆炸?
两条线控制:①入口控制——任何新指标必须先在指标字典里登记,否则不允许在BI里发布。②定期清理——每季度看指标使用频次,3个月内0访问的派生指标自动标记deprecated,6个月后下线。我在出海硬件品牌做这个清理,一次性下了40%的废弃指标。
追问三:指标体系搭好了,业务方不用怎么办?
这是落地难题,三步走:①把核心指标接进CEO/各部门的周报模板,让最高层先用 ②BI工具里对未在字典内的指标加红色警告 ③每月发指标使用排行榜,按部门看哪些指标用得多。我在元宇宙社交App用这套方法,3个月后字典指标使用率从15%涨到78%。
实战踩坑:第一版指标体系做了500个,半年废一半
我接手元宇宙社交App的数据平台时,前任做了一版500个指标的体系。半年后我清理时发现,60%的指标从来没被任何报表查询过——全是"以为有用"凭空设计的。
教训:第一版宁可少做不要多做。先做30-50个核心指标,跑3个月看哪些被反复使用、哪些被反复要求新增,再迭代第二版。指标体系是"长出来"的,不是"设计出来"的。后来我们V2版本做到280个指标,95%都有真实业务使用。
总结
面试这道题的高分结构:先讲方法论(OSM+三层+域+主题)→ 再讲实施步骤(5步)→ 最后讲量化结果(指标数量、使用率、对账下降)。能画出三层结构图、能说出具体数字(如"47个原子指标""使用率从15%到78%"),就是Senior级别答案。
下一篇聊一个最常引起撕逼的话题:同样叫"活跃用户",运营、产品、数据各说各的——指标口径冲突怎么对齐?
你们公司有指标字典吗?是Excel还是平台化的?评论区聊聊~
关注「Wood聊大数据」| 9年大数据老兵,聊技术、聊职场、聊成长