Evalgent
Back to Blog
Voice AI Testing

Missed Delivery and Return Calls by AI: Redelivery Done Right

Deepesh Jayal
15 min read
Missed Delivery and Return Calls by AI: Redelivery Done Right
On this page

A missed delivery call is short and emotional. The caller found a door tag, or an app says "attempted," and wants the box today. If your product team built the voice agent, every answer it gives is a promise made in your brand's name. It also writes something: a redelivery request, a return record, a claim, a note for the driver.

This post covers missed delivery AI calls from the test side. It assumes you own the agent and your customers' recipients are the callers. For the tracking-number and exception-status side, read our guide to delivery exception AI calls. For shipper-side status calls, see load tracking AI calls. This post stays on the recovery moment: what the agent may promise, and what it must refuse.

Up to 3
UPS delivery attempts at its discretion before return to sender (UPS delivery notice page, Oct 2026)
7 days
FedEx Hold at Location holding period, then back to shipper (FedEx)
60 days
UPS window to start a lost or damaged claim, counted from scheduled delivery (UPS)
$849.9B
Projected US merchandise returns for 2025, 15.8% of sales (NRF, Oct 15, 2025)

The five requests behind a missed delivery call

Each delivery attempt that fails creates a call, and callers rarely say what they want in one clean sentence. Most calls land in one of five buckets. Each bucket has a different gate and a different write-back.

RequestWhat the caller saysWhat the agent may doWhat gets written
Redelivery"You missed me, come back tomorrow"Offer only the options the parcel state allowsRedelivery request or driver note
Address change"Send it to my office instead"Only before a cutoff, and only if the caller may askAddress update or intercept request
Hold at location"I'll pick it up myself"Offer a pickup point if the parcel is eligibleHold request with a pickup deadline
Return"I don't want it, how do I send it back"Verify the order, then issue a labelReturn record and label
Claim"It says delivered but it isn't here"Collect facts and route to the right claimantClaim ticket

Safe-place instructions ride on top of all five.

The agent is the front door to an agentic workflow: capture, system action, confirmation, write-back. One wrong capture still writes a clean-looking record.

The promise ladder: what the agent may say

Start from the gate, not the script. For each request, write the state that must be true before the agent may say yes, and what it says when the state is false.

Here is what the carrier pages I opened say as of October 2026. Treat them as examples. Your own contract, account setup and carrier mix decide your real gates.

  • UPS delivery notice. UPS says it may make "up to three delivery attempts at its discretion." A package redirected to an Access Point is held 7 calendar days, then returned to the sender.
  • FedEx Hold at Location. FedEx holds packages "up to 7 days," then returns them to the shipper. The page says requests made before midnight the day before delivery should be ready the next day.
  • USPS Package Intercept. It is a sender's request. Retail requests return the item to the mailer. The USPS FAQ calls it "not a guaranteed service," and requests stay open for 10 days.
  • UPS Delivery Intercept. UPS says you must request an intercept before delivery. It ties Return to Sender to the shipper, and says address changes must happen while the package is in transit.
Promise gate grid for a missed delivery agent: five request types against who may ask, the state that must be true, and the closed-gate line

The pattern is the same across carriers. The right to change a parcel often belongs to the shipper, not the recipient. Your agent may talk to the recipient while your company is the shipper. It may also talk to a recipient of a third-party seller's parcel. The gate must know which case it is in.

Three rules keep the ladder honest.

1. Never promise a date the parcel state cannot support. If attempt three has passed, the agent cannot offer tomorrow.

2. Never confirm an address change as done. Say it was requested.

3. Offer only what is open. Callers treat every offered option as a commitment.

A common ladder bug is a prompt that lists all five options up front. The caller picks one. The tool then fails, or worse, succeeds on an ineligible parcel. Gate the options in code, and let the prompt see only what is open.

Matching the right parcel by voice

Everything above depends on the first step: the right parcel. Callers read tracking numbers off a door tag, a phone screen or an email. They read them fast, with background noise, and often skip or repeat groups.

A UPS "1Z" number is 18 characters. A developer write-up of the format describes `1Z`, six shipper characters, a service level, a package identifier and a final check digit. I recomputed the check digit for its test number, `1Z999AA10123456784`, and it matched. The UPS claims page also notes that tracking numbers usually start with "1Z." Other carriers use other formats. Verify yours against your carrier docs.

Why one mis-heard character matters

Speech recognition is scored on word error rate. Tracking numbers need exact match. A recent benchmark, VoiceCodeBench (arXiv, September 2026), tested 19 ASR configurations on English workplace recordings. It reports WER from 4.3% to 57.3%, but the share of recordings with every target value right ran from 6.3% to 68.7%. WER and exact-value recovery barely agreed. The benchmark is not telephony and not parcels, so use it as a warning, not a rate for your agent. Postal addresses were among the value types that failed most.

Now the arithmetic. If each character is read correctly with probability p, an n-character string is right with probability p to the power n. These are illustrative assumptions, not measurements.

Per-character accuracy4 characters10 characters18 characters
99.5%98.0%95.1%91.4%
99.0%96.1%90.4%83.5%
98.0%92.2%81.7%69.5%
95.0%81.5%59.9%39.7%
Grouped bar chart of illustrative full-string accuracy for 4, 10 and 18 character identifiers at four per-character accuracy levels, showing the 18 character tracking number falling fastest

At 98% per character, about three in ten 18-character reads fail. Phone audio and a noisy porch push per-character accuracy down that way. This is why an agent should never act on a single read of the number.

Validate, then read back, then confirm against state

A cheap defence is a check in code before any lookup. Here is a simplified check-digit validator for 1Z numbers. Use it only if your carrier docs confirm the algorithm.

import re

def letter_value(c: str) -> int:
    return (ord(c) - 63) % 10  # A=2, B=3, ... wraps at 10

def ups_1z_valid(raw: str) -> bool:
    s = re.sub(r"[\s-]", "", raw).upper()
    if not re.fullmatch(r"1Z[0-9A-Z]{16}", s):
        return False
    total = 0
    for i, c in enumerate(s[2:17]):          # 15 payload characters
        v = int(c) if c.isdigit() else letter_value(c)
        total += v * 2 if i % 2 else v       # double odd positions
    return s[17] == str((10 - total % 10) % 10)

A passing check proves only that the string is well formed. A near-miss that still passes can point at someone else's parcel. So add two more steps.

  • Read back in groups. "I have 1Z, 999, AA1, 01, 2345, 6784. Is that right?" Chunks beat a single run of characters.
  • Confirm against state, not against the caller. Look up the parcel, then ask something the real recipient knows: the delivery ZIP code, or the sender's name. If the answer does not match the record, do not read the address aloud.

That last step is also a privacy gate. A wrong-parcel match followed by "I see it is going to 14 Elm Street" reads another customer's address to a stranger. See our post on delivery address errors in pizza AI for how address capture fails in a related setting.

Address changes and redelivery: who can ask, and until when

An address change after shipping is the highest-risk promise in this workflow. It is also the one callers ask for most when a driver missed them.

The carrier pages above say two things, and a missed delivery attempt does not change them. The parcel must still be in transit, and the request is often a shipper's request. For the agent, that becomes a three-way split.

1. Your company is the shipper. The agent may submit a change or intercept through your carrier account, if the gate is open. It still reports "requested," not "changed."

2. Your company is a marketplace or platform. The seller owns the shipment. The agent takes the request and routes it to the seller or to a human.

3. The caller is a stranger to the order. The agent changes nothing and verifies identity first.

A redirect request can also be a way to divert a parcel. A caller who knows only a tracking number should not be able to move one. Verify the recipient against order data first. Treat "tracking number plus new address" as a request, not an authority.

Redelivery has a quieter trap. The agent says "tomorrow," but the carrier may not offer a specific slot. The UPS notice page says attempts are at UPS's discretion and points callers to its My Choice tool. If your system cannot book a slot, the agent should say what it can do: log the request, set the driver note, or send the self-service link.

Texting that link is its own compliance topic. On September 30, 2026, the FCC adopted a TCPA order on consent revocation. Per Kelley Drye's summary, it lets callers designate exclusive opt-out methods and says revoking consent for informational messages does not automatically revoke marketing consent. It takes effect 30 days after Federal Register publication. This is not legal advice. Ask counsel how it applies to delivery texts, and test that "stop" works inside the call.

If the caller's request reveals your own order cannot ship on time, that is a different rule. The FTC's Mail, Internet, or Telephone Order Merchandise Rule (16 CFR Part 435) requires a delay notice with an option to cancel for a refund. The agent should hand that off, not improvise. For vendor-side questions on order status calls in general, see our guide to evaluating an order status voice agent vendor.

Returns and label requests

The NRF projected $849.9 billion in US merchandise returns for 2025, 15.8% of annual sales. It estimated 9% of returns were fraudulent. Your agent sits inside that flow when a caller says, "I missed the delivery and I don't want it anymore."

Three details break return calls.

  • Order versus parcel. The caller reads a tracking number. The return belongs to an order. If one order shipped in two parcels, the agent must ask which item.
  • Eligibility. A parcel that has not been delivered may not be returnable. The right path may be refuse delivery or intercept, not a prepaid label.
  • Label delivery. A label link sent to a wrong number, or by email read back wrongly, lands in a stranger's inbox. Read back the destination, in chunks, before sending.

Write-back matters most here. A return record created against the wrong order can trigger a refund flow on an order the caller never placed. Test that the order ID on the RMA equals the order ID the caller confirmed.

Claims and safe-place instructions

A package claim call, "it says delivered, but nothing is here," is the call where tone matters most and routing matters most. The agent should collect facts and route. It should not decide.

UPS's claims page shows why routing is not trivial. A claim must be started "within 60 days of the scheduled delivery." Payments go to the shipper. A shipper can restrict recipients from starting a claim, in which case the recipient must contact the shipper. A recipient can file as a guest. So the agent needs to know who holds the account, how long ago the delivery was, and which party files.

A safe claim call gathers the confirmed tracking number, the scheduled and marked delivery dates, what the tag or proof of delivery shows, whether a neighbor or desk may hold it, and what outcome the caller wants. Then it opens the ticket and states the next step. It does not say "you will be refunded."

Safe-place instructions need their own test. "Leave it with the neighbor" is not "leave it with the front desk." Check that the stored text matches what the caller said, and that your system passes it to the carrier only if the carrier supports it. UPS's notice page says a driver may leave a package on the next attempt if the customer signs and returns the notice, and not for adult-signature items. An agent that stores a safe-place note for an adult-signature parcel creates a record that cannot be honored.

What a wrong write-back breaks downstream

The call ends. The caller is happy. Then the record says something else. This is the silent failure that transcript scoring misses.

Failure taxonomy grid for missed delivery calls: six speech or logic errors, the record each one writes, and the downstream problem it creates for the customer or the business

Walk the grid. A digit swap writes a redelivery request on someone else's parcel. A promise past the cutoff writes a request the carrier will ignore. A misheard email sends a label to a stranger. A claim routed to the wrong party silently misses the 60-day window. None of these raises an error. Each leaves a clean record and an unhappy caller a week later.

Evalgent is built for this gap. It generates test scenarios from the agent's prompt and flows, covering states, branches, policies and hard constraints. It then calls the agent over phone, SIP or WebRTC with caller profiles that set accent, speech pace, interruption level and background noise. It judges from the audio, not only the transcript, so a swapped digit in a read-back shows up as evidence. Custom metrics, such as "write-back equals confirmed value," run on every call.

How to test missed delivery AI calls before release

Run this sequence on every prompt or flow change.

1. List your gates. For each of the five requests, write the state that must be true, who may ask, and the refusal line. Keep it in a table your engineers and support lead both sign.

2. Build parcel fixtures. Create test parcels in each state: first attempt, final attempt, held at location, returned, delivered-but-missing, in transit, split order. Include one parcel whose number differs from another by a single character.

3. Write caller profiles. Vary accent, pace, interruptions, delay before answering and porch or street noise. Include callers who give the number in groups, in one run and with corrections ("no, 4 then 8").

4. Script the traps. Ask for an address change after the cutoff. Ask for a return on an undelivered parcel. Ask for a claim as a non-shipper. Give a number that fails the check digit. Give a valid number with the wrong ZIP code.

5. Score two things. First, the call: read-back done, gate respected, no promise beyond state. Second, the record: tracking number, order ID, date, address and note match what the caller confirmed.

6. Set a release bar. Zero tolerance for wrong-parcel matches and for promises past a gate. A rate target for the rest. Judge from audio, and have a person review disputed verdicts.

7. Replay after changes. Run the same set after each prompt, model or carrier-tool change. Our guide to shipping voice agent prompt changes safely covers staged release.

8. Monitor live calls. Sample recordings weekly. Look for tool-call failures, policy failures and any call where the agent gave a date the carrier state did not support.

How many test calls is enough?

Take a worked example. If you run n test calls per scenario and see zero failures, the 95% upper bound on the true failure rate is roughly 3 divided by n (the "rule of three"). To show a failure rate under 5% for one scenario you need about 59 clean calls, because 0.95 to the 59th power is 0.0485. For a gate that must be near zero, such as wrong-parcel matches, you will need far more, or you need a structural fix like the check digit plus state confirmation. These figures are statistics, not Evalgent results.

Production monitoring covers the rest. Evalgent can take customers' call recordings, transcribe them, map each call to a scenario and judge it. It flags PII leakage, tool-call failures, latency spikes and policy failures with fix recommendations. That is how you find the call where the agent read someone's address aloud. Evalgent works with teams to set up evals for a first agent, so a short scoping call is the starting point.

What to track after launch

For missed delivery AI calls, a contained call can still write the wrong record. Track outcomes that follow the record: redelivery requests that match the confirmed parcel, labels that reach the right recipient, claims opened inside the window. Our posts on containment versus resolution and on pizza "where's my order" calls show the same split in other flows. For driver-side calls on the same parcels, see last-mile driver support AI.

Frequently asked questions

Can an AI voice agent reschedule a missed delivery?

Yes, if your system can book it, and only within what the parcel state allows. Carrier pages describe redelivery as at the carrier's discretion, so the agent should log a request or send a self-service link rather than promise a time. Gate the option in code and have the agent refuse once the final attempt has passed.

How does an AI agent verify a tracking number by voice?

Three layers. Validate the format and check digit in code, read the number back in groups, then confirm against the parcel record with a second fact such as the delivery ZIP code. A single read of 18 characters is unreliable, so never act on it alone.

Can an AI agent change a delivery address after shipping?

Sometimes, but not by default. Carrier pages I opened say the parcel must still be in transit, and options like intercept are described as shipper requests. The agent should verify the caller, check the cutoff, and say the change was requested, not made.

What should an AI agent promise on a redelivery call?

Only what the current state supports and your system can book. Offer the open options, name the next step and the deadline, and never confirm a carrier action as done. If hold at location is eligible, mention the holding period, such as FedEx's up to 7 days.

How to test an AI agent that handles return label requests?

Build fixtures for split orders, undelivered parcels and delivered parcels, then call with varied accents and noise. Check that the RMA carries the order ID the caller confirmed, that the label goes to the read-back email or number, and that ineligible parcels get a refusal.

Why do AI agents misread tracking numbers?

Phone audio is narrowband and noisy, callers speed through characters, and similar sounds such as B, D and P collide. Recognition is also tuned for words, not exact strings. A recent benchmark found WER and exact-value recovery barely agree, so test identifiers directly.

How do you route package claims from an AI call?

Collect the tracking number, the delivery dates, what the tag or photo shows, and the outcome the caller wants. Then route by who holds the carrier account. UPS says claims start within 60 days of scheduled delivery and payments go to the shipper, so the agent must know the claimant.

How many test calls to approve a delivery AI agent?

By the rule of three, 59 clean calls per scenario bound the true failure rate under 5% at 95% confidence. Hard gates, such as wrong-parcel matches, need more calls or a structural control like a check digit plus state confirmation. Re-run after every change.

The bottom line

Missed delivery AI calls are won or lost on the promise, not on the greeting. Match the right parcel with a check and a state confirmation, promise only what the gate allows, and test the record the call leaves behind.

Related Articles