1. Decide which two numbers you are comparing
A CALLBK disposition count, a count of current scheduled records and an agent-visible callback count answer different questions. Start by labeling both numbers. If one measures completed call outcomes and the other measures scheduled work, there is no reason for them to match.
This page first gives you a complete offline exercise. It then shows the information needed to investigate a real mismatch without changing the dialer.
- Source
- Exact report or screen name, saved query or API function
- Scope
- Campaign, user/recipient, status filters and which date field is filtered
- Time
- Timezone, inclusive start, exclusive end and extraction timestamp
- Identity
- What one counted item represents; how repeated rows are handled
You should seeContinue to the example when the populations are named. For a real mismatch with unknown filters, ask the report owner for the query and filter definition before calculating a combined total.
2. Keep the four populations separate
Use this table to label your comparison. A current table can still contain inactive records; “current source” is not the same as “work remaining.”
You should seeIf the measures have different business meanings, document that difference. Do not call it a missing-record defect.
3. Prepare the fictional row comparison
Download the two input files and open them beside each other. They contain 13 physical rows: seven current and six archive. No names, phone numbers or real system records are included.
The fixture counts all states and recipients. It deliberately does not model “My Callbacks” or an agent queue. Its callback_key is an invented stable identity; do not assume your installation has that same guarantee.
- Filter both files to campaign LAB01 and callback_at_utc at or after 2026-11-06T00:00:00Z, but before 2026-11-07T00:00:00Z.
- Classify C07 as outside the end boundary, A05 as before the start boundary and A06 as another campaign. Keep C06: an exact start-boundary time is included.
- Within the remaining current rows, count C03 and C04 once because they repeat CB003. Do not merge CB001 and CB005: they share LEAD-A but are different callbacks.
- Compare callback_key across the two filtered sets. CB003 stays one identity even though its state differs between current and archive.
You should seeCurrent: six in-scope physical rows, five distinct identities. Archive: four in-scope rows, four distinct identities. If your counts differ, check boundaries and the duplicate before continuing.
Current fictional records (CSV)
4. Account for both sides of the difference
The table is the complete answer for the in-scope identities. Compare it with your own classification before opening the row-by-row answer sheet. “Shared” means shared identity, not identical state or proof of a production archive defect.
- Before you use it
- Use only the fictional scoped identities shown in the table.
current = 5archive = 4shared = 2current_only = 5 - 2 = 3archive_only = 4 - 2 = 2union = 5 + 4 - 2 = 7current_to_archive = 5 - 3 + 2 = 4archive_minus_current = 4 - 5 = -1This sample is a template or reading aid, not a terminal command. There is no output to show.
- Success looks like
- You can explain why the current and archive totals differ by one and why their union is seven.
- Stop if
- If the identity rule or snapshot comparability is unknown, do not publish a reconciled operational union.
You should seeThree current-only and two archive-only identities fully explain the signed difference of −1. The union of seven is neither seven calls made nor seven callbacks due.
5. Apply the method to a real report or hand off the unknown
Record both report definitions and take equivalent snapshots. For a lead-specific investigation, the official lead_callback_info API offers CURRENT, ARCHIVE and ALL search scopes; use the installed reference and approved access. That function is not a ready-made cross-report reconciliation.
If records move while the reports run, request a consistent snapshot or repeat at an agreed time. If the key is unknown, ask the database/report owner to demonstrate uniqueness and stability across the relevant sources. Never deduplicate by lead ID alone merely because it is available.
- Fill the worksheet with distinct in-scope counts and the verified intersection. Blank inputs remain Unknown; use nonnegative integers and an intersection no larger than either set.
- List every excluded, duplicate, current-only, archive-only and shared row in a private comparison. Record why it belongs there; preserve source queries unchanged.
- For an agent-screen difference, have its owner reproduce the installed user/recipient, campaign, state and time filters. A full historical union is not the expected agent count.
- Finish only when the difference is explained. Otherwise hand off the two scoped definitions, extraction times, identity uncertainty and unexplained count to the report owner.
- Before you use it
- Keep record-level identifiers in an authorized private workspace.
Report A / definition:Report B / definition:Installed version / extraction times / timezone:Campaign / user / state / date filters:Identity rule and evidence:Current / archive / shared:Current-only / archive-only / excluded / duplicates:Unexplained count and next investigation owner:This sample is a template or reading aid, not a terminal command. There is no output to show.
- Success looks like
- Another reviewer can reproduce the same classification from the same sources.
- Stop if
- Unknown filters, unstable identity, changed snapshots or unexplained rows mean the result remains unresolved.
You should seeA useful ending is either a reproducible explanation or a precise unresolved question. Changing permissions, deleting history or averaging the two totals does not resolve the comparison.
Checks and sources
What was checked
- The downloadable CSVs and all numbers in the worked example are fictional. Their row classifications and arithmetic were checked locally; no live callback report or agent-visible queue was tested.
- The official Non-Agent API documents current, archive and combined callback lookup scopes. It does not establish a stable cross-table identity key for every installation.
- A real report requires its own schema, filters, extraction timestamps and identity checks; the exercise does not demonstrate production data loss or a working callback screen.
Primary references
Sources
- VICIdial Non-Agent API referenceVICIdial Group · accessed November 6, 2026
- VICIdial official manuals and documentationVICIdial Group · accessed November 6, 2026