Chart your export here
Drop a CSV here. xmetric reads every row in this browser and draws a first chart you can regroup or change the measure of. Nothing is uploaded.
No file loaded yet. You can also drop a CSV on this box.
Why standard CRM win rate charts mislead RevOps teams
Most CRM dashboards divide Deals Closed Won in Q3 by Deals Closed Won + Closed Lost in Q3. That metric (close-date win rate) gets distorted whenever reps carry out a pipeline cleanup and mass-close 50 stale deals from last year as Closed Lost on the final day of the quarter.
Grouping win rate by Create Date cohort (DATETRUNC('month', [Create Date])) tracks what percentage of deals created in a given month eventually closed won, unaffected by when old deals were purged.
How to export HubSpot Deals for win rate analysis
- In HubSpot, open CRM > Deals and select All deals.
- Ensure the table includes
Record ID,Deal Name,Pipeline,Deal Stage,Deal Owner,Deal Type(New Businessvs.Existing Business),Amount,Create Date,Close Date,Is Closed Won, andIs closed lost(as of October 2026). - Click Export > CSV and download the file.
| HubSpot Export Column | Data Type | Role in Win Rate View |
|---|---|---|
Create Date | Timestamp | Defines the creation cohort (Month or Quarter) |
Close Date | Timestamp | Used for close-period comparison and maturity checks |
Deal Stage | String | Identifies Closed Won, Closed Lost, or still-open deals |
Is Closed Won / Is closed lost | Boolean | Explicit boolean flags (true / false) automatically set by HubSpot |
Deal Type | String | Separates New Business (~15-30% win rate) from Existing Business renewals (~80-95% win rate) |
Amount | Currency | Computes dollar-weighted win rate alongside deal-count win rate |
Deal Owner | String | Benchmarks win rate by account executive |
Three win rate formulas and SQL equivalents
1. Closed-Deal Win Rate vs. Total Cohort Win Rate
For cohorts older than your median sales cycle, compare Closed Win Rate (Won / (Won + Lost)) against Total Cohort Conversion (Won / All Created, which includes deals still sitting open).
xmetric / Tableau formula ([Closed Count Win Rate]):
SUM(IF [Deal Stage] = 'Closed Won' THEN 1 ELSE 0 END)
/
NULLIF(SUM(IF [Deal Stage] IN ('Closed Won', 'Closed Lost') THEN 1 ELSE 0 END), 0)xmetric / Tableau formula ([Total Cohort Win Rate]):
SUM(IF [Deal Stage] = 'Closed Won' THEN 1 ELSE 0 END) / COUNT([Record ID])2. Dollar-Weighted Win Rate vs. Count Win Rate
For example (sample numbers), if a rep wins 8 out of 10 small deals (5K each) and loses 5 out of 5 enterprise deals (100K each), their count win rate is 53% (8 / 15), but their dollar win rate is only 7.3% (40K / 550K). Tracking the gap between count and dollar win rate exposes discounting and large-deal qualification issues.
xmetric / Tableau formula ([Dollar Win Rate]):
SUM(IF [Deal Stage] = 'Closed Won' THEN [Amount] ELSE 0 END)
/
NULLIF(SUM(IF [Deal Stage] IN ('Closed Won', 'Closed Lost') THEN [Amount] ELSE 0 END), 0)SQL equivalent:
SELECT
DATE_TRUNC('month', "Create Date") AS create_cohort,
"Deal Owner" AS deal_owner,
COUNT(*) AS total_created,
COUNT(*) FILTER (WHERE "Deal Stage" = 'Closed Won') AS won_count,
COUNT(*) FILTER (WHERE "Deal Stage" = 'Closed Lost') AS lost_count,
COUNT(*) FILTER (WHERE "Deal Stage" NOT IN ('Closed Won', 'Closed Lost')) AS still_open_count,
ROUND(
COUNT(*) FILTER (WHERE "Deal Stage" = 'Closed Won') * 100.0
/ NULLIF(COUNT(*) FILTER (WHERE "Deal Stage" IN ('Closed Won', 'Closed Lost')), 0),
1
) AS closed_count_win_rate_pct,
ROUND(
SUM("Amount") FILTER (WHERE "Deal Stage" = 'Closed Won') * 100.0
/ NULLIF(SUM("Amount") FILTER (WHERE "Deal Stage" IN ('Closed Won', 'Closed Lost')), 0),
1
) AS closed_dollar_win_rate_pct
FROM hubspot_deals
WHERE "Deal Type" = 'New Business'
GROUP BY 1, 2
ORDER BY 1 DESC, 2;3. Rep Win Rate Relative to Team Average in the Same Deal Size Tier (FIXED LOD)
An enterprise AE will naturally have a different win rate than an SMB AE. A FIXED Level of Detail expression compares each rep against the peer average within the exact same Amount tier.
xmetric / Tableau formula:
[Closed Count Win Rate]
- MIN({ FIXED [Deal Size Tier] : [Closed Count Win Rate] })Common traps in HubSpot win rate reporting
- Mixing New Business and Renewals in one pipeline: If renewals and upsells live in the same HubSpot pipeline as new logos, always filter
Deal Type = New Businesson the Filters shelf in the xmetric app (or in your query) before reading win rates. - Unqualified Stage-0 deals: If marketing or SDRs automatically create a HubSpot deal for every booked meeting before an AE qualifies it, filter your denominator to deals that reached at least Stage 2 (
Date entered Qualified is not null) to measure qualified win rate (SQL-to-Close).
Questions people ask
Why does the most recent month's cohort show an unusually high Closed Win Rate?
Deals that close within 10 days of creation are often fast losses (disqualified immediately) or pre-negotiated wins, while normal deals from that month are still open. Check the still-open count (still_open_count in the SQL above) and only judge cohorts where at least 80% of created deals have reached a closed state.
Can I chart Closed Lost Reason breakdown right next to win rate?
Yes. Drag Closed Lost Reason onto the Rows shelf in the xmetric app and filter to Deal Stage = Closed Lost (or group by it in SQL) to see whether price, missing features, or timing drove losses in each cohort.
Does xmetric keep our HubSpot sales data local?
Yes. Files you drop are read in your browser and nothing is uploaded, unless you sign in and save a workbook online. The app also imports Excel (.xlsx) exports.
Drop your HubSpot deals.csv above for a first chart, then compare count and dollar win rates by cohort and rep in the xmetric app.