Article summary
Design a stratified Viber test with a reviewed reference set, confidence intervals, unknown-state handling and field-specific acceptance instead of claiming one universal accuracy rate.
A single “Viber Number Checking accuracy” percentage is usually meaningless unless it names the field, reference truth, sample, date and treatment of unknowns. Registration, activity, nickname, avatar and inferred demographic fields require different test designs.
Define accuracy per field
For registration, the target may be agreement with a time-matched reference observation. For activity, evaluate timestamp tolerance and freshness. Nickname and avatar require change-aware comparison. Inferred age and gender require an ethically sourced, self-reported reference and may still be unsuitable for individual use.
Build a stratified sample
Sample across countries, phone formats, sources, collection ages, expected positives, expected negatives and ambiguous cases. Keep a held-out set. A convenient list from one operator or one clean CRM will overstate performance.
Write the confusion table before testing
| Outcome | Meaning | Reporting rule |
|---|---|---|
| Agreement | Output matches reference within time tolerance | Count by field and stratum |
| Disagreement | Both values exist and conflict | Manual adjudication |
| Unknown output | Task cannot provide a value | Report coverage separately |
| Unknown reference | No trustworthy truth | Exclude from accuracy, keep in coverage |
| Changed state | Truth changed between observations | Do not label as simple error |
Freeze time and rules
Record phone-normalization version, task/schema version, run start and end, reference-observation time and acceptable time gap. Activity can change during the experiment, so an undated comparison penalizes the system for reality moving.
Use the correct Viber fields
AIPUSH Viber Registration can return phone and registration status. Activity may include active days, mid and offline time. Gender and Age may additionally include skin tone, gender, nickname, avatar people/type, age and avatar. Do not roll these into one score.
Measure coverage and conditional accuracy
Report how often a field is returned, then accuracy among records with a valid reference and output. Publish confidence intervals and stratum ranges. A high conditional score with low or biased coverage is not broad reliability.
Inspect errors, not only totals
Review country-format failures, shared numbers, old records, visibility settings and mapping collisions. Error clusters often reveal a normalization or join problem rather than a platform-check problem. Fix the correct layer and rerun only affected cases.
Test the CRM merge separately
An accurate task result can still damage data if joined to the wrong contact. Verify duplicate, one-to-many and changed-phone scenarios with a batch crosswalk. Permission and suppression must remain untouched by every merge.
Choose acceptance thresholds from the decision
A low-risk aggregate report may tolerate more unknowns than an operational service workflow. High-impact uses should not rely on inferred profile data at all. Pre-register thresholds so the team cannot redefine success after seeing results.
State the result honestly
A useful report says, for example, which field was tested, on what dated stratified sample, at what coverage and uncertainty. It also publishes exclusions and failure clusters. That is more credible—and more actionable—than claiming a universal “95% accuracy.”
