- Your IVR disposition codes are a pricing schema, not a reporting artifact. Every code maps to a payout percentage, whether you wrote it down or not.
- Ringba and Retreaver are designed for fully custom disposition taxonomies. Most operators stand up a thin default set (4 to 6 outcomes) and never extend it. A serious pay-per-call operation needs 8 to 10 codes mapped to payout tiers.
- The single highest-leverage code is qualified-transferred-short: the call that clears IVR qualification but ends below the buyer’s billable threshold (commonly 60 or 90 seconds). Assigning it an explicit 25 to 50% payout tier kills most publisher disputes.
- A 9-code tree with partial payout percentages (0/25/50/75/100), exposed in the publisher dashboard as filterable tags, lets publishers reconcile their own payouts in under 10 minutes.
- Migrate mid-campaign with a 2 to 4 week parallel-run period and a published payout map. Flip pricing at the month boundary, never mid-cycle.
Your IVR Dispositions Are a Pricing Schema, Not a Reporting Artifact
If your pay-per-call IVR disposition mapping for buyer payouts is buried in free-text call notes, you are not running a pricing system. You are running a dispute factory.

Every disposition code your IVR fires is implicitly a payout rule. Answered means somebody gets paid. No-answer means nobody does. The codes in between, the messy ones, are where publishers and buyers fight every Monday morning. Because nobody wrote the rule down.
The fix is not a better IVR script or a tighter duration threshold. The fix is treating dispositions as a pricing taxonomy with explicit partial payout tiers, surfaced in the publisher dashboard as structured data.
This article walks you through the 9-code tree, the payout percentages mature operators attach to each code, the Ringba and Retreaver tag schema that makes it queryable, and the rollout sequence that keeps publishers from revolting mid-month.
The Default Disposition Set Most Operators Inherit Can’t Price a Call
Ringba and Retreaver are platforms built around fully custom disposition taxonomies. Operators define their own tags, payout rules, and routing logic from day one. The platforms ship infrastructure, not a pricing schema. The actual problem isn’t what the platforms ship — it’s that most operators stand up a thin default set and never extend it, because the default is “enough to start running traffic.”
What Most Operators Actually Configure Day One
On most new accounts, operators wire up a small set of outcome categories: answered, no-answer, busy, voicemail-ish hang-ups, plus a billable / non-billable flag tied to a duration threshold. That is enough to build a report. It is not enough to price a call.
A report tells you what happened. A pricing schema tells you what each thing is worth. If you compare Ringba, Retreaver, and Invoca side by side, all three platforms can support deeply granular disposition logic — the question is whether the operator ever extends past the thin default. Per Ringba’s call tags and dispositions documentation, the tag system is designed to carry arbitrary key-value structures, and Retreaver’s tag-and-pass model is similarly open-ended.
Why a Binary Billable Flag Overpays and Underpays Simultaneously
When your only pricing lever is a single billable bit, every disposition collapses into yes or no. The call that cleared IVR qualification and ended at 47 seconds, four seconds short of your buyer’s threshold, gets the same payout as the caller who hung up before saying hello. Publishers feel robbed, because one of those calls was real work.
Meanwhile, the duplicate caller who hits your IVR three times in a week clears the threshold on attempt two and triggers a full payout. That is overpayment on junk. You are bleeding both directions out of the same hole.
The 9-Code Disposition Tree, Mapped to Partial Payout Tiers
Here is the schema. Nine codes, five payout tiers, one rule each.
| Disposition code | Definition | Payout % |
|---|---|---|
| qualified-converted | Buyer confirms downstream conversion (sale, appointment, transfer-to-agent close) | 100% |
| qualified-transferred-held | Cleared IVR, held on buyer side past full-pay duration threshold | 100% |
| qualified-transferred-short | Cleared IVR, ended between IVR-qual time and buyer billable threshold | 25 to 50% |
| qualified-IVR-only | Completed IVR qualification but did not connect to buyer (queue overflow, timeout) | 0 to 25% |
| duplicate-in-window | Same caller inside dedupe window (typically 30 days) | 0% |
| geo-fail | IVR captured geo mismatch (out-of-state, out-of-license-area) | 0% |
| intent-fail | Caller failed intent question (wrong product, wrong age band, wrong vertical) | 0% |
| hung-up-pre-qualification | Caller dropped before completing IVR qualification | 0% |
| fraud-flagged | Pattern-matched fraud signal (carrier flag, repeat number with bad history, robocall) | 0% |
The Five 0% Codes Publishers Accept When Documented
The four hard zeros (duplicate, geo-fail, intent-fail, fraud-flagged) plus hung-up-pre-qualification are not controversial when the IVR script is shared in the IO (insertion order). Publishers know going in: if your caller fails the geo question, you do not get paid. If the caller is a duplicate inside the 30-day window, you do not get paid.
The arguments stop when the rule is visible before the call fires, not after.
The Two Full-Pay Codes and the Threshold That Defines ‘Held’
Qualified-converted is simple: the buyer confirms a sale or appointment, you get 100%.
Qualified-transferred-held is the one most operators get fuzzy about. The definition is mechanical: the call cleared IVR qualification, routed to the buyer queue, and held past the full-pay duration threshold (commonly 90, 120, or 180 seconds depending on vertical).
The threshold is not a guess. It is a contractually documented number in the IO, matched to the buyer’s own billable threshold. If your full-pay threshold is 90 seconds and the buyer bills at 120 seconds, you have a 30-second gap that will generate disputes. Close it.
The Two Partial-Pay Codes That Absorb the Disputes
Qualified-transferred-short and qualified-IVR-only are where the work happens. These are the codes that, in a binary system, become arguments. In a tiered system, they become line items.
Assign qualified-transferred-short a 25 to 50% payout. Assign qualified-IVR-only a 0 to 25% payout (the lower end if the buyer never connected, the upper end if your IVR completed enough qualification work that the lead is still resellable downstream). Document both percentages in the IO. The dispute disappears because the payout is no longer ambiguous.
‘Transferred-But-Short’ Is the Disposition That Decides Whether Your Marketplace Survives
In pay-per-call operations across insurance and home services, the transferred-but-short bucket is consistently the largest driver of weekly reconciliation friction. It is the call that cleared everything you asked it to clear, then died 13 seconds before billing.
Buffer Time vs Connect Duration vs Qualified Duration
Operators conflate three different clocks. Sort them out before you do anything else.
- Buffer time is the grace window after connect where neither side counts the call. Typically 10 to 30 seconds. See the pay per call buffer time post.
- Connect duration is total time from buyer pickup to hang-up.
- Qualified duration is time after the buffer ends, which is what most buyers actually bill on.
A call can have 75 seconds of connect duration, a 20-second buffer, and only 55 seconds of qualified duration. If the buyer bills at 60 qualified seconds, that call is non-billable to the buyer and feels qualified to the publisher. Both sides are right. The disposition code has to encode that ambiguity, not resolve it by fiat.
Why 25 to 50% Is the Defensible Partial-Pay Range
The 25 to 50% range is not arbitrary. It reflects the reality that the publisher did real qualification work (caller cleared IVR, reached the buyer, held for some portion of the qualified duration clock) but the buyer cannot recoup the call commercially.
Low end (25%): the call ended in the first third of the qualified duration window. Mid (40%): roughly half. High (50%): cleared most of the way but stopped short of the threshold. Pick one number per buyer, document it, stop arguing.
Make the Map Queryable: The Ringba Tag Schema That Turns Dispositions Into Structured Data
Dispositions buried in free-text call notes are not a pricing schema. They are a search problem. The fix is structured tags.
Ringba Tag Conventions for Queryable Dispositions
In Ringba, attach disposition data as structured tags rather than notes. A convention that works well:
[disposition:qualified_transferred_short][payout_pct:50][billable_threshold_sec:90][dedupe_window_days:30][geo_pass:true][intent_pass:true]
The Retreaver equivalent uses their tag-and-value structure, same idea: every disposition decision becomes a queryable key-value pair, not a sentence. Per the Ringba help center documentation on call tags and Retreaver’s tag-based call routing, tag values are filterable in reports and queryable via API. The discipline is using them consistently across every campaign. For operators thinking about conversation analytics layered on top of the tag schema, platforms like Invoca extend the same principle to signal quality and AI-derived intent tags.
The payoff: when a publisher asks why their Tuesday payout was 38% lower than Monday, you can pull a single filtered report grouped by disposition and payout percentage. The answer takes 10 minutes, not 3 hours of CSV wrangling.
What Surfaces in the Publisher Dashboard vs What Stays Buyer-Side
Publishers should see: their own disposition counts by code, the payout tier per code, the dispute window, and the dedupe status of each call. That is everything they need to reconcile their numbers against yours.
Publishers should not see: downstream conversion data, buyer LTV, internal buyer queue dynamics, or buyer-side billing thresholds (those are negotiated in the IO, not exposed live). The line is simple. Anything the publisher needs to audit their payout, they see. Anything that exposes buyer commercials, they do not.
How the 9-Code Tree Bends by Vertical
The schema is portable. The thresholds and tier weights shift.
Medicare AEP. Volume spikes between October 15 and December 7 produce a flood of 60 to 119 second calls that hover right around the buyer’s billable threshold. Medicare AEP operators typically tighten the qualified-transferred-short threshold going into peak, and pre-publish the change so publishers are not surprised. The Medicare-specific volume math is covered in the AEP playbook.
Final expense. Long-hold dynamics push the full-pay threshold higher because the actual qualification conversation (age, health questions, beneficiary) takes longer. Final-expense programs commonly run full-pay thresholds well past 3 minutes, and qualified-IVR-only carries less weight because an IVR-only completion is rarely resellable in this vertical.
HVAC. Same-day intent changes the math. HVAC programs often run qualified-IVR-only at a meaningful partial-pay tier because the lead, even without a buyer connect, is still actionable for a dispatcher who can call back inside the hour. The booked-job framing applied to HVAC CPL applies here.
Solar. Long nurture cycle, so intent-fail needs finer granularity. Solar programs frequently split intent-fail into intent-fail-product (wrong financing type, wrong roof condition) and intent-fail-timeline (caller is 6+ months out). The first stays at 0%. The second may warrant a small partial-pay tier because the lead is resellable downstream.
Migrating From a Thin Default to a 9-Code System Without Breaking Publisher Trust
This is where most operators botch the rollout and cause the exact disputes they were trying to eliminate.
The Parallel-Run Period That Prevents Publisher Revolt
Run both taxonomies in parallel for 2 to 4 weeks before pricing flips. The new codes shadow-tag every call (so you can see what the new schema would have paid out), but actual payouts still run off the old rules. Publishers see the new codes in their dashboard during this window, with a clear note: “shadow tag, not pricing.”
Then, in sequence:
- Publish the disposition-to-payout map in the publisher portal at least 14 days before it goes live.
- Update the IO with an effective date that aligns with a month boundary.
- Flip pricing at midnight on the first of the month, never mid-cycle.
- Run a 2-week dispute amnesty window where edge cases get human review without affecting future payouts.
This sequence respects the fact that publishers built their economics around the old rules. You are not changing the rules on them. You are giving them three weeks of preview and a soft landing.
Edge Cases That Still Need Human Review
No schema closes every gap. Three edge cases will still require manual eyes:
- IVR misroutes. Caller is sent to the wrong buyer queue because of a routing config error. The call may tag as qualified-transferred-short, but the publisher did everything right. Credit it as full-pay and fix the routing.
- Queue overflow. Buyer queue is full, caller is dropped or sent to overflow. Tag as qualified-IVR-only at the higher end of the range (25%) and surface the overflow rate to the buyer in your weekly check-in.
- Repeat-caller-in-window. Dedupe window says 30 days, but the caller’s second call was a legitimate follow-up that the buyer wanted. The 0% default holds, but flag for buyer review if the buyer wants to manually credit.
FAQ
How many disposition codes does a pay-per-call campaign actually need?
Most serious pay-per-call campaigns need 8 to 10 disposition codes to map cleanly to payout tiers. Ringba and Retreaver support fully custom taxonomies, but most operators stand up a thin default of 4 to 6 outcomes and never extend it. Without partial payout codes, every ambiguous call collapses into a yes/no billable flag and generates disputes.
What’s the right partial payout percentage for a call that qualifies through IVR but ends before the buyer’s billable threshold?
The defensible range is 25 to 50%. Pick the low end if the call ended in the first third of the qualified duration window, the mid (40%) if it ended around half, the high (50%) if it cleared most of the way. The specific number matters less than documenting it in the IO so publishers can reconcile against it.
Should publishers see the disposition codes or just the payout outcome?
Publishers should see their own disposition counts by code, the payout tier attached to each code, and the dedupe status of every call. They should not see downstream conversion data, buyer LTV, or internal buyer queue dynamics. The rule: anything they need to audit their payout, they see; anything that exposes buyer commercials, they do not.
Why do publisher disputes spike on Monday mornings even when IVR logic hasn’t changed?
Disputes cluster on Mondays because publishers reconcile their weekend payouts against their own call logs and find calls they think should have paid that did not. The root cause is almost always the transferred-but-short bucket, where a call cleared IVR but ended below the buyer’s billable threshold. Assigning that disposition an explicit partial payout tier (25 to 50%) instead of a 0% default eliminates most of the Monday volume.
How do I migrate to a 9-code system without breaking trust mid-campaign?
Run both taxonomies in parallel for 2 to 4 weeks with the new codes shadow-tagged but not pricing. Publish the new payout map in the publisher portal 14 days before it goes live, update the IO with an effective date that lands on a month boundary, and flip pricing at midnight on the first of the month. Hold a 2-week dispute amnesty window after the flip where edge cases get human review.
Does the 9-code schema work across verticals or do I rebuild it for each one?
The schema is portable; the thresholds shift. Medicare AEP operators typically tighten the qualified-transferred-short threshold during peak volume, final-expense programs commonly push full-pay past 3 minutes, HVAC programs often pay a partial tier on qualified-IVR-only because same-day intent makes the lead actionable, and solar programs frequently split intent-fail into product and timeline buckets. You do not rebuild the tree, you re-weight it.
What’s the right buffer time so buyers don’t get billed for callers who hang up during transfer?
Buffer time typically runs 10 to 30 seconds, set so that the qualified duration clock starts only after the caller has had a chance to engage with the buyer’s agent. The buffer is not a billing setting. It is a behavioral incentive that signals to publishers what kind of caller you actually want. The vertical-specific math on buffer settings lives in the buffer time breakdown post.
Build the Schema, Then Have a Conversation About Your Vertical
Dispositions are pricing, not reporting. A 9-code tree with explicit partial payout tiers, exposed as queryable tags in Ringba or Retreaver and documented in the IO, kills the chronic Monday morning dispute pattern. The math holds across insurance, home services, financial services, and B2B. The thresholds and tier weights shift by vertical.
If you are running pay-per-call volume and your current disposition map is a binary billable flag (or worse, free-text call notes), the margin leak is real and the fix is mechanical. Talk to our pay per call team about your specific vertical and current schema. On a call we can walk through your disposition map, identify the ambiguous buckets that are bleeding margin or trust, and rebuild it so your publishers can reconcile their own numbers in under 10 minutes.