GLOSSARY

What is Quality Rating?

Quality rating is Meta's per-phone-number health score on the WhatsApp Business Platform, shown as green, yellow or red. It is derived from recent recipient behaviour, principally blocks and reports, and a sustained red rating is what causes a number to be flagged and its messaging limit to be reduced.

Free forever plan · No credit card required · Cancel anytime

Quick definition

Quality rating is Meta's per-phone-number health score on the WhatsApp Business Platform, shown as green, yellow or red. It is derived from recent recipient behaviour, principally blocks and reports, and a sustained red rating is what causes a number to be flagged and its messaging limit to be reduced.

In a single sentence: your recipients grade you, and Meta acts on the grade.

What it means

Every registered business phone number on the WhatsApp Business Platform carries a quality rating. It is not a deliverability score in the email sense, and it has nothing to do with whether your messages arrive. It is a summary of how the people receiving your messages reacted to them.

The rating has three values. Green means high quality and is where a healthy number sits. Yellow means medium and is a warning that recent feedback has been worse than usual. Red means low, and it is the state that triggers consequences.

Two things make it different from the deliverability metrics teams are used to. First, it is scored per number, not per account or per template, so it lives at the same level as your Phone Number ID. Second, it is computed over a rolling recent period rather than over your lifetime history. A number with two flawless years can be red by tomorrow evening, and a number that recovers stops being punished once the bad period ages out of the window.

What Meta is actually measuring

The inputs are recipient actions. Blocking your number is the heaviest signal. Reporting the business is next, and it is worse than a block because WhatsApp asks the user why, and the reason travels with the report. The reason that damages you most is the one that says the recipient never agreed to hear from you, which is a policy statement as well as a quality one.

Things that people expect to count, but do not, are worth listing explicitly:

  • Undeliverable numbers do not lower quality. They waste money and pollute your list, but they are not a recipient reacting badly.
  • Volume by itself does not lower quality. Large senders with wanted content stay green.
  • Read receipts are not a direct input, although a message nobody opens is a very good predictor of the block that follows.

On the positive side, engagement is a genuine counterweight. Numbers that hold real two-way conversations are much harder to push into red than numbers that only broadcast, because the ratio of good interactions to complaints stays high.

From rating to consequence

The rating is the score. The status is what Meta does about it, and the escalation runs in a predictable order.

  1. Connected. Normal operation. Rating green or yellow.
  2. Flagged. The rating dropped to red. Meta watches the number for a recovery period. You can still send, and this is the window in which you can fix things.
  3. Limit reduced. If quality has not recovered by the end of that period, the number's messaging limit drops a tier. This is the first consequence you can feel in revenue, because you can now start conversations with fewer unique people per day.
  4. Restricted. The number has hit its limit and can no longer start new conversations until the period resets.

The critical insight is that flagged is a grace period, not a punishment. Teams that treat the flag as informational and keep sending the same campaign are the ones that lose a tier. Teams that stop the offending campaign immediately usually return to connected without any lasting effect.

Templates have their own parallel quality mechanism. A specific template that collects negative feedback gets paused so it cannot be sent for a cooling-off period, and repeated pauses eventually disable it. That is a useful diagnostic: a paused template tells you precisely which piece of copy the audience objected to, which a number-level rating cannot.

Why it matters

Quality rating is the mechanism that converts marketing impatience into permanent loss of reach. Nothing about a single aggressive campaign feels dangerous at the time. Messages send, they deliver, the dashboard looks fine. The damage arrives two days later as a lower tier, and the tier is what decides how many people you can reach for the rest of the quarter.

It also compounds. A reduced tier means a slower recovery, because you have fewer conversations available to rebuild a good engagement ratio with. Getting back up a tier requires both healthy quality and enough volume to demonstrate it, and the limit you just lost is the thing constraining that volume.

Real-world examples

  1. The purchased list. A retailer imports twelve thousand numbers from an events partner and sends a marketing template. Within four hours the rating is red, because a large share of recipients have no memory of the partner, let alone the retailer. Two days later the tier drops. The list cost less than the reach it destroyed.
  2. The night send. A team schedules in their own timezone and reaches a market seven hours ahead at two in the morning. Blocks spike, not because the content was bad but because the phone buzzed at 02:00.
  3. The recovery that worked. A logistics company hit yellow, paused all marketing for a week, kept answering inbound support conversations, and was back to green without changing a single template. The audience was the problem, not the writing.
  4. The diagnostic template pause. Three templates were running. Only the win-back one was paused, which identified the segment and the message in a single signal and saved a week of guessing.

Common mistakes

  • Reacting to red by rewriting the copy. If the audience did not consent, better writing does not help.
  • Treating flagged as informational. It is a countdown to a tier reduction, and it is your only cheap chance to intervene.
  • Rotating to a fresh number. A new number is lower tier, has no history, and will reproduce the same rating on the same list within a day.
  • Not storing the history. Meta does not give you an exportable time series, so if you did not poll and record, you cannot correlate a drop with a campaign.
  • Hiding the opt-out. An easy unsubscribe converts a block into a quiet opt-out. One damages quality, the other does not.
  • Sending to everyone who ever bought. Recency matters. A customer from three years ago does not remember consenting.

Related concepts

How Pinlyx handles it

Pinlyx polls the quality rating and status for every connected number, stores the history you cannot get from Meta, and plots it against your campaign timeline so a drop points at a cause rather than a mystery. A move to yellow raises an alert, a move to red can pause outbound campaigns automatically before the tier goes, and per-segment engagement is surfaced so you can stop sending to the list that is doing the damage rather than to everyone. See WhatsApp CRM for how this sits next to campaign tooling.

Cheat sheet · what counts and what does not

Five signals people argue about.

Two of these are the whole score. One of them is not a factor at all.

SignalCounts?What operators should know
Recipient blocks your numberHeavily, and immediatelyThe strongest negative signal on the platform. One block outweighs a great many delivered messages.
Recipient reports the businessHeavilyWhatsApp asks for a reason, and the reason is fed back. "I did not sign up for this" is the worst one to collect.
Messages delivered but never readIndirectlyNot a direct penalty, but a reliable predictor: an audience that never opens is an audience about to block.
Messages that fail to deliverNoUndeliverable numbers hurt your list hygiene and your bill, not your quality rating.
Customers replying to youPositivelyEngagement is the counterweight. A number in live two-way conversation is far harder to push into red.
Reading the score programmatically

Poll the field, subscribe to the webhook, keep your own history.

Meta shows you the current value. Nobody stores the trend for you.

# Current state of one sender
GET /v22.0/{phone-number-id}
    ?fields=display_phone_number,verified_name,quality_rating,throughput

{
  "id": "106540352242922",
  "display_phone_number": "905550000000",
  "verified_name": "Acme Clinics",
  "quality_rating": "YELLOW",
  "throughput": { "level": "STANDARD" }
}

# The webhook that tells you it moved. Subscribe the WABA to
# the phone_number_quality_update field or you will never see it.
{
  "field": "phone_number_quality_update",
  "value": {
    "display_phone_number": "905550000000",
    "event": "FLAGGED",
    "current_limit": "TIER_1K"
  }
}

// What a sensible handler does with it
switch (value.event) {
  case 'FLAGGED':          // red rating, recovery period started
    pauseMarketingCampaigns(number);
    alertOncall('WhatsApp number flagged', number);
    break;
  case 'DOWNGRADE':        // the tier actually dropped
    recalculateDailyAudienceCap(number, value.current_limit);
    break;
  case 'UNFLAGGED':        // recovered, back to connected
  case 'UPGRADE':          // the tier went up
    resumeCampaigns(number);
    break;
}
Recovery playbook

Six moves, in this order, when a number turns yellow.

  • Stop the campaign that is running right now. Do not finish the batch.
  • Identify the segment, not the copy: sort recent sends by how long since that contact last engaged.
  • Suspend all marketing to anyone who has not interacted in the last 90 days.
  • Keep answering inbound conversations, since engagement is the counterweight.
  • Add or make more visible the opt-out, so the next objection is a quiet stop rather than a block.
  • Wait for the rolling window to clear before resuming, and resume at a fraction of the previous volume.
Watch out for

A fresh number is not a reset button.

The instinct when a number turns red is to register a new one and carry on. It does not work. The new number starts at the lowest messaging tier, has no engagement history to cushion complaints, and is about to be pointed at the exact list that produced the complaints in the first place. You will be red again within a day, now with two damaged numbers in the same account and a pattern that looks deliberate to Meta. Fix the audience, then the number recovers on its own.

Quality rating: FAQ

What every WhatsApp sender wants to know the first time the dashboard turns yellow.

Recipient behaviour, and almost nothing else. Blocks and reports are the dominant signals, and WhatsApp collects a reason when a user reports, so "I did not sign up for this" or "this is spam" carry specific weight. Bounced or undeliverable messages do not lower quality, and neither does message volume by itself. A number sending a hundred thousand welcome messages that people want stays green, while a number sending five hundred cold promotions can go red in a day.
Quality is evaluated over a rolling recent window, so it improves as the bad period ages out, provided you stop producing new negative signals. What does not help is switching to a different template with the same audience. If the list is the problem, the rating keeps falling. The reliable recovery pattern is to pause outbound to unengaged segments entirely, keep answering inbound conversations, and let engaged traffic dominate the window.
Quality rating is the score: green, yellow or red. Status is the consequence: connected, flagged, or restricted. A number goes to flagged when quality drops to red, and Meta then watches it for a recovery period. Recover and it returns to connected with the limit intact. Stay red and the messaging limit is reduced, which is the moment the score stops being informational and starts costing you reach.
Quality rating itself is per number, so one bad sender does not directly drag its siblings down. The indirect risk is real though: the templates that produced the blocks belong to the whole WABA, so a template can be paused for every number at once, and severe or repeated policy problems escalate to account-level restriction. Isolation is partial, which is why separate brands belong in separate accounts.
Yes. The quality_rating field is available on the phone number node, so a single fields query returns it alongside the display name and verification state. Meta also pushes changes to the phone_number_quality_update webhook. Since Meta does not give you an exportable history, the practical move is to poll the field on a schedule and store your own time series, so you can correlate a drop with the campaign that caused it.
Something about the audience changed even if the content did not. The usual causes are a list segment that was imported without real consent, a campaign that reached people who last interacted a year ago, a send time that landed at night in the recipient country, or a frequency increase where the same people got a third message this week. Look at who received the last batch before you look at what it said.
Ready to ship

See the drop before Meta does.

Pinlyx records quality history per number, alerts on the first move to yellow, and can pause campaigns automatically before a tier is lost.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.