A job can look busy, move fast, and still leave very little money behind. That usually happens when material prices change, labor runs over, or a small extra task gets handled without being priced. Learning how to track markup by job gives you a clear view of what each project should earn before work starts and what it actually earns when the work is done.

For trade contractors, markup tracking should not mean building a complicated accounting system after hours. It should be part of the way you create quotes, approve change orders, buy materials, and send invoices. The goal is simple: know your cost, apply the right markup, and make sure the final invoice reflects the work you performed.

Markup and Margin Are Not the Same Number

Markup is the amount you add to your cost to set a selling price. Margin is the percentage of the selling price that remains after direct job costs. Contractors often use the terms interchangeably, but mixing them up can lead to underpriced work.

If a water heater and installation labor cost you $1,000 and you apply a 30% markup, your price is $1,300. Your gross profit is $300, but your margin is about 23%, not 30%. If you need a 30% margin, the job needs to sell for about $1,429.

That difference matters when you are covering overhead, paying yourself, and building cash reserves. Decide whether your business sets prices using markup, target margin, or both. Then use the same method consistently across every quote.

Start With the Full Cost of Each Job

You cannot track markup accurately if the cost side of the job is incomplete. The material receipt is only part of the picture. Each job should carry the direct costs required to complete it, including:

  • Materials, equipment rentals, permits, and disposal fees
  • Labor hours, including payroll burden, overtime, and subcontractor costs
  • Delivery charges, fuel, specialty tools, and other job-specific expenses
  • Cost increases caused by rework, scope changes, or return visits

For labor, use a fully loaded hourly cost instead of an employee's base wage. A technician earning $30 per hour costs more once payroll taxes, workers' compensation, benefits, and paid non-billable time are included. If your true labor cost is $42 per hour but you estimate at $30, every labor-heavy job starts with a profit leak.

The right level of detail depends on your operation. A solo electrician may track labor, materials, and permits in three categories. A growing HVAC company may need separate lines for lead technician hours, helper hours, equipment, subcontractors, and rentals. Keep it detailed enough to make decisions, but simple enough that the team will actually use it.

How to Track Markup by Job From Quote to Closeout

The cleanest process begins before you send the quote. Build each estimate from cost inputs, then apply a markup that fits the type of work, risk level, and target profit.

Set a pricing rule before the job is sold

Do not rely on a single markup percentage for every job. A standard service call, a large remodel, and an emergency after-hours repair do not carry the same risk or overhead. Materials that are easy to source may need a different markup than specialty equipment with warranty exposure and price volatility.

Create a baseline pricing rule for common work. For example, you may use one markup for standard materials, a higher markup for small-parts-heavy service work, and a defined labor rate that includes your target profit. The point is not to force every job into one formula. It is to stop making price decisions from memory or gut feel.

Build the quote around real costs

Enter estimated labor hours, material costs, subcontractor charges, and other direct expenses for the specific job. Then compare the sell price to the expected cost before the customer sees the quote.

This is where real-time margin visibility pays off. If a customer asks for a lower price, you can see what that discount does to the job before agreeing to it. You may decide to reduce scope, substitute materials, or hold firm on price. A discount is a business decision, not just a way to win the work.

QuoTrak helps contractors see profit margins while pricing quotes, so cost and selling price stay connected from the first estimate.

Lock the approved quote as your starting point

Once the customer approves, treat the quote as the job's financial baseline. Record the estimated cost, quoted sell price, planned markup, and expected gross profit. This gives you a number to measure against as work moves forward.

If the job changes, do not quietly absorb the difference. Price the added scope and issue a change order before the work is completed whenever possible. A new circuit, upgraded fixture package, extra ductwork, or additional framing is not a minor adjustment if it adds labor and materials.

Update actual costs while work is active

Waiting until the job is complete defeats the purpose of tracking. By then, the extra labor is already spent and the material overage is already paid.

Have the person responsible for the job update actual costs at practical checkpoints: after major materials are purchased, after key labor phases, and when a change order is approved. On shorter service jobs, update costs before the invoice goes out. On longer projects, a weekly review may be enough.

Compare actual cost to estimated cost. If labor is running high, ask why. Was the estimate short? Did the crew hit an access issue? Did the customer add work without authorization? The answer helps you protect the current job and quote the next one more accurately.

Use Job-Level Numbers to Catch Problems Early

A simple job review should answer four questions: What did we expect this job to cost? What has it actually cost so far? What are we still likely to spend? What will the final markup and margin be if nothing changes?

For active work, focus on the forecast, not just the invoices already received. A renovation may look profitable halfway through, but if two days of trim work remain and material lead times are causing rush charges, the final result can change quickly.

Pay close attention to jobs with a lot of unknowns. Older homes, hidden plumbing issues, electrical troubleshooting, and work tied to other trades can all create cost swings. Higher-risk work often needs a stronger markup, clearer exclusions, or a time-and-materials structure. It depends on how much control you have over the scope.

Separate Job Markup From Company Overhead

Job markup needs to produce more than the direct profit on a single project. It also has to contribute to overhead: vehicles, insurance, office support, software, advertising, shop space, and the hours you spend estimating work that does not get sold.

Review completed jobs by type. If your average bathroom remodel has a healthy markup on paper but weak net profit for the quarter, the problem may be that your pricing rule is not carrying enough overhead. If one technician's service work consistently outperforms estimates, look at what is working and use it to improve your standards.

This is also why low-markup jobs can be risky even when they keep the crew busy. Revenue without enough contribution to overhead creates activity, not a stronger business.

Close the Job With a Final Profit Check

Before invoicing, confirm that all labor, materials, permits, change orders, deposits, and progress payments are accounted for. Then compare the final selling price against final direct cost.

If the job finished below target, document the reason in plain language. Maybe material pricing changed after the quote, a technician underestimated labor, or the scope was never formally updated. Do not treat that note as blame. Treat it as a pricing adjustment for future work.

If the job beat target, understand that too. You may have found a more efficient installation method, bought materials better, or priced the risk correctly. Those are repeatable lessons worth carrying into the next quote.

Tracking markup by job is not about turning every contractor into an accountant. It is about making sure the work you are already good at produces the profit your business needs. When each quote starts with real costs and each completed job feeds better pricing, you can take on work with more confidence and fewer surprises.