Normalized throughput

Normalizing issue or pull request throughput by active full-time equivalent developers helps make teams and time periods more comparable.

Your team's capacity is always in flux. People switching teams, sick leave, and holidays all affect what your team can realistically deliver. This makes it difficult to compare productivity across different time periods, let alone across different teams.

Normalized throughput accounts for this by dividing completed work by the average number of active full-time equivalent (FTE) developers during a given timeframe. The result is a fairer, more consistent measure of team output.

Normalizing works with both completed issues (epics, stories, tasks) and merged pull requests. When comparing across teams, story-based metrics are most meaningful when teams share a common definition of a story.

How it's calculated

Normalized throughput = Completed stories (or PRs) ÷ Average active FTE

Example: Looking at August through October, Team A completed 15 stories. The team has 5 developers, but 2 were fully out for the entirety of August. Averaged across the three-month period, this works out to 4.33 active FTE. Their normalized throughput is 15 ÷ 4.33 = 3.5 stories per FTE.

Why it matters

Team size on paper rarely reflects who's actually available to work. Normalized throughput accounts for real capacity (not just headcount), so comparisons across time periods and teams are actually meaningful.

Last updated

Was this helpful?