---
name: bottoms-up-forecast
slug: bottoms-up-forecast
description: This skill should be used when the user asks to "build a bottoms-up forecast", "forecast revenue from pipeline", "create a deal-level forecast", "forecast from individual deals", "build a sales forecast from pipeline", "bottom up revenue forecast", "deal-by-deal forecasting", "weighted pipeline forecast", "forecast revenue from opportunity data", or any variation of building a bottoms-up sales forecast from individual deals for B2B SaaS.
category: general
---

# Bottoms-Up Forecast

A bottoms-up forecast builds the revenue prediction from individual deals. Instead of "we'll grow 20% this quarter" (top-down guess), you start with "here are 47 deals, here's each one's probability, here's the math." The forecast is only as accurate as your deal-level assessments.

The principle: every forecast is a probability-weighted sum. The quality depends on two things: accurate deal amounts and honest probability assessments. Most teams get the amounts right and the probabilities wrong. Fix the probabilities and the forecast fixes itself.

## The Forecast Formula

### Basic weighted forecast

```
Forecast = Sum of (Deal Amount × Close Probability)

Example:
  Deal A: $50K × 80% = $40K
  Deal B: $30K × 50% = $15K
  Deal C: $25K × 30% = $7.5K
  Deal D: $40K × 20% = $8K

  Weighted forecast: $70.5K
  Upside (if all close): $145K
  Commit (80%+ deals only): $40K
```

### Forecast categories

| Category | Definition | Probability range | What it means |
|----------|-----------|-------------------|---------------|
| Commit | Will close. Rep would bet their commission on it | 80-100% | Verbal agreement, contract in hand, or signed |
| Best case | Should close barring an unexpected event | 60-80% | Champion confirmed, pricing discussed, timeline agreed |
| Upside | Could close this period with effort | 30-60% | Good signals but not yet committed. May slip |
| Pipeline | Active but not forecast-ready | 10-30% | Early stage. Still qualifying or developing |
| Long shot | In pipeline but unlikely this period | < 10% | No compelling event. No urgency. Will probably push |

---

## Building the Forecast

### Step 1: Qualify every deal

For each deal in pipeline, answer these questions:

| Question | If yes | If no |
|----------|--------|-------|
| Is the decision-maker identified and engaged? | +15% probability | Max 40% probability |
| Is budget confirmed (not assumed)? | +15% probability | Max 50% probability |
| Is there a compelling event with a date? | +20% probability | Max 30% probability |
| Has the champion confirmed they'll advocate internally? | +10% probability | Max 40% probability |
| Has pricing been discussed and no major objection raised? | +10% probability | Max 60% probability |
| Are next steps defined with specific dates? | +10% probability | Remove from forecast if no next steps for 14+ days |

### Step 2: Assign probabilities

**Use stage-based defaults, then adjust per deal.**

| Stage | Default probability | Adjust up if | Adjust down if |
|-------|-------------------|-------------|---------------|
| Discovery | 10% | Strong ICP fit, clear pain | No pain found, weak fit |
| Demo/Evaluation | 25% | Multiple stakeholders engaged | Single-threaded, no urgency |
| Business Case | 40% | Budget confirmed, timeline set | Budget TBD, no compelling event |
| Proposal | 60% | Champion active, pricing agreed | Legal delays, new stakeholders |
| Negotiation | 75% | Verbal commit, redlines minor | Competitor re-engaged, budget freeze |
| Contract | 90% | Signed, awaiting processing | Legal review dragging, new objections |

### Step 3: Build the forecast

```
1. List every deal with close date in the forecast period
2. Assign probability using stage default + deal-specific adjustment
3. Calculate weighted value per deal
4. Sum into forecast categories (commit, best case, upside, pipeline)
5. Compare total to target
```

### Forecast output

| Category | Deal count | Total value | Weighted value |
|----------|-----------|-------------|---------------|
| Commit | 5 | $250K | $212K |
| Best case | 8 | $320K | $224K |
| Upside | 12 | $480K | $192K |
| Pipeline | 15 | $375K | $75K |
| **Total** | **40** | **$1.425M** | **$703K** |
| **Target** | | | **$600K** |
| **Coverage** | | | **1.17x** |

---

## Forecast Accuracy

### Measuring accuracy

```
Forecast Accuracy = 1 - |Actual - Forecast| / Target

Example:
  Forecast: $600K
  Actual: $550K
  Target: $600K
  Accuracy: 1 - |$550K - $600K| / $600K = 91.7%
```

### Accuracy benchmarks

| Timing | Good accuracy | Acceptable | Poor |
|--------|-------------|-----------|------|
| Start of quarter | ±30% | ±40% | > ±40% |
| Mid-quarter | ±15% | ±25% | > ±25% |
| End of quarter (2 weeks out) | ±10% | ±15% | > ±15% |
| End of quarter (1 week out) | ±5% | ±10% | > ±10% |

### Accuracy rules

- **Track accuracy over time.** A VP who consistently under-forecasts by 15% is more useful than one who's randomly off by 25%. Consistent bias can be corrected. Random error can't
- **Separate commit accuracy from total accuracy.** If commit always hits but best case always misses, you have a categorization problem, not a forecasting problem
- **Measure per-rep accuracy.** Rep A forecasts within 10%. Rep B is off by 30%. The team forecast looks OK because they cancel out. Individual accuracy reveals who needs coaching
- **Never inflate to hit target.** If the honest forecast is $450K against a $600K target, forecast $450K and communicate the gap. Inflating the forecast delays the reaction time leadership needs

---

## Common Forecast Errors

### Systematic errors

| Error | What happens | Fix |
|-------|-------------|-----|
| Sandbagging | Rep under-forecasts to look good when they "overachieve" | Compare forecast to actual over 4 quarters. Consistent under-forecast = sandbagging. Coach on accuracy, not optimism |
| Happy ears | Rep hears "we're interested" and puts it at 70% | Require evidence for each probability bump. "Interested" without budget/timeline is 20%, not 70% |
| Stage-based only | All Stage 3 deals are 40% regardless of deal-specific signals | Stage is a starting point. Adjust per-deal based on the qualification questions above |
| Close date optimism | Close dates cluster at end of quarter with no evidence they'll close then | Ask: "What specifically happens between now and the close date that leads to a signature?" If no answer, push the date |
| Pipeline hoarding | Deals sit in pipeline for 6 months at 20%. Never progress, never removed | Auto-close deals with no activity for 30 days. Or move to "nurture" if the relationship exists but timing isn't right |

### Deal-level red flags

| Red flag | What it signals | Action |
|----------|----------------|--------|
| No next step scheduled | Deal is stale. Rep is hoping, not selling | Either schedule a next step within 48 hours or move to nurture |
| Single-threaded (one contact) | One person gets sick, promoted, or fired and the deal dies | Multi-thread before stage 3. Identify and engage the economic buyer |
| Close date pushed 2+ times | The deal doesn't have a real compelling event | Reduce probability by 20%. Ask what's changed. Consider moving to nurture |
| No compelling event | "They want to do it sometime this year" | Not a forecastable deal. Move to pipeline, not best case |
| Champion went dark | No response in 2+ weeks | Deal is at risk. Attempt reactivation through another contact. Drop probability |

---

## Forecast Cadence

### Weekly forecast rhythm

| Day | Activity | Who |
|-----|---------|-----|
| Monday | Reps update deal stages, amounts, close dates, probabilities | AEs |
| Tuesday | Manager reviews each rep's forecast. Challenge probabilities. Identify risk | Sales manager |
| Wednesday | Roll-up to VP/CRO. Commit + best case + upside | VP Sales |
| Thursday-Friday | Execute on high-priority deals. Move deals forward | AEs |

### Cadence rules

- **Forecasts update weekly.** Not daily (too much churn, too much time). Not monthly (too late to react). Weekly balances accuracy with effort
- **Every deal above $20K gets individual review.** The manager should know every deal above threshold by name. Below threshold, manage by category
- **Commit is a commitment.** If a rep puts a deal in commit and it doesn't close, that's a miss. Commit should only contain deals the rep would bet their job on. This discipline makes the commit number reliable

---

## Measurement

| Metric | Definition | Target | Frequency |
|--------|-----------|--------|-----------|
| Forecast accuracy | 1 - abs(actual - forecast) / target | > 85% at mid-quarter, > 90% at quarter end | Weekly |
| Commit accuracy | % of commit deals that close in the period | > 85% | Quarterly |
| Deal slip rate | % of deals that push close date beyond the period | < 20% | Monthly |
| Pipeline-to-forecast ratio | Total pipeline / weighted forecast | 2-3x | Weekly |
| Forecast bias | Average (forecast - actual) over 4 quarters | Near zero (no systematic over/under) | Quarterly |
| Category accuracy | Accuracy within each forecast category | Commit > best case > upside | Quarterly |

---

## Pre-Forecast Checklist

- [ ] Every deal has an updated close date (not a default or stale date)
- [ ] Every deal has a defined next step with a specific date
- [ ] Probabilities reflect deal-specific signals, not just stage defaults
- [ ] Deals with no activity for 30+ days are cleaned or marked at-risk
- [ ] Close dates have been challenged ("what specifically drives this date?")
- [ ] Single-threaded deals are flagged and probability reduced
- [ ] Commit only contains deals with confirmed budget, timeline, and decision-maker
- [ ] Upside deals have a realistic path to close within the period
- [ ] Total weighted forecast compared to target (coverage ratio)
- [ ] Historical accuracy reviewed to calibrate current forecast

---

## Anti-Pattern Check

- Forecasting from the top down and calling it bottoms-up. "We did $500K last quarter, we'll do $550K this quarter." That's a guess, not a forecast. A bottoms-up forecast starts with individual deals and sums them. If you can't name the deals, it's not bottoms-up
- Every deal at 50% probability. This usually means reps don't know the real probability or are defaulting to "maybe." Require evidence for each probability level. What has the buyer said or done that supports this number?
- Commit that misses by 30%. If commit deals regularly don't close, the commit category has lost meaning. Tighten the criteria. Only deals with verbal yes, pricing agreed, and contract expected this period go in commit
- No deal-level review by management. The VP reads the roll-up number without reviewing individual deals. The number is only as good as the underlying deal assessments. Review the top 20 deals individually
- Forecast never changes week to week. Either nothing is happening (unlikely) or the team isn't updating their deals. If the forecast number doesn't change for 3 weeks, the data is stale
- Mixing CRM stage with forecast category. Stage 4 does not automatically mean "best case." Stage is where the deal is in the process. Forecast category is how likely it is to close this period. A Stage 4 deal with a Q4 close date is not a Q2 forecast item
- Pipeline cleanup only happens at quarter end. 40% of pipeline is zombie deals. The forecast is inflated by $800K in deals that will never close. Clean pipeline continuously, not quarterly. Weekly pipeline hygiene prevents forecast distortion