The report shows how many merge requests of a project were merged over a selected period and how long merging took. The report contains the “Mean time to merge” card, the “Throughput” chart, and the “Merge requests” table.
What reaches the report
The report counts the merged merge requests of the project that fall inside the selected date range. Open merge requests and merge requests closed without merging are absent from the report.
A merge request created before the range and merged inside it is counted in full: the whole interval from creation to merge goes into the mean time to merge.
Viewing the report
Open the project and select “Analyze” → “Merge request analytics” in the sidebar.
Date range
The range is set by one of the following options, counting back from the current moment:
- “Last 7 days”
- “Last 30 days”
- “Last 90 days”
- “Last 180 days”
- “Last 365 days” (the default)
With “Custom range”, the dates are set in the “From” and “To” fields. The range spans at most 365 days.
The selected range is displayed next to the headings “Mean time to merge”, “Throughput”, and “Merge requests”.
Throughput chart
The “Throughput” chart plots the number of merged merge requests by month. In the first and the last month of the range, only the days inside the range are counted: for a range that starts on 15 March, the first point of the chart covers 15–31 March.
When the range and the filters leave no merged merge requests, the chart is replaced with the message “No merge requests were merged in this date range”.
Mean time to merge
The “Mean time to merge” card shows the mean time from the creation of a merge request to its merge over the whole range, in days.
The mean covers merge requests whose merge is later than their creation. A merge request whose merge time matches its creation time or precedes it, for example one imported with merged_at already filled in, is counted in the chart and listed in the table. It stays out of the mean. When the range holds no merge request with a merge later than its creation, the card shows a dash (-).
Filters
The filter bar narrows the chart, the mean time to merge, and the table at once. The following filters are available:
- “Source branch”
- “Target branch”
- “Milestone”
- “Label”
- “Author”
- “Assignee”
The “Label” filter accepts several values, and the report keeps the merge requests that carry all the selected labels.
Merge request table
The “Merge requests” table lists the merged merge requests of the range, starting with the most recently merged one. A page holds 20 rows. When the range holds more merge requests, pagination controls are displayed below the table. Changing a filter returns the table to its first page.
The table has the following columns:
| Column | Contents |
|---|---|
| “Merge request” | Title with a link to the merge request, its number, the pipeline status, the number of labels and comments, and the number of approvals if there are any |
| “Date merged” | Date the merge request was merged |
| “Time to merge” | Approximate interval between the creation of the merge request and its merge, shown in minutes, hours, or days |
| “Milestone” | Milestone of the merge request with a link to it |
| “Commits” | Number of commits in the merge request |
| “Pipelines” | Number of pipelines of the merge request |
| “Line changes” | Number of added and removed lines |
| “Assignees” | Avatars of the assignees |
When the range and the filters leave no merged merge requests, the table is replaced with the message “No merge requests were merged in this date range” and a suggestion to widen the range or clear the filters.
Access to the report
The report is available to users with the “Reporter” role or higher. Users with the “Guest” role and anonymous users cannot open the report, even in a public project.
When the “Analytics” feature is turned off in the project settings, the report and its menu item become unavailable.