Custom GPT: Build an Estimating Assistant Trained on Your Own Job History
What This Builds
A custom AI estimating assistant loaded with your actual job history, your real pricing data, and your specific trade rates, so when you describe a project, it generates a first-draft estimate calibrated to YOUR numbers, not generic industry averages. The result: estimates that take 30-60 minutes instead of 4-8 hours.
Prerequisites
- ChatGPT Plus account ($20/month). required for Custom GPTs
- At least 5-10 past completed estimates (any format: Excel, Word, PDF, handwritten notes scanned)
- Your current labor rates for yourself and your regular subs
- Your overhead percentage and target profit margin
- Time to build: 1.5-2 hours (including data preparation)
- Cost: $20/month (ChatGPT Plus)
The Concept
A Custom GPT with your job history is like hiring an estimator who has already worked on your last 20 projects. They know that your tile setter charges $X per square foot in your market, that kitchen cabinet installs take your crew 2.5 days, and that permits in your county run $400-600. They use that knowledge to produce estimates that start close to right, not close to average. You still review and adjust, but you're editing 20% of an estimate instead of building 100% from scratch.
Build It Step by Step
Part 1: Prepare Your Historical Data
This is the most important step. The better your historical data, the better the estimates.
Step 1.1. Collect your past estimates Gather your last 10-20 completed project estimates. These can be:
- Excel files (ideal)
- Word documents
- PDFs
- Handwritten sheets you've scanned
Step 1.2. Build a pricing reference sheet Open a Google Sheet or Excel file. Create a sheet called "Labor Rates." Enter:
| Trade | Rate | Unit | Notes |
|---|---|---|---|
| My crew. carpentry | $[X] | per hour | |
| Tile setter | $[X] | per sq ft installed | or per hour |
| Electrician | $[X] | per hour | rough-in rate |
| Plumber | $[X] | per hour | rough-in rate |
| Painter | $[X] | per sq ft | or per hour |
| Demo crew | $[X] | per hour |
Add another sheet called "Typical Costs by Project Type":
| Project | Typical Range | Key Variables |
|---|---|---|
| Bathroom remodel (basic) | $[X]-[Y] | Tile selection, fixture level |
| Kitchen remodel (mid-range) | $[X]-[Y] | Cabinet style, countertop material |
| Basement finish | $[X]-[Y] per sq ft | With or without bath |
| Deck replacement | $[X]-[Y] | Material: pressure treated vs. composite |
| Addition | $[X]-[Y] per sq ft | Scope of work complexity |
Step 1.3. Save as a text or CSV file Export the Google Sheet as CSV or copy the content into a .txt file. Name it "Pricing Reference: [Company Name].txt"
Part 2: Build the Custom GPT
- Log into ChatGPT Plus → left sidebar → Explore GPTs → Create
- Click the Configure tab immediately (don't use the chat builder)
- Name: "[Company Name] Estimating AI"
- Description: "Generates first-draft cost estimates for residential remodeling projects using [Company Name]'s actual pricing data"
Part 3: Write the System Instructions
In the Instructions box, paste:
You are a construction estimating assistant for [Company Name], a residential remodeling
contractor in [City, State].
YOUR PURPOSE:
Generate first-draft cost estimates for remodeling projects. The contractor will describe
the project; you produce a line-item estimate using the pricing data and history in your
knowledge files.
HOW TO ESTIMATE:
1. Break the project into trade categories: Demo, Framing, Electrical, Plumbing, Tile,
Cabinets, Countertops, Flooring, Paint, Permits, and Miscellaneous
2. For each trade, list the specific tasks, quantities (sq ft, linear ft, hours, units),
unit cost, and total
3. Use the Labor Rates file for labor costs
4. Use the Typical Costs by Project Type file for overall calibration
5. Apply a [X]% overhead and [Y]% profit margin at the bottom (or include in line items)
6. Flag any line items where you're uncertain — the contractor will verify
OUTPUT FORMAT:
Return the estimate as a table with columns: Item | Qty | Unit | Unit Cost | Total
Then show: Subtotal | Overhead ([X]%) | Profit ([Y]%) | TOTAL
After the estimate, add a "Flags" section noting any items that need the contractor to verify
(e.g., permit cost not confirmed, tile selection affects material price, structural unknown).
IMPORTANT:
- Never fabricate confident numbers for items you don't have data on — flag them instead
- Always remind the contractor that this is a first draft for review, not a final quote
- If the description is unclear or missing key dimensions, ask 1-2 clarifying questions before estimating
Part 4: Upload Your Knowledge Files
In the Configure tab → Knowledge section → Upload files. Upload:
- Your pricing reference sheet (CSV or .txt)
- 3-5 of your best past estimates (converted to PDF or text)
- Any material pricing lists you have from suppliers
What you should see: Files appear in the Knowledge section. The GPT will reference these when generating estimates.
Part 5: Test with a Real Project Description
In the preview (right side of the builder), type:
Estimate a 10x12 bathroom remodel. Scope: demo existing ceramic tile (floor and shower walls),
install cement board, new 12x24 porcelain tile (floor) and 4x12 subway tile (tub surround),
replace toilet and vanity (we supply, client picks fixtures), all new plumbing fixtures,
paint walls and ceiling. Pull permits.
Review the output:
- Does the labor breakdown match your actual rates?
- Are the quantities reasonable for a 10x12 bathroom?
- Is the total in the right ballpark?
Adjust the Instructions or Pricing Reference file based on what's off.
Part 6: Publish and Use
Click Save → Only me. Your custom GPT appears in the left sidebar under "My GPTs." Use it for every new estimate.
Real Example: Master Bathroom Remodel
Setup: Custom GPT loaded with labor rates ($85/hr for tile setter, $95/hr electrician, $90/hr plumber) and past bathroom estimate data.
Input:
Master bathroom, 12x14 feet. Demo all existing. Install 24x24 marble tile (floor),
custom tile shower surround (floor, walls), frameless glass door. Freestanding soaking tub.
Double vanity 72" (client-supplied). New toilet (client-supplied). All new fixtures.
Exhaust fan. Paint.
Output (condensed):
| Item | Qty | Unit | Unit Cost | Total |
|---|---|---|---|---|
| Demo. tile, fixtures | 1 | lump | $1,800 | $1,800 |
| Cement board | 280 | sq ft | $2.50 | $700 |
| Marble tile, floor | 168 | sq ft | $18.50 | $3,108 |
| Tile shower, floor | 85 | sq ft | $16.00 | $1,360 |
| Tile shower, walls | 130 | sq ft | $15.00 | $1,950 |
| Glass door | 1 | unit | $2,200 | $2,200 |
| Tub set (client-supplied) | 1 | labor | $650 | $650 |
| Vanity set (client-supplied) | 1 | labor | $450 | $450 |
| Plumbing. fixtures | 1 | lump | $1,400 | $1,400 |
| Electrical. exhaust fan | 1 | unit | $380 | $380 |
| Paint | 180 | sq ft | $1.80 | $324 |
| Permits | 1 | lump | $475 | $475 |
| Subtotal | $14,797 | |||
| Overhead (15%) | $2,220 | |||
| Profit (10%) | $1,702 | |||
| TOTAL | $18,719 |
Flags: Marble tile price will vary by selection, verify with supplier. Frameless glass door may need structural header, confirm at site visit.
Time saved: 45 minutes to generate and review vs. 6+ hours to build from scratch.
What to Do When It Breaks
- Estimates are consistently too high or low → Update your Labor Rates file with corrected rates; delete and re-upload the file in the Knowledge section
- GPT missing line items → Add the missed items to a "Common Mistakes" section in your Instructions: "Always include: cement board for any tile work, permit costs, grout and setting materials"
- Descriptions too vague to estimate → The GPT should ask clarifying questions (per your instructions); if it doesn't, add to Instructions: "If scope description is incomplete, ask 2 clarifying questions before proceeding"
- GPT making up confident numbers → Reinforce in Instructions: "Flag any item where you don't have specific data from the knowledge files"
Variations
- Simpler version: Don't upload past estimates, just upload your pricing rate sheet. The GPT won't be as calibrated but still produces useful first drafts.
- Extended version: Build a second Custom GPT for subcontractor communication. loaded with your sub's specific rates, preferred message formats, and common scheduling patterns. Run both in parallel for a full project package.
What to Do Next
- This week: Run your next 3 incoming jobs through the GPT and track accuracy vs. your final quote
- This month: After each project closes, update the Pricing Reference file with actual costs. the more you feed it, the more accurate it gets
- Advanced: Export the GPT's output directly into your Google Sheets estimate template (copy-paste the line items into the appropriate rows) for a seamless workflow
Advanced guide for remodeling estimator professionals. ChatGPT Plus required for Custom GPTs with Knowledge uploads, check chat.openai.com for current pricing.