Best Overall
Claude
Structured line items; leaves blanks instead of inventing prices.
Open Claudesmall business · ~25 min
This is an estimate, not a contract or bid. Do not invent prices or quantities. Recompute totals in Sheets.
Best Overall
Structured line items; leaves blanks instead of inventing prices.
Open ClaudeBest Free
Good for a single estimate draft from pasted notes.
Open ChatGPTBest Power-User
Draft line items in chat; recompute totals in Sheets. Proposal-style narrative belongs in freelance-proposal-from-scope, not here.
Open Google SheetsCustomer/job address or project name, job notes (what was measured/observed), your labor rates, material unit costs you will use, markup/tax rules you already apply (or NONE), exclusions, validity period you use, and deposit terms you use (or NONE). Distinct from freelance-proposal-from-scope (scope narrative + investment). This recipe is a trades/agency estimate: quantities, line items, materials, labor—from your rates.
Paste the rules first. A missing quantity or unit cost becomes [NEED FACT], not a guess.
Copy-paste prompt
Draft a SERVICE ESTIMATE (not a proposal essay, not a contract) from my job notes and rate card. Hard rules: - Use ONLY rates, quantities, material costs, tax/markup, and terms I provide. Do not invent prices, discounts, allowances, or “market averages.” - If a quantity or unit cost is missing, output the line with [NEED FACT]—do not guess. - Label the document clearly: ESTIMATE — not a contract / not a binding bid unless I say otherwise. - Output: header (customer/job), line-item table (Item | Qty | Unit | Unit cost | Line total), subtotal, tax/markup only if I provided rules, grand total, Assumptions, Exclusions, Validity, Next step. - Keep narrative minimal—this is for trades/agencies quoting work, not a freelance proposal. Confirm in one sentence, then wait for my pack.
Paste job notes and your rate card, then send the generate command.
Paste pack
CUSTOMER / JOB NAME: [ ] SITE / PROJECT NOTES (measurements, scope observed): [ ] LABOR RATES I USE: [e.g. tech $X/hr; helper $Y/hr] MATERIAL UNIT COSTS I WILL USE: [list or NONE—leave materials as NEED FACT] QUANTITIES I MEASURED OR WILL BILL: [ ] MARKUP / TAX RULES I APPLY: [or NONE] EXCLUSIONS: [ ] VALIDITY PERIOD I USE: [e.g. 15 days / NEED FACT] DEPOSIT / PAYMENT TERMS I USE: [or NONE]
After you send the filled pack, copy the Generate command in the next box and paste it into the SAME chat so the AI runs the decision tree / produces the output.
Generate command — copy and send this next (same chat)
Build the estimate now. Every missing price or qty = [NEED FACT]. Show arithmetic for each line. Label ESTIMATE — not a contract.
Recompute line totals and grand total in Sheets. If chat and sheet disagree, trust the sheet. Then send:
Second-model check
Here is a service estimate from another assistant plus my rate card and job notes. Find: (1) invented prices or quantities, (2) math errors, (3) scope that wasn’t in my notes, (4) contract-like promises I didn’t authorize. Return only corrections. Not legal advice.
Fill [NEED FACT]. Send as “Estimate” with your validity window. Use a real agreement/change-order process when money moves.