# Sales Cycle Length Calculator

> Calculate your true average sales cycle by segment and deal size using closed-won data, not gut feel, so reps set realistic close dates and leaders forecast with real confidence intervals.

Free calculator/tool for sales leaders. Topic: [Pipeline, Deal Management & Forecasting](https://www.peerlab.ai/library/topic/pipeline-deal-management-forecasting/). Published by PeerLab in the [Sales Enablement Resource Library](https://www.peerlab.ai/library/). Source: https://www.peerlab.ai/library/sales-cycle-length-calculator/

## How to use it

Pull your last 4 quarters of closed-won deals into the segment × deal-size grid, calculate the median (not mean) cycle length and 10th/90th percentiles for each cell, then use those numbers as the realistic close-date range for every open opportunity in that segment.

## What's inside

- Core formula: cycle length = close date minus SQL/qualification date
- Data pull instructions (which CRM fields, date range, stage definitions)
- Segment x deal-size grid for calculating cycle length by cohort
- Worked example with 22 real data points sorted and calculated
- Median vs. mean guidance and why median resists skew
- 10th/90th percentile confidence banding formula for close-date ranges
- Stage-by-stage duration breakdown to find bottlenecks
- Outlier exclusion rule (3x median cutoff)
- Quarterly refresh cadence using a rolling 4-quarter window

## What you're calculating

Your **true average sales cycle** = the number of days between a deal being qualified (SQL / Stage 2, whichever your team uses as the true "sales cycle start") and the day it closes-won. Use closed-won deals only, closed-lost deals don't tell you how long a *successful* sale takes.

## Step 1: Pull the data

From your CRM, export closed-won opportunities from the **last 4 full quarters** with these fields:

- Opportunity ID
- Close date
- Date entered Stage 2 / SQL date (your qualified-pipeline start point)
- Deal amount (ACV or TCV: pick one and be consistent)
- Segment (SMB / Mid-Market / Enterprise, or your equivalent)
- Rep / team

## Step 2: Calculate cycle length per deal

```
Cycle Length (days) = Close Date − SQL Date
```

Do this for every row. Keep cycle length as its own column, don't blend deal amounts and dates into one average.

## Step 3: Segment the data

Split into a grid: deal size band × customer segment (adjust bands to your ACV distribution):

| | < $10k ACV | $10k–$50k ACV | $50k–$150k ACV | $150k+ ACV |
|---|---|---|---|---|
| **SMB** | | | | |
| **Mid-Market** | | | | |
| **Enterprise** | | | | |

For each cell, calculate:

- **Count** of closed-won deals in that cell
- **Median cycle length** (not mean: see Step 4)
- **10th percentile** (your fastest realistic close)
- **90th percentile** (your slowest realistic close)

If a cell has fewer than 5 deals, merge it with the nearest adjacent cell, the sample is too small to trust.

## Step 4: Use median, not mean

**Formula for median**: sort all cycle-length values in the cell low to high; the median is the middle value (or the average of the two middle values if the count is even).

Why median wins here: sales cycle data is right-skewed, a handful of 300-day enterprise deals will drag a mean upward and make every rep's forecast look artificially slow. Median resists that distortion.

## Worked example

Mid-Market, $10k–$50k ACV, last 4 quarters, 22 closed-won deals. Cycle lengths in days, sorted:
`38, 41, 44, 47, 49, 52, 54, 55, 58, 60, 61, 63, 65, 67, 70, 72, 75, 80, 88, 95, 110, 145`

- Median (11th/12th values averaged) = (61 + 63) / 2 = **62 days**
- 10th percentile ≈ **47 days**
- 90th percentile ≈ **110 days**

**Reading this**: a typical Mid-Market $10-50k deal takes 62 days from SQL to close. A rep forecasting a 30-day close on a deal in this band should be challenged, it's below your 10th percentile. A rep forecasting 150 days should also be challenged, check what's actually blocking it.

## Step 5: Confidence banding for forecast dates

For any open deal, calculate an expected close-date range:

```
Earliest realistic close = SQL date + 10th percentile (for that segment/size cell)
Most likely close = SQL date + median (for that segment/size cell)
Latest realistic close = SQL date + 90th percentile (for that segment/size cell)
```

Use "Most likely close" as the default forecasted close date unless the rep has specific stage-based evidence (signed mutual close plan, verbal + contract out) to override it.

## Step 6: Stage-by-stage breakdown (optional, higher-value diagnostic)

Repeat the same median calculation for the gap *between each stage transition*, not just start-to-finish, to see where time is actually spent:

| Stage transition | Median days spent |
|---|---|
| SQL → Discovery complete | |
| Discovery → Proposal/demo | |
| Proposal → Verbal commit | |
| Verbal commit → Contract signed | |

If "Verbal commit → Contract signed" is your longest stage, your bottleneck is legal/procurement, not sales, route effort accordingly.

## Outlier exclusion rule

Exclude any deal where cycle length exceeds 3× the segment's median (these are usually re-opened, paused, or data-entry errors, not real cycle behavior), but log them separately; a cluster of true outliers is itself a signal worth investigating.

## Refresh cadence

Recalculate every quarter using a rolling 4-quarter window. Sales cycles shift with pricing changes, new competitors, and macro conditions, a stale benchmark produces confidently wrong forecast dates.
