# Pipeline coverage in Salesforce: open pipeline against quota, and where the quota number lives

https://salesbond.app/blog/pipeline-coverage-ratio-salesforce/
Published: 2026-10-24 · Updated: 2026-10-24

Pipeline coverage in Salesforce is the open pipeline Amount with a Close Date inside the period, divided by the full quota for the same period. Take the numerator from an Opportunities report limited to open deals, with past-due Close Dates excluded. Take the denominator from the forecast quotas in Setup, not from a spreadsheet someone keeps on the side. You can also divide by the gap to quota (quota minus what has already closed); below is why our weekly number uses the full quota. Both numbers are already in Salesforce; the work is deciding what to leave out of the first.

## Coverage in one line

Coverage is how much open pipeline you have per dollar of quota. The theory and the “3x” rule of thumb are in our [general article on the pipeline coverage ratio](https://salesbond.app/blog/pipeline-coverage-ratio/). This is the Salesforce version, next to the ones for [HubSpot](https://salesbond.app/blog/pipeline-coverage-ratio-hubspot/) and [Pipedrive](https://salesbond.app/blog/pipeline-coverage-ratio-pipedrive/). Same question each time: where do the two numbers come from, and what makes them wrong?

## The numerator: open opportunities that close in the period

Salesforce’s default forecast type already defines the numerator. According to Trailhead, it is based on the Opportunity object and measures Amount by Close Date ( [Trailhead, Configure Forecasting in Salesforce](https://trailhead.salesforce.com/content/learn/modules/sales-forecasting/configure-sales-forecasting-in-salesforce)). So the honest numerator is the sum of Amount on open opportunities whose Close Date falls in the quota period.

Build it as an Opportunities report and lock three filters:

1. **Open only.** Filter on Closed equals False. Salesforce sets it from the stage ( [Opportunity object reference](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm) ). If you filter by Forecast Category instead, drop both Closed and Omitted: Closed Won is attainment, not pipeline, and a lost deal is neither. The stage-to-category mapping lives on the Stage field, and an admin can change it ( [Trailhead](https://trailhead.salesforce.com/content/learn/modules/sales-forecasting/configure-sales-forecasting-in-salesforce) ).
2. **Close Date inside the period.** The period your quota is set for. Quarterly quota means the current fiscal quarter, not “this year” and not “next 90 days”.
3. **Close Date not in the past.** A deal dated last Tuesday and still open won’t close on its current data. It goes back in only when someone moves the date with a reason.

Group the report by Opportunity Owner and sum Amount. Each owner’s subtotal is that rep’s numerator; the grand total is the team’s.

Why Amount and not Expected Revenue? Expected Revenue is Amount multiplied by Probability ( [object reference](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm)), so weighted coverage comes out lower and shifts with every stage change. It is a fair second line if your probabilities match real win rates. The headline number stays on Amount, the field the default forecast type measures.

If your admin has a “Qualification” stage mapped to the Pipeline category, it counts. We’d argue it shouldn’t and we come back to that below.

![Diagram: open pipeline from an Opportunities report divided by the quota from Forecast Quotas gives coverage per owner](https://salesbond.app/wp-content/uploads/2026/10/pipeline-coverage-ratio-salesforce-2.png)

## The denominator: where the quota lives in Salesforce

If anyone has set up forecasting properly, the quota is already in Salesforce, at **Setup \| Sales \| Forecasts \| Forecast Quotas**: you pick the forecast period and the forecast type, click **Show Quotas**, and the page lists every user with their role; you enter each user’s quota and save ( [Trailhead, Review Your Pipeline Forecasts Setup](https://trailhead.salesforce.com/content/learn/modules/revenue-intelligence-setup/review-your-collaborative-forecasts-setup)).

Quotas are tied to a forecast type and a forecast period, and Trailhead recommends entering quota data for each period and each forecast type ( [Trailhead](https://trailhead.salesforce.com/content/learn/modules/sales-forecasting/configure-sales-forecasting-in-salesforce)). An org can have up to four active forecast types ( [Trailhead](https://trailhead.salesforce.com/content/learn/modules/revenue-intelligence-setup/review-your-collaborative-forecasts-setup)). New Business and Renewals as separate types means two quotas, and coverage is computed inside one type. Dividing all open pipeline by the new-business quota is a classic way to get a comfortable 5x.

The period is set under **Choose a default date range**: Forecast Period, Starting On, Extending For. Your report’s Close Date filter has to match it. Mismatch the two and the ratio means nothing.

What about the Forecasts tab? With **Show quotas** checked on the Forecast Settings page, the grid gets a Quota column and progress bars under each forecast category. Once quotas are in, they can also feed calculated columns, and Trailhead names gap to quota and pipe coverage as the examples ( [Trailhead, Review Your Pipeline Forecasts Setup](https://trailhead.salesforce.com/content/learn/modules/revenue-intelligence-setup/review-your-collaborative-forecasts-setup)). So Salesforce can show a ratio itself; the question is what it divides by. A gap-based column divides open pipeline by what is left to close, the way HubSpot’s Forecast tool does ( [HubSpot version](https://salesbond.app/blog/pipeline-coverage-ratio-hubspot/)). On day one the two ratios agree. By mid-quarter they don’t, because every closed deal shrinks the gap.

Our weekly report divides by the full quota. That denominator stays put all period, so this week’s number compares cleanly with last week’s. If you also have a gap-based column, keep both: one says whether what is left is funded, the other whether the quarter ever was. The Forecasts totals keep past-due Close Dates, which is why we build the report anyway.

Forecast Quotas page empty? Then the quota sits in a spreadsheet, and coverage is only as current as that file. Enter the quotas first: it is one table per period and forecast type, and every later coverage conversation is about the same number. How managers adjust forecasts on top of them is a separate topic: [Collaborative Forecasts manager adjustments](https://salesbond.app/blog/salesforce-collaborative-forecasts-manager-adjustments/).

## Three ways coverage lies

Recordcontext opens its pipeline health check with a Salesforce pipeline at 4x coverage and a quarter that ends 30% short ( [recordcontext.com](https://www.recordcontext.com/blog/salesforce-pipeline-health-check)). We see the same three causes over and over.

The first is past-due Close Dates. An open opportunity dated last month still sits in the quarter’s pipeline if your filter is only “Close Date in this fiscal quarter”. Take it out of coverage and put it on the rep’s list for a decision: a new date with a reason, or Closed Lost.

Then there are stages before qualification. A booked first call is not pipeline against quota, whatever category its stage maps to. Our rule: coverage counts deals with a Close Date in the period and a written next step. A deal with no next step has no path to its Close Date, so it inflates the ratio. Next Step is a standard Opportunity field describing the next task in closing the deal ( [object reference](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_opportunity.htm)). Add it to the report and sort by blanks.

And one huge deal. Coverage of 3x where one opportunity is 2x of it is coverage of 1x with a lottery ticket attached. Sort by Amount, largest first. If the top row beats the quota, read the ratio twice: as is, and without that row.

## By owner: who is covered and who is not

Team coverage hides the problem. A team at 3.2x with two reps at 1.1x has nothing to act on in the 3.2x.

The report grouped by Opportunity Owner gives the numerator per rep. The Forecast Quotas page gives the quota per rep, in the same hierarchy a manager sees on the Forecasts tab, where the summary shows each direct report’s forecast next to the manager’s own ( [Trailhead, View and Set Sales Forecasts](https://trailhead.salesforce.com/content/learn/modules/sales-forecasting/view-and-set-sales-forecasts)). Put the the two columns side by side once a week. The reps worth a conversation are the ones whose ratio dropped, not the ones with the lowest number. A rep at 1.5x in week two with a big close in Commit is fine. A rep at 2x who was at 3x last week is not.

To see the drop you need last week’s number. A report total has no memory; a reporting snapshot does (setup in [reporting snapshots for pipeline trend](https://salesbond.app/blog/salesforce-reporting-snapshots-pipeline-trend/)).

## What to do when coverage is below the target

Below target, the reflex is to ask for more pipeline. Ask for a cleaner one first: new deals on top of past-due dates only hide the gap for another week. Our order in the weekly review:

Past-due Close Dates get a decision today. Each one is either moved with a reason the rep can say out loud, or closed lost. The ratio usually drops. Good: now it is real.

Deals without a next step get one, dated, or move back to a stage that does not count. Moving a deal back feels harsh. Its the cheapest moment to find out whether it was ever a deal.

Only then look at what is missing. Coverage of 1.4x against a quarterly quota with eight weeks left is a sourcing problem, and the conversation is about new opportunities created this week. The same 1.4x with two weeks left is a forecast problem, and the conversation is about which Commit deals actually close. Same ratio, different action. We run this inside the [weekly Pipeline Inspection](https://salesbond.app/blog/salesforce-pipeline-inspection-weekly-review/), not as a separate meeting.

We build SalesBond, a sales management layer on top of the CRM a team already uses; we started with Pipedrive, and it works with Salesforce today. It takes the clean-up off a manager’s hands: it flags open deals whose expected close date has passed and deals with no next activity scheduled, so the coverage number you read on Monday is already the clean one. The quota still lives in Setup, and the decisions still belong to the manager. [Check your CRM with SalesBond](https://salesbond.app/).
