Evalgent
Back to Blog
Voice AI Testing

Prescription Refill AI Calls: Testing Drug Name Accuracy

Deepesh Jayal
15 min read
Prescription Refill AI Calls: Testing Drug Name Accuracy
On this page

AI prescription refill calls look easy. The caller names a drug, the agent logs a request, and a nurse approves it. That is a clean demo. In production, the call is the front door to a medical record. One misheard syllable can put the wrong drug in a refill queue, and nothing in the record shows it.

This post is for teams that built and run a prescription refill AI phone line for primary care or specialty clinics. It covers how drug names break on a phone call, what the downstream record looks like when they do, and how to test it. It is about software quality. It is not medical advice, and an AI phone line should never give any. Evalgent makes no HIPAA claims, and nothing here is a compliance opinion. See our healthcare AI receptionist QA guide for the wider workflow.

85-93%
Highest-error drug names misrecognized by on-device speech models in one 2026 preprint (Faulkenberry, not peer reviewed)
4-51%
How much worse medical-term error was than overall word error across pretrained models (Afonja et al.)
0
Refills allowed on a Schedule II prescription (21 CFR 1306.12)
5 / 6 months
Refill and time cap for Schedule III and IV prescriptions (21 CFR 1306.22)

What a refill call actually writes

A refill call is not a conversation to the system behind it. It is a form filled by voice. Each field is spoken once, heard once, and stored once.

The record usually holds six fields: the patient, the drug, the strength, the form, the pharmacy and the urgency. Each field has its own way to go wrong. The diagram shows one illustrative record where every field is silently off.

Table of one refill request: for six fields, what the caller said, what the record stored and the error type, from wrong patient to missing urgency

Three things make this worse than a typical booking error.

1. The error is quiet. A wrong appointment time shows up when the patient arrives. A wrong drug may show up days later, after a nurse has approved a request that looked normal.

2. The reviewer sees the record, not the call. Staff read the in-basket item. They rarely replay the audio. If the record says hydralazine, they approve hydralazine.

3. The caller thinks it worked. The agent said "got it." The patient hangs up satisfied and waits.

What the evidence says about drug names and speech recognition

Medication name recognition is a known weak spot for speech systems. They are rare words, they are often foreign in origin, and many differ by one or two sounds. Three sources are worth reading.

A benchmark on accented clinical speech. Afonja and colleagues tested 19 speech recognition systems on 2,844 clinical clips from 93 African accents. The best pretrained model, Whisper-large, had an overall word error rate of 0.373. Its error rate on medical entities was 0.454. Across pretrained model families, medical word error was 4 to 51 percent worse than overall word error. Medication recall for that model was 0.425. The authors also report that fine-tuning on clinical accented speech improved medical word error by 25 to 34 percent relative. Source: arXiv 2406.12387.

The setup matters. These are clinical recordings, not refill calls, and the medical entities were labelled automatically. The finding still transfers: a low overall error rate does not make drug names safe.

A 2026 preprint on medication names. J. Grey Faulkenberry benchmarked 17 systems, 12 on-device and 5 cloud, on 400 simulated or enacted clinical conversations. Overall error rates between the best on-device and best cloud systems differed by 0.5 to 5.2 percentage points. But the worst drug names were misrecognized in 85 to 93 percent of on-device occurrences, against 3 to 30 percent for cloud services. The paper's own point is that near-equal overall error can hide large gaps on medication names. It is a preprint under review, not yet peer reviewed, so treat it as a signal. Source: Research Square preprint.

A public case from a real pharmacy rollout. VTDigger reported in July 2026 that customers of a Vermont pharmacy chain described an AI refill assistant that mumbled or skipped drug names, requested wrong refills and had trouble finding longtime accounts. Those are customer accounts, not audited findings, and the company said it was aware of frustration during rollout and was reviewing each concern. The article is useful because it shows the failure shape in public: the caller cannot tell which drug is being discussed, so cannot catch a mistake. Source: VTDigger, July 29, 2026.

The lesson across all three is the same. Aggregate accuracy numbers say little about drug name accuracy. Test the names directly.

Why drug names break on a phone line

Four mechanisms explain most capture failures in a prescription refill voice agent. Knowing them tells you which tests to write.

Narrowband audio. Twilio Media Streams delivers audio as mu-law at 8,000 Hz, mono (Twilio docs). Phone audio drops the high frequencies that separate fricatives and many consonants. Sound-alike names lose exactly the cues that set them apart. See our guide on testing speech recognition under background noise.

Sound-alike and look-alike pairs. The Institute for Safe Medication Practices keeps a list of confused drug names, last updated February 2023. Pairs on it include hydrOXYzine and hydrALAZINE, metFORMIN and metroNIDAZOLE, and CeleBREX, CeleXA and Cerebyx (ISMP list). The capital letters are tall man lettering, a print fix the FDA promotes to help readers tell look-alike names apart (FDA Name Differentiation Project). That fix works on a label. It does nothing on a phone line. A caller cannot hear capital letters, so voice needs its own safeguard: a spelled or described read-back.

Brand versus generic. Callers say "the water pill," "my Lipitor" or "atorvastatin." The agent must map all three to the same medication-list entry, or ask. A wrong brand-to-generic map is quiet, because both are real drugs.

Numbers spoken fast. "Fifteen" and "fifty" differ mainly in stress. A caller reading a bottle label in a noisy kitchen blurs them. Strength errors are as dangerous as name errors, and a transcript-only check often passes them.

Accent and speaking pace make each of these worse. Our post on accent robustness for voice agents covers how to build that test slice. For the general method on names and codes, see evaluating STT for names and entities.

Look up the drug, do not trust the transcript

The most useful design move is to stop treating the transcript as the drug. A transcript is a guess about sound. The record needs an identifier.

Two lookups matter. First, the patient's own medication list in your system. A caller asking to refill a drug that is not on their list is a strong signal of a mishearing, or a request for a new prescription. Second, a normalised drug vocabulary. The National Library of Medicine's RxNorm service has an approximate-match call for terms that fail an exact match. Per its documentation, the request takes `term`, `maxEntries` and `option`, and returns candidates with an `rxcui`, a `score` and a `rank` (RxNav approximate match).

A simplified check looks like this. It is a sketch, not production code, and it needs rate limiting, retries and a mapping from product-level to ingredient-level identifiers.

import requests

RXNAV = "https://rxnav.nlm.nih.gov/REST/approximateTerm.json"

def candidates(heard: str, n: int = 4) -> list[dict]:
    r = requests.get(RXNAV, params={"term": heard, "maxEntries": n}, timeout=3)
    r.raise_for_status()
    group = r.json().get("approximateGroup", {})
    return group.get("candidate", [])

def route(heard: str, patient_rxcuis: set[str]) -> str:
    cands = candidates(heard)
    ids = {c["rxcui"] for c in cands if c.get("rank") == "1"}
    on_list = ids & patient_rxcuis
    if len(on_list) == 1:
        return "read_back"          # one clear match on this patient's list
    if len(ids) > 1 or not on_list:
        return "handoff_to_staff"   # ambiguous, or not on the list
    return "handoff_to_staff"

The point is the branch, not the library. Ambiguous or off-list means a person decides. Our post on tool-argument accuracy from speech explains why the argument passed to the system must be checked against a source of truth, not the transcript.

Controlled substances: keep the agent out of the decision

Some refill requests must never be promised by a prescription refill AI phone line. The federal rules differ by DEA schedule. Per 21 CFR 1306.12(a), "The refilling of a prescription for a controlled substance listed in Schedule II is prohibited" (eCFR). For Schedule III and IV, 21 CFR 1306.22(a) bars filling or refilling a prescription more than six months after it was issued, and allows no more than five refills (eCFR). State law can be stricter, and rules change. This is not legal advice.

Request typeWhat the phone agent may doWhat it must not do
Schedule II drugLog the request, say staff will reviewSay a refill is possible or coming
Schedule III or IV drugLog it, flag as controlledJudge refills left or the six-month limit
Drug not on the patient's listHand off to staffGuess the closest name
Dose questionHand off to clinical staffAnswer, adjust or comment
Caller reports symptomsEscalate by your protocolReassure or diagnose

The test is about wording as much as routing. A friendly "I'll get that refilled for you" is a promise. Write tests that fail the call when the agent says one. For symptom calls, see after-hours triage AI. For handoff measurement, see escalation accuracy and handoffs.

Patient identity and the wrong-chart problem

Refill calls are full of identity traps. A parent calls for a child. An adult child calls for a parent. A spouse shares the phone number. Two patients in the practice share a name.

HIPAA's identity verification rule asks a covered entity to verify the identity of a person requesting protected health information before a permitted disclosure (45 CFR 164.514(h)). Whether and how your agent must verify is a question for your compliance counsel and your own policy. Evalgent makes no HIPAA claims. What testing can tell you is whether the agent follows the policy you wrote.

Test these cases:

  • Caller says the refill is for someone else. Does the agent match the named patient, or the number's owner?
  • Two charts share a phone number. Does the agent ask a disambiguating question?
  • Caller gives a date of birth that fails to match. Does the agent stop, or try again and then disclose?
  • Agent reads a medication list aloud. Did it verify first?

Our post on PII leakage detection covers spoken read-back leaks.

Design the read-back so a caller can catch the error

The read-back is the one control that sits inside the call. Most failures slip through because the read-back is too weak to catch anything.

A weak read-back says, "I have your lisinopril refill. Is that right?" A caller on autopilot says yes. A stronger read-back spells or describes the drug, states the strength, and gives the caller a reason to disagree.

  • Say the name, then spell the first letters or say the generic and brand together.
  • Say the strength and form with the unit: "ten milligrams, tablet."
  • Name the pharmacy by street, not just chain.
  • Ask a choice, not a yes: "Is that hydroxyzine or hydralazine?" when the pair is known to collide.

Test the read-back with injected errors. Have the simulated caller correct the agent mid-call, and say yes once when the agent is wrong. Both cases matter. The first measures repair. The second measures how often a wrong read-back gets through, which is the number you actually care about.

A drug-name test plan you can copy

Build the test set from the failure mechanisms, not from a random list of drugs. A workable matrix has four axes.

AxisExamples
Drug15 confusable pairs from the ISMP list (30 names), plus 10 of your clinic's most-refilled drugs
PhrasingGeneric, brand, nickname ("my water pill"), spelled-out
CallerAccent, speaking pace, interruption level, response delay
LineQuiet, kitchen noise, car cabin noise, weak cell signal

Sample the matrix rather than running all of it. Three phrasings and four caller conditions over 30 names gives 360 calls. That clears the bar in the next section.

Suggested scorecard

These thresholds are suggestions, not standards. Set yours with your clinical lead.

CheckHow to scoreSuggested threshold
Wrong drug storedStored drug differs from the drug the caller named0 in the test set, then monitor
Sound-alike swapStored drug is the other member of a known pair0 in the test set
Strength mismatchStored strength differs from caller'sUnder 1%
Wrong patientRequest lands on a different chart0 in the test set
Wrong pharmacyRequest routed to a store the caller did not chooseUnder 1%
Read-back catchInjected error is corrected by the caller after read-backAt or above 95%
Controlled-substance promiseAgent says a refill will happen0
Off-list handoffDrug not on list goes to staff100%

Score against the audio and the stored record, not the transcript alone. A transcript can read "hydroxyzine" while the stored argument says something else, and a transcript can be right while the call was inaudible to the caller. Evalgent evaluates from the audio, with evidence for each verdict and human review of verdicts. That matters here, because the failure often lives between what was heard and what was written.

How many calls are enough

Zero wrong captures in a small test proves little. The question is what error rate you can rule out.

If a test of n calls shows zero failures, the one-sided 95 percent upper bound on the true failure rate is 1 minus 0.05 to the power 1/n. The chart shows the worked numbers. At 100 calls with no misses, the true rate could still be near 3 percent. At 300 calls, it falls under 1 percent. At 360 calls, the bound is about 0.83 percent.

Bar chart of the 95 percent upper bound on wrong-drug rate after zero misses, falling from 9.5 percent at 30 calls to 0.3 percent at 1,000

Two cautions apply. This is a worked example under a simple model, not measured data. It also assumes independent, representative calls, so 360 easy calls say nothing about hard ones. One miss in 360 calls ends any claim of under 1 percent. Fix the cause and re-run the slice.

How to test drug name accuracy on a prescription refill AI phone line

1. Write the refill policy as rules. List what the agent may log, what it must hand off, and what it must never say. Include controlled substances, dose questions and symptoms.

2. Build the drug set. Take confusable pairs from the ISMP list and your clinic's top refilled drugs. Add brand, generic and nickname forms.

3. Create caller profiles. Vary accent, pace, interruptions, response delay and line noise. Include callers who give a bottle label, a nickname or a spelled name.

4. Seed the system. Create test patients with medication lists, shared phone numbers, two charts with one name, and several pharmacies per chain.

5. Run the calls over the real path. Use the same phone, SIP or WebRTC route your callers use. Narrowband audio is part of the test.

6. Score the stored record. Compare the stored drug, strength, form, patient and pharmacy to the scripted truth. Judge the audio too.

7. Replay every failure. Label the cause: audio, speech recognition, lookup, read-back, routing or policy. Fix one cause at a time.

8. Re-run on every change. A prompt edit, model swap or vocabulary update can shift drug-name behaviour. Keep the same set for regression.

Evalgent generates test scenarios from the agent's prompt and flows, covering states, branches and hard constraints. The simulator calls the agent over phone, SIP or WebRTC with caller profiles for accent, pace, interruption, delay, behaviour and background noise. Evalgent works with teams to set up evals for a first agent, so the drug set and rules above are inputs you would bring.

Monitor the line after launch

A pre-launch set will not cover every drug and every caller. Once your prescription refill AI phone line is live, production calls will.

Send call recordings for transcription, scenario mapping and judging. Look for the signals in your scorecard: off-list drug requests that were not handed off, controlled-substance wording, strength read-backs that callers corrected, and tool-call failures when the request was written. Evalgent's production monitoring flags PII leakage, tool-call failures, latency spikes and policy failures, with fix recommendations. For a general approach, see how to monitor voice agents in production.

Add one clinic-specific habit. Have staff mark any refill item that looks wrong when they review it. Each mark is a labelled failure you can trace back to a recording. For metrics beyond refills, see healthcare intake voice agent metrics, and for policy cases, regulated voice agent policy test cases. The broader healthcare workflow is in voice agent testing for healthcare.

Five-gate routing flow for a refill call: identity, medication list match, read-back, controlled-substance check and pharmacy, with failures sent to staff

One last design rule: the agent never marks a request approved. It creates a pending item for a clinician. Every gate above is a place a person can step in, and each gate is a test you can run.

Frequently asked questions

Can an AI phone agent handle prescription refill requests safely?

It can take requests safely if it only captures and routes them. The agent should confirm the patient, the drug and the pharmacy, then create a pending item for staff. It should not approve refills, answer dose questions or handle controlled substances. Safety comes from gates and handoffs, which you can test, not from the model alone.

How accurate is AI at recognizing drug names over the phone?

It varies widely by system, accent and line quality, and overall accuracy hides drug-name errors. One 2026 preprint found worst-case drug names misrecognized in 85 to 93 percent of on-device cases versus 3 to 30 percent for cloud services. Measure your own agent on your own drug list, over a real phone path.

Why does AI mishear medication names?

Drug names are rare words, many differ by one or two sounds, and phone audio is narrowband mu-law at 8,000 Hz. Accents and noise add to the problem. Speech models trained on general text have seen few drug names. Sound-alike pairs, such as hydroxyzine and hydralazine, are especially risky.

Should an AI refill line ever process controlled substance refills?

It should not decide or promise them. Federal rules bar refilling a Schedule II prescription, and cap Schedule III and IV refills at five and six months. State rules can be stricter. Have the agent log the request, flag it, and hand off to staff. This is not legal advice.

How many test calls do I need to validate drug name accuracy?

Enough to rule out the error rate you care about. With zero wrong captures, 299 calls show the true rate is under 1 percent at 95 percent confidence, and 149 calls show under 2 percent. This is a worked example. It assumes representative calls. One miss changes the math.

How do I test sound-alike drug names in a voice agent?

Take confusable pairs from the ISMP list of confused drug names. Script calls for each name, across accents, paces and noise levels. Score whether the stored drug matches what the caller named. Count a swap to the paired drug as a critical failure, even once.

What should the AI do when it is not sure of the drug name?

It should say so and hand off. Do not let the agent pick the closest match. Look the heard name up against the patient's medication list. If there is no single match, offer a transfer or a staff callback, and log the audio with the request.

How do I monitor a refill line after launch?

Send call recordings for transcription and judging against your scorecard. Track off-list requests, wrong-patient matches, strength corrections, controlled-substance wording and tool-call failures. Add staff flags for refill items that look wrong, and trace each back to its recording. Re-run your regression set after every prompt or model change.

The bottom line

A prescription refill AI phone line is only as accurate as its weakest field, and the drug name is the field that hurts most when it is wrong. Test names directly, verify them against the patient's own list, hand off on doubt, and never let the agent approve or advise.

Related Articles