Article summary
Split blank Somalia +252 WhatsApp Activity results into format, task, visibility and expiry causes rather than labelling all inactive.
When a Somalia +252 Activity result is blank, ask why no observation exists before writing inactive. A blank is an investigation entry. It may come from formatting, task execution, observability or time.
Build a cause tree for blanks
| Cause | Check | State |
|---|---|---|
| Format rejected | Number rule | format_exception |
| Task incomplete | Batch log | task_unknown |
| Unavailable observation | Field semantics | not_observable |
| Expired result | valid_until | expired |
Look for clusters by provenance
If blanks concentrate in one partner or acquisition period, investigate that group first. A source defect must not become national user behaviour.
Do not create +252 candidates by padding
Preserve phone_raw and transformation logs. Unsupported country or length evidence enters review. Repeated variant attempts destroy auditability.
Activity is an observation, not complete reality
Output is limited by check time and field visibility. It cannot prove that a person does not use WhatsApp over time or will not reply.
Exclude unknown from the activity denominator
Use unique, successfully checked and interpretable phones in the denominator, while publishing unknown count and cause beside it.
Review a sample instead of rerunning everything
Inspect provenance, format and reconnection for a few rows from each cause. Retry only the affected queue after confirming the defect.
Pair TXT with an error ledger
TXT contains one phone per line. Internally retain batch_row, rule version and reason so Excel can return to the same record.
Permission does not come from a blank
A null neither creates nor removes permission. Opt-out remains effective, and authorised service acts only when actually needed.
The core capability of this page
The goal is not forcing every row into active or inactive. It is making uncertainty visible, assignable and reviewable.
