
The short version
- A disposition code records how a call ended, and it decides what happens next: retry, follow up, stop calling.
- Keep the list short, mutually exclusive and tied to an action.
- Do-not-call and opt-out dispositions must flow to every system that can contact the person.
Every call ends somehow: a sale, a callback, a wrong number, a voicemail, a "never call me again." A disposition code is the label that records that outcome. It sounds like admin, but dispositions drive almost everything that happens after the call: whether the dialer retries the number, when, who follows up, and what shows up in your reports.
Here's a practical starting list and some rules for keeping it useful.
Why dispositions matter
- Retry logic. "No answer" should be retried. "Wrong number" shouldn't.
- Compliance. "Do not call" must stop future calls across every campaign and channel.
- Follow-up. "Callback requested" needs a time and an owner.
- Reporting. Contact rate, conversion rate and list quality all come from dispositions.
- List hygiene. Disconnected and wrong numbers should be removed, not dialed again next month.
If agents pick dispositions carelessly, all of this breaks. If the list is too long, they will pick carelessly.
A starter list for outbound calling
Grouped by what happened.
Didn't reach anyone
| Code | Meaning | Typical action |
|---|---|---|
| NA | No answer | Retry later, different time of day |
| BUSY | Busy signal | Retry soon |
| VM | Reached voicemail, left message | Retry per cadence |
| VM-NM | Reached voicemail, no message left | Retry per cadence |
| DISC | Disconnected or invalid number | Remove number |
| FAX | Fax or modem tone | Remove number |
Reached someone, not the contact
| Code | Meaning | Typical action |
|---|---|---|
| WRONG | Wrong number | Remove number from this contact |
| NOT-AVAIL | Contact not available, someone else answered | Retry later |
| GATEKEEPER | Reached reception, not connected | Retry or try direct line |
Reached the contact
| Code | Meaning | Typical action |
|---|---|---|
| CB | Callback requested | Schedule at requested time |
| NI | Not interested | Stop this campaign, keep contact |
| DNC | Asked not to be called | Add to internal DNC everywhere |
| NQ | Not qualified | Stop, record reason |
| QUAL | Qualified, sent to sales | Create opportunity |
| APPT | Appointment booked | Confirm and remind |
| SALE | Sale made | Hand to fulfillment |
| INFO | Wanted information only | Send info, light follow-up |
| LANG | Language barrier | Route to agent with right language |
Other
| Code | Meaning | Typical action |
|---|---|---|
| HUP | Hung up early | Retry once, then stop |
| DROP | Call dropped or technical issue | Retry soon |
Adapt the names to your systems. The important part is that each code maps to a clear next action.
Rules for a good disposition list
Keep it short. Twelve to twenty codes covers most outbound teams. If agents scroll, they'll pick whatever is near the top.
Make codes mutually exclusive. If two codes could both describe the same call, agents will split between them and your reports will be muddy.
Tie each code to an action. If a code doesn't change what happens next or what you report, you probably don't need it.
Separate "not interested" from "do not call." These have very different consequences. "Not interested in this offer" might be fine to contact about something else later. "Stop calling me" must be honored everywhere. Our TCPA article covers the rules on honoring opt-outs.
Capture reasons with a second field. Rather than ten "not qualified" codes, use one NQ code plus a reason field (renter, outside service area, budget, already has provider).
Review the list quarterly. Look at how often each code is used. Codes nobody uses can go. A large "other" bucket means a code is missing.
DNC handling deserves special care
The DNC disposition is the one with legal weight. Make sure:
- Selecting DNC adds the number to your internal do-not-call list immediately
- That list is checked by every dialer, campaign and texting tool, not just the one where the request was made
- Agents (and AI agents) recognize opt-outs however people phrase them: "take me off your list," "don't call again," "remove my number"
- Opt-outs are honored within the time the rules require. In the US, revocation requests must be honored within 10 business days, and sooner is better.
Dispositions with AI agents
AI voice agents can set dispositions automatically at the end of each call, often more consistently than people because they don't get tired or rushed. A few tips:
- Give the agent your disposition list with clear definitions and examples
- Have it record a short reason alongside the code
- Spot-check dispositions against transcripts during the first weeks
- Make DNC detection a priority in testing (see how to write a call script an AI agent can follow)
Because AI agents also produce transcripts, you can audit any disposition later by reading the call, which is hard to do at scale with human agents.
Using dispositions in reporting
A few useful reports built from dispositions:
- Contact rate: calls that reached the contact / total calls
- Conversion rate: QUAL + APPT + SALE / contacts reached
- List quality: DISC + WRONG + FAX / total numbers dialed
- DNC rate: DNC / contacts reached (a rising rate suggests list or script problems)
- Best time to call: contact rate by hour and day
Inbound disposition codes
Inbound teams need dispositions too, though the list looks different. A starting point for a support line:
| Code | Meaning |
|---|---|
| RESOLVED | Issue solved on this call |
| RESOLVED-XFER | Solved after an internal transfer |
| FOLLOWUP | Needs follow-up work; ticket created |
| ESCALATED | Escalated to specialist or supervisor |
| CALLBACK | Callback scheduled |
| INFO | Information only, no issue |
| COMPLAINT | Complaint logged |
| WRONG-DEPT | Caller needed another department or company |
| ABANDONED | Caller hung up before resolution |
Pair the disposition with a call reason field (billing, delivery, returns, technical), so you can report outcomes by reason. "Resolved" means much more when you know it was a billing call.

Training agents to disposition accurately
Dispositions are only useful if they're accurate. A few practices help:
- Write a one-line definition and an example for each code and keep it visible in the agent desktop.
- Review a sample each week by comparing dispositions with call recordings or transcripts.
- Share the reports dispositions feed. When agents see that their codes decide retry timing and show up in leadership reports, accuracy improves.
- Don't punish honest codes. If agents are penalized for "not interested" outcomes, they'll find other codes to use.
- Fix confusing pairs. If two codes are often mixed up, merge them or clarify the definitions.
Retry rules by disposition
Many dialers let you set retry behavior per disposition. A reasonable starting configuration for a consented outbound list:
| Disposition | Retry rule |
|---|---|
| NA | Retry in 3 to 4 hours, then next day at a different time |
| BUSY | Retry in 15 to 30 minutes |
| VM | Retry next day; leave at most 2 to 3 voicemails in the sequence |
| NOT-AVAIL | Retry at the time suggested, or next day |
| CB | Call at the requested time; alert if missed |
| DROP | Retry within 10 minutes |
| DNC, WRONG, DISC, FAX | Never retry |
Cap total attempts per contact so no one gets called endlessly. Adjust based on your contact-rate data by attempt number.
Auditing dispositions with transcripts
If calls are transcribed, you can check dispositions automatically. For example, flag any call coded "NI" (not interested) where the transcript contains "don't call," "remove me" or "stop calling." Those should have been "DNC." This one check catches some of the most risky disposition errors in outbound calling, and it works the same way whether the call was handled by a person or an AI agent.
Frequently asked questions
How many disposition codes should we have?
Usually twelve to twenty. Enough to drive actions and reporting, few enough that people choose carefully.
Should voicemail with and without a message be separate codes?
It helps if your cadence differs, for example limiting how many messages you leave. Otherwise one VM code is fine.
Can dispositions be set automatically?
Dialers can detect busy, no answer, disconnected and fax tones. Conversation outcomes need an agent, human or AI, to classify them.


