> Source: https://docs.virtuo.in/vibot/sending/quality-rating > Meta's green/yellow/red quality rating per phone number — what raises it, what lowers it, and how to recover from a drop. # Quality rating Every WhatsApp Business phone number has a **quality rating** — Meta's running judgement of how customers perceive your messages. It is the second most important signal for tier progression (after Business Verification). A drop to RED can stall scaling indefinitely; sustained RED can suspend the number. ## The three levels | Rating | Meaning | Effect on sending | |---|---|---| | 🟢 **GREEN (High)** | Customers are engaging positively. Block/report rate is low. | Tier can scale up. | | 🟡 **YELLOW (Medium)** | Mixed signal — engagement OK but with some block/report noise. | Tier holds; no scaling. | | 🔴 **RED (Low)** | Many recipients are blocking or reporting. | Tier holds. If RED persists 7+ days as `FLAGGED`, tier drops by one. | **RED does not stop sends.** A common misconception is that RED quality halts sending. It doesn't. Meta continues to accept your messages — you just can't *grow* and you start losing tier headroom. The actual halt happens later via tier downgrade. Rating + flag state are computed on a **rolling 7-day window**, weighted toward the most recent 48 hours. There is no "reset" button. The only way to improve a low rating is to send better messages for several days in a row until the bad signals age out. ## What lowers your rating In rough order of impact: ### 1. Users blocking you The single biggest signal. Each user who taps **Block** in their WhatsApp chat with you contributes — and Meta now also records the *reason* they pick when blocking (no longer interested / spam / didn't sign up / inappropriate content / other). Picking "spam" or "didn't sign up" weighs heaviest. ### 2. "Report as spam" Stronger than a block alone. When a user reports your number as spam, Meta records the message body that triggered it — repeated reports on similar messages identify the offending template fast. ### 3. High pre-delivery failure rate Sending to dead numbers (131026) or to recipients who've globally rate-limited marketing (131049) signals that you don't know your list well. Sustained ~10%+ pre-delivery failures will pull your rating toward YELLOW even without any user blocks. ### 4. Customers ignoring your messages Read receipts (or lack thereof) are NOT direct inputs. But replies + engagement-back ARE. A 5% reply rate on a 1,000-message blast is healthier than a 0% reply rate, even if both deliver and read at 100%. ### 5. Sending content that violates WhatsApp policy Promotional copy on a UTILITY template (category mismatch), wa.me links (Meta treats these as engagement-farming), all-caps shouting copy, fake urgency ("LAST CHANCE!! BUY NOW!!"). These individually don't tank your rating, but combined with normal user blocks they compound fast. ## What does NOT affect your rating These are common misconceptions: - **The exact wording of your template.** Meta doesn't run sentiment analysis on your message body in real time. They evaluate the *outcome* — did users engage or block? - **The number of messages you send.** Sending 10 messages per day vs 1,000 per day doesn't directly affect rating. Block *rate* does, not block *count*. - **Read receipts.** Whether customers read or don't read isn't a direct input. - **Time of day.** Sending at 3am is not penalised directly. (Although it might raise block rate because annoyed customers tend to block more — so indirectly, yes.) ## How to read your rating in Vibot vs Meta | Where | Refresh | Accuracy | |---|---|---| | WhatsApp Manager → Phone numbers list | Live | Authoritative | | Vibot campaign preflight (warning) | Cached 24h | Reflects what Meta returned in the last 24h | | Meta `phone_number_quality_update` webhook | Pushed by Meta on change | Real-time | If Vibot's preflight ever shows GREEN but Meta Manager shows YELLOW, restart your campaign wizard — Vibot's cache is stale. ## How to recover from a YELLOW or RED rating There is no shortcut. The fix is consistent good behavior for ≥ 7 days. Specifically: **Recovery playbook (proven in practice):** 1. **Stop all Marketing campaigns** for 48 hours. Replace with Utility templates only (order status, appointment reminders, etc.) — these have much better engagement and lower block rates. 2. **Audit your contact list.** Remove every recipient who has not engaged with you in the last 30 days. Remove every number that's failed twice in a row. Run [`SELECT phone, COUNT(*) FROM campaign_recipients WHERE status = 'FAILED'`-style filtering in your dashboard via the Contacts page. 3. **Identify the bleeder template.** Open WhatsApp Manager → Account tools → Message templates. Filter by quality column. Whichever template is YELLOW or RED is the culprit — pause it for a week. 4. **Switch to Conservative drip on Resume Skipped** for any campaigns that survived. See [**Warm up a new number**](/vibot/sending/warm-up-new-number). 5. **Increase the gap between Marketing sends.** If you were sending Marketing weekly, drop to monthly until rating recovers. 6. **Verify your business profile is filled in.** Customers who tap your name and see a populated business profile (photo, description, address) block at ~40% lower rate than those who see a bare number. 7. **Send only to opted-in recipients.** This sounds obvious, but the #1 cause of mass-block events is sending Marketing to scraped/bought lists. Quality usually recovers from YELLOW → GREEN in **3–5 days** with this playbook. RED → GREEN takes **7–14 days**. ## What happens if quality stays RED The progression from a single bad campaign to suspension: 1. **Day 1** — RED rating appears. No sending impact yet. 2. **Day 1–7** — number is `FLAGGED`. Tier holds, doesn't scale. 3. **Day 7+** — if still FLAGGED, Meta drops your tier by one level **immediately**. TIER_10K → TIER_1K, etc. 4. **Day 14+** — if still RED after the tier drop, Meta initiates a policy review. You may receive an email from `messaging-policy@whatsapp.com`. 5. **Day 21+** — sustained RED leads to a 30-day or permanent suspension of the phone number. This usually requires a previous warning and is not common for first-time offenders. The escalator does *not* skip steps. A single bad blast that briefly turns RED will not suspend you. It takes sustained pattern over 1–3 weeks. ## Where Vibot helps automatically Vibot doesn't decide your quality rating (only Meta does), but five mechanisms keep quality from going RED in the first place: - **Preflight dead-number flagging** — recipients in Vibot's 30-day cache for error code 131026 are hard-skipped, never sent. - **Preflight opt-out flagging** — recipients marked `optedOut: true` are skipped. - **Canary cohort + 15% per-batch halt** — auto-cancels campaigns showing high spam-block (131049) rates. - **Per-tenant send-rate cap** — applied by Virtuo admin during your first 30 days. Caps msgs/min for the WHOLE tenant. - **Template quality propagation** — campaign preflight blocks launch if Meta has scored your template RED, and warns on YELLOW/UNKNOWN. If you're seeing these guardrails fire often, your list (not Vibot) is the problem. Take the warnings seriously. ## Next step Now that you know how quality is measured, learn how to **safely build it up from day 1**: [**Warm up a new number**](/vibot/sending/warm-up-new-number).