ChatGPT for Electrical Contractors: Bid Clarifications and RFIs

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Electrical Contractors: Bid Clarifications and RFIs.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for ChatGPT for Electrical Contractors: Bid Clarifications and RFIs.

An electrical contractor can use ChatGPT to draft bid clarifications, RFIs and submittal cover letters. Paste only the relevant spec and drawing notes, ask for numbered clarifications with stated assumptions, turn site notes into RFIs with exact references, and fill cover letters from a facts list. You judge each conflict and check every reference before sending.

Commercial paperwork rewards this treatment because it is formulaic and high in volume: a bid raises dozens of questions, a project builds a long RFI log, and every submittal needs a cover letter. The risk is the one that follows ChatGPT everywhere. If the real reference isn't in front of it, it will cite a drawing sheet or spec section that doesn't exist. The prompts below make that harder, and the checks catch what is left.

Follow me on Instagram@sagnikteaches

The running example is a bid for the electrical package on a ground-floor café fit-out inside an existing shell. The sheet numbers, spec text and project details are all invented, so treat them as shapes for your own documents rather than as anything to copy.

Connect on LinkedInSagnik Bhattacharya

Confidentiality comes first, because bid documents rarely belong to you.

Subscribe on YouTube@sagnikteaches

Confidential documents: what you can paste and where

Tender documents usually arrive with terms about how they may be used, and some owners and main contractors restrict sharing with third-party tools. Read the terms before the first paste. Where they say nothing, behave as if they said everything: copy extracts, not documents.

PasteKeep out
The specific spec paragraphs and drawing notes behind the question, copied as textWhole drawing sets and whole specification sections
Your own scope description and bid-form wordingOwner, tenant, address and consultant names or stamps
A generic project label such as "café fit-out"Other bidders' prices and subcontractor quotes received in confidence
References exactly as written (sheet and section numbers)Anything covered by a non-disclosure agreement

Then check the plan. OpenAI's Data controls page lists sharing as the default for personal plans: the Improve the model for everyone switch starts on, and it lives under Settings, then Data controls. Business, Enterprise and Edu workspaces are not used for training by default. A Temporary Chat stays out of history and training, though OpenAI may keep it for up to 30 days for safety. Rating a reply with the feedback buttons can send the whole conversation for training even if you have opted out, so leave them alone on project chats.

Length matters too, because specifications are long. OpenAI's pricing page describes the space for your input as an approximation that varies with the features in use, and lists roughly 12 pages of text as the input maximum for the Instant model on Free against about 40 on Go and Plus (as of November 2026). Extracting the paragraphs that matter keeps you inside any plan's limit and keeps the answer focused.

Set the rules once in a ChatGPT Project (OpenAI's help page says a project keeps chats, files and instructions together, with the instructions under Project settings). These are standing instructions I'd start with:

You assist an estimator and project manager at an electrical subcontractor. You draft and organise paperwork; you do not decide.
1. Use only the text I paste. Quote every drawing, sheet, section and item reference exactly as written. If a reference is missing, write [CHECK: reference]. Never create a reference.
2. A thing absent from my extracts may exist in the full documents. Say "not in the extracts", never "not specified".
3. Do not comment on whether anything complies with a code or standard. Do not price anything.
4. Keep project, owner and consultant names out of every output; use "the project" and "the main contractor".
5. Plain, polite, direct British English. One issue per numbered item.
The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Cutting the extracts: nine search phrases that find the conflicts

You can't paste the whole specification, so you need a quick way to pick the paragraphs that matter. Scope gets handed between trades in a small set of phrases, and conflicts cluster around them. Search the specification and the drawing notes (a text-searchable PDF makes this a ten-minute job) for these:

  • "by others" and "by electrical contractor": the two sides of one handover, which should agree between drawings and specification.
  • "TBC" and "to be verified": items someone has parked, usually without telling bidders what happens if they stay unresolved.
  • "allowance" and "provisional": money held for something undefined, where the definition decides who carries the risk.
  • "existing": work that touches what is already there, where condition and capacity are rarely stated.
  • "as shown" and "coordinate with": phrases that point at another document and are only as good as that document.

Copy each hit with its whole paragraph and its reference, and add any drawing note that mentions the same item. The nine extracts in the café example came from exactly this kind of search. If a hit has no matching note on the other side, paste it anyway, because a one-sided mention is often the gap itself.

Bid clarifications: from spec extracts to a numbered list

Before the bid closes, you ask the main contractor or designer questions, and where an answer doesn't arrive in time you state an assumption in your proposal. A good clarification list separates the two: items you must ask because the price swings on the answer, and items you can safely assume and note. ChatGPT is good at the sorting because the source text is short and in front of it.

Start by pasting extracts into the chat. These are the ones from the café fit-out (all invented):

SPEC 1: "Provide all lighting controls as indicated on the drawings. Controls to be networked."
E-101 NOTE 4: "Lighting controls by electrical contractor. Stand-alone occupancy sensors only."
SPEC 2: "Kitchen equipment connections by the electrical contractor from isolators provided by the equipment supplier."
E-103 SCHEDULE: lists nine items of kitchen equipment; three are marked TBC.
SPEC 3: "Emergency lighting to be tested and certified on completion."
E-101 NOTE 7: "Emergency lighting layout by lighting designer. Not shown."
SPEC 4: "Fire alarm: extend the existing system. Panel capacity to be verified by the contractor."
E-105: "Fire alarm devices by others."
BID FORM: "Builder's work in connection with electrical works: included by the electrical contractor."
From the extracts above, list the conflicts, gaps and ambiguities that would affect an electrical subcontractor's price. Output a table with columns: # | Source references (exactly as written) | Type (Conflict, Gap or Ambiguity) | Question for the main contractor | If unanswered, the assumption I would state | Price risk (High, Medium or Low).
Quote references exactly. Do not create references. Do not comment on code compliance. Do not price anything.

The table that comes back (illustrative, condensed) looks like this:

#ReferencesTypeQuestionIf unanswered, assumeRisk
1Spec 1; E-101 note 4ConflictSpec 1 asks for networked lighting controls; E-101 note 4 says stand-alone occupancy sensors only. Which applies?Stand-alone sensors, as the drawing note saysHigh
2Spec 2; E-103 scheduleGapThree of nine equipment items on E-103 are marked TBC. Please issue their loads and connection types.Connections for the six confirmed items only; TBC items excludedHigh
3Spec 3; E-101 note 7GapThe emergency lighting layout is "by lighting designer, not shown". Will it be issued before the bid date?Emergency fittings priced as a stated allowanceHigh
4Spec 4; E-105ConflictSpec 4 says extend the existing fire alarm and verify panel capacity; E-105 says devices are by others. Who supplies and fits the devices, and who verifies the panel?Devices by others; capacity verification excludedMedium
5Bid form, builder's work lineAmbiguityDoes "builder's work in connection with electrical works" include chasing and making good for others' work, or only our own cutting?Cutting and making good to our own work onlyMedium
6None givenGapNo cable containment type is specified.Not statedMedium

Row 6 is the one to distrust, and it shows why rule 2 exists. You pasted nine extracts and none of them covered containment, so ChatGPT reported a gap in what you gave it, not in the documents. Delete the row after checking the full specification. Rows 1 to 5 each carry exact references that you now verify against the sheet index and the specification. On ChatGPT's labels, rows 1 to 3 would go on the clarification list and rows 4 and 5 into the proposal's assumptions. The next section tests that split against your own numbers. Electrical contractor proposals: scope and exclusions with AI covers the proposal side, where those assumptions end up.

Rank the questions by price swing, not by ChatGPT's label

ChatGPT's High, Medium and Low labels are a first guess made without knowing your rates. Replace them with a number. For each row, write the rough difference in price between the two readings of the documents, using your own unit costs, and rank by that. On the café package, valued at about $142,000, the swings come out like this (illustrative):

RowIssuePrice swing between the two readingsRank
4Fire alarm devices: supplied and fitted by us, or by others$11,200 (about 40 devices)1
1Networked controls or stand-alone sensors$8,8002
3Emergency lighting layout not issued$5,4003
2Three kitchen items still TBC$4,2004
5Scope of builder's work$3,0005

Row 4 was labelled Medium and turns out to be the biggest swing, because the drawing and the specification disagree about roughly forty devices. That is the reason to do the sums yourself: ChatGPT can read the conflict, but only you know what forty devices cost to supply and fit. Ask the top four and assume the fifth, noting it in the proposal. A starting threshold I'd suggest is about 3% of the package value, which is $4,260 here, and you'd still ask row 2 because its loads are completely unknown. Adjust the figure against your own bids as you learn which assumptions came back to bite.

The clarification letter that goes to the main contractor

Once you've decided which rows to ask, have ChatGPT turn them into a numbered letter. The structure is fixed: reference, question, proposed assumption, answer-by date.

Turn the numbered items below into a clarification letter to the main contractor. One short paragraph per item: the reference exactly as given, the question, and "If we hear nothing by [date], we will assume: ...". Polite and direct. No pricing, no mention of other bidders, no commentary on the design.
ITEMS: [paste rows 1 to 4]

The output, for item 1 (illustrative):

1. Lighting controls (Spec 1; E-101 note 4). Spec 1 asks for networked lighting controls, while E-101 note 4 states stand-alone occupancy sensors only. Please confirm which applies. If we hear nothing by [CHECK: date], we will assume stand-alone occupancy sensors as shown on the drawing.

Check three things before sending. Every reference matches the document index character for character. The deadline matches the tender instructions, and the letter goes through whichever channel they require. And the wording is neutral enough to be read by competitors: in many tenders the answers are issued to every bidder, so a question that reveals your pricing approach hands it to the others.

When the addenda arrive: tick off the list

Answers usually return as addenda or a consolidated query log. Paste your numbered list beside the answers and ask ChatGPT to match them, with a rule that stops it inferring:

Below are my numbered clarifications and the text of the addenda. For each numbered clarification, quote the addendum sentence that answers it, with the addendum number as written, or write "No answer in the text I pasted". Do not infer answers.
CLARIFICATIONS: [paste]
ADDENDA: [paste]

Then read each quoted sentence in the real addendum. The typical failure is an answer that sounds close: an addendum saying "controls as shown" can look like it answers item 1, when the conflict is exactly what "as shown" leaves open. Anything you can't tick yourself stays on the list, and your proposal assumption stands. Keep the matched table in the bid file as a record of what you were told and when.

RFI wording: what a response-ready question contains

An RFI (request for information) is a formal question about unclear or conflicting documents, raised during the job. The ones that get answered quickly share five parts: a subject line that says the issue, exact references, the conflict in one or two sentences, a proposed resolution, and the date you need a reply by. Compare these two, before and after (illustrative):

Before: Drawings don't match in the kitchen ceiling, please advise.

After: Cable tray and kitchen extract duct share the same ceiling zone. E-201 shows the tray from grid C to F; M-102 shows the duct from grid D to F. On site the clear gap looks about 60 mm. Proposed: re-route the tray along the corridor wall. May affect cost and programme. Response needed by [date] to hold the first-fix start.

The "before" costs a round of emails to find out what you meant, which is where the days go. Give ChatGPT your site note and this structure and it writes the "after":

Turn my site note into an RFI with: Subject; References (exactly as in my note); Issue in one or two sentences; Proposed resolution (one); Effect (write "may affect cost and programme" if I say so; no figures); Response needed by [date].
Do not blame anyone. Do not say what the code requires. If a reference is not in my note, write [CHECK: reference].
SITE NOTE: [paste your note]

A second example shows the boundary. Say the estimator notices that the equipment schedule on E-103 lists a 12 kW oven, while circuit C14 on E-201 is drawn as a single-phase 20 A way. Nobody needs a model to see that 12,000 watts on 20 amps would take about 600 volts, far beyond any ordinary single-phase supply, and that is the point: the estimator did the thinking and ChatGPT only did the wording. The draft:

Subject: Oven load against the circuit shown. References: E-103 equipment schedule, item 6 (12 kW); E-201 circuit C14 (single-phase 20 A way). Issue: The schedule lists a 12 kW oven but circuit C14 is drawn as a single-phase 20 A way. We cannot reconcile the two. Proposed: Please confirm the intended supply for item 6 (phase arrangement, protective device and cable size), or issue a revised schedule. Effect: may affect cost. Response needed by: [date].

Notice what is missing: no statement that the circuit is non-compliant, no proposed cable size, no blame. The RFI asks the designer to answer a design question, which is where the answer belongs. For the code side of the job, AI for electrical code: can ChatGPT answer code questions safely goes into the limits.

A third kind is the substitution request, which asks the designer to accept an equal alternative to a discontinued product. ChatGPT can word the request and set out the headings for a comparison (photometric data, dimensions, finish, warranty), but the judgement that the alternative is equal comes from the manufacturer's data and the lighting designer. In the draft, "equal" is always followed by "as shown in the attached data sheet", never by a claim of its own.

Once an RFI log exists, paste it with the new RFI and ask for the updated table: number, subject, date sent, response due, status. Compute the due dates yourself and paste them in, because date arithmetic across a long log is exactly where a language model drifts. AI for electrical project management: diaries, RFIs, snag lists goes further into the log and the site diary.

Submittal cover letters without invented part numbers

A submittal is a package of product data, shop drawings or samples sent for approval before you buy or install. Every package needs a cover letter naming the project, the submittal number, the spec section, what is attached, what you are asking for, any deviations from the specification and any lead time that affects the programme. It is the most repetitive paperwork on the job, and the most suitable for drafting.

The prompt works from a facts list you fill from the documents, so nothing in the letter comes from ChatGPT's memory:

Write a submittal cover letter from these facts only.
Submittal number: 07. Spec section: [as written in the spec]. Description: interior luminaires, types L1 to L4. Purpose: for approval.
Items (typed from the data sheets): L1, [part number], [quantity]; L2, [part number], [quantity]; L3, [part number], [quantity]; L4, [part number], [quantity].
Deviations: L3 is an equal alternative to the specified model, which its maker no longer lists (see data sheet 3).
Lead time (from the supplier's written quote): ten weeks from approval. Needed on site by week [CHECK].
Do not complete, correct or add any part number. Ask for returned copies by [date].

The letter that returns is mostly boilerplate wrapped around your facts, which is why it saves time. It also shows a classic failure. In an illustrative run, the letter listed "ABC-100-W" for L2 when the data sheet read "ABC-100". The model had seen a pattern in similar catalogue numbers and tidied up the one you gave it. Catch it by pairing the letter's part numbers with the data sheet's in two columns of a sheet and using =EXACT(A2,B2), which returns TRUE only when two strings match exactly, including spacing and case. Anything FALSE goes back to the data sheet.

  • Do the part numbers, quantities and types match the data sheets exactly?
  • Is every deviation listed, including the ones that seem minor? A missed deviation becomes your problem after approval.
  • Does the submittal number match your log, and is this the right revision?
  • Does the lead time come from the supplier's written quote, not from ChatGPT?
  • Is the spec section written exactly as it appears in the specification?

For checking fabrication drawings against the spec itself, a separate job from the cover letter, see AI tools for shop drawings.

A mistake that reached the outbox: the sheet that did not exist

Here is a mistake worth planning for, drawn from a plausible pattern rather than a real project. A project manager pasted a site note saying "the lighting plan shows a different circuit to the schedule" and asked for an RFI. The draft cited "E-204", because the note named no sheet and the model supplied one that looked right. The project had no E-204. The main contractor replied asking which drawing was meant, and four days passed before the right question was in front of the designer.

Two controls prevent it. Rule 1 in the project instructions tells ChatGPT to write [CHECK: reference] instead of inventing one. And the send-check has a 60-second step: search the sheet index for every reference in the draft. If any reference isn't in the index, it didn't come from the documents.

A change that follows an RFI answer, where the designer's reply adds work, belongs in a change order rather than in the RFI itself. Electrical change orders written with AI covers how to ask for the extra payment clearly.

How to tell whether it is paying off

Track three numbers for the first ten tasks. The first is the time from receiving documents to a finished clarification list. The second is how many references the check corrected, and the third is how many RFIs were answered without a follow-up question. My rule of thumb, which you should adjust after ten tasks: if more than one in five references needs correcting, paste more source text and tighten the prompt before using the drafts.

The time sum is modest. Suppose an estimator spends three hours building a clarification list by hand for a fit-out package. With the routine it is 20 minutes preparing extracts, 10 minutes prompting and reading, and about an hour verifying references and rewriting, so roughly an hour and a half. That saves an hour and a half a bid, or nine hours a month at six bids. The costs are small by comparison: Plus is $20 a month per person, and ChatGPT Business, with its two-seat minimum, is $25 per user a month or $20 billed annually, so a four-person office pays about $80 a month at the annual rate. The saving is real, but the discipline of the check is what makes it safe.

Questions electrical contractors ask about AI and project paperwork

Can ChatGPT read the drawings themselves?

Treat drawing reading as unreliable. It can transcribe text from a clear image of a note, but counting devices, tracing circuits or reading a title block from a busy sheet is where it slips. Copy the notes and schedules you need into text and let it work on those. Keep the drawings for your own eyes and your takeoff method.

Is it acceptable to put bid documents into ChatGPT at all?

That depends on the tender terms and any confidentiality agreement, so read them first. If they restrict sharing with third-party tools, ask the main contractor before pasting anything. Where nothing is said, paste short extracts rather than whole documents, remove names, and use a plan where training is off. A Business workspace is not used for training by default, but your contract terms still apply.

Should an RFI include a price?

Usually not. State that the issue may affect cost or programme and say you will confirm once you have the response, then follow the route your contract sets for changes. A priced RFI can be read as a claim before the question has been answered. If your contract sets notice periods for cost or time effects, ask an adviser to check how your RFI wording meets them.

Will ChatGPT know the electrical code that applies to my job?

No. It cannot know which edition or local amendments govern a project, and it can quote clause numbers that don't exist. Keep code answers out of its remit and take them from the adopted documents or the designer. Use it for the wording of a question, such as an RFI that asks the designer to confirm a circuit, not for the answer.

Further reads

Sources: OpenAI help pages (Data controls in ChatGPT; Projects in ChatGPT; ChatGPT Business overview) and ChatGPT pricing pages, read on 1 November 2026. All project documents and references in the examples are invented.

Want commercial paperwork drafted faster, safely?

On a 1:1 call we'll look at your bid, RFI and submittal routines, decide what can safely be drafted with AI, and set confidential-data rules your estimators and project managers will actually follow.

Book a 1:1 call with me