Reference
Commit quality metric definitions
Gitstat only mirrors raw git log history —
it has no PR, CI, or issue-tracker integration. The four metrics below approximate
metrics from LinearB's 2026 Software Engineering Benchmarks Report using commit
data only, and are graded against LinearB's published "All Organizations" bands.
Everything else on this page is a gitstat-specific heuristic, not from that report, and is not benchmarked.
Benchmarked against LinearB 2026
Elite / Good / Fair / Needs focus bands are LinearB's published "All Organizations" thresholds.
- Merge Frequency
- Commits per active author per week. Stands in for LinearB's PR-based Merge Frequency, since gitstat has no PR data — every commit is treated as a unit of merged work.
- Elite: > 2.0 | Good: 1.2 – 2.0 | Fair: 0.66 – 1.2 | Needs focus: < 0.66
- PR Size (commit size)
- Average lines changed (insertions + deletions) per commit. Stands in for LinearB's PR Size, since gitstat has no PR data. Smaller, more focused commits are easier to review.
- Elite: ≤ 100 lines | Good: 100 lines – 155 lines | Fair: 155 lines – 228 lines | Needs focus: > 228 lines
- Rework Rate
- Share of changed lines that touched a file last modified less than 21 days earlier (churn). Approximated from commit history, since gitstat has no PR data: for each changed file, we look at the most recent earlier commit that touched the same path.
- Elite: ≤ 3% | Good: 3% – 5% | Fair: 5% – 8% | Needs focus: > 8%
- Refactor Rate
- Share of changed lines that touched a file last modified 21+ days earlier (legacy code). Approximated the same way as Rework Rate, from commit history rather than PR data.
- Elite: ≤ 11% | Good: 11% – 16% | Fair: 16% – 22% | Needs focus: > 22%
Additional gitstat heuristics
Not from LinearB's report and not benchmarked — shown for context on commit hygiene.
- Avg. files changed
- Average number of files touched per commit. A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Large commits
- Share of commits changing more than 300 lines. A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Short messages
- Share of commits with a message under 10 characters (e.g. "fix", "wip"). A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
Work-life balance
Gitstat-specific, not benchmarked. "Core Hours" is defined as weekdays 9:00–15:00. Uses each commit's stored timestamp as-is; gitstat does not track individual authors’ timezones.
- Core hours
- Share of all commits made on weekdays within the strict Core Hours window (9:00–15:00). A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Near core hours
- Share of all commits made on weekdays within the wider Core Hours + buffer window (7:00–17:00). Includes core hours as a subset, so this is always >= Core hours. A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Outside 7-17, workdays
- Share of all commits made on weekdays before 7:00 or after 17:00 — early/late work on an otherwise normal working day. A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Overall outside 7-17
- Share of all commits made outside the 7:00–17:00 window, whether on a workday or a weekend. Equal to "Outside 7-17, workdays" plus "Weekend work" — the complement of "Near core hours". A gitstat-specific heuristic, not a LinearB metric — not benchmarked.
- Weekend work
- Share of all commits made on Saturday or Sunday, at any time. A gitstat-specific heuristic, not a LinearB metric — not benchmarked.