A sales pipeline report shows open opportunities by stage and by expected close month, weighted by stage probability, against the target for the period, with four numbers alongside that the default CRM dashboard usually leaves out: coverage (weighted pipeline divided by remaining target), velocity (how many days deals take to close), slippage (how much value moved its close date out this month), and age (how long each deal has sat in its current stage). The CRM's default version flatters you because it counts every opportunity a rep has entered, at the probability the rep picked, with the close date the rep chose, and none of those three are challenged until the quarter ends. A report that shows slippage and age next to the weighted total stops that within a month.
What metrics belong on a pipeline report?
Here's the set, with the formula for each, because "sales pipeline report template" is one of the searches that lands here and a template is mostly its definitions.
| Metric | Definition | Formula | Why it's on the report |
|---|---|---|---|
| Open pipeline | Total value of open opportunities | Sum of amount where status = open | The raw number everyone quotes |
| Weighted pipeline | Open pipeline adjusted for stage probability | Sum of amount × stage probability | The honest number |
| Coverage | How much pipeline you have against what you still need | Weighted pipeline ÷ (target minus closed-won to date) | Below about 3× is a warning for most B2B teams |
| Win rate | Share of closed deals that were won | Closed-won count ÷ (closed-won + closed-lost count), by period | Replaces guessed stage probabilities over time |
| Velocity | How long deals take | Average days from created to closed-won | Tells you whether this quarter's pipeline can close this quarter |
| Slippage | Value whose close date moved out this period | Sum of amount where close date moved to a later period this month | The flattery detector |
| Stage age | Days in current stage | Today minus the date the stage was entered | Finds stuck deals |
| Created this period | New pipeline added | Count and sum of opportunities created in the period | Whether the top of the funnel is being fed |
| Conversion by stage | How much survives each stage | Count moving from stage N to N+1 ÷ count entering stage N | Where the process leaks |
Source: standard definitions; formulas are the ones I use in the models I build. Your CRM may name them differently.
Three notes. Weighted pipeline is only as honest as the probabilities, and the way to make probabilities honest is to set them from historical win rate by stage, not from what a rep thinks. Slippage needs the CRM to keep close-date history, which HubSpot, Dynamics 365 Sales and Salesforce all can if it's switched on. Stage age needs the stage-entered date, which is also history.
What should the layout be?
One page for the meeting, one page for the detail. The meeting page:
Top row, four numbers. Weighted pipeline for the period, target, coverage, closed-won to date. Arrows against last week.
Left, the funnel or the stage bar. Open value by stage, with stage age shown as colour: green under the average, amber over, red over twice the average. This single visual finds the stuck deals without a filter.
Right, the close-month view. Weighted pipeline by expected close month for the next six months, with target as a line. If October's bar is small and January's is huge, you can see the slippage before it's happened.
Bottom, the two lists. Slipped this period (deal, owner, old date, new date, amount) and stuck (deal, owner, stage, days in stage, amount). Ten rows each. These are the lists the meeting works through.
The detail page is the same, filterable by owner and team, with the full opportunity list. Row-level security so each rep opens the report and sees their own pipeline, and each manager their team.
That's it. No conversion-rate radial gauges, no speedometers, no twelve-KPI grid. The pipeline meeting has three questions (what's closing, what's stuck, what's slipped) and the page answers them.
Why does the CRM's default version flatter you?
Because of three things the default dashboard doesn't challenge:
Every opportunity counts. Reps enter opportunities to show activity. Some are real, some are placeholders, some are hopes. The default dashboard sums all of them.
Probability is chosen, not measured. The rep sets the stage; the stage carries a probability someone typed in when the CRM was set up. If "Proposal" is 60% and your actual win rate from Proposal is 25%, the weighted pipeline is overstated by more than double at that stage.
Close dates move without trace. A deal expected to close in September is now expected in November. On the dashboard it simply appears under November. Nothing shows that it used to be September, so the quarter looks fine until it isn't.
The fix for the first is management, not tooling: an opportunity needs a next step and a date or it isn't an opportunity. The fix for the second is measuring win rate by stage over the last four quarters and setting the probabilities from that. The fix for the third is slippage on the report, which needs close-date history.
Where does the data come from?
All of it from the CRM, for this report. That matters because it makes it a single-source build:
- Dynamics 365 Sales: the Dataverse connector reads opportunities, stages and (if audit history is on) the change history. Native, no extra cost.
- Salesforce: the Salesforce Objects connector reads Opportunity and OpportunityHistory (which holds stage and close-date changes). Needs API access on your edition; Professional needs the API add-on.
- HubSpot: third-party connector or the API; deal stage history is available through the API's property history.
- Pipedrive: API or a third-party connector; Pipedrive's own Insights already shows a good version of this, so check that first.
If the report you want is exactly this, on one CRM, that's a First Report: one system, one report answering one written question ("what's actually going to close this quarter?"), £1,950 fixed, ten working days, published to your workspace, details at the First Report. HubSpot, Salesforce and Dynamics 365 Sales are named on the page. Power BI Pro is £10.80 per user per month on Microsoft's UK page as of September 2026, for everyone who opens it.
If you also want "and what were those deals worth once invoiced?", that's the finance system joined in, and it's the sixth question in CRM Reporting.
Common questions
What should a sales pipeline report include?
Open and weighted pipeline by stage and by expected close month against target; coverage; win rate; velocity; slippage; stage age; and created-this-period. Plus two lists: what slipped and what's stuck. The definitions and formulas are in the table above.
What is pipeline coverage and what should it be?
Weighted pipeline divided by the target still to be hit. Three times is the common rule of thumb for B2B teams; the right number is your target divided by your historical win rate, so a 25% win rate needs 4× coverage.
How do you calculate sales velocity?
Average number of days from opportunity created to closed-won, over a recent period. Some teams use the fuller formula (opportunities × win rate × average deal value ÷ sales cycle length) to get value per day; the simple version is easier to act on.
What is pipeline slippage?
The value of open opportunities whose expected close date moved to a later period during the current period. It needs close-date history from the CRM. It's the single most useful number for stopping a forecast from flattering you.
Why is our weighted pipeline always too high?
Because stage probabilities were set by opinion when the CRM was configured. Measure your actual win rate from each stage over the last four quarters and set the probabilities from that. Expect them to drop.
Can Power BI build a pipeline report from HubSpot, Salesforce or Dynamics?
Yes. Dynamics 365 Sales and Salesforce have native connectors (Salesforce needs API access on your edition); HubSpot needs a third-party connector or the API. All three hold the stage and close-date history the slippage and age metrics need, if it's switched on.
Do we need this if the CRM already has dashboards?
Only if the CRM's dashboard can't show slippage and stage age, or if the people who need the report don't log into the CRM. Check the CRM's own reporting first; Pipedrive's Insights in particular covers most of this natively.