Updated Jun 5, 2026 Reviewed by Opora Editorial Team Editorial standards →

Ask ten BSC operators what margin their chemical costs are "at" and several will say "40%." Ask how they calculated it and some will say they added 40% to cost — which is a 40% markup but only a 28.6% gross margin. Others will say they calculated margin on the selling price — which is a 40% gross margin requiring a 66.7% markup. These are not equivalent, and the 11-percentage-point difference between them, applied across $200,000 in annual chemical spend, is $22,000 in revenue that either exists or doesn't depending on which definition was used. Markup is calculated on cost; gross margin is calculated on revenue. The confusion between them is one of the most common and consequential financial errors in BSC bid management.

Why it matters for building service contractors

The mathematical relationship between markup and gross margin is fixed:

Markup % = (Selling Price − Cost) ÷ Cost × 100
Gross Margin % = (Selling Price − Cost) ÷ Selling Price × 100

Conversion table for common BSC target margins:

Target Gross Margin Required Markup on Cost Revenue on $100 Direct Cost
25% 33.3% $133.33
30% 42.9% $142.86
35% 53.8% $153.85
40% 66.7% $166.67
45% 81.8% $181.82

A BSC targeting 35% gross margin who uses a 35% markup on direct costs is setting prices 8.5% below the target margin — receiving $135 instead of $153.85 for every $100 of direct cost. On a $1.2 million annual revenue portfolio, this error represents approximately $100,000 in revenue shortfall relative to the target margin. The error is usually invisible in the bid tool because the operator's pricing spreadsheet is calculating markup and labeling it as margin — a single formula error that compounds across every account priced with the same tool.

For BSC chemical cost markups specifically, the industry convention for materials-and-supply pricing runs 15–25% gross margin (not markup) on direct chemical and supply cost billed through to clients. IRS Publication 535 governs cost deductibility principles that underlie the cost calculation; direct material costs must be documented as actual purchase costs, not estimated, when markup is applied for client billing under time-and-materials or cost-plus contract structures.

How it's used in commercial cleaning

Markup appears in three BSC financial contexts:

  1. Chemical and supply markup in bids: Direct chemical cost (as purchased from distributor) × (1 + markup percentage) = billed or priced chemical cost. For a BSC applying 25% gross margin to chemicals: if distributor cost is $500/month, the priced chemical line is $500 ÷ (1 − 0.25) = $667/month — not $500 × 1.25 = $625, which would yield only 20% gross margin.
  2. Bid total price markup: Some BSCs add a final overhead-and-profit markup to total direct cost (labor burden + materials + direct subcontracting). This markup must be expressed as a gross margin percentage — e.g., "we need 35% gross margin on all accounts" — and applied correctly using the margin-to-markup conversion table above.
  3. Account profitability review: Comparing actual gross margin per account against the target reveals whether markup was applied correctly at bid. Actual GM = (Revenue − Direct Cost) ÷ Revenue; compare to the target. If actual GM is consistently 5–8 points below target, the markup calculation error is the likely culprit.

Common variations and related concepts

Contribution margin differs from gross margin in that it subtracts only variable costs from revenue — direct labor, direct chemicals, direct subcontracting — but does not allocate fixed overhead. Gross margin subtracts all direct costs including fixed-overhead allocations per account. A BSC doing contribution margin analysis may show 50% CM per account while actual gross margin (after overhead allocation) is 30% — both are valid metrics measuring different things. Use the same metric consistently within any single analysis; mixing contribution margin with gross margin benchmarks in the same profitability review produces incorrect conclusions.

Pitfalls and best practices

Audit your bid spreadsheet template for the markup vs. margin error before using it for any future bids. Find the cell where you enter your target profitability percentage and trace the formula that uses it. If the formula is =Cost × (1 + Target%), it is calculating markup. If it is =Cost ÷ (1 − Target%), it is calculating margin. Your entire bid history priced with the wrong formula has a systematic error that can be quantified and corrected for future renewals. A five-minute audit of one spreadsheet formula is the highest-leverage financial review a BSC can do in a single working hour.

Related Opora guides

Primary sources

Last updated: 2026

← Back to Bidding Glossary · All glossary categories