TL;DR
- A profit leak is revenue that looks healthy on the top line but loses contribution margin after variable costs.
- The 6 most common leaks: unprofitable ad channels, low-margin SKUs, CAC that never pays back, hidden fulfillment fees, discount drift, and over-serviced accounts.
- Profit leak detection requires 4 connected data sources: revenue, cost, ad spend, and pipeline.
- Run a weekly 6-step audit: normalize revenue, allocate variable costs, compute contribution margin by slice, rank leaks, isolate drivers, assign fixes.
- Fairview recovers an average of 23% of leaking margin in the first 90 days by connecting the 4 sources and flagging drift automatically.
Profit leak detection is how B2B operators find the channels, SKUs, and campaigns that destroy contribution margin even while top-line revenue looks fine. It turns a vague "we’re less profitable this quarter" into a named, quantified leak you can fix this week.
Most operators can quote last month’s revenue from memory. Very few can name the three campaigns, two SKUs, or one customer segment that drained the most margin. That gap is the problem, and it compounds silently. A 3% margin slip on your largest ad channel in January becomes a 9% hit by March if nobody catches it.
This guide gives you the framework, the math, the data plumbing, and the cadence. If you want the shortcut: the operating view does this work automatically across your stack.
What is a profit leak?
Definition
Profit leak: a slice of revenue (a channel, campaign, SKU, or customer segment) that earns a contribution margin below your business-wide threshold, so every additional dollar of that revenue destroys operating profit rather than funding it.
The trap is that profit leaks hide inside aggregate numbers. Your overall 34% gross margin looks stable. Underneath it, paid search runs at 8% while organic runs at 52%. The aggregate tells you nothing actionable. Profit leak detection forces the slices to the surface.
Three forces make leaks worse in 2026 than in 2020: rising paid-media CPMs, shorter payment processor margins on smaller orders, and a steady mix shift toward discount-driven sales. None of these show up on a revenue chart. All of them erode contribution margin.
Key insight
Revenue tells you what came in. Contribution margin tells you what you kept. Every operating decision — pricing, budget, hiring, discounting — should be anchored to the second number.
Why revenue growth hides margin erosion
Growth masks leaks in three specific ways. First, new revenue drowns out the comparison signal: if you grew 22% year over year, a channel quietly falling from 18% to 9% margin will not move the aggregate. Second, finance reports on a lag. By the time the P&L closes, the leak has run for 30 to 45 days. Third, ad platforms report their own ROAS, which never subtracts COGS, shipping, fees, or returns.
The result: companies hit their revenue plan and miss their margin plan. That is the pattern. If you have ever watched a quarter where the top line came in on target and EBITDA came in 20% light, a profit leak was running the whole time.
The 6 most common profit leaks
In operator audits across B2B SaaS and commerce-led businesses, six leak patterns account for roughly 85% of recovered margin. Run through all six every quarter.
1. Unprofitable ad channels (masked by platform ROAS)
Google Ads reports a 4.2x ROAS on your top campaign. The platform number uses gross revenue and ad spend only. Subtract COGS, shipping, payment processing at roughly 2.9% + $0.30 per transaction per Stripe’s public pricing, and returns, and that 4.2x routinely drops to 1.1x, below break-even once you load in overhead.
The fix: compute true ROAS weekly for every channel. Any channel whose contribution margin falls below your business-wide threshold gets reviewed or cut within the same week.
2. High-revenue, low-margin SKUs
Your bestseller is often your worst margin. Heavy items, products with frequent support tickets, and bundles that trigger free shipping all earn top-line dollars while burning contribution.
The fix: rank SKUs by contribution margin, not revenue. The full calculation lives in gross margin by product line. Reallocate ad spend toward the top decile.
3. CAC that never pays back
A $210 CAC on a SaaS account with a $49/month plan and 14-month median lifespan returns $686 in revenue, but maybe $380 in contribution margin after hosting, support, and payment fees. That is technically profitable. Shorten lifespan to 9 months and it flips to a loss.
The fix: calculate CAC payback period in margin terms, not revenue. If payback exceeds 18 months for SaaS or 6 months for non-subscription, the channel needs either a higher AOV or a lower CAC.
4. Hidden fulfillment and processing fees
Cross-border shipping surcharges, oversize fees, address corrections, chargebacks, foreign-exchange spreads, and tiered processor rates quietly add 1.5–4% to variable cost on orders that trigger them. They rarely appear on a channel-level margin view because they sit in a single "fulfillment" cost bucket.
The fix: attribute fulfillment and processing costs at the order level, then roll up by channel, country, and SKU. Drift shows up fast.
5. Discount and refund drift
Discount codes compound silently. A 10% code that 22% of customers use equals a 2.2% revenue haircut, but it lands entirely on contribution margin since variable costs do not shrink. Refund rates behave the same way.
The fix: track discount and refund share of GMV weekly. Set alert thresholds (discount share >15%, refund rate >6%) and trigger a review when breached.
6. Over-serviced unprofitable accounts
In B2B, the bottom quartile of accounts by ARR often consumes the top quartile of CS hours. You are subsidizing them with margin from your best customers.
The fix: run a quarterly customer-cost-to-serve review. Tier service by contribution margin, not account size. Migrate the bottom tier to self-serve tooling or reprice.
The four data sources you need
Profit leak detection is structurally simple: one margin model, four data feeds. If any feed is missing, you can still run the audit on the slice it covers, but you cannot compute true contribution margin end-to-end.
| Source | Typical tool | What you extract |
|---|---|---|
| Revenue | Stripe, Shopify, billing | Orders, line items, customer IDs, refunds |
| Cost | QuickBooks, Xero, NetSuite | COGS, operating expenses, vendor bills |
| Ad spend | Google Ads, Meta Ads | Spend by campaign, channel, geography |
| Pipeline | HubSpot, Salesforce, Pipedrive | Deals, stages, close dates, owner |
Without all four, you are running partial audits. A lot of operators start with revenue + ad spend (they answer the true-ROAS question) and add cost and pipeline data in month two.
A 6-step profit leak detection framework
Run this every Monday. Allocate 45 minutes. Once the four sources are connected, the work is reading outputs, not building them.
- Normalize revenue. Align revenue from Stripe or Shopify to closed-won deals in CRM. Reconcile currency, refund timing, and revenue recognition policy.
- Allocate variable costs. Push COGS to SKU, ad spend to channel and campaign, processing fees to order, fulfillment to order. Every variable cost needs a destination.
- Compute contribution margin by slice. Channel, campaign, SKU, customer segment, geography. Four views, one number each.
- Rank leaks. Sort each slice by absolute margin impact, not percentage. A channel losing $18K at −4% margin is a bigger leak than a SKU losing $2K at −22%.
- Isolate the driver. For each top-ranked leak, ask: cost side or revenue side? Rising CPMs vs. falling conversion rate vs. mix shift vs. discount drift. The driver dictates the fix.
- Assign a fix with a number. "Cut spend on Campaign 14 by $6K next week, expected margin recovery $4.8K." Named owner, named dollar amount, one-week review.
Quote-ready
Profit leak detection only works when it ends with a named fix and a named dollar figure. Analysis without assignment is reporting, not operating.
How often to audit
| Cadence | What to check | Why this cadence |
|---|---|---|
| Weekly | Ad-channel margin, discount share, refund rate | Fast-moving, auction-driven; drift compounds within days |
| Monthly | SKU margin, customer segment margin, fulfillment costs | Mix shifts and vendor pricing move on a monthly cycle |
| Quarterly | Overhead allocation, pricing, cost-to-serve by tier | Structural; requires a real review, not an alert |
How Fairview runs profit leak detection automatically
Fairview connects to HubSpot, Salesforce, Pipedrive, Stripe, QuickBooks, Xero, Shopify, Google Ads, and Meta Ads via native OAuth. First connection lives in under 10 minutes. Once connected, the operating view pulls revenue, cost, and ad spend into one model and calculates contribution margin by channel, campaign, and SKU on a daily cadence.
When a slice drifts (margin drops more than your configured threshold, or a channel falls below break-even) Fairview writes a named next-best action into the Monday report. Not a dashboard to interpret. A sentence: "Google Ads campaign ‘Enterprise-Search-B’ margin fell from 24% to 11% this week. Estimated monthly impact: −$14,200. Recommend 40% spend cut pending review."
Companies using Fairview recover an average of 23% of leaking margin in the first 90 days, mostly from leaks that had been running invisibly for months. See pricing and tiers for the plan that fits your stack.
23%
Avg margin recovered, first 90 days
<10 min
To first connected source
10
Native integrations live today
Key takeaways
- Profit leak detection is the single highest-ROI weekly routine a B2B operator can run.
- Aggregate margin hides the leak. Slice by channel, campaign, SKU, and segment.
- Four connected data sources (revenue, cost, ad spend, pipeline) unlock the full view.
- Cadence matters: weekly for ads and discounts, monthly for SKUs, quarterly for structural costs.
- End every audit with a named fix, a named owner, and an estimated dollar impact.
See where your margin is leaking this week.
Connect HubSpot, Stripe, and Google Ads in under 10 minutes. Fairview returns your first ranked leak list on day one. 14-day trial, no card required.
Frequently asked questions
Profit leak detection is the process of identifying revenue streams, channels, SKUs, or campaigns that look healthy on the top line but destroy contribution margin after variable costs. Operators run it by connecting revenue, cost, and ad-spend data into a single model, then ranking every slice of the business by contribution margin rather than revenue.
Take revenue from the channel, subtract cost of goods sold, subtract ad spend attributed to that channel, subtract payment processing and fulfillment costs, then divide by revenue. The result is the contribution margin percentage. Any channel below your business-wide margin threshold is a candidate profit leak worth reviewing that week.
Revenue growth without profit growth usually means variable costs are scaling faster than output. Common causes are rising CPMs on paid channels, discount drift, a mix shift toward low-margin SKUs, or customer acquisition costs that outpace first-order margin. Profit leak detection isolates which factor is driving the gap.
Weekly for ad-channel margin and discount drift, monthly for SKU and customer-segment margin, quarterly for overhead allocation and pricing. Small drifts compound fast. A 3% ad-channel margin slip caught in week one costs far less than the same slip caught in quarter three.
Yes. The detection work is structural, not technical. You need four connected data sources (CRM, finance, e-commerce, ads) and one margin model. Operating intelligence platforms like Fairview assemble the model automatically, so a single operator can run a weekly profit leak audit without SQL or a data engineer.
Gross margin subtracts cost of goods sold from revenue. Contribution margin goes further. It also subtracts variable selling costs like ad spend, shipping, payment processing, and fulfillment. For profit leak detection, contribution margin is the right number because it isolates the profit each incremental sale actually contributes.