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

Sales & CRMFor Small Marketing Teams2 apps12 steps~24 min to set up

Your team rebuilt the win/loss picture in a Google Sheet last quarter by manually exporting HubSpot deals, cross-referencing against GA4 acquisition source data in a separate tab, and guessing at the rest. The sheet is already stale. You don't know whether the deals you lost in Q1 came in from paid search or organic, whether they churned at the demo stage or the pricing call, or whether the accounts that closed shared any common firmographic trait. Sales blames the leads. You blame the funnel. Nobody has the data to prove anything, and your team of three doesn't have six hours a week to maintain the join logic that would.

Sales & CRMFor Small Marketing Teams2 apps12 steps~24 min to set up
Outcome

What you'll set up

A live win/loss dashboard that joins closed HubSpot deal data with acquisition source (GA4), ad spend (Meta and Google Ads), and email engagement (Mailchimp or Customer.io) — so you can see which channels actually produce revenue, not just MQLs
A recurring weekly digest that surfaces where deals are stalling by stage, which acquisition cohorts win at higher rates, and what changed versus last month — delivered to your inbox or Slack without you touching a dashboard
A structured loss-reason tracker layered on top of your HubSpot pipeline that captures why deals died, who flagged it, and whether there's a pattern across rep, channel, or ICP segment
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.

Apps used
Data sources & config

Starch syncs your HubSpot data on a schedule (contacts, companies, deals, owners, pipeline stages). Connect Google Analytics 4, Meta Ads, Google Ads, Mailchimp, and Customer.io from Starch's integration catalog — the agent queries them live when your dashboard or automation runs. Starch syncs your Gmail data on a schedule for email thread context on deal records. Slack is available for automated digest delivery.

Prompts to copy
Build me a win/loss analysis dashboard that pulls all closed HubSpot deals from the last 90 days, groups them by close/lost status, deal stage where they dropped off, and original acquisition source from UTM data. Show me win rate by channel and average deal cycle by lead source. Let me filter by month and by industry.
Every Monday at 8am, email me and our head of sales a win/loss digest. Include: deals closed vs. lost last week, which stage had the most drop-off, which acquisition channels had the best close rates, and one thing that changed versus the prior 4-week average. Pull from HubSpot.
Add a loss-reason field to every HubSpot deal that moves to Closed Lost. Every Friday, summarize all loss reasons logged that week, group them by category (price, timing, competitor, no decision), and post the summary to our #marketing Slack channel.
Run these in Starch → or paste them into your favorite agent
Walkthrough

Step-by-step

1 Connect HubSpot: Starch syncs your contacts, companies, deals, and pipeline stages on a schedule. Every closed and lost deal — with its stage history — becomes queryable.
2 Connect GA4 and your ad platforms (Meta Ads, Google Ads, LinkedIn Ads) from Starch's integration catalog. The agent queries acquisition source and spend data live when your dashboard runs, so your channel attribution reflects current campaigns.
3 Connect your ESP (Mailchimp or Customer.io) from the integration catalog. This lets you layer email engagement — open rates, click rates on nurture sequences — against deal outcomes for accounts that went through a drip.
4 Start with the CRM app from the App Store and fork it: tell Starch to add a 'loss reason' field, a 'primary acquisition channel' field pulled from UTM parameters stored in HubSpot, and a 'deal cycle days' calculated field. This becomes your win/loss data layer.
5 Build the win/loss dashboard by describing it: 'Show me closed vs. lost deals for the last 90 days, broken down by stage of drop-off, acquisition channel, and industry. Calculate win rate per channel and average deal age per outcome.' Starch assembles this as a custom view on top of your synced HubSpot data.
6 Layer in ad spend context: 'For each acquisition channel in my win/loss dashboard, show me total ad spend from Meta Ads and Google Ads in the same period alongside revenue from closed deals, so I can see cost per won deal by channel.' The agent queries your ad platforms live to populate this.
7 Set up the Monday morning digest using the Growth Analyst app as a starting point, then customize it: 'Every Monday at 8am, send me a win/loss summary — deals closed and lost last week, top drop-off stage, win rate by channel versus prior 4-week average. Include one sentence on what shifted.' Deliver to Gmail and post to Slack.
8 Build the loss-reason automation: 'When a deal moves to Closed Lost in HubSpot, prompt the deal owner via Slack to log a loss reason from this list: price, timing, lost to competitor, no decision, wrong ICP. Save the response back to the deal record.' This runs on a trigger, not a schedule.
9 Build the Friday loss-reason rollup: 'Every Friday at 4pm, pull all Closed Lost deals updated this week, group the loss reasons by category, count each, and post a summary to #marketing on Slack.' No manual reporting required.
10 Build a monthly deep-dive prompt for the CEO brief: 'Summarize this month's win/loss trends — which channels, industries, and deal sizes are winning and losing, how this compares to last month, and the top three loss reasons. Format it as a paragraph I can paste into a board update.' Run it manually when you need it.
11 Review the dashboard weekly with your sales counterpart. When patterns emerge — say, paid social deals stalling at the pricing call consistently — use the CRM app to pull those specific accounts and look for common firmographic signals.
12 Iterate: tell Starch to add a competitor field, a 'who was the champion' field, or a segment filter for deal size. You describe the change; Starch updates the app. No rebuilding the Sheet.

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 — 120-Person SaaS Company

Sample numbers from a real run
Deals entered pipeline (Q1)134
Closed Won41
Closed Lost58
Win rate — organic search sourced38
Win rate — paid social sourced17
Avg deal cycle, organic (days)32
Avg deal cycle, paid social (days)51
Loss reason: price (% of losses)29
Loss reason: lost to competitor (% of losses)34
Loss reason: no decision (% of losses)22

Going into your Q1 debrief, you knew paid social was expensive. You didn't know it had a 17% win rate versus 38% for organic search, or that paid social deals took 51 days to close versus 32 for organic — and were still losing more often. The Starch win/loss dashboard surfaced this in the first week of April by joining 134 HubSpot deals against Meta Ads and Google Ads spend from the integration catalog and acquisition UTMs stored in HubSpot. Of 58 losses, 34% were flagged as 'lost to competitor' in the loss-reason tracker — almost all of them in the 50-200 employee segment. That's the brief you brought to the CEO: not 'paid social is underperforming' but 'paid social at our current CPL targets is producing deals we lose to [Competitor X] at the pricing call, concentrated in SMB. Organic produces deals that close faster and at higher rates. Proposal: cut paid social budget by 40% in Q2 and reallocate to content.' That argument took 20 minutes to build, not a week.

Measurement

How you'll know it's working

Win rate by acquisition channel (organic, paid search, paid social, outbound, referral)
Average deal cycle length by channel and outcome
Loss reason distribution (price vs. competitor vs. no decision vs. timing) as % of Closed Lost
Stage drop-off rate — which pipeline stage loses the most deals, and whether that's shifted month over month
Cost per won deal by channel (ad spend divided by Closed Won deals, segmented by source)
Comparison

What this replaces

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

Manual HubSpot reports + Google Sheets join
You can build this yourself with HubSpot's native reporting and a weekly export, but maintaining the join against GA4 and ad spend data is ~4 hours of manual work per month, and the report is always two weeks behind the conversation it's meant to inform.
Looker Studio (Google Data Studio)
Free and powerful for GA4 and ad platforms, but HubSpot requires a paid connector, the schema for deal stage history is tricky to model correctly, and you need someone who knows how to build the data source — which your team of three probably doesn't have time for.
HubSpot Marketing Hub (reporting add-on)
HubSpot's native attribution reporting is solid if you live entirely in HubSpot, but it doesn't join against external ad spend or email engagement in other ESPs, and the reporting add-on is an additional license cost on top of what you're already paying.
Amplitude or Mixpanel
Great for product analytics and user-level funnel analysis, but they don't natively model CRM deal outcomes — connecting Amplitude events to HubSpot deal stage history requires a data pipeline you'd have to build and maintain.
On Starch RECOMMENDED

One platform — crm, growth analyst 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 use HubSpot for CRM but our UTM data is inconsistent — half our deals don't have a clean acquisition source. Will this still work?
Yes, though your attribution will reflect whatever's in HubSpot — garbage in, garbage out. Starch can help you identify which deal records are missing UTM data and flag them, and you can build an automation that prompts reps to fill in the acquisition source when a deal is created. It won't retroactively fix bad data, but it stops the bleeding going forward.
Does Starch store my HubSpot deal data, or does it query live every time?
HubSpot is a scheduled-sync provider, so Starch syncs your contacts, companies, deals, and owners on a schedule and stores them in Starch's database. Your ad platforms (Meta Ads, Google Ads) and ESP are queried live from the integration catalog when your dashboard runs. This means your HubSpot deal history is fast to query, while your ad spend numbers reflect whatever's current in the platform at the time the dashboard loads.
We don't have a formal loss-reason process — our reps just mark deals lost with no notes. Can Starch fix this?
Starch can build an automation that triggers a Slack prompt to the deal owner the moment a deal moves to Closed Lost in HubSpot, asking them to pick from a defined list of reasons. You define the list; Starch routes the prompt and writes the response back to the deal record. You won't get 100% compliance immediately, but you'll get a lot more signal than you have now, and within a quarter you'll have enough data to spot patterns.
Is Starch SOC 2 certified? We'd need to get this through our security team.
Not yet — Starch is not SOC 2 Type II certified today. There's no on-prem or self-hosted option. If your security team has hard requirements around SOC 2, that's worth knowing upfront.
We already pay for HubSpot. Why not just use HubSpot's built-in win/loss reporting?
HubSpot's native reporting works well within HubSpot — deal stage analytics, rep performance, pipeline velocity. What it can't do natively is join your deal outcomes against external ad spend from Meta or Google, email engagement from Mailchimp or Customer.io, or traffic data from GA4. If your win/loss question is purely internal to HubSpot, you may not need Starch for this. If you want to understand whether your $18k/month paid social budget is producing deals that actually close, you need the cross-platform join.
We use Customer.io, not Mailchimp. Is that supported?
Yes — Customer.io is available through Starch's integration catalog and the agent queries it live. You can pull email engagement metrics (open rates, click rates on nurture sequences) and layer them against HubSpot deal outcomes to see whether accounts that engaged with nurture actually convert at higher rates.

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.