U7.09.3Data must carry a visible timestamp设计

需标明数据的时间戳

别名: 数据新鲜度 · as-of time

概念解释

仪表盘上的每个数字都有一个"数据属于哪个时刻"的属性,但界面上通常只显示数值而不显示时间。用户默认看到的就是"现在"的数据,而实际上数据可能是 5 分钟前的(管道延迟)、1 小时前的(批量计算)、甚至昨天的(日级聚合)。没有时间戳,用户无法区分"数据没变因为业务没变"和"数据没变因为还没更新到"——前者是业务信号,后者是数据滞后,两者的行动含义完全不同。

机制

时间戳缺失导致的误读源于一个隐含假设的错位:系统知道数据的时间边界(每个查询都有时间范围参数),但用户看不到这个边界,于是默认"我看到的就是最新的"。当数据管道有延迟时,这个默认就错了——用户以为自己在看实时状态,实际看的是延迟快照。最危险的场景是告警判断:用户看到指标正常而没有注意数据已经 30 分钟没更新,得出"系统正常"的结论,而实际过去 30 分钟里指标可能已经越界。时间戳的作用是把这个隐含假设显式化:"数据更新至 14:32" 一行文字把数据的时间边界从系统内部知识变成用户可见的事实。当时间戳与当前时间的差距超过预期时,用户自然产生怀疑并采取行动(刷新、检查管道),而不是继续在过期数据上做决策。

边界

时间戳的粒度需要匹配数据的实际更新粒度:日级聚合的数据标"数据更新至 14:32"会误导用户以为分钟级新鲜,正确标法是"数据截至昨日 24:00"。对于多层数据管道(原始数据 5 分钟延迟 + 聚合层 1 小时延迟),单一时间戳无法表达不同指标的不同新鲜度,需要每个指标或每个区块独立标注。时区也是一条边界:跨时区团队共享仪表盘时,时间戳必须带时区信息("14:32 UTC+8"),否则"更新至 14:32"对不同时区的读者指向不同的现实时刻。

怎么落地

  • 每个仪表盘区块在角落标注"数据更新至 [时间]",刷新后同步更新。
  • 时间戳与当前时间的差距超过该仪表盘的预期刷新间隔时,变为黄色警示色提示数据可能滞后。
  • 批量计算的数据标注计算完成时间而非数据覆盖截止时间,两者用不同措辞区分。
  • 验证:在仪表盘上找任意一个数字,检查能否在 5 秒内确定它属于哪个时刻;找不到时间戳即不达标。

延伸

  • 同组U7.09.1 数据跳动会干扰阅读 · U7.09.2 更新频率需匹配决策频率
  • 相邻U7.06.5 当前生效的时间范围需与图表同屏可见 · U7.05.5 基准期的统计口径必须与当期一致
  • 站内检索data freshness · as-of timestamp · staleness indicator

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/U7.09.3