DEV Community

Michael
Michael

Posted on • Originally published at getmichaelai.com

Beyond Vanity Metrics: 7 B2B Marketing KPIs You Can Query Like an API

As developers, we live by data. We track uptime, monitor latency, and debug with logs. When marketing talks about 'brand awareness' or 'engagement,' it can feel like a fuzzy, unquantifiable black box. But what if you could treat your marketing funnel like a distributed system, with key metrics acting as health checks and performance indicators?

That's what effective B2B marketing is all about: measuring what matters to prove and improve ROI. Forget vanity metrics like social media likes. Let's dive into seven mission-critical B2B marketing KPIs you can track, calculate, and optimize like a seasoned SRE.

1. Customer Acquisition Cost (CAC)

This is the big one. It's the cost field in your API response for a new customer. It tells you exactly how much you spend, on average, to acquire a single paying customer.

Why It Matters

A low CAC means your marketing and sales engine is efficient. A rising CAC is a bug report for your growth strategy. If your CAC is higher than your customer's lifetime value (more on that next), you're literally paying to lose money.

How to Calculate It

/**
 * Calculates the Customer Acquisition Cost (CAC).
 * @param {number} totalMarketingSpend - Total cost of marketing campaigns.
 * @param {number} totalSalesSpend - Total cost of sales efforts (salaries, commissions, etc.).
 * @param {number} newCustomersAcquired - Number of new customers in the period.
 * @returns {number} The average cost to acquire one customer.
 */
function calculateCAC(totalMarketingSpend, totalSalesSpend, newCustomersAcquired) {
  if (newCustomersAcquired === 0) {
    return Infinity; // Avoid division by zero
  }
  return (totalMarketingSpend + totalSalesSpend) / newCustomersAcquired;
}

// Example:
const marketingSpend = 5000; // in dollars
const salesSpend = 10000; // in dollars
const newCustomers = 15;

const cac = calculateCAC(marketingSpend, salesSpend, newCustomers);
console.log(`Your CAC is: $${cac.toFixed(2)}`); // Output: Your CAC is: $1000.00
Enter fullscreen mode Exit fullscreen mode

2. Customer Lifetime Value (LTV)

If CAC is the cost, LTV is the potential revenue payload. It's a prediction of the net profit attributed to the entire future relationship with a customer.

Why It Matters

LTV provides the context for your CAC. A $1000 CAC might seem high, but if your LTV is $10,000, it's a fantastic investment. The LTV:CAC ratio is the ultimate measure of business viability. A healthy B2B SaaS business often aims for a ratio of 3:1 or higher.

How to Calculate It

/**
 * Calculates the Customer Lifetime Value (LTV).
 * @param {number} avgRevenuePerAccount - Average monthly or annual revenue per account.
 * @param {number} grossMargin - The percentage of revenue left after COGS.
 * @param {number} customerChurnRate - The percentage of customers who cancel per period.
 * @returns {number} The predicted lifetime value of a customer.
 */
function calculateLTV(avgRevenuePerAccount, grossMargin, customerChurnRate) {
  if (customerChurnRate <= 0) {
    // Or handle as a very high LTV for subscription models
    return Infinity;
  }
  const customerLifetime = 1 / customerChurnRate;
  return avgRevenuePerAccount * grossMargin * customerLifetime;
}

// Example:
const arpa = 300; // $300/month
const margin = 0.80; // 80%
const churn = 0.05; // 5% monthly churn

const ltv = calculateLTV(arpa, margin, churn);
const ltvToCacRatio = ltv / cac; // Using CAC from the previous example

console.log(`Your LTV is: $${ltv.toFixed(2)}`); // Output: Your LTV is: $4800.00
console.log(`Your LTV:CAC Ratio is: ${ltvToCacRatio.toFixed(2)}:1`); // Output: Your LTV:CAC Ratio is: 4.80:1
Enter fullscreen mode Exit fullscreen mode

3. MQL to SQL Conversion Rate

Your marketing pipeline isn't monolithic. It has stages. A Marketing Qualified Lead (MQL) is someone who's shown interest (e.g., downloaded an ebook). A Sales Qualified Lead (SQL) is a lead the sales team has vetted and deemed ready for a direct sales follow-up. This KPI measures the quality of leads your marketing is generating.

Why It Matters

A high volume of MQLs with a low conversion rate to SQLs indicates a leaky funnel. Marketing is casting a wide net, but pulling in the wrong fish. This wastes sales' time and points to a mismatch between marketing messaging and product value.

How to Calculate It

/**
 * Calculates a generic conversion rate.
 * @param {number} convertedCount - The number of items that converted.
 * @param {number} totalCount - The total number of items.
 * @returns {number} The conversion rate as a percentage.
 */
function calculateConversionRate(convertedCount, totalCount) {
  if (totalCount === 0) {
    return 0;
  }
  return (convertedCount / totalCount) * 100;
}

// Example:
const mqls = 200;
const sqls = 25;

const mqlToSqlRate = calculateConversionRate(sqls, mqls);
console.log(`MQL to SQL Conversion Rate: ${mqlToSqlRate.toFixed(2)}%`); // Output: MQL to SQL Conversion Rate: 12.50%
Enter fullscreen mode Exit fullscreen mode

4. Lead-to-Customer Conversion Rate

This is the bottom-of-the-funnel metric. Of all the leads that entered your pipeline (MQLs or SQLs, depending on your definition), how many ended up deploying to production (i.e., becoming a paying customer)?

Why It Matters

This KPI measures the overall effectiveness of your marketing and sales process. A low rate could signal issues with your product demo, pricing, sales process, or the quality of the initial leads.

How to Calculate It

// Using our generic conversion rate function
const totalLeads = 500;
const newCustomersFromLeads = 15;

const leadToCustomerRate = calculateConversionRate(newCustomersFromLeads, totalLeads);
console.log(`Lead-to-Customer Rate: ${leadToCustomerRate.toFixed(2)}%`); // Output: Lead-to-Customer Rate: 3.00%
Enter fullscreen mode Exit fullscreen mode

5. Traffic-to-Lead Ratio

How effective is your landing page or content at converting anonymous visitors into known leads? This top-of-funnel metric tells you if your initial hook is working.

Why It Matters

You can have a million visitors to your technical blog post, but if none of them sign up for a demo, download your whitepaper, or join your mailing list, the traffic is worthless for lead generation. This KPI is a direct measure of your content and UX effectiveness.

How to Calculate It

// Using our generic conversion rate function
const uniqueVisitors = 10000;
const newLeadsGenerated = 200; // e.g., signed up for a webinar

const trafficToLeadRate = calculateConversionRate(newLeadsGenerated, uniqueVisitors);
console.log(`Traffic-to-Lead Ratio: ${trafficToLeadRate.toFixed(2)}%`); // Output: Traffic-to-Lead Ratio: 2.00%
Enter fullscreen mode Exit fullscreen mode

6. Channel-Specific ROI

Not all traffic sources are created equal. A lead from an organic search for "B2B Kubernetes monitoring tool" is likely more valuable than one from a generic display ad. You need to know which channels are actually making you money.

Why It Matters

This is how you avoid wasting money. By tracking ROI per channel (e.g., Google Ads, content marketing, SEO, LinkedIn), you can double down on what works and cut what doesn't. It allows for data-driven budget allocation instead of guesswork.

How to Calculate It

/**
 * Calculates the Return on Investment (ROI) for a specific channel.
 * @param {number} revenueFromChannel - Total new revenue attributed to the channel.
 * @param {number} costOfChannel - Total cost of activities on that channel.
 * @returns {number} The ROI as a percentage.
 */
function calculateChannelROI(revenueFromChannel, costOfChannel) {
  if (costOfChannel === 0) {
    return Infinity;
  }
  return ((revenueFromChannel - costOfChannel) / costOfChannel) * 100;
}

// Example: Content Marketing (Blog)
const blogRevenue = 20000; // LTV from customers attributed to blog
const blogCost = 4000; // Writer salary, hosting, etc.

const contentRoi = calculateChannelROI(blogRevenue, blogCost);
console.log(`Content Marketing ROI: ${contentRoi.toFixed(2)}%`); // Output: Content Marketing ROI: 400.00%
Enter fullscreen mode Exit fullscreen mode

7. Net Promoter Score (NPS)

NPS might feel softer, but it's a powerful leading indicator. It measures customer satisfaction and loyalty by asking one simple question: "On a scale of 0-10, how likely are you to recommend our product to a friend or colleague?"

Why It Matters

In B2B tech, reputation and word-of-mouth are everything. A high NPS correlates with lower churn, higher LTV, and a powerful organic growth loop (referrals). A low NPS is a critical alert that your product might have issues or that your customer success is failing. It’s an early warning system for churn.

How to Calculate It

Promoters (9-10), Passives (7-8), Detractors (0-6).
NPS = % Promoters - % Detractors

/**
 * Calculates Net Promoter Score (NPS).
 * @param {number} promoters - Count of scores 9-10.
 * @param {number} passives - Count of scores 7-8.
 * @param {number} detractors - Count of scores 0-6.
 * @returns {number} The NPS score (from -100 to 100).
 */
function calculateNPS(promoters, passives, detractors) {
  const totalRespondents = promoters + passives + detractors;
  if (totalRespondents === 0) {
    return 0;
  }
  const promoterPercentage = (promoters / totalRespondents) * 100;
  const detractorPercentage = (detractors / totalRespondents) * 100;
  return promoterPercentage - detractorPercentage;
}

// Example:
const npsPromoters = 60;
const npsPassives = 20;
const npsDetractors = 20;

const npsScore = calculateNPS(npsPromoters, npsPassives, npsDetractors);
console.log(`NPS: ${npsScore.toFixed(0)}`); // Output: NPS: 40
Enter fullscreen mode Exit fullscreen mode

Marketing is Just Another System to Optimize

By treating marketing as a data-driven system and tracking these seven KPIs, you can demystify the process. You can pinpoint bottlenecks in your funnel, make smarter investments, and build a predictable engine for growth. Stop guessing and start measuring. The health of your business depends on it.

Originally published at https://getmichaelai.com/blog/measuring-what-matters-7-key-b2b-marketing-kpis-to-track-for

Top comments (0)