Flow metrics give you insights spanning your commit, PR, and ticket data. Use these tables for a general overview of each metric, its purpose, a basic calculation, and the source data type(s) it uses.
Note: While the general calculation helps you understand a rough outline of how the metric is calculated, most metrics have additional nuance and detail to their calculation. If you're interested in details about a specific metric, refer to the detailed article about that metric for additional information, particularly on calculation information.
Before setting targets or goals for any metrics, make sure you understand where your organization currently stands and what good looks like for you. What's good or normal for any organization or team varies based on processes, people, and the kind of work you're doing. For a start, use Flow's Percentile benchmarks to understand the data patterns of other organizations, then set reasonable targets for yours.
If you're just getting started with Flow metrics, also check out our article about gaming the metrics to understand how best to respond to the insights you get from them.
Coding metrics
Metric | Purpose | General calculation | Source data type(s) |
---|---|---|---|
Coding days | Understand how often your engineers are able to commit code. | Number of days per week an engineer makes at least one commit. | Commit |
Commits per day | Know whether your engineers are making small, frequent commits or larger, less regular commits. | Number of commits / Number of Coding days. | Commit |
Commit complexity | See which of your commits involve the most complex work. | Flow uses the edit locations, size, and how complex the edits are to generate a Commit complexity level of Low, Medium, or High. | Commit |
Efficiency | Understand how often you're able to write code that stays in your system longer than 30 days—non-Rework code. |
100 - Rework%. 100 * (1 - (Rework HALOC) / (total HALOC)). |
Commit |
HALOC (Hunk-aware lines of code) | Know how many lines of code you've edited. | Flow sums the total lines added or deleted in each hunk of code. | Commit |
Help others | See how many lines of code your engineers are writing to help someone else. | Total HALOC rewritten within 30 days by someone other than the code author. | Commit |
Impact | Understand the cognitive load of your commits to help you detect changes in behavior and understand the effect of changes in your organization. | Flow uses inputs like the number of files affected, insertion points, and lines of code impacted to calculate the commit Impact. | Commit |
Legacy refactor | See how many lines of code your engineers are writing to edit old code. | Total HALOC rewritten more than 30 days after it was authored. | Commit |
New work | Know how much net new HALOC your team is adding to the system. | Total HALOC not rewriting any previous code. | Commit |
Rework | Understand how much of their own code engineers rewrite. | Total HALOC rewritten by the same commit author within 30 days. | Commit |
tt100 | Know your velocity based on the amount of code produced. | Amount of time it takes an engineer to write 100 lines of code, both including and excluding Rework lines. | Commit |
Throughput | Understand how much code you're changing. | Total HALOC, including and excluding Rework HALOC. | Commit |
Pull request and collaboration metrics
Metric | Purpose | General calculation | Source data type(s) |
---|---|---|---|
Follow-on commits | Understand when and how often code is revised after a PR is opened. | Count of all commits added to a PR after it is opened. | PR, commit |
Iterated PRs | See how often your team's submitted PRs require additional work before being merged. |
Total number of merged pull requests with a follow-on commit / Total number of merged pul requests. This is represented as a percentage. |
PR, commit |
PR activity | Know how active your team is on their PRs. |
Flow uses the count of PR comments and follow-on commits to assess activity level. For recent PR activity, there's also a built-in decay function. |
PR, commit |
PR iteration time | See how long it takes to implement requested changes on PRs. | Time of final follow-on commit in a PR - Time of first comment. | PR, commit |
Reaction time | Understand how long it takes for PRs, their comments, and their follow-on commits to get reviews. | Sum of all reviewer response times / Number of reviewer responses. | PR commit |
Responsiveness | Know how long it takes PR submitters to respond to feedback on their PR. | Sum of all submitter response times / Number of submitter responses. | PR, commit |
Sharing index | Understand how balanced your team review patterns are and identify any knowledge silos. | Flow uses a variation of the Gini coefficient to measure the balance of reviews on a scale from 0 to 1, with 1 being perfectly balanced. | PR, commit |
Time to first comment | Know how long your PRs are waiting before they get their first review. | Time of first comment - Time of PR creation. | PR |
Time to merge | See how long it takes between when a PR is opened and when it's merged. | Time of PR merge - Time of PR creation. | PR |
Thoroughly reviewed PRs | Understand how often your PRs are getting quality reviews. | Total number of merged PRs with a thorough review / Total number of merged PRs. | PR |
Unreviewed PRs | Know how often PRs are getting merged with now review—a key indicator of potential future code issues. | Total number of merged PRs without a review or approval / Total number of merged PRs. | PR |
Ticket metrics
Metric | Purpose | General calculation | Source data type(s) |
---|---|---|---|
Backflow rate | Know how often you're losing progress on tickets by moving them backward through your workflow. | Backflow status transitions / Total status transitions. | Ticket |
Cycle time | Understand how long it takes to finish a ticket once work starts. | Time ticket enters Done status - Time ticket enters Active status. | Ticket |
Dev weeks | See the effort distribution of your team members across activity signals. | Flow's probabilistic algorithm combines user signals from tickets, PRs, and commits to represent the proportional distribution of where effort is spent. | Tickets PR, commit |
Jitter | Know how much activity your tickets are getting while your team is working on them. | Sum of weighted Jitter events for each ticket. | Ticket |
Queue time | Understand how much time your in-progress tickets spend waiting before they can move forward. | Sum of all time tickets spend in Waiting statuses. | Ticket |
Ticket activity | See how active your team has been in making comments on a ticket recently. | Flow uses the count and word length of ticket comments with a built-in decay function to assess the activity level. | Ticket |
Tickets completed | Understand your ticket throughput based on the number of completed tickets. | Total number of tickets moved to their final Done status. | Ticket |
Velocity | Understand your ticket throughput based on the story points associated with completed tickets. | Total number of story points associated with tickets that moved to their final Done status. | Ticket |
DORA metrics
Metric | Purpose | General calculation | Source data type(s) |
---|---|---|---|
Change failure rate | Understand the stability of your code, service, and platform releases. | Incidents / deployments. | Git tags (commit), incidents (ticket) |
Deployment frequency | See how often you drive updates and value to customers through deployments. | Median number of deployments per week. | Git tags (commit) |
Lead time for changes | Know how long it takes for code to be deployed once it's written. |
Date of deployment - Date of commit. When displayed in aggregate, Flow uses the median calculation. |
Git tags (commit) |
Time to restore service | See how long it takes for you to resolve an incident once it occurs. | Time spent on incidents / Number of incidents. | Incidents (ticket) |