“How is the business performing overall?” is not the same question as “which parts of this business are worth growing?”. The first question can have a genuinely positive answer while the second one quietly points somewhere uncomfortable. Most agencies and online courses businesses are reporting at exactly the level of detail that keeps this distinction invisible.
This is not a bookkeeping failure, it is a reporting structure problem. We see this across agencies at the $2M–$20M mark
Why a Healthy Blended Margin Can Mask a Structural Problem
Consider a situation that is more common than it should be at this revenue level.

*Blended vs segmented gross margin comparison table showing agency margins by service line
An agency owner had a gross margin she was broadly comfortable with, 54%, sitting in a range that made sense for her business type. During a review, that margin was broken out by the client channel for the first time. One channel was running at 35%. Because it had always been folded into the company-wide figure, it had never triggered a concern. It had been diluting the profitable work for at least two years without anyone registering it as a problem.
This is the specific mechanism by which otherwise-careful owners stay in the dark. The number is real. The average is mathematically accurate. But it answers the wrong question, and so the business keeps investing in growth without knowing which parts of that growth are actually worth funding.
“I knew our margins were a bit compressed, but I assumed it was a pricing issue across the board. We had no idea one channel was dragging everything down.”
The issue is not that the 54% was wrong. The issue is that a company-wide average is the right answer to the wrong question. Once you are past the earliest stage of building a business, aggregate margin tells you less and less about what decisions to make. It tells you how the portfolio looked, on average, across a period. It does not tell you where to hire, where to price differently, or where to stop investing delivery capacity.
The Real Question: What Level of Granularity Is Actually Appropriate?
There is no universal answer here, and that is worth stating clearly before anything else.
You do not need a full P&L for every sub-package or service variant. The goal is not to generate more reporting for its own sake. The goal is to have the right groups, the right segments, the right breakdown for your specific business, granular enough to reveal meaningful differences, consolidated enough to actually be maintained.
A reasonable starting principle: any revenue stream that accounts for more than 10–15% of total revenue deserves its own revenue line and its own cost of sales line.
If a channel or service type is sitting below 10% of revenue, the impact on the overall business is probably not large enough to justify carving it out separately. You can carry it inside a broader category without losing much insight. But once something crosses that threshold and represents a meaningful portion of what your business does, blending it into an average actively obscures the information you need.
This applies across different business types. For a digital agency running SEO, paid media, and web development, those are likely three structurally different cost profiles and should be tracked separately. For an online course business with multiple programs generating meaningfully different revenue contributions, the same logic holds. The principle travels even when the specifics differ.
What it looks like in practice is a P&L structure with two or three service or channel categories, each with their own revenue and cost of sales lines, feeding into a single blended gross margin at the bottom. That blended number is still useful because it tells you how the business is performing in aggregate. But it sits alongside the segmented view, not instead of it.
Cost Allocation: Why This Is Where the Analysis Either Works or Doesn’t
Getting the revenue breakdown right is the easier half of this problem.
The harder part is allocating cost of sales accurately enough that the resulting margin figures actually mean something. An agency can have a well-structured P&L with four service lines clearly delineated, and still end up with meaningless margin figures per line if the delivery costs are being distributed arbitrarily.
The most common cost to get wrong here is team time. If your delivery team’s hours are not allocated to clients, projects, or service lines with reasonable accuracy, then any gross margin you calculate at the segment level is partly fiction. You are mixing known revenue with estimated or misattributed cost, and the number that results cannot be fully trusted.

*Healthy vs unhealthy allocated hours ranges for cost allocation accuracy
Healthy time-tracking typically leaves no more than 10–15% of hours unallocated. These are administrative time, internal meetings, genuine overhead that has no natural home in a client or project code. When that figure climbs above 20–25%, the departmental margins start to degrade in reliability, not just in size. The question stops being “which channel is underperforming?” and becomes “do we actually know?”
The goal is not a law firm model where every six minutes is logged to a matter code. It is not that level of precision, and it is not worth building the culture of overhead that comes with it. But there is a large gap between that and a delivery team where no one tracks time at all, and most agencies are operating somewhere in that gap without a clear view of how far from useful their allocation data actually is.
For businesses where time tracking is genuinely impractical such as online course businesses, there are other allocation methods. You can trace software costs to specific courses, attribute advertising spend directly to each program, or measure contribution margin by course or product line. The method matters less than the rigour. The question to ask is whether the cost allocation you are using reflects the real economic relationship between the cost and the revenue it supports, or whether it is a distribution that happens to be easy to calculate.
Different Services Should Have Different Margin Targets
Once you have the segmented view in place, there is a further step that most businesses skip: setting different gross margin targets for different service lines, rather than holding the whole business to a single benchmark.
This matters because different types of courses naturally produce different margins. A premium flagship program with live coaching should carry a higher gross margin than a lower-priced, self-paced course designed for volume. That is not a problem because it is exactly how the pricing is supposed to work. But if you are measuring both against the same target, you will either under-pressure the lower-margin work or create a false sense that the higher-margin work is over-performing.
For digital agencies specifically, the structural differences are significant. SEO and content work tends to be time-intensive and margin-sensitive to utilisation. Paid media management often involves pass-through ad spend that inflates the revenue base without proportionally contributing to margin, which means revenue-based overhead allocation can make it look artificially unprofitable. Web development and project-based work has its own cost rhythm. Heavy costs front-load into scoping and delivery, and accurate estimating and selling drive the margin.
Each of those deserves a target that reflects its own economics, not a single agency-wide number that blends them all.
A practical way to think about it: if your highest-value, most premium service is running a lower gross margin than your entry-level offering, something is almost certainly wrong. The problem likely lies in how you’re pricing the premium service, allocating its costs, or managing its delivery. That is not a signal you would catch with a blended margin. It only becomes visible once you have separate targets to compare against.
Practical Next Steps
1. Map your revenue to segments above the 10–15% threshold. List every service line, client channel, or product category that represents more than 10% of total revenue. These are the segments that need their own revenue and cost of sales lines in your P&L. Anything below that threshold can sit in a consolidated category for now.
2. Audit your cost allocation method. For each segment identified above, ask: do we actually know what it costs to deliver this? If you use time tracking, check what percentage of hours are currently unallocated. If you use another method, ask whether it reflects the real economic relationship between the cost and the revenue.
3. Calculate gross margin per segment for the last 12 months. Even a rough version is more useful than the blended number. Use whatever cost allocation you have. Note where it is approximate, and treat the output as directional rather than definitive while you improve the data quality.
4. Set a gross margin target per segment. Each line should have its own target, based on the service’s nature and how you price it. If you are not sure what target is appropriate, the benchmark question to start with is: what margin would this service need to carry its share of overhead and still contribute meaningfully to net profit?
5. Review the segmented view on a monthly basis. A blended margin you look at monthly is less useful than a segmented view you look at quarterly. Once you have the structure in place, build it into your regular reporting cadence so that the insight is available before a two-year drift has already happened.
FAQs:
Want this kind of clarity in your own agency? See how our fractional CFO for agencies works.
