Data report"State of code review 2024" is now liveRead the full report
Insights stats definitions
Learn how the stats on Graphite insights are computed.

Graphite computes stats for each user as an author and as a reviewer. Stats are computed on merged PRs only.

  • PRs merged: Total number of PRs where the user was an author

  • Time waiting on reviews: Median time of PRs authored by the user (that have open requests for reviews) were sitting without any reviews

  • Wait time to first review: Median time of a PR being marked as ready for review for the first time, and someone reviewing it

  • Publish to merge time: Median time between a PR being marked as ready for review for the first time, and it being merged

  • Review cycles until merge:

    • Computes the max number of review cycles any reviewer had until the PR was merged

    • Then across all PRs, computes the median of this number

  • PRs reviewed: Total number of PRs that the user left a review on

Response time to review requests: Median of the difference in time between the user being requested (or re-requested) for a review, (referred to as review request/review pairs) for the given user

Here's an example of a sequence of events and how that activity will impact Insights stats:

  1. User X authors a PR in draft state that adds 10 lines of code, and deletes 5 lines of code

  2. User X publishes the PR, making it ready for review

  3. User X requests reviews from User A, User B, and User C

  4. User A requests changes on the PR

  5. User B leaves a review comment on the PR

  6. User X makes updates, and re-requests reviews from User A and User B

  7. User A leaves a review comment on the PR

  8. User B leaves a review comment on the PR

  9. User X makes updates, and re-requests review from User A

  10. User A approves the PR

  11. User X merges the PR

These events will affect each stats in the following ways:

  • PRs merged will go up by 1 for User X

  • PRs reviewed will go up by 1 for User A and User B (User C did not review, so no change there)

  • Response time to review requests will be computed for each reviewer on each review request/review pair as (review time - review request time). This will then feed into the reviewer’s aggregated median statistic.

    • User A response time for first review request = time at event #4 - time at event #3

    • User B response time for first review request = time at event #5 - time at event #3

    • User A response time for second review request = time at event #7 - time at event #6

    • User B response time for second review request = time at event #8 - time at event #6

    • User A response time for third review request = time at event #10 - time at event #9

  • Time waiting on reviews will be computed based on how long the author was waiting on reviews for that PR. This then feeds into the author’s aggregated median statistic.

    • Time waiting on reviews on the PR above for User X as author = (time at event #4 - time at event #3) + (time at event #7 - time at event #6)

    • Note that we didn’t count the time between event #10 and event #9 here because there was a review from User B on the PR—so the author wasn’t waiting on reviews during this time period. In case User X re-requested review from both User A and User B in event #9, we would also add (time at event #10 - time at event #9) into the computation above.

  • Wait time to first review will be computed based on how long the author waited until anyone reviewed their PR after it was published/ready for review. This will then feed into the author’s aggregated median statistic.

    • Wait time until first review on above PR for User X as author = time at event #4 - time at event #2

  • Publish to merge time will be computed based on how long it took for the PR to be merged after it was published/ready for review. This will then feed into the author’s aggregated median statistic.

    • Publish to merge time on above PR for User X as author = time at event #11 - time at event #2

  • Review cycles until merge for a PR will be computed as the max number of review request/review pairs that a reviewer had until the PR was merged. This will then feed into the author’s aggregated median statistic.

    • Review cycles for User A as reviewer = [(event #10, event #9), (event #7, event #6), (event #4, event #3)] (count = 3)

    • Review cycles for User B as reviewer = [(event #8, event #6), (event #5, event #3)] (count = 2)

    • Max review cycles on above PR for User X as author = max(3, 2) ⇒ 3

  • Lines of code added will go up by 10 for User X

  • Lines of code deleted will go up by 5 for User X

Stay unblocked. Ship faster.
Experience the new developer workflow - create, review, and merge code continuously. Get started with one command.
Learn more

Give your PR workflow
an upgrade today

Stack easier | Ship smaller | Review quicker

Or install our CLI.
Product Screenshot 1
Product Screenshot 2