Contractor Markup and Profit Margin Calculator
ANA›Life Services Authority›National Calculator Authority›Contractor Markup and Profit Margin Calculator
.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }
Contractor Markup and Profit Margin Calculator
Calculate your markup percentage, profit margin, and selling price based on your total job costs and desired profit. Understand the difference between markup (based on cost) and margin (based on revenue).
Total Job Cost ($)
All direct costs: labor, materials, subcontractors, equipment
Overhead Rate (%)
Overhead as a percentage of direct job cost (office, insurance, vehicles, etc.)
Calculate By
Desired Markup % Desired Profit Margin % Known Selling Price
Desired Markup (%)
Profit as a percentage of total cost (cost-based)
Desired Profit Margin (%)
Profit as a percentage of selling price (revenue-based)
Selling Price / Bid Amount ($)
The price you charge the client
Calculate
### Results
Direct Job Cost— Overhead Amount— Total Cost (with Overhead)— Profit Amount— Selling Price / Bid Amount— Markup Percentage— Profit Margin Percentage— Overhead Rate Applied—
function conToggleMode() { var mode = document.getElementById('con-calc-mode').value; document.getElementById('con-markup-group').style.display = (mode === 'markup') ? '' : 'none'; document.getElementById('con-margin-group').style.display = (mode === 'margin') ? '' : 'none'; document.getElementById('con-price-group').style.display = (mode === 'price') ? '' : 'none'; }
function conFmt(n) { return '$' + n.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); } function conFmtPct(n) { return n.toFixed(2) + '%'; }
function conShowError(msg) { var errEl = document.getElementById('con-error'); errEl.textContent = msg; errEl.style.display = ''; document.getElementById('con-result').style.display = ''; }
function conClearError() { document.getElementById('con-error').style.display = 'none'; }
function conCalc() { conClearError();
var directCost = parseFloat(document.getElementById('con-cost').value); var overheadRate = parseFloat(document.getElementById('con-overhead').value); var mode = document.getElementById('con-calc-mode').value;
// --- Validation --- if (isNaN(directCost) || directCost 100) { conShowError('Please enter a valid Overhead Rate between 0 and 100%.'); return; } if (directCost === 0) { conShowError('Total Job Cost cannot be zero.'); return; }
// --- Core Calculations --- // Total cost = direct cost + overhead // overheadRate is expressed as % of direct cost var overheadAmt = directCost * (overheadRate / 100); var totalCost = directCost + overheadAmt;
var sellingPrice, profitAmt, markupPct, marginPct;
if (mode === 'markup') { var markupInput = parseFloat(document.getElementById('con-markup').value); if (isNaN(markupInput) || markupInput = 100) { conShowError('Please enter a valid Profit Margin % between 0 and 99.99%.'); return; } // Selling Price = Total Cost / (1 - Margin% / 100) marginPct = marginInput; sellingPrice = totalCost / (1 - marginPct / 100); profitAmt = sellingPrice - totalCost; // Markup = Profit / Total Cost × 100 markupPct = (profitAmt / totalCost) * 100;
} else { // mode === 'price' var priceInput = parseFloat(document.getElementById('con-price-input').value); if (isNaN(priceInput) || priceInput
#### Formulas Used
Overhead Amount = Direct Job Cost × (Overhead Rate ÷ 100)
Total Cost = Direct Job Cost + Overhead Amount
From Markup %: Selling Price = Total Cost × (1 + Markup% ÷ 100) Profit Margin % = (Profit ÷ Selling Price) × 100
From Profit Margin %: Selling Price = Total Cost ÷ (1 − Margin% ÷ 100) Markup % = (Profit ÷ Total Cost) × 100
From Known Selling Price: Profit = Selling Price − Total Cost Markup % = (Profit ÷ Total Cost) × 100 Margin % = (Profit ÷ Selling Price) × 100
Key distinction: Markup is profit as a % of cost; Margin is profit as a % of revenue. A 20% markup equals a 16.67% margin.
#### Assumptions & References
- Reference: Construction Financial Management Association (CFMA) — Financial Survey of the Construction Industry.
More Calculators
- West Virginia Heating Degree Days Calculator — Estimate seasonal heating demand based on WV regional climate data
- Humidity and Ventilation Load Calculator — Account for WV's variable humidity levels in HVAC system sizing
- Insulation R-Value Calculator
- Insurance Premium Estimator
- Deductible vs Premium Calculator
- Insurance Coverage Needs Estimator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...