Overview
You can apply a discount to all or selected estimates in a contract at once, instead of adding the discount to each Estimate individually. When you apply a discount in Contract Builder, it is written as a Discounts & Fees line item on each selected estimate. The estimate remains the financial record of truth.
Enforcement is evaluated per estimate. If any individual estimate falls below the configured margin threshold, the system warns or blocks that estimate regardless of the contract's overall margin.
Who uses this feature
Administrators, office employees, and technicians
Applies to Residential Service and Replacement
Applies to Roofing trade
Feature configuration
This feature is currently in Early Access and available for specific accounts. It is subject to change. If you want to enable this feature for your account, join the waitlist here.
The View/Edit Contracts and Edit discounts and fees permissions are required to use this feature. Please contact the account administrator on your team.
Spec-based estimate templates are required to use this feature.
Things to know
Discounts applied in Contract Builder are hidden from the homeowner by default on the contract PDF and in the Customer Portal. Visibility is controlled through your document template configuration and per-line-item hide controls when adding the discount
If you add a new estimate to a contract after applying a discount, the discount is not automatically applied to the new estimate. Open the Add Discount drawer again to discount the new estimate.
If you remove an estimate from the contract, the discount line item is not removed from that estimate.
Once a discount is added to an estimate through Contract Builder, its show or hide state cannot be edited directly. To change it, remove the discount and add it again with a different show/hide selection.
When you apply a discount through Contract Builder, it adds the same Discounts & Fees line item to each estimate indicated as if you had added the discount directly from the estimate screen. Tax, Audit Trail, and reporting all treat it the same way.
When multiple discounts are applied to an estimate, flat-dollar discounts are calculated first, then percentage-based discounts.
Use cases
Apply a closing discount to a multi-option contract. A sales rep presents a contract with five estimate options. The homeowner wants a better price. The rep applies a 5% closing discount to all five estimates at once from the Add Discount drawer, reviews the per-estimate margin impact, and sends the contract.
Apply a category discount across a contract. A company offers a military discount as a Pricebook item. Instead of opening each estimate individually, the rep selects the Military Discount in Contract Builder and applies it to all estimates in one step.
Enter a custom negotiated discount. A homeowner negotiates a flat $500 discount. The administrator has enabled custom amounts with a $750 limit on that discount item. The rep selects the discount, enters $500 in the dollar input field, and applies it within the configured limit.
Discount specific estimates only. A contract includes a primary roof replacement estimate and an optional gutter estimate. The rep applies a discount only to the roof replacement, leaving the gutter estimate at full price.
Before you start
Before a discount can be applied in Contract Builder, you must set up the discount item in Pricebook. You can also configure optional settings that control how the discount behaves.
Go to the navigation bar and click Pricebook.
In the side menu, click Discounts & Fees.
Select an existing discount item, or click Add Discount or Fee to create one.
To allow office employees and technicians to enter a custom discount amount instead of using the fixed pricebook value, select the Allow custom amount checkbox.

If you enabled custom amounts, enter a value in the Discount Limit field to set the maximum amount they can enter. An inline error displays if they exceed this limit.

When finished, click Save.
To learn more about setting up discount and fee items, see Add discounts and fees.
Apply discounts in Contract Builder
Open Contract Builder from a Job, opportunity, customer location, or the Follow Up tab.
In Step 1: Contract Information, click Add Discount in the Select Estimates section.

In the Add Discount drawer, use the Search discounts bar or scroll to find the discount you want. Select one or more discounts by checking the box next to each one.

If a discount item has the Custom badge, an input field appears when you select it. The field shows a $ prefix for flat dollar discounts or a % prefix for percentage discounts. You can enter a custom value or leave it to use the default discount amount from Pricebook. The maximum allowed value is shown below the field as Applied up to $[amount].
Click Next.
On the Select Estimates screen, select which estimates to discount.
To apply the discount to every estimate in the contract, select the Apply to all option.
To apply to specific estimates, select each one individually.
Review the per-estimate impact. For each selected estimate, the drawer shows:
The estimate name and total
The discount line item name and discount amount
A Show/Hide Discount(s) on Estimate toggle (eye icon) to show or hide the discount from the homeowner. Discounts are hidden by default.
A warning if the estimate's margin falls below the minimum requirement configured in your Estimate Revenue Protection settings
Click Apply.

A green pill appears on each estimate card confirming the discount was applied. Each discount is recorded as a Discounts & Fees line item on the estimate.
Review discounts in Step 2
After applying discounts in Step 1, continue to Step 2: Contract Recipients. The Attached Estimates section shows each estimate with its final price after the discount is applied.
The contract PDF and Customer Portal reflect the resulting totals. Discount line items are hidden from the homeowner by default.

FAQ
Can I still add discounts directly to individual estimates?
Yes. You can continue to add discounts to individual estimates from the estimate screen, the same way you do today. The Contract Builder discount feature applies a discount across multiple estimates in a contract at once. Both methods write the same Discounts & Fees line item to the estimate.
What happens if I add a new estimate to a contract that already has discounts?
The discount is not automatically applied to the newly added estimate. To discount the new estimate, click Add Discount in the Step 1 summary bar and apply the discount to that estimate.
What happens if I remove an estimate from a contract that has discounts?
The discount line item stays on the estimate. It is not automatically removed.
Can I change whether a discount is shown or hidden after I apply it?
The show or hide state is set when the discount is added and cannot be edited directly. To change it, remove the discount and add it again.
Why is a discount blocked on one estimate but not others?
Enforcement is evaluated per estimate, not averaged across the contract. If one estimate's margin falls below the configured threshold after the discount, that estimate is flagged even if the contract's overall margin is above the threshold. Review your Estimate Revenue Protection settings to adjust thresholds.