Skip to content
>cat insights/why-your-gtm-stack-is-bleeding-money.mdx
GTM Engineering

Why Your GTM Stack is Bleeding Money

Most companies are paying for 3x the tools they need while still having data gaps. Here's how to audit your stack and cut the waste.

December 18, 2024
6 min read
Verluna Team
#gtm-strategy#revops#efficiency#cost-optimization

The $50K Problem Nobody Talks About

The average B2B SaaS company with 50-200 employees is spending somewhere between $40,000 and $80,000 annually on GTM tooling. HubSpot, Salesforce, Outreach, Gong, ZoomInfo, Clearbit, Drift, Chilipiper, Salesloft. The list keeps growing.

Yet when we audit these stacks, we consistently find the same pattern: companies are paying for capabilities they don't use, running duplicate tools that do the same thing, and still missing critical integrations that would actually move the needle.

The Three Types of Waste

1. Feature Overlap

Take a typical mid-market setup: HubSpot Marketing Hub + Salesforce CRM + Outreach for sequences.

HubSpot Marketing Hub Professional includes sequences. Salesforce has Einstein activity capture. Outreach does sequences. You're now paying three vendors for variations of the same capability.

The question isn't which tool does it best. The question is: why are you paying for it three times?

typescript
// Actual feature overlap from a recent audit
const stackAudit = {
  emailSequences: ["HubSpot", "Outreach", "Salesforce Engage"],
  activitySync: ["HubSpot", "Salesforce", "Gong"],
  meetingScheduling: ["HubSpot", "Calendly", "Chilipiper"],
  enrichment: ["ZoomInfo", "Clearbit", "Apollo"],
  // Annual cost of duplicates: ~$28,000
};

2. Unused Seat Licenses

This one hurts because it's pure waste. Every SaaS contract has a seat count. Marketing bought 20 HubSpot seats two years ago. Now 8 people have left the company, 3 never actually log in, and you're still paying for all 20.

We've seen companies recovering $15,000+ annually just from seat license cleanup.

typescript
// License audit framework
interface LicenseAudit {
  tool: string;
  paidSeats: number;
  activeUsers: number; // logged in last 30 days
  powerUsers: number;  // logged in 10+ days last month
  wastedSpend: number;
}
 
// Example from real audit
const hubspotAudit: LicenseAudit = {
  tool: "HubSpot Sales Hub",
  paidSeats: 25,
  activeUsers: 14,
  powerUsers: 8,
  wastedSpend: 11 * 500 * 12, // $66,000/year
};

3. Missing Integrations

Here's the irony: companies overspend on tools but underspend on connecting them. The result? Manual data entry, spreadsheet exports, and "can you pull that report for me?" Slack messages.

Without proper integrations, your expensive tools become expensive data silos.

typescript
// Common integration gaps we find
const integrationDebt = [
  {
    gap: "CRM ↔ Finance",
    symptom: "Sales closes deal, finance manually creates invoice",
    cost: "4 hours/week of admin work",
  },
  {
    gap: "Marketing ↔ Sales",
    symptom: "MQLs sit in HubSpot, SDRs check manually",
    cost: "Lead response time measured in days",
  },
  {
    gap: "Product ↔ CRM",
    symptom: "CSMs don't see product usage, miss churn signals",
    cost: "Higher churn rate",
  },
];

How to Run a Stack Audit

Step 1: Inventory Everything

Start with your finance team. Pull every SaaS invoice from the last 12 months. You'll be surprised what shows up that nobody remembers buying.

Categorize each tool:

typescript
type ToolCategory =
  | "crm"
  | "marketing-automation"
  | "sales-engagement"
  | "enrichment"
  | "analytics"
  | "communication"
  | "scheduling"
  | "other";
 
interface ToolInventory {
  name: string;
  category: ToolCategory;
  annualCost: number;
  contractRenewal: Date;
  primaryOwner: string;
  seats: {
    paid: number;
    active: number;
  };
}

Step 2: Map the Data Flow

Draw out how data moves between tools. Where does a lead start? How does it become an opportunity? What happens after close?

Every manual step in this flow is either a potential automation or a sign of a missing integration.

Step 3: Score Each Tool

For every tool in your stack, answer these questions:

  • Usage: What percentage of paid seats are active?
  • Value: What business process depends on this tool?
  • Uniqueness: Could another tool in the stack do this?
  • Integration: How well does it connect to your core systems?
typescript
// Scoring framework
interface ToolScore {
  usage: number;      // 0-100 based on active/paid seats
  value: number;      // 0-100 based on business impact
  uniqueness: number; // 0-100, lower if duplicated
  integration: number; // 0-100 based on data flow
  totalScore: number;
}
 
function calculateScore(tool: ToolScore): string {
  const total = (tool.usage + tool.value + tool.uniqueness + tool.integration) / 4;
 
  if (total < 40) return "Consider removing";
  if (total < 60) return "Needs optimization";
  if (total < 80) return "Good, minor improvements";
  return "Core tool, invest further";
}

Step 4: Make the Hard Calls

Once you've scored everything, you'll have a clear picture.

Tools scoring under 40: Cut them. Migrate any critical data first.

Tools scoring 40-60: Consolidate where possible, renegotiate contracts.

Tools scoring 60+: Optimize usage and integrations.

The Consolidation Framework

When you find overlap, how do you decide what stays?

Primary Criteria

Where does your data live? The tool holding your customer data is your center of gravity. Everything else should feed into or out of it.

What does your team actually use? Usage data beats feature lists. A tool with 10% of the features but 90% usage wins over the opposite.

What are you contractually locked into? Sometimes you can't cut a tool until the contract ends. Plan your consolidation around renewal dates.

Example Consolidation

typescript
// Before consolidation
const before = {
  crm: "Salesforce", // $36,000/year
  marketing: "HubSpot Marketing Hub", // $14,400/year
  sequences: "Outreach", // $18,000/year
  enrichment: "ZoomInfo", // $24,000/year
  scheduling: "Calendly + Chilipiper", // $8,400/year
  total: "$100,800/year",
};
 
// After consolidation
const after = {
  crm: "HubSpot CRM + Sales Hub", // $54,000/year
  enrichment: "Apollo", // $12,000/year
  // HubSpot includes: sequences, scheduling, marketing
  total: "$66,000/year",
  savings: "$34,800/year",
};

What Actually Matters

Here's what we've learned running these audits:

Your CRM is your source of truth. Everything else is either feeding data into it or pulling data out of it. If you're not treating it that way, you're building on sand.

Integration quality beats feature count. A simpler stack that's well-connected will outperform a sophisticated stack with data gaps.

Usage data doesn't lie. Forget what vendors promised in the sales demo. Look at what your team actually uses daily.

Contract timing matters. Start your audit 90 days before your biggest renewal. That's when you have leverage.

Next Steps

If you're spending more than $30,000 annually on GTM tools and haven't done a stack audit in the past year, you're probably leaving money on the table.

We run these audits as part of our GTM Audit track. Typical engagement is 2-3 weeks, and clients usually find 20-40% in potential savings or reallocation.

author.json

Verluna Team

GTM Engineering

Engineers who understand go-to-market. We build autonomous revenue engines using code, not configuration.