> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.build/llms.txt
> Use this file to discover all available pages before exploring further.

# Estimate preferences

> Standing instructions the AI follows on every estimate and proposal it builds for you

## Working with estimate preferences

Estimate preferences are the rules you'd give a new estimator — what you always include, never do, which brands you install, how you word things. Write them once at **Settings → Estimation**; the AI applies them to every estimate and proposal for that Location, retail and insurance alike, covering everything not specific to one [package](/features/component-packages), [catalog item](/features/your-catalog), or [proposal layout](/features/proposal-layouts).

### 1. Write your preferences

1. Open **Settings → Estimation**.
2. Under **General preferences**, type your rules into the single free-text box — plain sentences, one rule per line if that helps.
3. Watch the counter under the box. Preferences are limited to **5,000 characters**; paste in more and the box keeps it all, but **Save** stays disabled until you trim under the limit. The error says how many characters to cut.
4. Click **Save**. **Cancel** discards unsaved edits and restores what was last saved.

The placeholder text shows the shape of a good rule:

* "Always include drip edge on full roof replacements."
* "On insurance claims, only increase carrier quantities, never decrease."
* "Add 10/10 O\&P on any job with 3+ trades."
* "We prefer GAF products. Keep proposal language brief and professional."

### 2. What makes a good preference

The AI treats preferences as company rules, not suggestions, so specific and checkable beats general. The guidance panel groups the rules worth writing:

| Category                         | Example                                                                               |
| -------------------------------- | ------------------------------------------------------------------------------------- |
| **Scope rules**                  | "Always include drip edge and ice & water barrier on roof replacements."              |
| **Insurance habits**             | "Only increase quantities vs. the carrier estimate, never decrease."                  |
| **Quantity and waste defaults**  | "Use 15% waste on laminate shingles, 20% on anything cut-up or steep."                |
| **Materials and brands**         | "We install GAF unless the customer asks otherwise; match existing brand on repairs." |
| **Documentation style and tone** | "Keep line-item notes short and code-cited. Intro letters warm but brief."            |

Two things don't belong here:

* **Prices and rates.** Labor rates, margins, and taxes live in [Pricing and profit](/features/pricing-and-profit); item prices in [Your Catalog](/features/your-catalog). The AI prices from those, not from prose.
* **Rules about one package or layout.** Put those in that package's **Construction logic** or that layout's instructions, where they apply only when it's in play.

### 3. How preferences interact with packages, catalog items, and layouts

When rules conflict, the most specific wins:

| Precedence | Source                                                                                                                                           |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1          | **What you say in chat** — an explicit request overrides everything                                                                              |
| 2          | **Package and item instructions** — a package's **Construction logic** and an item's **Estimation instructions**; item-level beats package-level |
| 3          | **Layout instructions** — the selected proposal layout's guidance                                                                                |
| 4          | **Estimate preferences** — this page                                                                                                             |
| 5          | **XBuild's defaults**                                                                                                                            |

A lower level still applies wherever the levels above are silent: if preferences say 15% shingle waste and a package's construction logic says 12%, the package wins on that package and 15% applies everywhere else.

### 4. When changes take effect

Saved preferences apply to the AI's **next message** — the page says so under the box. Existing proposal versions keep what they were generated with, and an estimate mid-conversation picks up the new rules the next time you send something. To bring an existing proposal in line, ask the AI in chat — see [Editing estimates and proposals](/features/editing-estimates-and-proposals).

Preferences are saved per [Location](/features/locations); the switcher at the top of the Settings sidebar chooses which one you're editing.

### 5. Troubleshooting common issues

* **Save is greyed out.** Either nothing has changed since the last save, or you're over the 5,000-character limit — the counter turns red and the message says how many characters to trim.
* **The AI ignored a preference.** Was the estimate generated before you saved? Preferences apply from the next message on. Does a package's construction logic, an item's instructions, or the layout say otherwise? Those win. Is the rule concrete? "Be thorough" gives the AI nothing to act on; "Always include starter strip and ridge cap on roof replacements" does.
* **A rule applies on retail jobs but I only meant it for insurance (or the reverse).** Preferences apply to both. Say so in the rule — "On insurance claims, …" — as the placeholder examples do.
* **The page says "We couldn't load your estimate preferences."** Click **Try again**. The page won't show an empty box you could accidentally save over a real set of preferences.

For further assistance, contact XBuild Support at [support@x.build](mailto:support@x.build).
