Featured

The Hidden Queue: Why Most of Your Lead Time Happens Before the First Commit

Your pipelines got faster and your reviews got shorter, yet features still take months to reach customers. Learn what engineering leaders on Reddit say about work that waits weeks in Backlog, Ready for Development and To Do before anyone writes code, why delivery dashboards that start at the first commit miss it, and how Keypup MCP uses Jira workflow history, sprints and the commit and merge dates of linked pull requests to measure the queue in front of your code.

Liam Davis
Liam Davis
• 13 min read
The Hidden Queue: Why Most of Your Lead Time Happens Before the First Commit

Table of Contents

TL;DR: Most engineering dashboards measure delivery from the first commit: coding time, review time, time to merge. In large organizations, that is the short part. Work often waits far longer before anyone writes code — in Backlog, in Refinement, in Ready for Development, and in sprints it gets carried through without being started. This is the hidden queue. The Keypup MCP Server reads each Jira issue's creation date, workflow status history, sprint and past sprints, type, story points and assignees, and the first commit and last merge of the pull requests linked to it. Your AI assistant can then split lead time into the wait before the first commit and the code phase after it, show which teams and statuses hold the queue, whether it is growing while the code phase gets faster, how sprint carry-over hides it, and which issues in the current sprint have no code behind them yet.

Every engineering organization that has invested in faster CI, smaller pull requests and shorter reviews eventually hits the same wall. The delivery dashboard shows improvement every quarter. The business still says features take forever. Both are right — because they are measuring different clocks.

The Friction: The Clock Starts Before the Code

Ask a product leader when a feature "started" and they'll point at the day it was requested. Ask an engineering dashboard and it'll point at the first commit. In a team of eight, the gap is a few days. In an organization with 900 engineers, 50 Jira projects and a quarterly planning cycle, it becomes months — for structural reasons:

  • Delivery metrics start at the code. Coding time, pickup time, review time and DORA's lead time for changes all start at a commit. Nothing before it is measured.
  • Refinement creates inventory. Teams refine and estimate more work than they can start, so "Ready for Development" turns into a second backlog nobody owns.
  • Sprints hide the wait. An issue pulled into a sprint looks planned. If it isn't started, it rolls to the next sprint and still looks planned.
  • Every team optimizes its own segment. Product prioritizes, engineering builds, platform ships. Nobody owns the time between "approved" and "started".

The result is an organization that keeps making the fast part faster while the slow part grows.

Why This Matters: The Real Cost of the Hidden Queue

The Expectation Problem

Customers and executives experience lead time from request to release. If 70% of it happens before the first commit, a 30% faster review process changes what they feel by less than 10% — and engineering is told its improvements "don't show".

The Waste Problem

Every issue that sits in Ready for Development has already consumed refinement meetings, estimates and design reviews. When it finally starts months later, the context has changed, the estimate is stale and part of the refinement has to be redone.

The Planning Problem

Roadmap forecasts usually assume work starts when it's planned. If issues wait a median of four weeks after refinement, every forecast built on cycle time alone is short by that much — and the gap shows up as a missed quarter.

The Enterprise Discussion: What Engineering Leaders Are Actually Saying

"Our cycle time is great but nothing ships", "Ready for Dev is a graveyard" and "the business doesn't care about DORA" come up again and again wherever directors, engineering managers and delivery leads compare notes. The quotes below are representative of recurring threads on r/ExperiencedDevs, r/EngineeringManagers, r/agile and r/devops.

Director of Engineering, Logistics Platform (r/EngineeringManagers)

"We cut PR cycle time from four days to one. Leadership asked why features still take a quarter. When we finally looked, most tickets sat for six weeks before anyone opened a branch. We'd been optimizing the wrong end."

Senior Engineering Manager, Fintech (r/ExperiencedDevs)

"Our 'Ready for Dev' column has 300 tickets in it. Each one went through refinement, estimation, sometimes a design review. Half of them will be rewritten before anyone touches them. That's weeks of senior time spent preparing work that just sits there."

Head of Delivery, Retail Group (r/agile)

"The board says the story is in the sprint, so everyone assumes it's being worked on. Then it rolls over. Then it rolls over again. Three sprints later somebody opens the first PR, and the sprint report never showed any of it as late."

The pattern holds: leaders measure the code phase in detail, but almost nobody measures how long work waits before the code starts.

How Keypup MCP Measures the Hidden Queue

The Keypup Model Context Protocol (MCP) Server gives your AI assistant structured access to the data Keypup imports from Jira and from GitHub, GitLab, Bitbucket and Azure DevOps. For this analysis, what matters is each Jira issue's creation date, workflow status history — every status it entered and how long it stayed — its current workflow status, sprint and past sprints, type, story points, assignees and project, and, across the pull requests linked to it, the date of the first commit and of the last merge.

A pull request is linked to an issue when it references the issue key — in its title, or in its body or a commit message after a closing keyword such as "fixes" or "resolves". A delivered issue is one whose linked pull requests are all merged; issues without linked pull requests are left out, since their work can't be dated in Git. Lead time runs from the issue's creation to its last linked merge. It is split at the first commit: the wait before it is the hidden queue, the time after it is the code phase. Durations are in business days — Monday to Friday, 09:00 to 17:00 UTC by default; adjust the working hours and time zone to match your teams.

1. Splitting Lead Time at the First Commit

The first question: how much of lead time happens before anyone writes code?

MCP Prompt:

For Jira issues whose linked pull requests were all merged in the
last 12 months, show the number of issues, the median business
days from issue creation to the last merge, the median business
days from creation to the first commit, the median business days
from the first commit to the last merge, and the share of total
lead-time business days spent before the first commit.

Output: Lead Time Split — Before vs After the First Commit

Four KPI cards and a split bar: 36,800 delivered Jira issues in the last 12 months across 48 projects; median lead time 27.5 business days from creation to last merge; median wait before the first commit 20.1 business days; median first commit to last merge 5.2 business days; 72% of all lead-time business days spent before the first commit and 28% from first commit to last merge

Key Insight: Almost three quarters of lead time happens before the first commit. The code phase takes about a week; the queue in front of it takes four. Faster reviews and pipelines work on the smaller of the two numbers.

2. Breaking Lead Time Down by Team

An organization-wide median hides where the queue actually builds up.

MCP Prompt:

For the 8 Jira projects with the most delivered issues in the last
12 months, show as a stacked bar chart the average business days
from issue creation to first entering In Progress, from first
entering In Progress to the first commit, and from the first
commit to the last merge.

Output: Where Lead Time Goes, by Project

Stacked horizontal bar chart of average business days per delivered issue for 8 Jira projects, split into creation to In Progress, In Progress to first commit, and first commit to last merge: PAY 38.2, 4.1 and 6.3, total 48.6; MOB 29.5, 6.8 and 7.9, total 44.2; DATA 31.0, 3.2 and 5.4, total 39.6; BILL 22.4, 5.5 and 6.1, total 34.0; CORE 16.8, 2.9 and 7.2, total 26.9; CHK 12.1, 2.2 and 4.6, total 18.9; SRCH 9.6, 3.4 and 5.0, total 18.0; IDN 7.4, 1.8 and 3.9, total 13.1

Key Insight: The code phase is similar everywhere — four to eight days. The queue is not: PAY and DATA issues wait more than 30 days before anyone moves them to In Progress, IDN and SRCH under 10. The difference between the fastest and slowest teams is almost entirely upstream. MOB's middle segment is also worth a look: almost seven days between "In Progress" and the first commit usually means work is started on the board before it is started in Git.

3. Checking Whether the Queue Is Growing

If the code phase improves while the queue grows, a dashboard that starts at the first commit will show the opposite of what customers feel.

MCP Prompt:

By month of the last merge over the last 12 months, show as a line
chart the median business days from issue creation to the first
commit and the median business days from the first commit to the
last merge, for delivered issues.

Output: Faster Code, Longer Queue

Line chart of monthly medians from 2025-11 to 2026-10: creation to first commit rising from 15.8 to 24.8 business days, 20.4 in 2026-05; first commit to last merge falling from 7.1 to 4.6 business days, 5.5 in 2026-05

Key Insight: The code phase got 35% faster in a year. The wait before the first commit got 57% longer. Total lead time went up — while every code-phase metric on the dashboard improved.

4. Seeing How Long Issues Really Wait

A median of 20 days can mean everything waits three weeks, or that half the work starts immediately and the rest waits months. The distribution tells you which.

MCP Prompt:

Show as a histogram the delivered issues of the last 12 months by
business days from creation to the first commit, in buckets of
under 2, 2 to 5, 5 to 10, 10 to 20, 20 to 40, 40 to 60, 60 to 120
and over 120 days. Mark the 50th, 75th and 90th percentiles.

Output: How Long Do Issues Wait Before the First Commit?

Histogram of 36,800 delivered issues by business days from creation to first commit: under 2 days 5,900; 2 to 5 days 3,700; 5 to 10 days 4,400; 10 to 20 days 4,300; 20 to 40 days 6,000; 40 to 60 days 4,100; 60 to 120 days 5,200; over 120 days 3,200; percentile markers at P50 20.1, P75 55.8 and P90 113.4 business days

Key Insight: The distribution has two humps. One issue in six starts within two days — urgent work skips the queue. Planned work waits: a quarter of issues wait more than 56 business days and one in ten more than 113, over five months before the first line of code. Averages and medians alone hide both groups.

5. Finding Which Statuses Hold the Queue

Not all waiting is equal. Time in Backlog is often a prioritization choice. Time after refinement is work the organization already paid to prepare.

MCP Prompt:

For delivered issues of the last 12 months, show as a donut chart
the total business days spent in the Triage, Backlog, Refinement,
Ready for Development and To Do workflow statuses.

Output: Where Do Issues Wait?

Donut chart of 612,000 business days delivered issues spent in pre-development statuses: Backlog 44% (269,300 days), Ready for Development 23% (140,800), Refinement 15% (91,800), To Do 12% (73,400), Triage 6% (36,700); callout that 35% of the waiting happens after refinement, in Ready for Development and To Do

Key Insight: Backlog is the biggest slice, but not the most expensive one. More than a third of the waiting happens in Ready for Development and To Do — work that is approved, refined and estimated, then left on the shelf. That is where limiting work in progress upstream pays off first. The status names are the ones your workflows use: map yours before reading the split.

6. Checking Whether Sprint Carry-Over Hides the Queue

An issue in a sprint looks planned. The question is whether it is started.

MCP Prompt:

As a heatmap, show the median business days from creation to the
first commit for delivered issues of the last 12 months, by issue
type and by number of past sprints the issue went through (0, 1,
2, 3 or more). Show the number of issues in each cell.

Output: Does Sprint Carry-Over Hide the Queue?

Heatmap of median business days from creation to first commit by issue type and number of past sprints: Story 14.2, 24.8, 33.5 and 47.9 for 0, 1, 2 and 3 or more past sprints; Task 11.6, 21.3, 30.2 and 44.1; Bug 3.8, 15.7, 27.4 and 41.6; Improvement 26.3, 35.9, 46.8 and 62.5; issue counts in each cell, 36,380 issues in total

Key Insight: Each sprint an issue is carried through adds roughly ten business days before its first commit. 10,980 delivered issues went through at least one sprint before their last one: the sprint board showed them as planned while nothing existed in Git. Bugs carried over lose their usual head start entirely — a bug carried through two sprints waits as long as a story.

7. Listing Sprint Work With No Code Behind It

The last step turns the analysis into a list someone can act on in the next planning session.

MCP Prompt:

List open Jira issues in an active sprint that have no commit on
a linked pull request. Show the issue key, type, story points,
workflow status, business days since creation, business days in
the current status, number of past sprints and whether the issue
is assigned. Sort by business days in the current status.

Output: In the Sprint, Not Started

Table of seven open Jira issues in an active sprint with no commit on a linked pull request, sorted by business days in current status: PAY-5120 Story, 8 points, Ready for Development, 142.0 days since created, 38.5 in status, 3 past sprints, not assigned; MOB-2417 Story, To Do, 31.0 in status, 2 past sprints, assigned; DATA-1012 Improvement, Ready for Development, 27.5, 2 past sprints, not assigned; BILL-1802 Task, To Do, 22.0; CORE-3388 Story, 13 points, Refinement, 19.5, not assigned; PAY-5163 Bug, To Do, 12.5; CHK-6244 Task, Ready for Development, 9.0
IssueTypePointsStatusSince Created (bd)In Status (bd)Past SprintsAssigned
PAY-5120Story8Ready for Development142.038.53No
MOB-2417Story5To Do96.531.02Yes
DATA-1012Improvement5Ready for Development210.027.52No
BILL-1802Task3To Do64.022.01Yes
CORE-3388Story13Refinement88.519.51No
PAY-5163Bug2To Do18.012.51Yes
CHK-6244Task3Ready for Development41.09.00Yes

Key Insight: Seven issues the sprint counts as committed have no code behind them. PAY-5120 has sat in Ready for Development for almost eight weeks, is on its fourth sprint and has nobody assigned. CORE-3388 is in the sprint while still in Refinement. Three of the seven have no assignee at all: they are a wish list, not a plan — take them out of the sprint or start them.

The Technical Implementation: What Keypup MCP Actually Reads

Every number above comes from fields Keypup already imports from Jira and your Git platforms. It helps to be precise about what they are — and what they aren't.

Keypup links a pull request to a Jira issue when the pull request references the issue key — in its title, or in its body or a commit message after a closing keyword such as "fixes", "closes" or "resolves". Each issue then carries the date of the first commit across its linked pull requests and the date of their first and last merge. Work done in pull requests that don't reference a key can't be dated, so check the share of merged pull requests linked to an issue before comparing teams: if it's low, start with a pull request title convention.

"First Commit" Is a Commit Date, Not a Push Date

The first commit date is the earliest commit on a linked pull request, as recorded in Git. A developer who commits locally and opens the pull request a week later still counts from the commit. A branch reused from older work can carry a commit dated before the issue was created; filter those out, or treat negative waits as zero, before computing averages.

Status Time Comes From Jira Workflow History

Keypup imports each issue's workflow timeline: every status it entered, when, and for how long. The time-in-status figures add up the business days spent in each status, including repeat visits. Status names are whatever your Jira workflows use, so a prompt that says "In Progress", "Ready for Development" or "Refinement" needs the names your projects actually have — and projects without a separate refinement or ready status will put all of that time in Backlog or To Do.

Sprints and Story Points Depend on How You Use Jira

Each issue carries its current sprint, with its state and dates, the list of past sprints it went through, and its story points. Teams that don't run Jira sprints won't appear in the carry-over view; teams that don't estimate will show empty points. The rest of the analysis doesn't depend on either.

The Code Phase Ends at the Merge, Not the Deployment

The last date Keypup sees is the merge of the last linked pull request. Keypup doesn't import deployment events, so the time from merge to production isn't part of these numbers. If you release on a fixed train, add that interval yourself when you talk about lead time to the business.

Business Days Come From a Formula, Not a Calendar

Keypup's BUSINESS_DAYS and TIMELINE_BUSINESS_DAYS functions count working time — Monday to Friday, 09:00 to 17:00 UTC by default — and accept a different time zone, working hours and working days. They don't know about public holidays or vacations: Keypup doesn't import calendars.

Real-World Impact: Enterprise Case Studies

Case Study 1: European Payments Provider

Before Keypup MCP:

  • 850 engineers across 46 Jira projects and 310 repositories
  • Two years of investment in CI speed and review turnaround, reported quarterly as lead-time wins
  • Business stakeholders still estimating "about a quarter" for any new feature

After Keypup MCP:

  • The lead time split showed 71% of lead time before the first commit, which reframed the next investment from tooling to intake
  • The status view showed Ready for Development holding a quarter of all waiting time; teams capped the number of refined issues per team at two sprints of capacity
  • Median wait before the first commit fell from 22 to 12 business days in two quarters, with no change to the code phase

"We'd spent two years shaving days off the part we could see. Splitting lead time at the first commit showed us where the months were. The fix was a planning rule, not a tool."

— CTO, European Payments Provider

Case Study 2: North American Insurance Group

Before Keypup MCP:

  • 1,200 engineers, 70 Scrum teams, two-week sprints
  • Sprint reports showing high commitment and steady velocity
  • Programs still slipping by one or two sprints at every milestone

After Keypup MCP:

  • The carry-over heatmap showed one delivered issue in three going through at least one sprint before it started; sprint planning now starts by removing issues carried over without a commit
  • The "in the sprint, not started" list became part of every mid-sprint check: anything on it after day three is either started, assigned or removed
  • Teams with the shortest queues shared their intake practices, starting with refining only what the next two sprints can absorb

"Our sprints looked full and our programs kept slipping. The list of sprint issues with no commit explained it in one screen. Now it's the first thing we look at in every planning meeting."

— VP Engineering, North American Insurance Group

Implementation: Getting Started with Keypup MCP

1. Connect Jira and Your Git Platforms

Connect Jira and GitHub, GitLab, Bitbucket or Azure DevOps to Keypup. Issues, workflow history, sprints, pull requests and commits are imported automatically.

2. Check How Many Pull Requests Reference an Issue Key

Every number here depends on links. Ask your assistant for the share of merged pull requests linked to an issue, by repository. Where it's low, agree on a convention — the issue key at the start of every pull request title is the easiest to enforce.

3. Map Your Pre-Development Statuses

List the workflow statuses that mean triage, backlog, refinement, ready and to do in each project, and reuse the same list in every prompt so numbers stay comparable across teams and over time.

4. Connect the MCP Server to Your AI Assistant

Follow the MCP documentation to connect Keypup to Claude, ChatGPT, Cursor or any MCP-compatible assistant.

5. Report Both Halves of Lead Time

Run the lead time split and the trend to set a baseline. Then review the "in the sprint, not started" list at every planning session, check the status donut quarterly, and report the wait before the first commit next to the code phase wherever you report delivery speed.

Frequently Asked Questions

What is pre-commit wait time in software development?

Pre-commit wait time is the time between a work item being created and the first commit made for it. It covers triage, prioritization, refinement and the time approved work sits in Ready for Development or To Do. It is not included in coding time, review time or DORA's lead time for changes.

Why doesn't faster code review shorten lead time?

Because review is only part of the code phase, and in many large organizations the code phase is a minority of lead time. If most of the time is spent before the first commit, cutting review time by half barely changes what customers experience.

How do you measure how long Jira issues wait before development starts?

Compare each issue's creation date — or the date it entered a "ready" status — with the first commit on the pull requests linked to it, and add up the time it spent in each pre-development status from its workflow history. Keypup MCP does this from data it already imports, as long as pull requests reference the issue key.

Is the hidden queue the same as a large backlog?

No. A large backlog is a count of items. The hidden queue is time: how long delivered work waited before it started. A team can have a small backlog and a long queue if refined work sits in Ready for Development or rolls from sprint to sprint without starting.

The Bottom Line

A delivery dashboard that starts at the first commit measures the part of lead time your teams have already optimized. Keypup MCP shows the part in front of it:

✅ Splitting lead time at the first commit to show how much happens before any code is written ✅ Breaking the queue down by team, from creation to In Progress to the first commit ✅ Tracking whether the queue grows while the code phase gets faster ✅ Showing the full distribution of waits, with the percentiles averages hide ✅ Finding which workflow statuses hold the queue, including work already refined ✅ Measuring how sprint carry-over hides unstarted work ✅ Listing sprint issues with no code behind them before the next planning session

Ready to see how long your work waits before it starts? Connect the Keypup MCP Server and ask your AI assistant.

Ready to Transform Your Analytics?

Join teams already using AI to make data-driven decisions faster than ever.

Most Recent Articles

Timesheet Theater: Why Jira Time Logs Don't Match What Your Engineers Actually Built

Timesheet Theater: Why Jira Time Logs Don't Match What Your Engineers Actually Built

Software capitalization, client billing and R&D tax credits all run on Jira time logs that engineers fill in on Friday afternoon, from memory. Learn what engineering and finance leaders on Reddit say about time tracking nobody trusts, and how Keypup MCP compares Jira worklogs with linked pull requests, commits and merges to show when time is logged, how late it arrives, and which hours have code behind them.

Thomas Williams
Watermelon Status: Why Jira Says Done When Your Code Hasn't Merged

Watermelon Status: Why Jira Says Done When Your Code Hasn't Merged

Green on the outside, red on the inside. Learn what engineering leaders on Reddit say about Jira tickets moved to Done before the code ships, velocity that doesn't match delivery and status reports nobody trusts at enterprise scale, and how Keypup MCP compares each issue's closure date, workflow history and sprint with the state and merge dates of its linked pull requests to measure how much of your reported "Done" has no merged code behind it.

Stephane Ibos
Approval Drift: Why Code Changed After Approval Keeps Reaching Your Main Branch

Approval Drift: Why Code Changed After Approval Keeps Reaching Your Main Branch

An approved pull request isn't always approved code. Learn what engineering leaders on Reddit say about commits pushed after approval, self-merges and bypassed branch protection at enterprise scale, and how Keypup MCP uses approval dates, last commit dates, approval counts, required approvals, mergers, target branches and build status to measure how much code reaches your protected branches without anyone reviewing what actually shipped.

Arnaud Lachaume