Charts

Created to Merge Time (For PRs Merged During Business Hours)

Time from when a PR is created until it's merged, measured in business hours.

Nuances:

  • Only includes merged PRs (excludes open/closed-without-merge)
  • Calculated using business hours configuration (respects weekends, holidays, working hours)

Approval to Merge Time (For PRs Merged During Business Hours)

Time from when a PR receives its last approval until it's merged, measured in business hours.

Nuances:

  • Only includes merged PRs with approval timestamps (some PRs may not require approval)
  • Measures CI lag - how quickly approved code gets to trunk
  • Calculated using business hours configuration

Monthly PR Volume (Time Agnostic, All States)

Total number of PRs created in each month.

Nuances:

  • Includes all PRs regardless of state (open, closed, merged, draft)
  • PRs are counted in the month they were created, regardless of when (or if) they were merged
  • Represents overall team activity and workload

Important: This count could be higher than the Size Distribution total because it may include PRs that were never merged (closed without merge, still open, or draft).


PR Size (Lines Changed)

Distribution of total line changes across all merged PRs.

Nuances:

  • Only includes merged PRs
  • Measures total lines changed: additions + deletions
  • Large PRs (high P95) may indicate opportunities for breaking work into smaller chunks
  • Useful for assessing code review burden and identifying process improvements

PR Size Distribution

Breakdown of merged PRs by size category (additions + deletions).

Size Categories:

  • XS: 0-10 lines changed
  • S: 11-100 lines changed
  • M: 101-500 lines changed
  • L: 501-1,000 lines changed
  • XL: 1,000+ lines changed

Nuances:

  • Only includes merged PRs (excludes open, closed-without-merge, draft)
  • Difference between Monthly Volume and Size Distribution sum = PRs that were created but not merged
  • Stacked bar chart shows distribution of work complexity
  • Typically smaller PRs (XS/S) merge faster and are easier to review

Settings & Configuration

Business Hours

All time-based metrics (Average, Median, P95 merge times) are calculated using only business hours.

How it works:

  • Weekends are automatically excluded - Saturdays and Sundays never count toward merge time (not configurable)
  • Holidays can be configured - Add specific holiday dates in Settings to exclude them from calculations
  • Only business hours count - Time outside your configured business hours (default: 13:00-02:00 UTC) is excluded
  • Times shown in "business hours" not calendar hours - Example: A PR created Friday at 17:00 UTC and merged Monday at 14:00 UTC spans 3 calendar days (65 hours), but only counts 10 business hours (9 hours Friday evening + 0 hours weekend + 1 hour Monday)
  • PRs are counted by creation month - A PR created in January counts toward January's metrics, even if merged in March
  • Zero business hours PRs are excluded from time metrics - PRs created and merged entirely outside business hours (e.g., weekend hotfixes) don't affect Average/Median/P95, but still count toward Total PRs

What's NOT affected:

  • PR counts - Total PRs, Merged PRs, and Volume charts count ALL PRs regardless of when they were created or merged
  • Size metrics - Lines changed and size distribution include ALL merged PRs

Holidays

Configure specific dates your business observes as non-working days (e.g., Christmas, Independence Day, company shutdowns). Time during these dates is excluded from all time-based metrics calculations.

How holidays work:

  • Time is excluded - Hours during holidays don't count toward merge time calculations (same as weekends)
  • PRs still count - PRs created or merged on holidays still appear in volume and count metrics
  • Applied retroactively - Adding a holiday recalculates all historical metrics to exclude that date
  • Changes take effect after sync - New holidays are applied during the next data sync (~15 minutes)

Data Freshness

  • Metrics are calculated when the background worker syncs data from GitHub
  • This occurs approximately every 15 minutes
  • Changes to business hours configuration are applied during the next sync

Frequently Asked Questions

Why doesn't Size Distribution match Monthly Volume?

Monthly Volume includes all PRs (open, closed, merged), while Size Distribution only includes merged PRs. The difference represents PRs that haven't been merged yet.

Why are some months missing data?

Metrics are only calculated for months with merged PR activity. Months with only open/draft PRs won't show in time-based charts but will show in Volume.

What if a PR was created in one month but merged in another?

PRs are grouped by their merge date for time-based metrics and created date for volume metrics. This means a PR created in December but merged in January will count toward January's merge time metrics but December's volume.

How are business days calculated across time zones?

All timestamps are stored and calculated in UTC. Business hours should be configured in UTC (not local time).

Why do I see a "Syncing Your Data" message?

When you first install GitRhythm, the worker needs to fetch your PR data from GitHub. This typically takes 2-15 minutes depending on when the worker last ran. The worker runs automatically every 15 minutes.

Can I change my business hours after setup?

Yes! Go to Settings to update your business hours and holidays. The next worker sync will recalculate all metrics using your new configuration.

What data does GitRhythm collect?

GitRhythm only collects PR metadata (titles, numbers, dates, authors, reviewers). We never access your source code, file contents, commit messages, or PR comments. See our Privacy Policy for details.

How do I export my data?

Click the "Export CSV" button on the charts page to download your metrics. The CSV includes all monthly metrics with business hours calculations.

Can I filter by specific repositories?

Yes! Use the repository filter dropdown on the charts page to view metrics for specific repos or all repos combined.

Why is Average higher than Median?

This typically indicates you have some outlier PRs that take much longer than typical ones. The median (50th percentile) represents the "middle" PR and is less affected by outliers. Check your P95 to see how long your slowest PRs take.

What's a good merge time?

It varies by team and project! Generally, shorter is better for velocity. Many high-performing teams aim for under 24 business hours (3 business days) for median merge time. Use your own trends over time to set improvement goals.

How do I uninstall GitRhythm?

Uninstall through your GitHub Marketplace settings. Your data will be retained for 30 days (in case you want to reinstall), then automatically deleted. You can request immediate deletion by emailing support@gitrhythm.com.

Still have questions?

We're here to help! Reach out to us:

We typically respond within 24 hours on business days (Monday-Friday, US Central Time).