# Create an estimate

> The order to set up estimating in Cooper and build an estimate - deliverable classes and deliverables, deliverable templates, the estimate, trade scopes and subcontractor bids, then a proposal for the client.

Source: https://docs.cooperbuild.ai/guides/create-an-estimate
Last updated: 2026-10-07
Keywords: estimate, estimating, deliverable class, class standard, deliverable, deliverable template, estimate worksheet, trade scope, subcontractor bid, bid leveling, proposal, convert to proposal

This guide takes you from an empty estimating setup to a **draft proposal** you can send to a client. The proposal is built from an estimate whose lines come from reusable **deliverable templates**, with subcontractor prices wherever you collected bids.

Estimators and project managers do steps 3 to 5. An admin with Settings access usually does steps 1 and 2 once for the whole company. After that, each new estimate starts at step 3.

| Step | Where | What you create | What it feeds |
|---|---|---|---|
| 1. Foundations (one time) | **Settings** → **Plan Setting** | Units, class standards, deliverable classes, deliverables | Everything below: templates and estimates pick from these |
| 2. Deliverable templates (one time, then as needed) | **Plan** → **Deliverable Templates** | Reusable recipes of tasks and resources for one deliverable | The estimate's lines |
| 3. The estimate | **Plan** → **Estimate Worksheets** | An estimate on a project, filled by importing templates | Trade scopes and the proposal |
| 4. Trade scopes and bids | Estimate Manager → **Trade Scope** tab | Packages of work that subcontractors price | The cost on the lines you award |
| 5. The proposal | Estimate Manager → **Convert to Proposal** | A draft proposal for the client | Sending, signing and, later, approval |

## Before you start

### Permissions

Cooper shows each permission as **No access**, **Read only** or **Full access** on the role screen. Ask an admin to check your role under **Settings** → **Roles**.

- **Step 1** needs access to the Plan Setting screens you use: **Deliverable Classes**, **Class Standards**, **Deliverables**, **Units** and **Task Types**. By default the Admin and COO roles have all of them. Project Manager does not, so ask an admin to do step 1. Existing workspaces may differ.
- **Step 2** needs **Deliverable Templates** access, and **Global items** access under **Source** to pick resources.
- **Steps 3 to 5** need **Estimate Worksheets** access. Writing to estimates also uses the **Estimate Deliverables** and **Estimate Tasks** rows. Trade scopes need **Trade Scope**, and proposals need **Proposals**.
- **Send to client** with a signature request also needs **My envelopes** (CooperSign) write access.

### Workspace mode

This guide assumes your workspace uses **External project** mode. In **Internal only** mode the **Plan** menu has no **Estimate Worksheets** item.

### What must already exist

- An active **project**. Creating an estimate does not create one. Add a project under **Plan** → **All Projects** (or with Quick Setup).
- **Global items** with item classes, which are the materials, labor and equipment your templates price. See **Source** → **Global items**.
- A **legal entity** on the project, if you plan to approve the proposal later.

> **Note: Check before you create**
>
> New workspaces may already hold class standards, deliverable classes, deliverables and templates that were copied in when the workspace was created. Look at each list before adding records, so you don't create duplicates.

## Create an estimate in five steps

### Step 1: Set up the estimating foundations (one time)

Open **Settings** → **Plan Setting**. Do these in order, because each record needs the one before it. The sidebar lists **Deliverable Classes** before **Class Standards**, but a class cannot be saved without a standard, so start with the standard.

**Units and task types.** Open **Units** and **Task Types** and add any that are missing. A deliverable needs a **Unit**, and every task in a template needs a **Task Type**.

#### Add a class standard

A class standard is a named set of classes, with a code of 1 to 4 characters.

1. Open **Class Standards** and click **Add New**.
2. Enter the name and code.
3. Turn on **Set as Default** if this is the standard most projects use. The default is pre-selected in the class form and the project pickers.
4. Save the standard.

To start a new standard from an existing one, use **Copy structure**. It copies the other standard's classes and their links into the new one.

#### Add a deliverable class

1. Open **Deliverable Classes** and click **Add New**.
2. Pick the **Class Standard**.
3. Enter **Seq. No**, **Class Name** and **Internal Code**.
4. Choose **Applicability**: **Construction Only**, **Internal Only** or **Both**. Applicability decides which estimates can use the class.
5. Save the class.

#### Add a deliverable

A deliverable is something you build and price, such as a wall or a slab.

1. Open **Deliverables** and click **Add New**.
2. Pick at least one **Deliverable Classes** value. One deliverable can belong to many classes.
3. Enter **Deliverable ID** and **Deliverable Name**.
4. Pick the **Unit**.
5. Optionally enter **Cooper Rate**. It accepts whole numbers only, so enter `125`, not `125.50`.
6. Save the deliverable.

> **Warning: A deliverable must belong to a class**
>
> A deliverable that is not linked to an active class never appears in the template list or in the estimate's import picker. If a deliverable is missing later, check its classes first.

Open any of these lists later to check what exists. You do not repeat step 1 for each estimate.

### Step 2: Build deliverable templates (one time, then as needed)

A **deliverable template** is a reusable recipe for one deliverable: a unit and quantity, an ordered list of tasks, and the resources each task uses. When an estimate imports the template, it gets a copy of that recipe.

#### Create a deliverable template

1. Open **Plan** → **Deliverable Templates**.
2. Click **Add Template**, then choose **New Editor**. A **Classic Form** is also available.
3. Under **Filter by Class**, pick a class first. The **Deliverable** select stays disabled until you do.
4. In Template Info, fill in **Deliverable**, **Template Name**, **Unit** and **Qty**.

#### Add tasks and resources

1. Add a task. Each task needs **Task Name**, **Task Type** and **Days**. Turn on **Gross Up** where it applies.
2. With the task selected, click **Browse catalog** to add resources from your Global items.
3. Set each resource's quantity.

The template's cost is the quantity times each Global item's unit price. There is no markup in a template.

#### Duplicate a template

Use **Duplicate** on a template to start a variation, such as the same wall with a different finish. A template can also be shared with another organization with **Share with organization**. Sharing itself is managed under **Plan** → **Sharing**.

> **Note: If the template doesn't appear in the estimate import**
>
> The import list shows only templates whose deliverable is linked to an active class that is allowed for the estimate. If yours is missing, check the deliverable's classes in step 1, and the class **Applicability**.

### Step 3: Create the estimate and import templates

#### Create the estimate

1. Open **Plan** → **Estimate Worksheets**.
2. Click **Add Estimate**, then **New Editor**.
3. Pick the **Project**. The **Deliverable Class Standard** fills in from the project and gates the deliverables builder. If you see "Select a Deliverable Class Standard first", set a default standard in step 1 or pick one on the project.
4. Enter **Estimate Name**. Optionally set **Contact**, **Estimate Status**, **Estimate Unit** and **Valid Until**.
5. Create the estimate.

Cooper adds the estimate to the list but does not open it. Click its row to open the **Estimate Manager**. The New Editor's deliverables builder can also pick templates while you create. The Quick Setup wizard is another way to start.

#### Import deliverable templates into the estimate

This is the everyday way to fill an estimate.

1. In the Estimate Manager, open **Detailed View**.
2. In the Classes or Deliverables panel, click **Add Template**.
3. Choose a class, then pick the template.
4. Set **Deliverable Name** and **Quantity**.
5. Click **Import Deliverable**.

Cooper copies the template's tasks and resources into the estimate. Resources are priced at today's Global item prices. Later changes to the template do **not** update the estimate. The quantity does not multiply the resource quantities: the **Rate** is the total divided by the quantity.

Other ways to add lines, in one line each: **Add New Deliverable** in Table View; adding tasks and resources by hand; pushing a takeoff to the estimate; and **Duplicate** on an existing estimate.

#### Check the totals

The header shows **Total Cost**, **Cost / Unit**, **Project Size**, **Duration** and **Cost Breakdown**. The **Summary** tab shows the totals by class. An estimate has no markup, overhead or tax. Those are added on the proposal in step 5. Prices can be hidden with the eye icon, and by a limit on your role.

> **Warning: An import that fails can look like it worked**
>
> If the estimate is created but empty, the import did not add any lines. Check that the template's deliverable belongs to an active class that is valid for the estimate, then import again from **Detailed View**.

### Step 4: Package work for subcontractors, collect and compare bids

A **trade scope** is a package of estimate lines that you send to subcontractors to price. Work in the Estimate Manager's **Trade Scope** tab. You need Trade Scope read access to see it, and Trade Scope write access plus Plan write access to use **Add TradeScope**.

#### Create a trade scope

1. Open the **Trade Scope** tab and click **Add TradeScope**.
2. Enter **Scope Name** (required) and **Description**.
3. Click **Add Association** to link deliverables, tasks or resources. A line can belong to several scopes, and a scope can hold many lines. Linking a whole deliverable removes its individual tasks from that scope.
4. Optionally attach **Folders**, then save.

You can also select rows in **Detailed View** and use **Add to TradeScope**.

#### Invite vendors

Open the scope and go to **Sourcing**. Vendors move through a pipeline: **Shortlisted**, **Invited**, **Quoted**, **Awarded**, **Rejected**.

- **Add vendor** shortlists an organization from your CRM, or adds a new one.
- **Email a vendor** sends a secure link by email. The organization needs a work email. Cooper sends only to that address.
- **Copy public link** gives you a link to send yourself.

The vendor's page does not show your scope description, so say what you need in the email.

#### Enter or collect quotes

Vendors price every line through their link. If a vendor replies another way, click **Fill in quote** and type their prices. You can attach their emailed quote under **Attachment (their emailed quote)**. Cooper does not notify you when a vendor submits. The vendor's card moves to **Quoted**, so check the pipeline.

#### Compare bids

Open **Compare bids**. Each line is shown against your **Internal est.**, the lowest price per line is marked, and the screen shows the total variance and a **Best overall value** hint. One quote is enough to compare.

#### Award a scope

1. On the vendor you pick, click the award action. The **Award scope** panel opens.
2. Tick **Send email notification to vendor** if you want them told. Cooper emails the vendor only when it is ticked.
3. Confirm.

Awarding adds the vendor as a subcontractor cost on the linked deliverables and tasks. Those rows show a **TradeScope** badge. The **Awarded** and **Buyout** views of the list show what you have placed.

More than one vendor can be awarded on the same scope, so award deliberately.

#### Undo an award

On the awarded card, click **Reject it**. The award is removed from the estimate. Use **Move to quoted** if you want the vendor back in the running.

> **Note: Inviting connected companies**
>
> **Partners** in the Estimate Manager has a second route, **Request bids**, for connected Cooper companies and emailed vendors. It adds due dates, numbered addenda, questions and answers, and **Leveling**. This guide uses the Trade Scope tab. Teams such as Bid List are not used by either route.

### Step 5: Convert the estimate into a proposal

#### Convert the estimate

1. In the Estimate Manager header, click **Convert to Proposal**. You need write access on Estimate Worksheets.
2. In the **Create Proposal** panel, choose a **Proposal template**. Its values are copied, so later edits to the template do not change this proposal.
3. Click **Create Proposal**. The proposal opens in a new tab.

Everything that is not archived comes across, grouped by class, one line per deliverable, with your rate and cost and a client rate. There is no per-scope selection, no alternates or optional items, and no payment terms. Markup starts at 0%. An awarded trade scope, or an accepted partner bid, replaces your cost on its deliverables. Tasks and resources stay on the estimate. Values are copied, not linked.

The proposal gets a number like `EST-0001-PROP-0001`, the status **Draft**, and a **Valid Until** date 30 days out. The template's footer sections become **Exclusions & notes**, and percentage adjustments, such as taxes, come from the template. If you have no templates, Cooper uses the system **Standard Proposal**. Templates are managed under **Settings** → **Plan Setting** → **Proposal Settings**.

#### Review and edit the proposal

In the proposal editor:

1. Set **Subject**, **Attention** and **Date**. The date saves **Valid Until**.
2. In **Cost breakdown**, edit **Client rate** on each line. Use **Raise Proposal** to raise the whole proposal at once, and **Add New field** for adjustments.
3. Review **Exclusions & notes**.
4. Click **Save changes**.

#### Choose what the PDF shows

Use **Print** and pick an output: **Summary + detailed breakdown**, **Detailed breakdown only**, or add **Include Gantt chart**.

#### Send the proposal to the client

1. Click **Send to client**.
2. Pick the client contact.
3. Leave **Ask the client to sign** on to use CooperSign, and set the expiry and message. Turn it off and use **Mark as sent** if you send the PDF another way.
4. Send.

Sending does not change the status from **Draft**. When the client signs, the status moves to **Accepted** or **Rejected**.

#### Revise a proposal

After you change the estimate, return to the header and use **New Proposal**. Cooper creates another proposal and keeps the earlier one, with no limit and no warning. Once an estimate has a proposal, the header shows **View Proposal**, and the button can stay visible until you reload.

## What's next

- **Approve the proposal and start the project.** Approving is a separate step. It needs a legal entity on the project, and it starts the project from the estimate. It is not covered here.
- **Change an estimate after conversion.** The proposal does not change when the estimate does. Convert again with **New Proposal**.
- **Watch for the client.** Proposals waiting on client approval show in [Action items](https://docs.cooperbuild.ai/connect/action-items.md).

## Troubleshooting

### I can't see Estimate Worksheets, Trade Scope or Proposals

Check three things: your role's permission for that screen, your workspace mode (**Internal only** mode has no **Estimate Worksheets**), and your company's plan. Ask an admin to review your role.

### I can't pick a deliverable when building a template

Pick a class under **Filter by Class** first. The **Deliverable** select stays disabled until a class is chosen.

### My deliverable isn't in the template list or the import picker

The deliverable must be linked to an active class that is allowed for the project type, and the class **Applicability** must fit the estimate. Open the deliverable in **Settings** → **Plan Setting** → **Deliverables** and check its classes.

### The Deliverables list is missing some of my deliverables

On first load in External project mode, the list shows only deliverables linked to **Construction Only** classes. Link the deliverable to a **Construction Only** or **Both** class.

### A rate with cents is rejected

**Cooper Rate** takes whole numbers only. Enter the nearest whole number.

### Select a Deliverable Class Standard first

The estimate's project has no class standard. Mark one as the default under **Class Standards** or set it on the project, then reopen the estimate form.

### Template cannot be used with estimate type

The template's class **Applicability** does not match the estimate. Change the class applicability to **Both**, or pick a template from a class that matches.

### The estimate was created but is empty

Import failures are not always shown. Open **Detailed View** and import the template again, after checking its deliverable's classes.

### Add TradeScope is missing

You need both Trade Scope write access and Plan write access. Ask an admin to update your role.

### A vendor didn't get the email

The vendor's organization may have no work email. Cooper still shows the invitation as sent. Add a work email on the organization, or use **Copy public link** and send it yourself.

### I awarded the wrong vendor

Click **Reject it** on the awarded vendor's card. The award is removed from the estimate. Award the correct vendor afterwards.

### Convert to Proposal is still showing after I converted

Reload the page. The header then shows **View Proposal** and **New Proposal**.

### Approve says the project has no legal entity

Add a legal entity to the project, then approve again.

### Send to client fails

Sending with a signature request needs **My envelopes** write access. Ask an admin, or turn off **Ask the client to sign** and use **Mark as sent**.

## For AI agents

Agents use the Cooper MCP server. In the order an agent calls them:

1. **Foundations.** `estimate_browse` with `get_deliverable_classes` or `get_task_types` reads them. Class standards, classes, deliverables and units have no dedicated tool. The generic `db_find` reads them, and `db_create` and `db_update` can write them, but those skip the screen's duplicate checks and name logic, so ask the person to use the app.
2. **Templates.** `template_wizard` (`start`, `get_deliverables`, `get_units`, `get_task_types`), then `template_suggest_tasks`, `template_search_resources`, `template_preview_item` and `template_create`. `template_create` makes a **Draft**, and the deliverable must already be linked to the class. No tool updates or deletes a template.
3. **Estimate.** `estimate_browse` (`list_projects`, `get_templates`), then `estimate_manage` with `create` (with `estimateDeliverables`) or `import_templates`. `estimate_items` with `add_deliverables` adds lines. `takeoff_sync_to_estimate` pushes a reviewed takeoff.
4. **Trade scopes.** `ts_wizard`, `ts_search_items`, `ts_manage`. Then `vq_scope_details`, `vq_search_vendor`, `vq_shortlist` and `vq_quote` (preview with `confirm` false, then true), `vq_browse` with `get_quote`, and `vq_status` with `accept` (the award) or `revert`. These tools are gated by the Shopping Carts permission, not Trade Scope. No tool emails invitations, creates bid packages, issues addenda or levels bids.
5. **Proposal.** `proposal_manage` with `list_templates`, then `create` (it accepts `markupPercentage`, which the screen does not). Then `proposal_browse`, `proposal_edit`, and `coopersign_send`, which returns a link that opens the prefilled Send dialog, so a person sends. `proposal_approve` needs `confirmApproval` and belongs to the next stage.

## Related

- [Organizations](https://docs.cooperbuild.ai/connect/organizations.md): the vendors and subcontractors you invite. They need a work email.
- [Action items](https://docs.cooperbuild.ai/connect/action-items.md): proposals waiting on client approval appear there.
- [Use the docs with AI](https://docs.cooperbuild.ai/ai-agents.md): connect an agent to the MCP server.
