Contributor activity breaks down engineering metrics by individual team member. It helps you understand how work is distributed, who is most active, and whether anyone is overloaded or disengaged.
What Periscope tracks
For each contributor who has merged a PR in the selected time range, Periscope shows:
- PR count — number of PRs merged
- Average PR size — mean number of lines changed (additions + deletions)
- Average cycle time — mean time from PR open to merge (in hours)
- Last active date — when their most recent PR was merged
How it is calculated
Periscope groups merged PRs by the authorLogin field from GitHub’s webhook payload. For each author:
- PR count is a simple count of merged PRs
- Average PR size is the mean of
additions + deletions across their PRs
- Average cycle time is the mean of
mergedAt - createdAt across their PRs
Interpreting the data
Workload distribution
- If one contributor is responsible for 50%+ of merged PRs, you have a workload imbalance that Periscope flags as a risk signal.
- Uneven distribution may be fine for specialists, but if it is unintentional, it can lead to burnout and knowledge silos.
PR size patterns
- Contributors with consistently large PRs (500+ lines) may need coaching on breaking work into smaller changes.
- Large PR size often correlates with longer cycle times — the data in this view helps confirm that pattern.
Cycle time outliers
- A contributor with much longer cycle times than their peers may be working on more complex areas, receiving slower reviews, or submitting PRs that need more iteration.
- Context matters — do not use cycle time as a performance metric without understanding the work.
Activity gaps
- A contributor who was previously active but has not merged anything recently may have shifted to non-PR work (architecture, debugging, operations) or may be blocked.
Contributor metrics should be used for team health awareness, not individual performance evaluation. Engineering output is not linear with PR count, and valuable work often happens outside of pull requests.
Query contributor activity from your AI coding assistant:
get_contributor_activity(time_range: "30d")
Returns a list of contributors with their login, name, merge count, average PR size, and average cycle time in hours.