Contribution margin by service line tells you how much each part of the business adds toward overhead and profit after paying for its own direct costs. Revenue minus direct materials, subcontractors, direct expenses and the fully loaded cost of the hours that line consumes equals its contribution. Totals hide the answer; the split by line shows it. In the financial clarity work we do with owner-led companies, it is common to find one line that loses money before a single dollar of rent or management salary is counted.
This guide uses a hypothetical 30-person commercial services company with three lines of work. The numbers are illustrative and internally consistent so you can check each step. Your bookkeeper or CPA confirms the payroll burden and any accounting treatment; this is a management analysis, not an accounting or tax opinion.
Why the total margin misleads
A company earning a 5% operating profit can contain one line earning 34%, another earning 23% and a third losing money. The blended number looks acceptable, so no one asks the question. Meanwhile the losing line takes scheduling attention, vehicle time and the owner's evenings.
Three habits keep the problem hidden: labour costed at base wage instead of loaded cost, travel and admin time left out of the hours a line uses, and overhead spread evenly so that every line looks roughly the same.
Step 1: build a loaded labour cost per billable hour
The loaded rate is what an hour of your people actually costs, divided by the hours you can bill.
- Start with the average base wage for the people who do the work. In the example, $32.00 an hour.
- Add the payroll burden. Employer CPP and EI, vacation pay, workers' compensation premiums and benefits. We use 18% as a placeholder for illustration: $32.00 × 1.18 = $37.76 per paid hour. Confirm your real percentage with your bookkeeper.
- Adjust for paid but unbillable hours. Training, travel between sites, meetings, waiting, statutory holidays. If 80% of paid hours are billable, the cost per billable hour is $37.76 ÷ 0.80 = $47.20.
That $47.20 is the figure to use when costing a line's hours. Owners who cost labour at $32.00 understate it by almost a third.
Step 2: assign every direct cost to a line
Direct costs are the ones that would disappear if the line stopped. For each line, collect:
- Labour hours from timesheets or job records, including travel and setup time for that line's work
- Materials and parts used on that line's jobs
- Subcontractors hired for that line
- Other direct expenses such as vehicle running costs, equipment rental or permits tied to that line's jobs
Leave out rent, management salaries, the accounting system and general insurance. They are overhead, handled in step 4.
Step 3: the worked example
The hypothetical company bills $2.8 million a year across three lines: contract maintenance, project work and small rush jobs. Overhead (rent, office staff, management, software, insurance) totals $560,000.
| Contract maintenance | Project work | Small rush jobs | Total | |
|---|---|---|---|---|
| Revenue | 1,400,000 | 1,100,000 | 300,000 | 2,800,000 |
| Billable hours | 15,000 | 9,000 | 5,200 | 29,200 |
| Labour at $47.20 | 708,000 | 424,800 | 245,440 | 1,378,240 |
| Materials | 140,000 | 330,000 | 45,000 | 515,000 |
| Subcontractors and other direct | 70,000 | 90,000 | 30,000 | 190,000 |
| Total direct cost | 918,000 | 844,800 | 320,440 | 2,083,240 |
| Contribution | 482,000 | 255,200 | −20,440 | 716,760 |
| Contribution margin | 34.4% | 23.2% | −6.8% | 25.6% |
Check the arithmetic: 15,000 × $47.20 = $708,000; $1,400,000 − $918,000 = $482,000; $482,000 ÷ $1,400,000 = 34.4%. Total contribution of $716,760 minus $560,000 overhead leaves an operating profit of $156,760, or 5.6% of revenue.
Reading the result
Small rush jobs bring in $300,000 but cost $320,440 to deliver. Revenue per billable hour is only $57.69 ($300,000 ÷ 5,200), against a labour cost alone of $47.20, leaving $10.49 an hour to cover materials and vehicles, which it does not. The line loses $20,440 before contributing anything to rent or management.
Why does it happen? Short visits with travel at both ends, minimum charges set years ago, and rush scheduling that disrupts the planned work in the other two lines. None of this shows in the company's overall 25.6% figure.
Step 4: add overhead as a second view, carefully
Once contribution is clear, you can allocate overhead to see whether each line covers a fair share. Allocating the $560,000 by revenue (20% of each line's revenue) gives:
- Contract maintenance: $482,000 − $280,000 = $202,000
- Project work: $255,200 − $220,000 = $35,200
- Small rush jobs: −$20,440 − $60,000 = −$80,440
Be cautious with this view. If project work had contributed $180,000 instead, the allocation would show it at −$40,000, and an owner might drop it. But dropping it would remove $180,000 of contribution while most of the overhead stayed. Decide from contribution; use allocation only to ask whether overhead is too high for the business as a whole.
Step 5: choose between repricing, redesigning and dropping
A line with negative contribution has three exits. Work through them in this order.
- Reprice. To reach a 25% contribution margin with the same costs, rush revenue would need to be $320,440 ÷ 0.75 = $427,253, an increase of about 42%. That is a large jump, but rush customers often value speed more than price. The price change guide shows how much volume you could lose and still come out ahead.
- Redesign. A minimum call-out charge, batching rush calls by area and a fixed same-day window might cut hours by 20%, from 5,200 to 4,160. Labour falls to $196,352 (4,160 × $47.20), total direct cost to $271,352, and contribution rises to $28,648, or 9.5%. Combine that with a modest price increase and the line becomes worth keeping.
- Drop. If neither works, stopping the line adds $20,440 to profit immediately, and often more, because the freed hours can go to contract maintenance at a 34.4% margin. Check first whether rush customers also buy maintenance contracts; losing them could cost more than the line itself.
Most companies end up combining the first two. Dropping is right less often than owners expect, but it should always be on the table.
Running the same analysis by customer
The method works unchanged when the columns are customers instead of service lines. Take your 20 largest accounts by revenue, assign each one its hours, materials and direct expenses, and calculate contribution for each.
The pattern we see most often is a large account that negotiated a lower rate years ago, asks for frequent small changes and pays slowly. Its revenue makes it look important; its contribution may be the lowest in the list. A customer view also shows which accounts deserve a renewal conversation about scope or price before the next contract term, rather than after.
Common mistakes
- Costing labour at base wage. Leaving out burden and unbillable time understates direct cost by 25% to 40% in many service companies.
- Ignoring travel and setup hours. They belong to the line that causes them.
- Analysing a single month. Seasonal lines look terrible in their quiet months. Use 12 months.
- Deciding from allocated profit. Allocation spreads costs that will not go away; contribution measures what would.
- Treating customers as one group. The same analysis by customer often finds two or three accounts that consume far more hours than they pay for.
A short checklist
- Loaded labour rate calculated, with the burden percentage confirmed by your bookkeeper
- Billable hours split by line, including travel and setup
- Materials, subcontractors and direct expenses tagged by line
- Contribution and contribution margin calculated for each line
- Overhead allocated only as a secondary view
- A decision for every negative line: reprice, redesign or drop
- A date to rerun the analysis after the change
From the analysis to a decision
Margin by line is one of the first analyses in our business diagnostic, because it changes what the company should sell more of. When the losing line is caused by how the work flows, the process mapping guide is the next step, and the growth strategy service turns the results into choices about pricing and segments. If you want the analysis done with your own numbers, see the financial clarity service or call, text or email. A text to (604) 632-4959 naming your three main lines of work is a good way to begin.
Frequently asked questions
What is the difference between gross margin and contribution margin?
Gross margin usually follows your accountant's cost-of-sales definition for the whole company. Contribution margin is a management view by line: revenue minus every cost that line directly causes, including the loaded cost of the hours it uses. It answers the question of what you would lose if that line disappeared.
Should overhead be allocated to each line?
Show contribution first, before any allocation, and make decisions from it. Allocated overhead is useful as a second view of whether a line covers its share, but it can make a line that contributes real dollars look like a loss.
Where do I get the labour burden percentage?
From your bookkeeper or payroll provider. It covers employer CPP and EI contributions, vacation pay, workers' compensation premiums and any benefits. We use 18% below purely as a placeholder; your figure will differ.
How often should margin by line be reviewed?
Quarterly is enough for most companies once the first analysis is done. Review it sooner after a price change, a wage increase or a large new contract.