# Quote & Price Estimator: Requests → Itemized Quotes from Your Price List

> **Version 1.0.0 · Last updated 2026-10-22 · Difficulty: Intermediate · Setup time: 45–90 minutes**

Your clone turns a customer request (a chat message, or an email with a PDF, Excel or CSV spec) into an itemized quote built from your own price list and pricing rules. It flags every line it is unsure about, never invents a price, and drafts the customer email for you to review. A person approves every quote before a customer sees it.

---

## 1. Overview and value

Quotes are slow because the work is repetitive: read the spec, find each part in the price sheet, apply markup, labor, freight and tax, format the document, write the email. Mistakes are expensive: an old price list, a missed quantity break, a discount nobody approved.

Quote & Price Estimator does the lookup and arithmetic and leaves the judgment to you. Your clone:

- reads the request from **chat or email** (including PDF, Excel and CSV attachments),
- extracts **line items** (part numbers, descriptions, sizes, quantities),
- matches them to your **price list** (exact part number first, then closest description, always flagged),
- applies your **pricing rules** (markup or margin, labor or install rate, quantity breaks, minimum order, freight and fees, tax, rounding),
- produces an **itemized estimate** with a confidence level per line,
- lists **UNPRICED and low-confidence lines separately**,
- builds the quote in **Excel or Word** (or Google Sheets or Docs) from your `{QUOTE_TEMPLATE}`,
- **drafts** (never sends) the customer email,
- optionally logs the quote amount and file link on your **Salesforce opportunity or HubSpot deal**.

**What you get:**

| Benefit | What it looks like |
|---|---|
| Faster quotes | Minutes instead of an hour for a multi-line request |
| Consistent pricing | Same rules applied every time, no stale spreadsheets |
| Honest gaps | Lines it cannot price are listed, not guessed |
| Discount control | Anything beyond `{MAX_DISCOUNT}` needs explicit approval |
| A clean paper trail | Quote file, assumptions and exclusions saved with each quote |
| You stay in control | A person approves every quote before it reaches a customer |

---

## 2. Who it's for

- **Sales reps and inside sales** who quote from a price list several times a week.
- **Operations and estimating teams** who build quotes for product, parts or install jobs.
- **Sales managers** who want consistent margins and discount discipline.
- Businesses with a **price list in a spreadsheet or SharePoint list** and rules that live in someone's head today.

## 3. How it works

```
   Request arrives
   ├─ Chat: "Quote this for {CUSTOMER_NAME}" (+ pasted list or file)
   └─ Email with spec attached (PDF / Excel / CSV)
                         │
                         ▼
 ┌───────────────────────────────────────────────────────────────────┐
 │  "Quote Builder" skill                                            │
 │                                                                   │
 │  1. Read the request (attachments read directly)                  │
 │  2. Extract line items: part no. · description · size · qty       │
 │  3. Check the price sheet "last updated" date (stale? warn)       │
 │  4. Match each line                                               │
 │       exact part number → closest description (flagged)           │
 │       no match → UNPRICED (never invented)                        │
 │  5. Apply Pricing Rules: {MARKUP} · {LABOR_RATE} · qty breaks     │
 │       {MINIMUM} · freight/fees · tax · rounding                   │
 │  6. Discount asked > {MAX_DISCOUNT}? → needs explicit approval    │
 │  7. Itemized estimate + confidence per line                       │
 │       UNPRICED / low-confidence lines listed separately           │
 └───────────────────────────────┬───────────────────────────────────┘
                                 │
                  A person reviews and says "approve"
                                 │
                                 ▼
 ┌───────────────────────────────────────────────────────────────────┐
 │  Build the quote file from {QUOTE_TEMPLATE}                       │
 │   (Excel / Word / Google Sheets / Google Docs)                    │
 │  DRAFT the customer email (never sent by the clone)               │
 │  Optional: log amount + file link on the Salesforce opportunity   │
 │            or HubSpot deal (after approval)                       │
 └───────────────────────────────────────────────────────────────────┘
```

### The price list and Pricing Rules

You keep **one current price sheet** with a "last updated" date, and a **"Pricing Rules" tab or doc**. During setup the clone proposes both layouts and you confirm them.

Example price sheet columns:

| Part number | Description | Size / spec | Unit | Base cost | List price | Category | Last updated |
|---|---|---|---|---|---|---|---|
| {PART_001} | Example item A | 12 in | each | 40.00 | 62.00 | Category 1 | 2026-10-01 |
| {PART_002} | Example item B | 2 m | meter | 3.50 | 5.75 | Category 2 | 2026-10-01 |

Example "Pricing Rules" tab:

| Rule | Value | Notes |
|---|---|---|
| Pricing method | `{MARKUP}` = cost + 35% (or margin 26%) | Per category if different |
| Labor / install rate | `{LABOR_RATE}` = $95 per hour | Hours from request or rule of thumb, flagged |
| Quantity breaks | 10+ units: 3% off; 50+: 6% off | Per line, by part |
| Minimum order | `{MINIMUM}` = $250 | Add a "minimum order adjustment" line |
| Freight and fees | Freight 4% of subtotal, min $35; handling $15 | Or a table by weight or zone |
| Tax | Taxable: products; labor not taxable; rate by `{TAX_RATE}` or "excluded" | Confirm with finance |
| Rounding | Unit prices to 2 decimals, totals to nearest cent | Or round up to $0.05 |
| Quote valid for | `{QUOTE_VALID_DAYS}` = 30 days | Printed on the quote |
| Max discount without approval | `{MAX_DISCOUNT}` = 5% | Beyond this, a named approver must say yes |

## 4. What the clone does (and never does)

**It does:**

- reads the request and any attached spec directly (PDF, Excel, CSV),
- matches every line to the price list: exact part number first, then closest description, always flagged,
- applies only the rules in your Pricing Rules tab or doc,
- shows an itemized estimate with confidence per line and lists UNPRICED or low-confidence lines separately,
- warns if the price sheet's "last updated" date is older than `{PRICE_STALE_DAYS}`,
- builds the quote file from `{QUOTE_TEMPLATE}` after you approve,
- drafts the customer email and leaves it unsent,
- (optional) logs the quote amount and file link on the CRM record after approval.

**It never:**

- invents a price, cost, discount, lead time or part number,
- sends a quote or email to a customer,
- shows a quote to a customer before a person approves it,
- applies a discount beyond `{MAX_DISCOUNT}` without explicit approval,
- uses an old copy of the price list (it uses the one sheet you named),
- changes the price list or the rules,
- asks for your password or tokens.

## 5. Setup walkthrough

The quickest path: download **CLONE-INSTRUCTIONS.md** and give it to your clone. It checks what is connected, helps you capture your pricing rules, shows a plan, and sets up what it can after you approve.

**Step 1: Check requirements (10 min).** Open **REQUIREMENTS.md**. Make sure you have one current price list and know your rules.

**Step 2: Hand the instructions to your clone (2 min).** Say: *"Please set up this use case for me. Show me a plan before changing anything."*

**Step 3: Review the discovery table (5 min).** The clone reports which operators and connections it has.

**Step 4: Answer the placeholder questions (10 min).** See section 6.

**Step 5: Capture the Pricing Rules (15–30 min).** The clone interviews you, then proposes a "Pricing Rules" tab or doc. You confirm each rule.

**Step 6: Approve the plan (2 min).**

**Step 7: Do your part (10–20 min).** Connect your accounts, confirm file permissions, and choose one current price sheet.

**Step 8: Save the Quote Builder skill (5 min).**

**Step 9: Run the test plan (30–60 min).** Run 5 past quotes with known answers and compare line by line. Tune matching until the totals match.

**Step 10: Start using it.** Keep reviewing every quote.

## 6. Placeholders to decide

| Placeholder | What it means | Example |
|---|---|---|
| `{PRICE_LIST}` | Where the master price list lives | Excel "Master Price List" on SharePoint, a Google Sheet, or a SharePoint list |
| `{PRICE_LIST_TYPE}` | Excel, Google Sheets or SharePoint list | Excel |
| `{RULES_LOCATION}` | "Pricing Rules" tab or doc (and optional knowledge base) | Tab "Pricing Rules" in the same workbook |
| `{MARKUP}` | Markup or margin method and percent | Cost + 35%, or 26% margin |
| `{LABOR_RATE}` | Labor or install rate | $95 per hour |
| `{MINIMUM}` | Minimum order amount | $250 |
| `{QUOTE_VALID_DAYS}` | How long a quote is valid | 30 days |
| `{MAX_DISCOUNT}` | Largest discount without approval | 5% |
| `{DISCOUNT_APPROVER}` | Who approves bigger discounts | Sales manager |
| `{TAX_RATE}` | Tax handling | Products taxable at 8.25%; labor not taxable; or "excluded" |
| `{PRICE_STALE_DAYS}` | Warn if the price sheet is older than this | 45 days |
| `{QUOTE_TEMPLATE}` | Quote layout (Excel, Word, Sheets or Docs) | Word template "Quote Template" with fields |
| `{QUOTE_FOLDER}` | Where finished quotes are saved | "Sales / Quotes / 2026" |
| `{REQUEST_SOURCE}` | Chat only, or email too | Chat and Gmail label "Quote requests" |
| `{CRM_LOGGING}` | Log amount and file link on a CRM record | Off, Salesforce or HubSpot |

## 7. What to expect

- **From chat:** paste items or a file, say "Quote this for {CUSTOMER_NAME}". You get an itemized estimate with confidence per line within a few minutes.
- **From email:** point the clone to the email ("Quote the request from {CUSTOMER_NAME}"). It reads the attachment directly.
- **Review step:** you check flagged lines, answer questions, approve. Only then does it build the quote file and the email draft.
- **Draft email:** sits in your drafts. You read it, edit it, send it yourself.

Example estimate:

```
Quote estimate for {CUSTOMER_NAME} · request received 2026-10-22 · price sheet updated 2026-10-01 ✔

Line  Part         Description        Qty   Unit    Ext.      Match / confidence
1     {PART_001}   Example item A     20    $62.00  $1,240.00 Exact part no. · High
2     {PART_002}   Example item B     120   $5.75   $690.00   Exact part no. · qty break 3% · High
3     {PART_017}   Item C, 8 in       4     $31.20  $124.80   Closest description · Medium (verify)
Labor: 6 h × $95 = $570.00 (hours from spec, assumption)
Freight: $93.69 · Fees: $15.00
Subtotal $2,733.49 · Tax $... · Total $...
Valid 30 days · Assumptions: ... · Exclusions: ...

UNPRICED / needs attention:
  4  "Custom bracket, 300 mm"  Qty 6  No match in price list. Not priced.
  3  Matched by description only: please confirm {PART_017}.
Discount requested: 8% (limit 5%) → needs approval from {DISCOUNT_APPROVER}.
```

## 8. Customizing

- **Quote layout.** Provide your own template in Excel, Word, Sheets or Docs.
- **Rules.** Add rules to the Pricing Rules tab (by category, customer tier, project size) and re-run the test plan.
- **Notes sections.** Standard terms, warranty and exclusions text from your knowledge base.
- **CRM logging.** Turn on the amount and link on the opportunity or deal.
- **Approval flow.** Name who approves discounts, and what happens to quotes over a dollar threshold.
- **Several price lists.** Prefer one. If you must have more (by region), name each one and its owner.

## 9. Known gotchas

- **ONE current price sheet.** Keep a single master with a "last updated" date. Old copies cause wrong quotes. Archive or delete extras.
- **Part numbers must match.** Hyphens, spaces and leading zeros matter. The clone matches exact part numbers first, then flags description matches.
- **Read PDFs directly.** Do not rely on an old PDF-to-text skill. Gmail and Outlook operators read attachments themselves.
- **Scanned PDFs extract worse.** Ask customers for Excel or CSV specs when possible. Low-confidence lines are flagged.
- **SharePoint "access denied".** Delete and re-create the Microsoft connection to pick up new permissions (Sites.Read.All), then retry.
- **Never send without review.** The clone drafts the email. You send it.
- **Rules in your head are not rules.** Anything not in the Pricing Rules tab or doc is not applied.
- **Discounts.** Beyond `{MAX_DISCOUNT}` needs explicit approval by name.
- **Read every instruction before saving the skill.** You are responsible for what your clone does.

## 10. FAQ

**Can it invent a price if the item is not in my list?** No. It lists the line as UNPRICED.

**Can it send the quote to the customer?** No. It drafts the email and a person sends it.

**Where does the price list live?** One master sheet in Excel (OneDrive/SharePoint), Google Sheets, or a SharePoint list.

**How does it handle part numbers that don't match exactly?** It tries the exact part number first, then the closest description. Description matches are flagged with Medium or Low confidence.

**Can it read a customer's PDF spec?** Yes, directly. Scanned PDFs are less reliable, so ask for Excel or CSV when you can.

**What if the customer asks for a 12% discount and my limit is 5%?** The clone flags it and needs explicit approval from the approver you named before it puts that discount in a quote.

**Can it log the quote in my CRM?** Optionally, on a Salesforce opportunity or a HubSpot deal: amount and file link, after your approval.

**How do I know the numbers are right?** Run the test plan: five past quotes with known answers, compared line by line.

**Does it handle tax?** It applies the tax handling you wrote in the rules (rate, what is taxable, or "excluded").

## 11. Troubleshooting

| Symptom | Likely cause | Fix |
|---|---|---|
| Many lines UNPRICED | Part numbers differ from the price sheet format | Normalize part numbers; add an "alias" column; tune matching in the test plan |
| Wrong price on a line | Old price list copy or wrong column | Keep ONE current sheet; check the "last updated" date and the column used |
| SharePoint "access denied" | Connection lacks permission | Delete and re-create the Microsoft connection (Sites.Read.All); confirm file access |
| Attachment not read well | Scanned PDF | Ask for Excel/CSV; confirm low-confidence lines manually |
| Totals differ from my manual quote | Rule missing or applied in a different order | Compare line by line; add the missing rule to the Pricing Rules |
| Quote file not created | No write access to `{QUOTE_FOLDER}` | Grant edit access |
| Email draft missing | Mail connection lacks draft permission | Reconnect Gmail or Outlook with draft/compose access |
| Discount blocked | Above `{MAX_DISCOUNT}` | Get explicit approval from `{DISCOUNT_APPROVER}` and tell the clone |
| CRM log failed | Opportunity or deal not found, or no write access | Give the exact opportunity/deal name; check CRM write access |

---

**Version:** 1.0.0 · **Last updated:** 2026-10-22 · Part of the Clone Use Case Library.
