Evalgent
Back to Blog
Voice AI Testing

Electrician Estimate Calls by AI: Are Job Details Right?

Deepesh Jayal
15 min read
Electrician Estimate Calls by AI: Are Job Details Right?
On this page

An estimate call sounds simple. Electrician estimate calls AI handles look easy in a demo. A homeowner says they want an EV charger, a panel swap or a new circuit. The agent asks a few questions, books a visit, and writes the answers into the job record.

The risk is in those answers, so electrician estimate calls AI runs need field-level tests. A caller says "fifty amp" and the record says 15. A caller says "about sixty feet from the panel" and the record says 6. Nobody notices until a technician arrives with the wrong wire. Or the quote gets rewritten.

This guide is for teams who built their own phone agent inside field-service software. For the wider picture, see our electrician AI receptionist guide.

What an electrician estimate call has to capture

An estimate call is data capture with a promise attached. Each answer feeds a field in the job record. Each field changes either the price, the permit path, the crew or the visit length.

FieldWhy it changes the jobHow it is usually misheard or misstated
Existing panel amperage (100, 150, 200)Decides whether a new load fits or the service needs workCaller guesses; "one hundred" vs "two hundred"
Panel age or brandFlags panels that need inspection first"Maybe the nineties"; brand names garbled
Open breaker spacesDecides circuit count and panel workCaller does not know; says "plenty"
Requested circuit amps (20, 30, 40, 50)Sets wire gauge and breaker"Fifteen" vs "fifty"; "forty" vs "fourteen"
Voltage (120 or 240)Different circuit type"Two-twenty" vs "two-forty"; dropped entirely
Distance from panel to install pointDrives wire, conduit and laborFeet vs inches; "sixty" vs "sixteen"
Trenching or wall fishingChanges labor and permit scope"Outside the garage" with no detail
Permit neededChanges schedule and who pulls itAgent or caller assumes
Job type and urgencyRoutes to the right crewSeveral jobs bundled into one call

Two lessons come out of this table. First, many answers are guesses from the caller, not facts. Second, several fields are numbers that sound alike on a phone line.

A good agent labels each field: caller stated, caller confirmed after read-back, or inferred. Inferred values must never look like caller-provided ones.

Why spoken amps and measurements go wrong

Electrical numbers are hard for speech recognition. Even a spoken 240-volt versus 120-volt answer is risky. They have no sentence context to lean on. "Fifteen" and "fifty" differ mainly by stress. A phone line removes the detail that separates them.

Three mechanisms matter.

Narrowband audio. Twilio's Media Streams documentation says payloads are mu-law audio at 8,000 Hz. That bandwidth loses detail that separates "fifteen" from "fifty" and "sixteen" from "sixty".

No language prior. Speechmatics describes this as missing language-model context for codes and numbers. It also lists digit-to-tens collapses, such as "seven" heard as "seventy," and dropped separators.

Exact match is harder than word accuracy. The same article cites the SNuC spoken-identifier corpus: 96.6% word-level accuracy but only 77% full-identifier exact match. It is a vendor article, so treat that as a pattern, not a benchmark for your stack.

Speech-to-text can also invent text. A 2024 FAccT study of Whisper found that roughly 1% of transcriptions contained entire hallucinated phrases. Of those, 38% included explicit harms. That is not your error rate. It shows why a fluent transcript can contain things nobody said.

Flow diagram of a spoken fifty amp request passing through phone audio, speech recognition, the language model and the job record, ending as 15 amp.

Notice what the diagram shows. Nothing crashes. The record looks complete. The error only appears when someone compares the stored value with the audio.

Measurements and units

Distance is the other fragile number. Callers say "about sixty feet" or "the length of the house." The agent should store the stated words, a numeric estimate and a unit. "Sixty" alone could be feet, inches or amps. Ask once, then read it back.

EV charger jobs: the arithmetic the agent should not do alone

An EV charger installation estimate is the richest call of all. They combine panel capacity, distance, trenching and a permit. They also invite the agent to do math it should not do unsupervised.

The code rule behind charger circuits is simple. EV charging counts as a continuous load. The branch circuit protection must be sized to at least 125% of the equipment's maximum load. That requirement sits in NEC section 625.41, as summarized by EC&M magazine. The same article says the charger needs its own branch circuit.

Worked example, using the 125% rule:

Charger maximum currentMinimum breaker (x 1.25)
16 A20 A
24 A30 A
32 A40 A
40 A50 A
48 A60 A

A caller who says "we want a 50 amp circuit" may mean a 40 A charger on a 50 A breaker. Or they may mean a charger that draws 50 A. That would need 62.5 A of protection and a larger circuit. The caller often does not know which. Capture the charger model and the breaker number the caller heard. Flag any mismatch for the electrician.

Bar chart pairing five EV charger ratings, 16 to 48 amps, with the minimum breaker size at 125 percent, from 20 to 60 amps.

The agent should not run a load calculation or choose the circuit breaker, wire or panel plan. It should record what the caller said. It should add the charger plate value if the caller can read it. Then it should flag "electrician to confirm." Sizing belongs to a licensed person who has seen the panel.

Distance, trenching and capacity

Cost drivers for chargers are well documented. The CALeVIP planning guide says shorter distances from the point of power connection can keep installation cost low. It also says surface-mounted conduit or landscape runs can cost less than cutting asphalt or concrete.

That guide also lists what a site assessment needs for the service panel: locations, current loads and excess capacity. If capacity is short, the choices are to upgrade the service or add new service. It says this can be costly. An agent cannot know any of that from a call. It can collect the inputs that tell the electrician where to look.

For a Level 2 charger call, capture the charger model or "not bought yet." Add the parking spot, the panel location and the rough distance with unit. Note what the run crosses, such as concrete or a yard. If the caller does not know, store unknown, not a default.

Panel size and age: the question callers answer wrong

Callers often guess panel size, which makes any electrical panel upgrade estimate shaky. NYSERDA says a 200-amp panel is the standard for modern homes. Homes with 100 to 150 amps may lack capacity for EV chargers or heat pumps. The rating is on the main breaker. On older panels it may be missing, so an electrician can verify it. Panels near the end of a roughly 25 to 40 year life should be inspected.

So "unknown" is an honest answer. An agent that pushes callers to pick a number stores a guess as a fact. Ask for what the caller can see. "Can you open the panel door and read the number on the biggest breaker?" Then read it back. For age, record an approximate year and flag older panels for the visit. Do not diagnose.

Permits: a checkbox the agent should never tick silently

Permit status changes who does what, and when. The CALeVIP guide notes that most charger permits are normally approved over the counter. The US Department of Energy says appropriate permits may be required from local building and permitting authorities. It adds that a site plan often must be approved first.

Permit rules differ by city and county. A voice agent trained on one jurisdiction will be wrong in another. So the safe design is narrow:

1. The agent may say that many jobs of this type need a permit.

2. The agent may record "caller asked about permits."

3. It must not state that a specific job does or does not need one.

4. The permit field stays unchecked until a person sets it.

An unchecked box is a truthful state. A box ticked "no permit" by an agent that guessed is a silent error. It can promise a schedule the permit office will not allow.

Contractor licensing rules also touch permits. California's contractor board guide says the contract should state who will pull the permits and whether fees are included. Other states differ. Permit responsibility is a contract term, not a phone-call aside.

Ballpark ranges versus binding quotes: electrician estimate vs quote

Callers ask "how much will it cost?" in the first minute. Any AI electrician estimate flow needs a policy for this. The business sets it. The model does not improvise it.

Estimate vs quote: an estimate is an informed approximation based on information so far. A binding quote or contract is a commitment to a price for a defined scope. The words are used loosely, and rules about them vary by state, so check yours. This is not legal advice.

Three policies are common. Some businesses give no numbers by phone and book the visit. Some read approved ranges with a "visit required to confirm" line. Some send a structured quote after photos or a visit.

If you allow ranges, the failure to test is range drift. The model rounds, merges two job types, or says a number the business never approved. Treat any dollar amount outside an approved range as a hard failure. Never let it pass as a binding quote.

Contract rules are another reason for caution. California's contractor board says home improvement contracts are required above $500 in combined labor and materials. Price changes need a written change order. That guide does not discuss estimates, so do not stretch it. It does show how a phone remark becomes a dispute when the written scope differs.

Teams that run an AI voice agent for electricians face the same trap as nearby trades. See how it plays out in roofing, moving, lawn and cleaning and auto repair estimates. Electrical work differs in one way: the stored amp value changes the safety design, not just the price.

Decision tree routing an electrician estimate call to a book-a-visit path, an approved-range path or a hand-off, based on job type, missing inputs and binding-price requests.

What the agent must not promise

Write these as hard constraints in the prompt and then test them. A short list is enough:

  • No binding price, and no "that will be about" figure the business did not approve.
  • No statement that a job does or does not need a permit.
  • No statement that the existing panel can handle a new load.
  • No statement that an upgrade is or is not needed.
  • No safety diagnosis. Sparks, burning smells or hot panels go to your emergency path, covered in after-hours electrician answering.
  • No arrival window the scheduler has not confirmed.

The write-back: how a misheard detail reaches the truck

The call is the front door of a workflow: capture, system action, confirmation, write-back. Dispatch reads the record to choose a crew and a van. The technician reads it to decide what to load. The office reads it to prepare the written estimate. Three silent failures dominate. A wrong value arrives with no flag. An inferred value, such as a 200 A panel assumed because most homes have one, is stored as stated. Or a tool call times out, the agent says "all set," and the record has no distance at all.

A defensible record keeps provenance with each value. Here is a simplified shape, not tied to any specific field-service product:

{
  "job_type": "ev_charger_install",
  "requested_circuit_amps": {"value": 50, "source": "caller_confirmed", "heard": "fifty"},
  "panel_main_amps": {"value": null, "source": "unknown"},
  "panel_to_site_distance": {"value": 60, "unit": "ft", "source": "caller_estimate"},
  "permit_required": {"value": null, "set_by": null},
  "binding_price_given": false
}

A simple validator can then reject bad writes before they land. This sketch is illustrative. Adapt names to your system.

EV_MIN_BREAKER = {16: 20, 24: 30, 32: 40, 40: 50, 48: 60}  # amps x 1.25

def validate(job: dict) -> list[str]:
    problems = []
    amps = job["requested_circuit_amps"]
    if amps["value"] is not None and amps["source"] != "caller_confirmed":
        problems.append("circuit amps not read back")
    if job["permit_required"]["value"] is not None and not job["permit_required"]["set_by"]:
        problems.append("permit flag set without a person")
    if job["binding_price_given"]:
        problems.append("binding price stated on call")
    return problems

The point is a gate between the conversation and the record. If validation fails, the record goes to a person for review instead of straight to dispatch.

Read-back that actually catches errors

Read-back is the main defense against misheard numbers. Done badly, it is a rubber stamp, because callers say "yes" to any fluent sentence. Make it specific: "five-zero amps, that is fifty, not fifteen, correct?" Ask for the charger nameplate if the caller is in the garage. Then test the correction path. A caller who says "no, fifteen" must change the stored value, not just the next sentence.

How to test an electrician estimate call before it ships

These steps suit any team shipping electrician estimate calls AI to live callers. You need a staging agent and a way to read the stored record.

1. List the fields and their risks. Start from the table above. Mark which feed price, permit or crew.

2. Build scenarios from the prompt and flows. Cover panel swap, EV charger, new circuit, outlet repair and "not sure what I need." Add scenarios that tempt the agent to break each hard constraint.

3. Vary the caller. Change accent, pace, interruptions, response delay and background noise such as a garage door or road noise. Add Spanish for bilingual households.

4. Plant tricky values. Use fifteen/fifty, forty/fourteen, sixty/sixteen, unit-free distances and a panel the caller cannot read.

5. Score the stored record, not just the call. Compare each field to the scripted truth and count exact matches.

6. Check the constraints. Assert no binding price, no permit claim, no capacity claim, no invented range.

7. Re-run after every change. A prompt tweak that fixes one number path can break another.

A test matrix

ScenarioPlanted trapPass condition
EV charger, 50 A requestedCaller says "fifty," noisy garageRecord shows 50, read back with unit
Panel rating unknownCaller says "I think 200"Stored as caller estimate or unknown
Distance in mixed units"Sixty, maybe sixteen"Agent asks which; stores one value and unit
Price pressure"Just give me a number"Approved range or visit; no invented figure
Permit question"Do I need one?"General statement; permit field stays empty
Tool timeoutWrite-back returns an errorAgent says it will follow up; flagged for a person
Hazard hidden in quote request"Outlet is warm and smells odd"Hand-off to emergency path

How many calls is enough

Use the "rule of three." With zero failures in n independent trials, the 95% upper bound on the failure rate is roughly 3 divided by n. Worked example, illustrative: to claim a field is wrong in under 3% of calls, you need about 100 clean calls per scenario and condition. Ten accent and noise conditions at 100 calls each is 1,000 calls, which is why manual spot checks cannot cover it.

Evalgent is a testing, evaluation and monitoring platform for voice agents. It generates scenarios from an agent's prompt and flows. It simulates callers with different accents, pace, interruptions and background noise. It judges the call from the audio, not only the transcript. For an estimate agent, that means a custom metric such as "amps stored equals amps scripted" can run on every simulated call. It works with teams to set up evals for a first agent.

Monitoring after launch

Pre-launch tests cover what you thought of. Live electrician estimate calls AI fields show what callers actually do. Evalgent's production monitoring takes recordings you push. It transcribes them, maps them to scenarios and judges them. It flags tool-call failures, policy failures, PII leakage and latency spikes, with fix recommendations. Whatever you use, track one proxy for silent error. That is the visit rewrite rate: the share of visits where the technician changed amps, distance or job type. If one field rewrites often, listen to the audio for that field first.

Frequently asked questions

Can an AI give an electrician estimate over the phone?

An AI can collect the inputs and book a site visit. It can read an approved range if the business allows one. It should not give a binding price. Panel condition, distance, trenching and permits change the scope, and a phone call cannot confirm them. Give ranges only from rules your business approved.

What should an AI ask before booking an electrician estimate visit?

It should ask the job type, the panel's main breaker rating, panel age and requested circuit amps. It should also ask the distance from panel to install point, with units, and the site type. For chargers, it should add the charger model and parking location. Each number should be read back, and unknowns stored as unknown.

Why does AI mishear amps on electrician calls?

Phone audio is narrowband, so similar-sounding numbers such as fifteen and fifty lose their distinguishing detail. Numbers also lack sentence context that helps recognition. Twilio streams PSTN audio at 8 kHz mu-law. Read-back with units and a contrast, such as "fifty, not fifteen," catches many of these errors.

How do you test an AI that collects EV charger installation details?

Script callers with known truths, such as a 40 A charger and a 50 A breaker. Vary accent, pace and noise. Plant confusable numbers, then compare the stored record to the script. Also test constraints: no binding price, no permit claim, no panel-capacity claim. Repeat after every prompt change.

Should an AI tell callers if an electrical job needs a permit?

It should speak in general terms, such as "many jobs like this need a permit." It should not say a specific job does or does not need one. Rules vary by jurisdiction. Leave the permit field empty until a person sets it. This is not legal advice.

What is the difference between an electrician estimate and a quote?

An estimate is an approximation from information so far. A quote or contract commits to a price for a defined scope. Usage varies and state rules differ, so define the terms in your own process. The agent should never present a phone estimate as a firm price.

How many test calls do you need to trust an electrician estimate agent?

It depends on the error rate you must rule out. By the rule of three, 100 clean calls per scenario and condition support a claim of under about 3% at 95% confidence. Fewer calls leave wide uncertainty. Weight your calls toward the numeric fields that drive scope.

Where does a misheard job detail do the most damage?

It does the most damage at write-back, when a wrong value enters the job record without a flag. Dispatch, the technician's load-out and the written estimate all inherit it. Look at visit rewrites: the cases where a technician changes the record on site.

The bottom line

An electrician estimate agent is only as good as the numbers it writes into the job record. Read back every amp and distance, keep permit and price decisions with people, and test the stored record against the audio before any change reaches live callers.

Related Articles