Contractor Markup Decoder
Find out what your contractor’s quote is actually made of — materials, labor, overhead, and how much they’re keeping for profit.
Leave blank to use industry averages for your project type.
What You Actually Enter — and Why Two Fields Are Enough
The Decoder needs two things: the total quote amount and the project type. When you select a project type, the calculator loads a benchmark profile built specifically for that category. Roofing has a different cost structure than basement finishing — materials take up a larger share of a roofing job, while labor dominates an electrical project. The Decoder knows this and applies different expected ranges for each. If you know the breakdown your contractor used — the percentage split between materials, labor, and overhead — you can enter those too. If you don’t, the calculator uses the industry average proportions for your selected project type.
The Material Quality selector shifts those ranges. Choosing Premium widens the acceptable markup band by 25%, because higher-end work carries more coordination overhead and supplier cost. Choosing Economy tightens it. The same $40,000 quote is analyzed differently depending on whether you’re expecting budget tile or custom cabinetry — and the Decoder reflects that difference in every output it produces.
How the Quote Transparency Score Is Built
After you submit, the Transparency Score is the first number you see. It runs from 0 to 100, and it’s built from four independent comparisons — one for each cost component. Materials, labor, overhead, and contractor profit are each scored separately, then combined. A quote where every component sits near its benchmark scores in the 80s or 90s. A quote with one component far above normal scores lower but may still be explainable. A quote where multiple components are simultaneously elevated tends to score below 55, which is where the Decoder recommends getting a second opinion before signing.
The markup component is weighted more heavily than the others in the final score. Contractor profit is the most discretionary item in any quote — it doesn’t reflect material costs or crew size, only what the contractor decides to charge above their direct costs. When it’s elevated, the Decoder treats that as a stronger signal than elevated overhead or slightly above-average labor.
What the X-Ray Breakdown Shows That the Score Doesn’t
The Transparency Score tells you the conclusion. The X-Ray Quote Breakdown shows you why. After the score loads, the X-Ray lays out four horizontal bars — one each for materials, labor, overhead, and contractor profit. Each bar represents that component’s share of your total quote. A white vertical line inside each bar marks the benchmark position. If your bar stops before the line, that component is below typical. If it extends well past, the zone turns yellow or red.
The value of seeing all four bars at once is that a quote can look fine in aggregate while hiding an imbalance in one component. A contractor who prices materials at market rate but inflates overhead significantly can produce a quote that feels reasonable — until the X-Ray separates the layers. Red bars pulse lightly to draw attention to the specific components that need a conversation, not the ones that are fine.
Why the Markup Thermometer Uses a Needle
The thermometer’s needle marks your contractor’s actual profit percentage on a vertical scale that runs from near-zero to 50%. The colored fill below the needle shows how that percentage sits relative to the full range. Both change color together — green if the markup is within 8% of the benchmark, yellow up to 20% above, red beyond that. Next to the thermometer, five data points translate the percentage into dollars: the actual markup amount, the benchmark markup amount, and the gap between them. That gap becomes the upper bound for the Negotiation Savings Simulator.
How the Negotiation Savings Simulator Produces Real Numbers
The simulator takes the gap between your contractor’s markup and the benchmark markup, then lets you model partial reductions. Moving the slider to 50% means you’re negotiating away half of the excess markup. The dollar figure updates immediately. If the gap is $4,200 and you set the slider to 40%, the Decoder shows $1,680 in potential savings — not as a guarantee, but as a specific number to anchor the conversation. If your contractor’s markup is already at or below benchmark, the simulator says so directly and shows $0.
Why the Questions Are Different Every Time
The generator reads which components triggered warnings and writes questions that target those components directly. If materials are elevated, the questions ask about supplier pricing and whether invoices can be shared. If labor is the issue, the questions focus on crew size, hours, and hourly rate. If markup is the primary flag, the question names the deviation from benchmark and asks for an explanation. A quote where everything scores green still generates questions — but those focus on warranty scope and fixed versus estimated line items rather than challenging specific numbers.
Why a High Markup Isn’t Always a Red Flag
The Decoder doesn’t flag every above-average quote as a problem. Premium projects genuinely cost more to coordinate. The Material Quality selector adjusts the benchmark accordingly. A 28% markup on a Premium kitchen remodel sits in the yellow zone, not red, because the acceptable range is wider. A 28% markup on a standard painting job sits in red because painting benchmarks are tighter. When a component turns yellow, the Decoder gives the contractor room to explain before drawing a conclusion. Yellow means ask. Red means ask and consider a second quote.
What to Do After You See the Results
Copy the questions. Send them. A contractor who answers with specifics — hour counts, supplier names, overhead line items — is giving you the information you need to make a confident decision. One who answers vaguely or becomes defensive is also giving you information, just of a different kind. If the Transparency Score is below 60, requesting a second quote is a reasonable step, not an accusation.