VoIP

MOS Score Explained: How VoIP Call Quality Is Actually Measured

Himanshu Pal

Himanshu Pal

Putting a number on "the calls sound bad"

Call quality complaints are frustrating precisely because they are subjective. One user says the line is terrible, another on the same system says it is fine, and there is nothing to act on. Mean Opinion Score is the industry's answer: a single number that represents perceived call quality, so quality becomes something you can measure, track and hold a carrier to.

Where the scale comes from

MOS originates in ITU-T Recommendation P.800, Methods for subjective determination of transmission quality. Its origins are genuinely subjective — human listeners rated calls on a five-point scale:

  • 5 — Excellent
  • 4 — Good
  • 3 — Fair
  • 2 — Poor
  • 1 — Bad

The score for a given condition is the arithmetic mean of all those individual opinion scores — hence "mean opinion score". P.800 denotes the mean conversation-opinion score with the symbol MOSC.

Understanding this origin explains a common source of confusion: MOS is fundamentally a perceptual measure, not a network measurement. Everything modern systems report is an estimate of what humans would have said.

What the numbers mean in practice

A perfect 5 is effectively unobtainable on a real network, and you should be suspicious of any tool that reports it. Even a flawless G.711 call typically tops out around 4.4, because the codec itself imposes a ceiling before the network contributes anything.

The number to anchor on is 4.0 — toll quality, the standard of a clean traditional phone call, and the reasonable target for any business-grade service. Between 3.5 and 4.0, calls are usable but users notice compression or network effects. Below roughly 3.5, complaints start. Below 3.0, a conversation becomes hard work.

Because the codec sets the ceiling, comparing MOS across different codecs is misleading. A G.729 call is capped well below a G.711 one by design. Compare like with like, and track a single path over time rather than ranking dissimilar systems against each other.

How MOS gets calculated without human listeners

Nobody convenes a listening panel to score production traffic. Two approaches replaced it.

The one used in live monitoring is the E-model, ITU-T Recommendation G.107. It computes a transmission rating factor, R, from measurable network and codec parameters — latency, jitter, packet loss, the codec in use, echo — and that R factor maps onto an estimated MOS. This is what your SBC, monitoring platform or PBX is doing when it displays a MOS value for a call in progress. Nothing subjective happens; it is a model that predicts the human verdict from network conditions.

The second approach compares audio directly: a reference sample is played through the system and the degraded output is compared against the original by algorithm. This is more accurate but requires injecting known audio, so it belongs to lab and pre-deployment testing rather than passive monitoring of real calls.

What actually moves the score

Since live MOS is derived from network measurements, the inputs are the levers:

  • Packet loss is the most damaging. Voice cannot be retransmitted usefully — a late packet is a useless packet — so every lost packet is a small hole in the audio. Even 1% loss is audible; 3% is bad.
  • Jitter, the variation in packet arrival timing, forces the receiver's buffer to work harder and eventually to discard packets that arrive too late to play. Discards caused by jitter look exactly like loss to the listener.
  • Latency does not distort the audio at all, but it destroys conversational flow. Beyond roughly 150 ms one way, people start talking over each other. The E-model penalises it accordingly.
  • Codec choice sets the maximum achievable score before the network is involved.
  • Echo degrades perceived quality sharply and is usually an analogue or acoustic problem rather than a network one.

Using MOS well

The most valuable thing about MOS is that it turns a vague complaint into a defensible position with a carrier. "Calls are bad" invites argument; "MOS on this trunk dropped from 4.2 to 3.1 between 14:00 and 16:00, with 2.4% packet loss inbound" does not.

Three habits make it useful rather than decorative:

  1. Baseline first. Record what normal looks like on your system before there is a problem, so you can tell a genuine regression from a number that was always 3.9.
  2. Track per-trunk and per-path. An aggregate MOS across a whole system hides the one carrier or one site that is degrading.
  3. Always keep the underlying metrics. MOS tells you quality dropped; loss, jitter and latency tell you why. A score with no supporting statistics is not actionable.

Asterisk reports jitter and loss from RTCP per channel, which is enough to correlate a complaint with a measurable event even without a dedicated monitoring platform.

Frequently asked questions

What is a good MOS score for VoIP?

4.0 or above is toll quality and the right target for business voice. 3.5 to 4.0 is acceptable but noticeable. Below 3.5, expect complaints.

Why can I never reach 5.0?

The codec imposes a ceiling before the network contributes anything — even clean G.711 sits around 4.4. A reported 5.0 usually indicates a tool that is not modelling codec impairment.

Is MOS measured or estimated?

On live traffic it is estimated. The E-model (ITU-T G.107) derives an R factor from latency, jitter, loss and codec, and maps that to a predicted MOS. The original P.800 method used actual human listeners.

Can I compare MOS between different codecs?

Not meaningfully. Each codec has a different maximum, so a G.729 call will always score below a G.711 one even on a perfect network. Compare the same path over time instead.