How to run a win/loss analysis as Small RevOps Teams

Sales & CRMFor Small RevOps Teams3 apps12 steps~24 min to set up

Your win/loss data lives in three places and none of them are reliable. HubSpot has closed-lost reasons that reps selected in a hurry — 'pricing' covers everything from budget freeze to a competitor undercutting you by 40%. Apollo shows you which sequences touched a deal but not what the prospect actually said. The post-mortem debrief your manager asks for every quarter requires you to manually cross-reference deal stages, email threads, sequence enrollment history, and LinkedIn touchpoints before you can say anything meaningful. A 2-person RevOps team doing this for 30 reps spends a full day per month just assembling the raw data before any analysis begins.

Sales & CRMFor Small RevOps Teams3 apps12 steps~24 min to set up
Outcome

What you'll set up

A win/loss dashboard that pulls closed deals from HubSpot and Apollo sequences into one surface, tagged by close reason, rep, segment, and competitive displacement
A recurring analysis app that surfaces patterns — which deal sources close at higher rates, which sequences correlate with losses, which stages stall most often — without you building pivot tables
An automated digest that emails your CRO a summary of what changed in win rate this month, with the supporting numbers, so you stop spending Friday afternoons building slides
The Starch recipe

Apps, data, and prompts

The combination of Starch apps, the data sources they pull from, and the prompts you use to drive them.

Data sources & config

Starch syncs your HubSpot data on a schedule — deals, contacts, companies, owners — so every closed deal is available without a manual export. Apollo.io is also synced on a schedule, giving you sequence enrollment, contact touches, and opportunity data alongside HubSpot. Gmail is synced on a schedule so email thread context attaches to each deal record. For Salesforce users: connect Salesforce from Starch's integration catalog and the agent queries it live when your win/loss app runs.

Prompts to copy
Build me a win/loss analysis app that pulls closed-won and closed-lost deals from HubSpot for the last 90 days, groups them by close reason, rep, and deal source, and shows win rate by segment. Flag any close reason that accounts for more than 20% of losses.
Create a weekly digest that emails me a summary of this week's closed deals — wins, losses, average deal size by outcome, and which competitor appeared in lost deals this week. Pull from HubSpot deals and Apollo sequence data.
Build a view that shows, for each closed-lost deal in the last quarter, the last email thread, the Apollo sequence they were enrolled in, and the stage where they went dark. I want to see if there's a pattern in where deals stall.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot as a scheduled-sync source — Starch pulls deals, contacts, companies, and owners automatically. If your team runs on Salesforce instead, connect it from Starch's integration catalog and the agent queries it live.
2 Connect Apollo.io as a scheduled-sync source — this gives you sequence enrollment history and contact-level touch data alongside your HubSpot deal records, so you can see which sequences touched which closed deals.
3 Connect Gmail as a scheduled-sync source — Starch attaches the last email thread to each deal, so you're not manually digging through inboxes to understand what was said before a deal closed or died.
4 Start from the Sales Agent CRM template in the App Store, then tell Starch to extend it: 'Add a win/loss tab that groups closed deals by close reason, shows win rate by rep and deal source, and flags the top three loss reasons this quarter.'
5 Tell Starch to build a loss pattern view: 'For every closed-lost deal in the past 90 days, show me the deal stage where it stalled, the last email date, the Apollo sequence they were in, and the close reason the rep selected.' This surfaces whether 'pricing' losses cluster in specific sequences or stages.
6 Add a competitive displacement field: 'Add a field to each closed-lost deal for competitor named, pulled from the close reason notes or email thread where mentioned. Group losses by competitor and show me win rate when each competitor appears in the deal.'
7 Build a weekly digest automation: 'Every Monday at 8am, email me a summary of last week's closed deals — total wins, total losses, win rate versus the prior 4-week average, top loss reason, and any rep whose win rate dropped more than 15 points week over week.'
8 Build a rep-level breakdown: 'Create a view that shows each rep's win rate, average days to close for won deals, average stage at loss for lost deals, and the three accounts they've lost in the last 30 days — sorted by win rate descending.'
9 Build a deal source attribution view: 'Show me win rate by first-touch source — inbound form, Apollo sequence, LinkedIn, referral — for deals closed in the last 6 months. Include average deal size and average sales cycle by source.'
10 Set up a CRO-ready summary: 'Build a monthly report that I can share with the CRO showing win rate trend over 6 months, top three loss reasons with deal count, which competitors appeared in losses, and which rep cohort improved most. Format it as a clean summary with supporting data tables.'
11 Validate your close reason taxonomy: 'Look at the distribution of HubSpot close reasons across all closed-lost deals in the last quarter. Flag any reason that accounts for more than 25% of losses — those are likely catch-alls that reps use when they don't know the real answer.'
12 Schedule a quarterly deep-dive: 'Every quarter on the first Monday, pull all closed deals from the prior quarter, run the win/loss breakdown by rep, segment, source, and competitor, and Slack me the summary with a link to the full report in Starch.'

See this running on Starch

Connect your tools, describe what you want, and the agent builds it. Closed beta is free.

Try it on Starch →
Worked example

Q1 2026 Win/Loss Review — 30-rep team

Sample numbers from a real run
Closed-won deals analyzed47
Closed-lost deals analyzed61
Win rate (overall)43
Loss reason: 'Pricing' (catch-all)28
Loss reason: 'Chose competitor' (named)14
Deals lost at Proposal stage31
Avg days to stall at Proposal18

In Q1 2026, your team closed 47 wins and 61 losses across 30 reps. Before Starch, you would have spent a day and a half pulling deal exports from HubSpot, matching them to Apollo sequence data in a separate CSV, and manually reviewing email threads to figure out why 28 deals were tagged 'pricing.' With the win/loss app running, the pattern surfaced in under ten minutes: 31 of 61 losses stalled at the Proposal stage, and 22 of those 31 were enrolled in the same Apollo sequence — a 7-touch sequence with no check-in after the proposal was sent. The 'pricing' close reason accounted for 46% of losses but when you looked at the email threads attached to those deals, only 9 of them actually mentioned budget. The rest went dark after a proposal with no follow-up. That's a process gap, not a pricing problem. The weekly digest caught a second signal: one rep's win rate dropped from 52% to 31% in four weeks, correlated with a territory change that doubled her named account list without any additional sequencing support. You brought both findings to the CRO on Friday with the Starch-generated summary — no slides built manually, no pivot tables, no Friday afternoon assembly required.

Measurement

How you'll know it's working

Win rate by rep, segment, and deal source (quarterly trend)
Stage-at-loss distribution — which pipeline stage loses the most deals and average days spent there
Loss reason accuracy — what percentage of closed-lost deals have a specific, non-catch-all close reason
Competitive displacement rate — win rate when a named competitor appears in the deal vs. when none is named
Time from last email touch to close-lost — leading indicator of deals that went dark vs. active losses
Comparison

What this replaces

The other ways teams handle this today, and how the Starch version compares.

Manual HubSpot + Google Sheets stack
You can build this in Sheets but every week someone has to re-export the deal CSV, re-match it to Apollo data, and re-run the pivot — there's no version that runs itself and emails the CRO.
Gong or Chorus
Gong gives you call-level win/loss intelligence but requires reps to record calls, costs significantly more per seat, and doesn't connect to your Apollo sequence or HubSpot pipeline data in the same surface.
Clari or Bowtie
Clari is built for forecast calls and pipeline inspection at scale — it's a good fit at 200+ reps but adds admin overhead and cost that a 30-rep team supporting a 2-person RevOps function rarely justifies.
Salesforce native reports
Salesforce's built-in win/loss reports work if your close reasons are clean and your reps fill in every field — which they don't, and the 2 people in RevOps are the ones who know that better than anyone.
On Starch RECOMMENDED

One platform — sales agent crm, growth analyst, crm all running on connected data. Setup in plain English; numbers stay current via scheduled syncs and live agent queries.

Try it on Starch →
FAQ

Frequently asked questions

We're on Salesforce, not HubSpot. Does this work?
Yes. Connect Salesforce from Starch's integration catalog and the agent queries your deal data live when your win/loss app runs. You won't get the same scheduled-sync depth as HubSpot — data is queried on demand rather than stored in Starch — but for win/loss analysis where you're pulling a defined date range of closed deals, live query works fine.
Our close reasons in HubSpot are a mess — reps pick 'other' half the time. Is this still useful?
Honestly, yes — and surfacing that messiness is part of the value. Starch can show you the distribution of close reasons and flag when a single reason like 'other' or 'pricing' accounts for a disproportionate share of losses. That's the finding you bring to your CRO to justify cleaning up the taxonomy. The email thread sync also gives you a second signal: even when the close reason is vague, the last email in the thread often tells you more about what actually happened.
Will Starch write back to HubSpot — like update a deal field or log a note?
The HubSpot sync is read-only today — Starch pulls your deal, contact, company, and owner data on a schedule. Writing back to HubSpot (updating fields, logging activity) is not currently supported. For a win/loss workflow, read-only is typically sufficient since you're analyzing what already happened, not updating records in flight.
Can I get competitive intelligence from public sources — like scraping a competitor's pricing page to add context to my loss analysis?
Yes. Starch automates browser sessions through your browser — no API needed — so you can set up an automation that checks a competitor's public pricing page on a schedule and flags when pricing changes. You could tell Starch: 'Every Monday, check [competitor URL] for their current pricing tiers and add a row to my win/loss dashboard with the date and any changes.' That kind of context alongside your loss data is genuinely useful for the CRO conversation.
Is Starch SOC 2 certified? We have a security review for any tool that touches deal data.
Not yet — Starch is not SOC 2 Type II certified today. If your security review requires that certification, that's a real constraint worth knowing upfront. It's on the roadmap but we won't tell you it's available before it is.
How is this different from just building a HubSpot report?
HubSpot reports are limited to HubSpot data. The signal that tells you whether a loss was a sequencing problem versus a pricing problem lives in Apollo (which sequences they were in), Gmail (what was actually said), and the deal timeline together. A HubSpot report can't join those three sources. Starch syncs all three on a schedule and lets you build a surface across all of them — described in plain language, not configured in a report builder.

Ready to run run a win/loss analysis on Starch?

Request closed-beta access. Everything is free during beta.

You're on the list! We'll be in touch soon.