- 指标口径不是技术问题,是谁对这个数负责的问题
- 可用指标定义须含分子分母、量纲单位、刷新时点与责任人等八项
- 量纲混用(小数与百分数)会直接导致学院对比图出错
- 线上办结率因未区分自助与代办,目前尚无法计算
- 值域未归一会静默清空非标准写法,导致分组漏人
迎新工作会上最常见的一个画面:学工处报一个报到率,宿管报一个入住率,财务报一个缴费率,三个数字都成立,三个数字加起来不对。主持人问"到底来了多少人",没人答得出来——因为没人知道自己报的那个数是按哪张表算的。
口径不是技术问题,是谁对这个数负责的问题。 而"负责"要能落地,得有一份写死了的字典。
14.1 一个数三个口径,是怎么吵起来的
三个部门算出的"报到率"不一样,不是因为谁算错了,是因为他们手里的问题本来不一样。
学工处问的是"手续办完没有",分母是他名下的新生名单;宿管问的是"人住进来了没有",分母是分配了床位的人,其中包含走读和另行安排住宿的;财务问的是"钱到账没有",分母是应缴费人数,缓缴与减免还要单独处理。
三个问题都对,三个答案都没错。错的是把三个答案放在同一张汇报表上,都叫"报到率"。
这不是一场会开完就散的事。它往下会连着错:进度排名会错、通报措辞会错、"哪个学院推进慢"的判断会错,最后催办压力被派给了一个本来数字就不该跟别人比的人。指标口径不一致,最直接的受害者是一线的人。
14.2 我们自己栽过一次:量纲不一致是真的会出图的
拿一个真实教训说,因为它比任何道理都直白。
同一个"率",一套算法返回 0 到 1 之间的小数,另一套返回 0 到 100 的百分数。前者除以 100 才是百分比,后者本身就是百分比。这两套值被放到同一张学院对比图上,画面直接错了——某些学院显示成极低的条,看上去像工作没做,实际是量纲混了。
这件事不是被谁查出来的,是图出来之后一眼能看出来不对。 它说明一个道理:指标定义里"量纲与单位"这一项,不是文档里的格式要求,是真的会出事的字段。
所以我们把口径写进字典,而不是写进约定。约定会在第二所学校失效,字典会跟着系统走。
14.3 一条指标要写全什么
一份能用的指标定义,至少有八项。缺任何一项,两个部门算出来的数就不会相等。
名称——不带歧义的业务名。业务定义——用一句不含技术词的话说清它在回答什么问题。分子——数的是哪些人、按什么记录判定。分母——从哪张名单起算,含不含走读、含不含保留入学资格、含不含已退档。量纲与单位——小数还是百分数,人还是人次。过滤条件——限不限批次、限不限时间窗、删掉的人算不算。刷新时点——实时、按小时、还是按天结转。责任人——这个数对外由谁解释。
前六项是数学问题,第七项是运维问题,第八项是治理问题,也最常被漏。 一个没有责任人的指标,出现争议时没人能定它,最后就变成了"系统里的数字和实际情况不符"这句话——这句话一旦成为共识,所有数字都不再有用。
14.4 先给四条最要紧的定下来
报到率。 在这套系统里它的准确名字叫名册内报到完成率:分母是已导入名册的应到人数,分子是完成报到任务的人。
这里必须说一句容易被误会的话:系统里没有"录取数"和"招生计划数"这两张表。也就是说,它算的是"进了名册的人办到哪一步",不是"招办录的那批人来没来"。这两件事在数据上差着一段——从录取到建名册这一段在系统外面。引用这个数时,分母口径必须一起说出口。 拿它去和去年的"录取报到率"对比,是常见也很容易翻车的一种用法。
分子目前有两种判定来源:一种看报到任务的完成记录,一种看新生状态标记到哪一档。同一名学生两种算法可能给不同结果,统一成一套排在批次里。在这个之前,两条路线各自算出的数不能横向比。
任务完成率。 分母是这批学生中该任务的应完成人数,分子是有完成记录的人数。这一条可以按学院、按班级、按批次下钻,因为它的分母分子都落在同一份名册上。它是目前最实用的一类口径——卡点识别、催办名单,靠的都是它。
线上办结率。 这一条要照实说:它的定义我们写得出(应完成事项中,本人在手机上自助完成、无需线下窗口的比例),但**"自助完成"与"线下代办"这两种完成方式,目前不在完成记录里区分**。也就是说这条指标现在算不出来,按设计与实现分列在批次上——在它算得出来之前,任何拿它做进度汇报的说法都不能当真。
异常率。 含义是同一批数据里明显不合理值的占比,比如同一证件号出现多次、性别与核验结果冲突、到站时刻早于录取发布日期。这类判定规则部分已在导入校验里执行,部分仍依赖人工核对;把它做成可持续观测的质量指标,与第十五章的质量看板同批。
14.5 值域与码表:字典不统一,分组就会漏人
指标口径要成立,前提是被统计的那些值先收敛。三件事已经在系统里做了。
民族——"汉"与"汉族"由归一工具收敛到同一口径。这一条看着小,实际影响的是分组结果:没收敛之前,同一个民族会被算成两类,分布图上出现两个不该存在的条。
行政区划与生源地——地名与省市区代号有历史版本差异,靠一份区划数据支撑归一,生源地按同一套口径落。这一条直接决定"生源地分布"这张图对不对。
性别——"男"与"1"、"女"与"0"归到同一标准值。但这套映射只认这四种写法,写成"male""M""男性"的值会被静默置空。空值不会多出第五个类别,它从所有分组里消失——报表看起来干净了,人数少了,而且少得没有痕迹。
还有一层尚未覆盖:值域码表——一个字段合法取值有哪些、每个取值的业务含义是什么、由哪个部门维护。现在这些是零散存在于字典选项和实施记录里,形不成一份可核对的清单。没有码表,"这个字段填错了"这句话就没有判定依据,只能靠人记住。 码表与跨校标准库同批建设,它也是把交付曲线从 25 人日继续往下压的那一项。
14.6 唯一性:拦得住的与拦不住的
一人一条记录,是所有统计成立的地基。这一层现状分两半。
拦得住的:新生导入时同一身份证号重复会在当场被拦下并给出行号,一个主键只对应一条记录;身份核验又补了一道,证件读取的号码与名册比对不一致时能被看到。这两道是已经跑过开学季的。
拦不住的:少数关联关系在数据层面尚无强制约束,理论上可以写入重复行——这类位置我们清楚有哪几处,补齐约束排在批次里。所以"数据一致性由系统保证"这句话在这里不写。 更负责的说法是:哪些位置有强制保障、哪些位置靠流程与校验保障,一张列得出来的清单,比一句"由系统保证"值钱得多。
学校可以拿这句话去问任何一家厂商:你系统里哪几张表没有唯一约束? 答得出具体位置的,是真查过;答"我们都有校验"的,是没查过。
14.7 对外报送:难的不是格式,是字段齐套
上级平台与兄弟系统要名单时,通常不挑格式——通用表格格式谁都读得懂。真正的门槛在另外两处:字段齐套(要求的列一列不能少)与码表正确(性别、民族、政治面貌、入学年份这些值必须是对方认的那套码)。
这两处恰好都在前面几节的短板上:字段齐套依赖名册采集完整,码表正确依赖值域与码表收敛。报送质量问题九成不在报送那一刻,在导入与采集那一刻。
现在能做的是:全部名单类数据可由学校自行导出为通用表格,字段列可由学校自己配置;按某一上级平台的固定模板一键报送,属于按批次建设的内容。过渡办法是学校的报送要求写进导入校验规则——把格式问题挡在进门时,而不是挡在交表前夜。
14.8 字典是治理文件,不是技术文档
最后留下一句话,因为它决定这份字典能不能活下来。
指标字典的权威来自"谁签字",不来自"谁写的"。 一份由信息技术部门单方面维护的字典,别的部门可以不用;一份由学工处、宿管、财务、校医院各自对自己那几个数签过字的字典,才会被当成依据。
系统能把口径写死、能防止口径被偷偷改掉、能记录口径是哪一版算出的哪一期数据——这些是软件的部分。哪个学院可以报哪个数、这句话由谁说了算,是学校自己的治理动作。 第十四章能给学校的,是一份不必重开的起点,不是替代那场签字的会。