Understanding Markup: Category Markup, Overhead, and Profit
This article explains the concepts behind the markup you apply to a bid in Stimaro: what direct cost is, why markup exists, the difference between category markup, overhead, and profit, and how they combine to turn your cost into a price. For the step-by-step of where to set these in the app, see Applying markup to your bid.
The core idea: cost is not price
Every bid answers two different questions. The first is what will this job cost me to build? The second is what will I charge the customer to do it? The gap between those two numbers is where your business lives.
That gap isn't padding. It covers the real costs that don't show up on any single line item, plus the profit that keeps your company alive. Markup is how you build that gap deliberately instead of guessing at it.
Direct cost: the foundation
Your direct cost is the sum of everything that goes directly into the work — the labor, equipment, materials, and subcontractors tied to specific items in your estimate. In Stimaro, this is what you build up when you add resources to your items: a crew here, a crane there, the steel and the concrete.
Direct cost is the honest, bottom-up number. It's what the job actually consumes. But if you bid at direct cost, you go out of business — because direct cost doesn't include the cost of running a company or any profit.
Category markup: adjusting by cost type
Category markup lets you apply a different percentage to each type of direct cost — labor, equipment, rental, material, subcontract, and other.
Why would you mark these up differently? Because they carry different risk and different handling cost:
- Labor is often marked up more because it's where the most risk lives — productivity varies, weather affects it, and people are unpredictable.
- Materials might carry a lower markup because they're more predictable, but you may add a percentage to cover handling, waste, and the cost of fronting the money before you're paid.
- Subcontractors are sometimes marked up modestly to cover the cost of managing them and the risk that their work affects yours.
Category markup is the tool for saying "labor is riskier than material, so I'll protect myself more on labor." A flat markup across everything can't make that distinction; category markup can.
Overhead: the cost of being in business
Overhead is everything it costs to run your company that isn't tied to any single job. Your office, your insurance, your accounting, your estimator's salary, your trucks sitting in the yard between jobs — none of that shows up as a line item on a bulkhead estimate, but all of it has to be paid for. Overhead markup spreads those costs across the work you bid so each job carries its fair share.
Stimaro separates overhead into two layers, and the distinction matters:
Project overhead is the indirect cost of this specific job — things like the site trailer, the project manager's time, temporary facilities, mobilization that isn't captured elsewhere, project-specific permits and bonds. It exists because of this project and goes away when the project ends.
Corporate overhead is the cost of the company existing at all — the main office, executive salaries, company insurance, marketing, the back-office staff. It exists whether or not you win this particular job, but it still has to be funded, so a share gets allocated to every bid.
Keeping these separate gives you a clearer picture. Project overhead tells you what this job costs to run; corporate overhead tells you what slice of the company's existence this job needs to carry. Lumping them together hides which is which.
Profit: what the business earns
Profit is what's left for the company after every cost — direct and indirect — is covered. It's not a dirty word and it's not optional. Profit is what funds growth, absorbs the jobs that go wrong, rewards the risk you take by signing a fixed-price contract, and ultimately is the reason the business exists.
Profit is applied as a percentage near the end of the calculation, on top of your costs and overhead. Setting it is a judgment call: too high and you lose competitive bids, too low and you work hard for nothing. The right number depends on your market, your risk on the specific job, how badly you want the work, and how much competition you're facing.
How it all stacks up
Stimaro applies these layers in a defined order, each building on the last:
- Direct cost — your bottom-up built-up costs
- Category markup — applied to each cost type
- Direct cost markup — a shared markup across the bid
- Project overhead — the indirect cost of this job
- Corporate overhead — this job's share of running the company
- Profit — what the company earns
- Bond premium — the cost of bonding, if the job requires it
- Final bid — the number you submit
Each layer is a percentage applied on top of the running total beneath it. The reason the order matters is that a percentage applied later is calculated on a larger base — profit applied after overhead earns on the overhead-loaded number, not just on direct cost. Stimaro handles this cascade for you; understanding it lets you set each layer intentionally rather than guessing at one big markup number.
Why separate layers beat one big markup
You could, in theory, take your direct cost and multiply by one number to get your bid. Plenty of contractors do exactly that, carrying a "I add 30% and hope" rule of thumb in their head.
The problem is that one number hides everything. When you win or lose a bid, you can't tell whether your labor markup was wrong, your overhead allocation was off, or your profit was too thin. When costs change, you can't adjust the right lever. And when a customer pushes back on price, you can't see where you actually have room.
Breaking markup into category, overhead, and profit layers turns a guess into a structure. You can see exactly what each layer contributes, adjust the right one when something changes, and defend your number when it matters. That's the difference between an estimate you can stand behind and one you're hoping is close.