Watch time: 11 minutes
BuilderBid supports two common contract formats: Cost-Plus (Open Book) and Fixed Price (Closed Book). Each format handles markups differently, allowing you to set fees transparently or combine markup into line item costs. This guide will walk you step-by-step through setting up markups for all contract types.
Watch this video to learn more(11 minutes):
Steps to Apply Markups
1. Cost-Plus Contract
In a Cost-Plus (open book) contract, your markup is applied on your subtotal and is fully transparent to your client.
Add a Markup in Your Template
You can place the markup in a separate section (e.g., Builder Fee) or anywhere in your template.
To add it in another section:
Create a new line item.
Type the Cost Item Name.
Click the Gear icon on the far right.
For Type, select Markup.
Under the dropdown, choose either:
Subtotal Markup (%) – for cost-plus percentage
Subtotal Markup ($) – for cost-plus fixed amount
To switch between a percentage (%) and fixed fee ($), click the Gear icon again and select the preferred type.
Exclude Certain Line Items from Markup
Go to the line item you don’t want marked up.
Click the Gear icon → dropdown → select Subtotal Markup ($)
2. Fixed Price / Lump Sum Contract
In a Fixed Price contract, your total price is predetermined and may include allowances.
Set Markup, Discount, & Taxes
Go to the Markup tab at the bottom right.
The table will show your Builder Cost, Markup, Price per SF/USF, Total Price, and more.
Click Set Markup, Discount, & Taxes at the top.
Under Contract Format, select Fixed Price (choose with or without allowances).
Decide on Markup or Margin:
Markup Everything – applies a single percentage to all items
Markup by Type – allows different markups for materials, labor, etc.
Optionally, add Discounts and/or apply Taxes.
Click Confirm.
3. Override Global Markup for Specific Line Items
Go to the Estimate tab.
Click the Gear icon for a line item.
In the Markup field (light blue font), type your preferred percentage.
This override applies to that line item only, leaving the global markup unchanged.








