# Change Lead Time

{% hint style="info" %}
⭐️ This metric is one of the [4 Key Metrics published by Google's DevOps Research and Assessment (DORA)](https://dora.dev/guides/dora-metrics-four-keys/) team.&#x20;

You can see all 4 key DORA metrics on the [DORA Metrics page](https://app.multitudes.co/DORA) of the Multitudes app.&#x20;
{% endhint %}

![Change Lead Time graph](https://cdn.prod.website-files.com/610c8a14b4df1ae46b1a13a3/6739fb3d6f5f42c0839a9dbc_flow-of-work-leadtime.png)

***‍*****What it is:** This is DORA's `Change Lead Time` (previously called `Lead Time` in the app), a metric that shows how long it takes the team to write code, request and give feedback, make revisions, merge the PR, and then deploy into production. It’s an indicator of how long it takes to deliver value to customers.**‍**

**Why it matters:** `Change Lead Time` is one of the top four indicators of software team performance, according to [Google’s DORA research](https://cloud.google.com/devops/) (the DevOps Research and Assessment research). Their research shows that a faster `Change Lead Time` is correlated with better business outcomes. Specifically, teams with a faster `Change Lead Time` do work that is better, more stable, and more secure. If you want to dive deeper into this, check out the [Accelerate](https://itrevolution.com/book/accelerate/) book. Note that this is closely related to `Cycle Time`; we measure `Change Lead Time` since that's recommended by DORA. [See here](https://www.multitudes.com/blog/lead-time-vs-cycle-time) for more about the differences between `Change Lead Time`, `Cycle Time`, and `Lead Time`.&#x20;

**How we calculate it:**  To calculate `Change Lead Time`, we measure the **number of hours from the first new commit** on a pull request’s (PR’s) branch **to a successful attempt of deployment to production for that PR, or to PR merged** if there is no deployment data.‍

{% hint style="warning" %}
This means some of the PRs included in this chart will not yet be deployed. This is so that you can get insights for all repositories, even ones that don’t have workflows configured. You can get a breakdown of how long PRs are taking to merge vs. deploy with the Change Lead Time subsets chart or the specific line charts (like [this one for deploy time)](https://docs.multitudes.com/metrics-and-definitions/process-metrics/flow-of-work/..#deploy-time).
{% endhint %}

{% hint style="success" %}
**What good looks like**

The latest DORA research ([from 2025](https://dora.dev/research/2025/)) shows that the top 15% of responses have a `Change Lead Time` of less than 24 hours.
{% endhint %}

### **Additional calculation notes for Change Lead Time & subsets**

Here are a few additional notes that affect the calculations for `Change Lead Time` and/or its components, `Coding Time`, `Review Wait Time`, `Editing Time` and `Deploy Time`.

These exclusions apply to  Coding Time, Review Wait Time, and Editing Time :

* Our focus is on PRs that the team collaborated on, so we exclude bot merges and selfie-merges (PRs merged by the PR author, with no comments or reviews by other collaborators).
* If you like, you can choose to exclude weekend hours from these calculation; simply toggle on “Exclude Weekend Hours”.

For just `Change Lead Time` and `Coding Time`, please note:

* When you first join Multitudes, your historical data (the first 6 weeks) will show a lower time metric if your company does a lot of rebasing. This is because we can’t get original commits from the historical data in GitHub, so the rebased commit is taken as the first commit.
* Once you integrate, we get events data from GitHub. This means we will get the original commits that are pushed to GitHub, even if your teams rebase or squash the commits later. Therefore, you might notice that your metrics are higher after the time that you onboard onto Multitudes, compared to your historical data.
* If you rebase your commits before pushing the branch to GitHub for the first time, GitHub notifies us of the rebase time rather than when the commits were originally made. In order to provide the most accurate measure of `Coding Time`, we therefore encourage you to push commits to GitHub as they are made, even if the intent is to rebase or squash these commits before opening a PR or requesting a review.

For `Review Wait Time`, please note:

* The counting for the `Review Wait Time` starts when a review is first requested. If a review was never requested (i.e. when someone provides a review without being asked to review), we fall back to counting from the time the PR was first opened or when it was first moved to "Ready for review" if it was initially a draft PR.

For just the separate `Deploy Time` line chart:

* If you’re using the [GitHub Actions integration](https://docs.multitudes.com/integrations/github-actions)…
  * We do include selfie PRs (non-collaborative PRs) in this metric.
  * This is because we want to provide the most comprehensive view of how long your deployment pipeline takes, which means incorporating all relevant data.
  * Whether a deploy is of a collaborative PR or a selfie PR, this should not normally influence how long the deploy takes, therefore selfie PRs are a relevant segment of your team’s data on how long things take to deploy.
* If you're using the [Deployments API](https://docs.multitudes.com/integrations/deployments-api), we only look at what you POST, so you can decide how you want to treat selfie PRs
* For `Change Lead Time` we intentionally include all merged PRs, even if they are not yet deployed (or if [deployment metrics aren’t available](https://docs.multitudes.com/metrics-and-definitions/deployment-metrics)), so that you are getting insights across all repositories, even if some of them are not set up with GitHub Actions deploy pipelines or the Deployments API.

### **How Change Lead Time is broken into its subsets**

`Change Lead Time` is broken up into its four components, `Coding Time`, `Review Wait Time`,  `Editing Time`, and `Deploy Time`. Where these start and end can depend on the events in each PR's life cycle. Here is a typical PR timeline. Click the dropdown below it for more scenarios.

<figure><img src="https://3759751588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1eOL1LoKX0USQQUCSepS%2Fuploads%2Fgc6hed0e18meY320NJu8%2F1%20Coding%20Time%20starts%20at%20first%20new%20commit%20or%20draft.png?alt=media&#x26;token=2890ef3b-e5fc-4567-9196-bf93454c2e98" alt="Timeline showing Change Lead Time begins at the First new commit and ends when deployed."><figcaption><p>Timeline showing Change Lead Time begins at the First new commit and ends when deployed.</p></figcaption></figure>

## More PR life cycles scenarios

{% tabs %}
{% tab title="Scenario 1" %}

<figure><img src="https://3759751588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1eOL1LoKX0USQQUCSepS%2Fuploads%2FK1YqBWYIEDTHLt2dmVXw%2F1-Coding%20time%20at%20first%20commit.png?alt=media&#x26;token=cbdb94f2-61fd-4a8d-a4de-d90c7d05ac59" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Scenario 2" %}

<figure><img src="https://3759751588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1eOL1LoKX0USQQUCSepS%2Fuploads%2FWg7xmLeAnDBu23586XxA%2Flead_time_timeline_2.png?alt=media&#x26;token=ceb8d8b4-d4e0-4af0-8587-34ad9b27af3f" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Scenario 3" %}

<figure><img src="https://3759751588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1eOL1LoKX0USQQUCSepS%2Fuploads%2FgbJY3BX6t5cOmztrDG0V%2F3-rwt%20and%20et.png?alt=media&#x26;token=7a02cf6e-969e-483d-940f-bdedb3c27065" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Scenario 4" %}

<figure><img src="https://3759751588-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1eOL1LoKX0USQQUCSepS%2Fuploads%2FZGTb9Aa6lMsfberQ2qGN%2F4%20Deploy%20Time%20is%20Null.png?alt=media&#x26;token=a786866a-e1e2-49e3-af5a-e1d8c6d36818" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}
