Contractor Markup and Profit Margin Calculator

ANALife Services AuthorityNational 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

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References