Calculator overview
Inputs and outputs
This summary comes from the calculator's published input and output contract.
Inputs
- Subcontractors
-
When omitted Blank
Default 0 rows
About this input
Optional. One row per subcontracted scope, such as plumbing or electrical: a description and the subcontractor's price to you. Leave the table empty when there is none. Fill rows from the top with no blank row between lines. Under Materials only these lines are not taxed: enter taxable materials a subcontractor supplies as materials lines.
Column Range or allowed values Description Not declared Amount At least 0 - Profit rate (required)
-
Unit % Default 0.15 Range At least 0
About this input
Your profit as a percentage of the direct cost plus overhead. The default 15% is the requirement's worked examples'.
- Tax applies to (required)
-
Default Materials only Allowed Materials only, All
About this input
What the tax rate is charged on. Materials only: the materials total at cost; subcontractor and equipment lines are not taxed, so enter taxable materials a subcontractor supplies as materials lines. All: the whole price before tax, that is the direct cost plus overhead, profit and contingency. Which one applies depends on where the work is done and on the kind of contract.
- Tax rate (required)
-
Unit % Default 0.07 Range At least 0
About this input
The sales tax rate, charged on the base chosen under Tax applies to. The default 7% is the requirement's example figure, not the rate of any place: use the combined rate where the work is done.
- Overhead rate (required)
-
Unit % Default 0.1 Range At least 0
About this input
Your overhead as a percentage of the direct cost: the office, insurance, vehicles and other costs of running the business that no single job carries. The default 10% is the requirement's worked examples'; use the rate from your own books.
- Equipment
-
When omitted Blank
Default 0 rows
About this input
Optional. One row per piece of equipment or rental, such as a dumpster or a lift: a description and its cost to you. Leave the table empty when there is none. Fill rows from the top with no blank row between lines.
Column Range or allowed values Description Not declared Amount At least 0 - Contingency rate (required)
-
Unit % Default 0 Range At least 0
About this input
An allowance for the unforeseen, as a percentage of the direct cost plus overhead plus profit. The default 0% is worked example 11.5.6.4's; the requirement's other examples use 5%.
- Materials (required)
-
Default 1 row
About this input
One row per material or supply the job needs: a description for your own reference and its cost to you before any markup, in your currency. Only the amounts are added. Fill rows from the top with no blank row between lines. A job with no materials enters one line of 0. A takeoff calculator gives quantities, not costs: price them at your supplier's rates and enter the cost here. When the tax applies to materials only, it is charged on this table's total.
Column Range or allowed values Description Not declared Amount At least 0 - Labor (required)
-
Default 1 row
About this input
One row per labor item, such as a crew-day or a trade: a description and its cost to you before markup. Fill rows from the top with no blank row between lines; a job with no labor enters one line of 0.
Column Range or allowed values Description Not declared Amount At least 0
Outputs
- Profit
-
Unit currency
About this output
The profit rate times the direct cost plus overhead.
- Overhead
-
Unit currency
About this output
The overhead rate times the direct cost.
- Model Status
-
No unit declared
About this output
OK, or NOT VALID with the reason; there is no CHECK state, and every figure reads 0 while it is NOT VALID.
- Total price
-
Unit currency
About this output
The price to quote: the direct cost plus overhead, profit, contingency and tax.
- Tax
-
Unit currency
About this output
The tax rate times the materials total (Materials only) or times the whole price before tax (All).
- Subcontractors subtotal
-
Unit currency
About this output
The sum of the subcontractor lines' amounts.
- Materials subtotal
-
Unit currency
About this output
The sum of the materials lines' amounts.
- Equipment subtotal
-
Unit currency
About this output
The sum of the equipment lines' amounts.
- Direct cost
-
Unit currency
About this output
Materials, labor, subcontractors and equipment added together: the job's cost before any markup.
- Contingency
-
Unit currency
About this output
The contingency rate times the direct cost plus overhead plus profit.
- Markup on direct cost, tax included
-
Unit %
About this output
The total price less the direct cost, as a share of the direct cost. As the requirement defines it, the tax and the contingency count as markup, so it is higher than the markup before tax.
- Margin on the total price, tax included
-
Unit %
About this output
The total price less the direct cost, as a share of the total price. The tax and the contingency count toward it, as for the markup.
- Labor subtotal
-
Unit currency
About this output
The sum of the labor lines' amounts.
LogicCommons is in beta. If a result, label, or reference looks wrong, tell us here; we read every message.
Methodology
Purpose and model boundary
This calculator prices a job from its costs. You list the job's materials, labor, subcontractor and equipment costs line by line, set the overhead, profit, contingency and tax rates, and choose whether the tax applies to the materials only or to the whole price. The spreadsheet adds the lines into the direct cost, charges overhead, profit and contingency on it in turn, adds the sales tax last, and returns the total price to quote with the markup and the margin that price gives. It is arithmetic on the figures you enter: it is not a bid, an accounting system or tax advice, and it does not know your costs, your rates or the tax rate where you work. This version produces no quote document and takes no totals from other calculators.
Inputs and units
The costs are four tables of lines. Each line has a Description, for your own reference, and an Amount, your cost before any markup:
- Materials: up to 12 lines. The job's materials and supplies at your cost. At least one line is required; a job with no materials enters one line of 0.
- Labor: up to 8 lines, such as a crew-day or a trade. At least one line is required; a job with no labor enters one line of 0.
- Subcontractors: up to 6 lines, optional. The price each subcontractor charges you. Leave the table empty when there is none.
- Equipment: up to 6 lines, optional, such as a rental, a lift or a dumpster. Leave the table empty when there is none.
A line is a row with a description or an amount. Its amount must be a number of 0 or more, and a line of 0 is allowed. Lines fill the rows of a table from the top, with no blank row between them. The descriptions feed no figure: only the amounts are added. A cost line is a cost, so a credit or a discount is netted into the line it belongs to rather than entered as a negative line. A takeoff calculator gives quantities, not costs: price them at your supplier's rates first and enter the cost here, as materials lines.
The rates are percentages of 0% or more: Overhead rate, Profit rate, Contingency rate and Tax rate. A rate on cost has no ceiling, so a rate above 100% is accepted. Tax applies to is Materials only or All. The amounts carry no currency: every figure is in the currency you enter, and nothing is converted.
The page opens on worked example 11.5.6.4 of the requirement this calculator was built against, a paint job: one materials line of 690 and one labor line of 1,440, no subcontractors and no equipment, a 10% overhead rate, a 15% profit rate, no contingency and a 7% tax on the materials. These defaults are the requirement's example figures, for review before use. The requirement's other examples use a 5% contingency, 11.5.6.3 an 18% overhead rate and a 12% profit rate, and 11.5.6.5 a 20% profit rate. The 7% is a placeholder, not the rate of any place: use the combined sales tax rate where the work is done.
Governing relationships
Each subtotal is the sum of its table's amounts, and the markups follow one after another, each on the running total before it:
Direct cost = Materials subtotal + Labor subtotal + Subcontractors subtotal + Equipment subtotal
Overhead = overhead rate × direct cost
Profit = profit rate × (direct cost + overhead)
Contingency = contingency rate × (direct cost + overhead + profit)
Tax = tax rate × Materials subtotal under Materials only, or tax rate × (direct cost + overhead + profit + contingency) under All
Total price = direct cost + overhead + profit + contingency + tax
Markup = (total price − direct cost) ÷ direct cost
Margin = (total price − direct cost) ÷ total price
So overhead is charged on the direct cost, profit on cost plus overhead, contingency on that subtotal, and the tax comes last. Under Materials only the tax is charged on the materials at cost, not marked up, and the subcontractor and equipment lines are not taxed: enter the taxable materials a subcontractor supplies as materials lines. Under All the tax is charged on the whole price before tax, the contingency included.
The markup and the margin are the requirement's: both count everything above the direct cost, the tax and the contingency included, as markup. Worked example 11.5.6.1's 35.4% markup and 26.2% margin are 32.8% and 24.7% before tax. The margin is always the markup divided by one plus the markup, so the markup is never below the margin. A markup or margin whose divisor, rounded to six decimal places, is zero reads 0.
Nothing is rounded, so a displayed total may differ by a cent from the sum of the displayed lines.
Calculation sequence
- The spreadsheet reads the four tables row by row: each description with any spaces at either end removed, and each amount. A row with a description or an amount is a line; only a numeric amount is added.
- It checks the lines and the rates, as described below.
- The four subtotals and the direct cost.
- The overhead, then the profit, then the contingency.
- The tax on the base Tax applies to names, and the total price.
- The markup and the margin.
- The status line is chosen. When it begins
NOT VALID:, every figure reads 0.
For the job the page opens with, worked example 11.5.6.4: the direct cost is 690 + 1,440 = 2,130.00; the overhead is 10% of it, 213.00; the profit is 15% of 2,343.00, 351.45; there is no contingency; the tax is 7% of the 690.00 of materials, 48.30; so the total price is 2,742.75. It is 612.75 above the direct cost, a markup of 612.75 ÷ 2,130 = 28.8% and a margin of 612.75 ÷ 2,742.75 = 22.3%.
Worked example 11.5.6.1 is a bathroom remodel: 2,590 of materials, 3,020 of labor, 900 of subcontractors and 450 of equipment, a direct cost of 6,960.00, with a 5% contingency. The overhead is 696.00, the profit 15% of 7,656.00, 1,148.40, the contingency 5% of 8,804.40, 440.22, and the tax 7% of 2,590, 181.30, for a total price of 9,425.92, a markup of 35.4% and a margin of 26.2%. Without its tax the price would be 9,244.62, a markup of 32.8% and a margin of 24.7%.
Worked example 11.5.6.2 is a deck build taxed on the whole price: 3,800 of materials and 2,880 of labor, a direct cost of 6,680.00, an overhead of 668.00, a profit of 1,102.20 and a contingency of 422.51, so the price before tax is 8,872.71 and the tax, 7% of it, is 621.09; the total price is 9,493.80, a markup of 42.1% and a margin of 29.6%. Worked example 11.5.6.3, a roof replacement at an 18% overhead rate and a 12% profit rate, has a direct cost of 7,570.00, an overhead of 1,362.60, a profit of 1,071.91, a contingency of 500.23 and a tax of 249.90, a total price of 10,754.64. Worked example 11.5.6.5, a kitchen at a 20% profit rate, has a direct cost of 20,360.00, an overhead of 2,036.00, a profit of 4,479.20, a contingency of 1,343.76 and a tax of 924.00, a total price of 29,142.96, a markup of 43.1% and a margin of 30.1%.
A labor-only service call enters one materials line of 0 and 480 of labor: the total price is 607.20 with no tax under Materials only. A profit rate of 120% on the opening job gives a total price of 5,202.90, a markup of 144.3% and a margin of 59.1%, an ordinary estimate.
Outputs and interpretation
Total price, Markup on direct cost, tax included and Margin on the total price, tax included are the headline figures. Materials subtotal, Labor subtotal, Subcontractors subtotal, Equipment subtotal, Direct cost, Overhead, Profit, Contingency and Tax are the details, each an amount in the currency you entered. The markup and the margin are shown as percentages.
The page shows the amounts to two decimals and the percentages to one decimal, and every figure is the spreadsheet's own.
Validation and status logic
The status line is the spreadsheet's own verdict. It is the first of these that applies:
NOT VALID: choose what the tax applies to: Materials only or AllNOT VALID: every cost line needs an amount, entered as a numberNOT VALID: a cost line amount cannot be negativeNOT VALID: the materials lines must fill consecutive rows, with no blank row between themNOT VALID: the labor lines must fill consecutive rows, with no blank row between themNOT VALID: the subcontractor lines must fill consecutive rows, with no blank row between themNOT VALID: the equipment lines must fill consecutive rows, with no blank row between themNOT VALID: enter at least one cost line with an amount greater than zeroNOT VALID: enter an overhead rate of 0% or moreNOT VALID: enter a profit rate of 0% or moreNOT VALID: enter a contingency rate of 0% or moreNOT VALID: enter a tax rate of 0% or more
Otherwise the status is OK. There is no CHECK: state: the figures come with OK, and a NOT VALID: verdict is shown in place of them, every figure reading 0. A blank row between lines names the first table that has one, in the order materials, labor, subcontractor, equipment. A zero rate, a labor-only job and a rate above 100% are ordinary estimates and read OK.
Every check this workbook makes applies to the web page, an API call and an MCP call alike; the platform first refuses out-of-bounds, mistyped and missing required values in its own words. So a negative amount, a negative or blank rate, an empty materials or labor table, a materials or labor line with no amount and a tax basis off the list are refused before the spreadsheet is asked, and the spreadsheet's own lines for them are a second line of defence. A subcontractor or equipment line with a description and no amount, and a blank row between lines in any table, reach the spreadsheet, which refuses them.
Assumptions and limitations
- The markup and the margin count the tax and the contingency as markup, as the requirement defines them, so they are higher than a markup or margin before tax.
- Under Materials only the tax is charged on the materials at cost, and the subcontractor and equipment lines are not taxed. Which base applies depends on where the work is done and on the kind of contract; check with the tax authority there.
- One tax rate. A use tax separate from the sales tax, several tax rates, retainage, bonds, discounts and any currency conversion are not modelled; permits and fees enter as cost lines, and a credit is netted into the line it belongs to.
- The tables hold 12 materials lines, 8 labor lines, 6 subcontractor lines and 6 equipment lines, filled from the top with no blank row between lines.
- The descriptions feed no figure.
- Nothing is rounded, so a displayed total may differ by a cent from the sum of the displayed lines.
- The default rates are the requirement's example figures for review before use, not your rates and not the tax rate where you work.
- A takeoff calculator gives quantities, not costs: price them first and enter the costs as lines.
- This version produces no quote document and takes no totals from other calculators.
Restrictions and non-computing states
This calculator accepts cost amounts of 0 or more, rates of 0% or more with no upper limit, and Tax applies to as Materials only or All. The materials and labor tables need at least one line each, with an amount on every line. A job whose lines are all 0, a line with no numeric amount, a negative amount and a blank row between lines are not computed.
Errors and warnings
The results update as you change the inputs. A blank required input, a materials or labor line with no amount among them, stops the calculation until you fill it, and the page asks for the required inputs in place of the results. If the calculation service refuses an input, the page names the input and the reason. If the service does not answer, the page shows the error and keeps your inputs. A NOT VALID: status means the figures cannot be computed and none are shown.
References
Sources and further reading
The model is definitional arithmetic on the figures you enter. Its specification is section 5.6 of the Contractor Calculator Requirements v2.3, and its five worked examples (11.5.6.1 to 11.5.6.5) are its tests.
- Steven Bragg, "The difference between margin and markup," AccountingTools. accountingtools.com. The two definitions behind the headline percentages: the markup is what is added to the cost to reach the selling price, taken as a share of the cost, and the margin is the same difference taken as a share of the selling price, so the markup percentage is the higher of the two. Here the cost is the direct cost and the selling price is the total price, tax and contingency included, as the requirement defines them. Read 2026-09-27.
- Texas Comptroller of Public Accounts, Real Property Repair and Remodeling, Publication 94-116 (03/2007). comptroller.texas.gov. One state's rules for the two tax bases this calculator offers: under a lump-sum contract for residential repair and remodeling, the contractor pays tax on the materials and supplies when buying them, which is a tax on the materials at cost, as under Materials only; for nonresidential repair and remodeling, the tax is due on the total amount charged for the job, as under All. Other states, and other kinds of work in Texas, are taxed differently. Read 2026-09-27.
The default overhead, profit, contingency and tax rates, and the choice of Materials only, are the figures of the requirement's worked examples, for review before use; they are not values from these sources, your own rates or the tax rate where the work is done. These sources describe the definitions and one state's rules; they do not certify a particular estimate or the tax due on it. Use the rates from your own books, and check the tax rate and the taxable base with the tax authority where the work is done.
Found a problem, or have an idea?
Tell us if a result looks wrong, a label is unclear, or something is missing. We read every message.