使用指南
Jira 状态平均时长如何计算:分母、分组与零值
在 StatusPath Reports 中,Average Time in Status 的计算方式是:把所有对某状态产生计算记录的工作项时长相加,再除以该状态的贡献工作项数量。分母按状态确定;从未进入 In Review 的工作项不会被当成 0 小时评审。阅读平均值时,应同时确认总体、贡献者数量、历史窗口和日历。
某状态平均时长 = 贡献工作项时长合计 ÷ 贡献工作项数量
总体、历史窗口和状态贡献者
结果由三层范围共同决定:
- 总体:通过 Project、Filter、JQL、Sprint、Epic 和工作项日期筛选选出的工作项;
- 历史窗口:每个工作项参与计算的状态历史区间;
- 状态贡献者:在该窗口内对特定状态产生计算记录的工作项。
一个分组可能有 3 个工作项,但只有 2 个进入过 In Review。因此,分组总体与某状态的分母不一定相同。
真实 Jira 场景:一个 Story 跳过评审
在这个示例中,报表包含三个已完成工作项:
| 工作项 | In Review 时长 | 是否贡献 |
|---|---|---|
| SR-2101 | 2 小时 | 是 |
| SR-2102 | 4 小时 | 是 |
| SR-2103 | 从未进入 | 否 |
如果问题是“经过评审的工作平均评审多久”,正确结果为:
(2h + 4h) ÷ 2 个贡献者 = 3h
除以全部 3 个工作项会得到 2 小时,回答的是另一个问题。StatusPath Reports 当前会把从未进入该状态的工作项排除在该状态分母之外;如果工作项产生过状态记录但计算时长为 0,它仍是贡献者,应检查裁剪历史和日历来解释这个零值。

重复进入应先按工作项汇总
如果一个 Story 第一次在 In Review 停留 2 小时,后来又停留 3 小时,它应贡献一个 5 小时的工作项合计,而不是变成两个工作项。
Story A:2h + 3h = 5h
Story B: 1h
平均值:(5h + 1h) ÷ 2 = 3h
如果问题是发生了多少次评审循环,应改用 Status Count 或 Transition Count。
分组大小与加权平均
假设两个 Sprint 显示:
| Sprint | 贡献者 | In Review 合计 | 平均值 |
|---|---|---|---|
| Sprint 41 | 8 | 32h | 4h |
| Sprint 42 | 2 | 12h | 6h |
Sprint 42 平均值更高,但只有两个贡献者,一个异常值就可能产生明显影响。不能直接对 4h 和 6h 再取简单平均,合并后的加权平均应为:
(32h + 12h) ÷ (8 + 2) = 4.4h
Atlassian 的 Control Chart会针对选定的周期时间或前置时间状态显示平均值、滚动平均和标准差,并帮助观察波动与异常值。滚动平均与按状态分组的平均时长不是同一种计算,比较前应确认状态、总体、时间范围和工作日设置一致。
配置 Average Time in Status 报表
- 通过 Project、Filter、JQL、Sprint 或 Epic 选择总体。
- 只有在指标需要限定历史区间时才使用裁剪历史。
- 选择 Average Time in Status,并使用能够回答明确问题的分组字段,避免把结果拆成大量单工作项分组。
- 统一 Calendar 和 Format。日历决定哪些时间进入分子,格式决定如何展示。
- 阅读每个状态值时同时查看分组数量;遇到异常值时,用 Time in Status 检查相同范围的明细。
- 保存配置以便复用,但要记住 Saved Report 不会冻结持续变化的 Jira 数据。
可参考报表类型了解分组平均行为,并参考日历与时长配置工作时间。
常见错误
把分组总数当作每个状态的分母
部分工作项可能从未进入某个状态。应分别核对每个状态的贡献者。
对已经舍入的数值求平均
应先对原始时长求平均,再格式化结果。先把每行取整会引入误差。
比较不同日历或历史窗口
周末、时区、节假日、裁剪历史和当前状态结束规则都可能改变分子。
忽略小样本和异常值
基于 2 个工作项的平均值与基于 200 个工作项的平均值证据强度不同。应展示数量并检查明细。
把当前状态当作固定值
未完成工作项的当前状态时长会持续增长。复现结果时应固定结束边界。
常见问题
从未进入某状态的工作项会按 0 计入吗?
StatusPath Reports 当前不会这样处理。未触达状态会从该状态分母中排除。
0 时长状态记录如何处理?
产生过状态记录但计算结果为 0 的工作项仍是贡献者。日历交集、时间戳精度或裁剪历史都可能产生零值。
分组工作项数量总是分母吗?
不是。它描述总体,某个状态可能只有更少的贡献者。
可以直接比较 Jira 原生平均值吗?
只有在两边的状态、总体、时间范围、工作日、当前状态处理和平均规则一致时才可以。
相关指南
- 如何计算 Jira Cloud 中的状态停留时间
- 如何在 Jira 状态时间中排除周末
- 如何查找 Jira 工作流瓶颈
- 开放的当前状态区间如何改变平均状态停留时间
- Jira 平均状态时间与总状态时间的区别
- 如何比较不同 Jira 团队的 Average Time in Status
- Jira Average Time in Status 报表中的横线与零值
让分母可见
只有当总体、贡献规则、历史窗口和日历都清楚时,平均值才有意义。用 Average Time in Status 做比较,再用 Time in Status 检查异常值背后的工作项。
在 Atlassian Marketplace 试用 StatusPath Reports,创建可追溯到明细的 Jira 分组时长报表。