An AI can finish reviewing a pull request while the report still says the wait for a first review lasted half an hour. Both can be right. GitHub’s new review-stage clock is watching for a person.
That distinction matters now that reviews are easier to summon. GitHub’s October 2 announcement makes Copilot review requests available through REST and GraphQL, with an optional effort setting per request. A script can call the reviewer. It cannot make the resulting time metric mean whatever we want it to mean.
Two hours in an invented pull request
Consider this invented timeline. It is not a team experiment or a recorded Copilot run. At 10:00, a human-authored pull request becomes ready for review. Copilot posts at 10:05. The author submits a self-review at 10:10. A colleague submits the only qualifying human review at 10:30. Another bot posts at 11:50. The change merges at noon.
Synthetic example · One PR, different clocks
Human-review boundaries Invented timestamps; GitHub definitions
- 10:00 Ready
- 10:30 First AND final human review
- 12:00 Merge
Reviews excluded from boundaries Synthetic example
- 10:05 Copilot
- 10:10 Author
- 11:50 Other bot
Apply GitHub’s definitions and the three elapsed intervals are 30 minutes, 0 minutes and 90 minutes: ready to first human review; first to final human review; final human review to merge. The colleague’s single review is both first and final. The zero in the middle does not mean the colleague read the code instantly. It means there are not two separate review timestamps to put distance between.
Nor does the first interval become five minutes because Copilot spoke first. Bot and self-reviews do not set these boundaries. The last bot message does not shorten the final interval to ten minutes, either. The report counts a two-hour journey through human review milestones, not two hours of someone actively reading code.
The AI inside the human population
Here is the more consequential twist: this mixed human-and-AI pull request still belongs in the human-review population. ‘Human’ describes the reviews being timed; it does not certify an AI-free workflow. Treating that label as an untreated control group would spoil a comparison before any arithmetic began.
Now remove both bot messages from our invented timeline and leave the human timestamps alone. The three numbers stay exactly the same. That is a consequence of the definition, not evidence that AI achieved nothing. Perhaps a useful warning prompted a fix before the colleague arrived. Perhaps the warning wasted attention. Our timestamps cannot choose between those stories. We would need the comment, the change it caused and an assessment of whether that change helped.
The zero that should stay empty
The empty case is different again. When no qualifying pull request merges, the review-times array is empty: []. A bot-only reviewed pull request supplies no qualifying human interval. Filling that absence with zero would turn ‘nothing eligible to time’ into ‘finished immediately.’ That makes a tidy chart and a bad account of what happened.
These are repository-level API report fields, summarized as medians and 90th percentiles and assigned to the merge day. Our example calculates one pull request’s intervals, not an API response or a percentile implementation. The September 25 release has no historical backfill; pull requests ready before September 21 are excluded. An early chart therefore has a shorter memory than the repository.
A date on the bill
One small billing detail also deserves its own date. Default effort switched to Balanced on September 28, before the October 2 announcement; an explicit Lite choice remained. GitHub says Balanced uses more AI credits and may use slightly more Actions minutes. A spending change across that boundary could reflect deeper reviews as well as more requests.
The useful question at noon is no longer simply ‘How fast was the AI?’ It is ‘What changed between the first useful warning and the decision to merge?’ The API makes a review easier to start. Finishing the work still needs a definition that includes what the team learned and what it decided.
Source scope: GitHub’s definitions were rechecked October 3, 2026. All example timestamps are synthetic; no live repository, cost or defect-detection experiment was conducted.