Skip to content

Statistic Values

Overview

This page lists the statistic values that can be found in the statistic_values field of our measurement data, and explains how they are calculated. The statistic_values field is a dictionary of statistic values, where the keys are the names of the statistic values, and the values are the actual values. The names are the headings below, only that they use camelCase.

Note that statistic values are, by definition, calculated fields that we extract from other information gathered while a measurement is made. Sometimes these are very simple mappings (e.g., multiplying a milliseconds value by 1,000 to get seconds), sometimes they are more complex (e.g., calculating the average of a set of values). In some cases, calculations can get very complex (e.g., when calculating the MOS score for a video stream).

We also provide Client Reports as a way to get more detailed background information. We do not perform any calculations on these reports, but instead provide the raw data that we collected during the measurement. Therefore, these are not listed here, and you can find a reference in the Client Reports page.

Finally, be aware that for some measurement types we do not calculate explicit statistic values, as the results are implicitly all contained within the Client Report. Here, the Client Reports are “forwarded” as statistic values, and you can find their reference in the Client Reports page.


Video Measurement Statistics

This section lists the statistc values available for video measurements.

Video statistics are essentially KPI and KQI values. They are based on a measurement of a video stream with all the important events and metadata captured by Surfmeter. The specific implementation of the event tracking and metadata collection depend on the service measured; the description of the KPIs/KQIs in the following however are generic and service-independent.

Quality-related KPIs/KQIs are based on the application of a QoE model on the measured video session.

P.1203 Overall MOS

Unit: MOS (Valid Range: 1–5)

The overall MOS, taking into account audiovisual quality, quality switches, and initial loading/stalling.

This corresponds to the output O.46 of the P.1203.3 integration module.

Unless otherwise specified, the MOS is calculated using Mode 0 of the ITU-T Rec. P.1203.1 model. By default, P.1203.3 Amendment 1 is enabled. This introduces an adjustment of the audiovisual quality of ITU-T P.1203.3 for the case of very low audio quality and long stalling events.

For more information, see the explanation of the video QoE model.

Note

Depending on the customer configuration, the MOS may be calculated using a different model, or using a different version of the model.

P.1203 Overall Audiovisual Quality

Unit: MOS (Valid Range: 1–5)

The overall audiovisual quality, not including any stalling.

This corresponds to the output O.35 of the P.1203.3 integration module.

P.1203 Average Audio Quality

Unit: MOS (Valid Range: 1–5)

Average per-second audio MOS.

The average is calculated over the O.21 values produced by the P.1203.2 audio quality module.

In case of a stream not using any audio, this value will be fixed to 5.

P.1203 Average Video Quality

Unit: MOS (Valid Range: 1–5)

Average per-second video MOS.

The average is calculated over the O.22 values produced by the P.1203.1 video quality module.

P.1203 Stalling Quality

Unit: MOS (Valid Range: 1–5)

The overall quality impact of the stalling itself. A low number indicates a bad experience; a high number indicates a good experience.

This corresponds to the O.23 indicator produced by the P.1203.3 integration module.

P.1203 Max Theoretical MOS

Unit: MOS (Valid Range: 1–5)

The MOS that could have been achieved if there was no initial loading delay, no stalling, and continuous playback of the highest played out video and audio representation. "Highest" in this case is the representation with the highest bitrate and resolution observed during the playback.

For example, if a video was played with the following chunks, where a chunk is a contiguous region of playback with the same resolution and (nominal) bitrate:

  • 0–20 s: 1080p, 3500 kBit/s
  • 20–40 s: 720p, 1500 kBit/s
  • 40–60 s: 1080p, 3500 kBit/s

The maximum theoretical MOS is the result of a MOS calculation assuming that the video was played out with a single chunk from 0–60s, with 1080p, 3500 kBit/s.

The maximum theoretical MOS helps the user understand the quality in relative terms. For instance, a video that is only available in 720p resolution will never yield a high MOS, even if it is always played at 720p, due to the comparably low resolution.

Note

In the case of bad network conditions, a video playback may never reach the highest possible resolution that is available on the video server or indicated in the video manifest. In this case, the maximum theoretical MOS is only calculated with respect to the highest observed representation during playout.

P.1203 Max MOS Ratio

Unit: %

The ratio between actual MOS and the maximum theoretical MOS.

Average Audio Bitrate

Unit: Kbit/s

Mean of the audio bitrate, weighted by playback duration of the respective representations using that bitrate.

For the calculation procedure, see the section on average video bitrate.

Average Video Bitrate

Unit: Kbit/s

Mean of the video bitrate, weighted by playback duration of the respective representations using that bitrate.

The calculation is realized as follows, where the bitrates and durations are lists of measured bitrates and the durations for which they have been measured:

bitrates = [...]
durations = [...]
sum = 0
for bitrate, duration in (bitrates, durations):
    sum = sum + bitrate * duration

sum_of_weights = 0
for weight in durations:
    sum_of_weights = sum_of_weights + weight

average_bitrate = sum / sum_of_weights

Average Total Bitrate

Unit: Kbit/s

Mean of the video and audio bitrate, weighted by playback duration of the respective representations.

For the calculation procedure, see the section on average video bitrate.

Average Video Framerate

Unit: fps

Mean of the video framerate, weighted by playback duration of the respective representations using that framerate.

Initial Resolution

Unit: Pixels

The height (in pixels) of the video when playback was first started.

The initial resolution is an indicator of the player's ability to load a video with high quality. Users may prefer videos to start with high quality.

Longest Played Chunk

Unit: Pixels

The representation that was played out the longest during the measurement. In other words, this is the height of the chunk with the longest duration, where a chunk is a contiguous region of playback with the same resolution and (nominal) bitrate.

Largest Played Video Size

Unit: Pixels

The highest resolution (in terms of height in pixels) that was played out during the measurement.

Note that most of the following KPIs are directly mapped from the PerformanceClientReport.

Average Buffer Length

Unit: Seconds

The average length of the video buffer over the course of the entire measurement.

Max. Buffer Length

Unit: Seconds

The highest length of the video buffer over the course of the entire measurement.

Min. Buffer Length

Unit: Seconds

The lowest length of the video buffer over the course of the entire measurement.

Average Latency

Unit: Seconds

The average latency of the video player over the course of the entire measurement.

Note that this is currently only available for low-latency CMAF streams played with the DASH.js player. Other players may support reporting latency. If this is the case, the value will be available in Surfmeter too.

Latency is measured as "distribution latency", that is the latency between the video segment being available at the CDN vs the time it was received at the client. This is shown in the below figure.

Contribution latency cannot be measured from the client side.

Max. Latency

Unit: Seconds

The maximum latency of the video player over the course of the entire measurement.

Min. Latency

Unit: Seconds

The minimum latency of the video player over the course of the entire measurement.

Dropped Frames

Unit: N/A

The number of frames dropped during playback.

This is not an issue with the streaming performance itself, but the performance of the device decoding the video. A high number of dropped frames indicates issues with the playout that suggest that a higher-powered device is needed, or that the screen and/or video resolution should be reduced.

Video Response Time

Unit: Seconds

The time between the first request for a video segment and the first response for that segment.

When only using Surfmeter Lab (without Automator), this statistic may not always be available. If it is, it uses the difference between the requestStart and responseStart timing, per the W3C Resource Timing 2 specification. Due to CORS restrictions, this field is not always present.

When using Surfmeter Automator, this statistic is always available when also enabling --logNetworkRequests. It is calculated from the sendEnd to the receiveHeadersStart field of the Chrome DevTools Protocol Timing Specification. If that field is not available, the receiveHeadersEnd field is used instead.

Number of Quality Switches

Unit: N/A

Number of total quality switches, that is switches between chunks of different resolutions and bitrates.

A chunk is a contiguous region of playback with the same resolution and (nominal) bitrate.

Quality Switch Up Count

Unit: N/A

Number of quality switches to a higher resolution.

Quality Switches Down Count

Unit: N/A

Number of quality switches to a lower resolution.

Total Play Time

Unit: Seconds

The total time spent playing video in media time. This excludes any stalling event. Thus, it is equal to the sum of all chunk lengths.

Video Completion Ratio

Unit: N/A

The fraction of last point in the video that was played (in media time) vs. total duration of the video.

This is not available for live video measurements.

Initial Loading Delay

Unit: Seconds

The initial startup time of the stream, measured from a specific point in time (T0) until the first successful playback of the video.

The recording of T0 depends on the specific implementation of the video website. Generally, unless otherwise specified, T0 is equal to the wall clock time of the moment the video element is created the first time and is configured ready to load a playout. In cases where a video starts directly together with the service's content page, T0 is equal to the wall clock time of the page's domContentLoadedEventEnd event (see also Section 3.2).

Some video services may use additional video loading strategies that involve showing a spinning indicator to the user ("buffering") before a video player object is instantiated. In such cases, T0 is set to the time at which such an indicator appears, as this will better reflect the subjective experience of the end user.

In cases where the video element is pre-loaded but hidden until the user interacts with the web page, T0 references the wall clock time of either the next shown spinning loader or – if such an indicator is not displayed – the moment the video becomes visible before the actual playout.

Number of stalling events

Unit: N/A

The total number of stalling events. This excludes initial loading. Thus, a stream with only initial loading has 0 stalling events.

Average Stalling Time

Unit: Seconds

The average time spent stalling for each event. This excludes initial loading.

Total Stalling Time

Unit: Seconds

The total time spent stalling. This excludes initial loading.

Stalling Ratio

Unit: N/A

The fraction between total stalling time and total play time.

Other KPIs

Content Server IP Address

Unit: N/A

This is the IP address of the content server that was used to stream the video, based on the frequency of the IP address in the received responses matching video/audio MIME types or URL signatures.

For this feature to be available, the --logNetworkRequests option must be enabled in Surfmeter Automator.

Content Server Hostname

Unit: N/A

This is the hostname of the content server that was used to stream the video, based on the frequency of the hostname in the received responses matching video/audio MIME types or URL signatures.

For this feature to be available, the --logNetworkRequests option must be enabled in Surfmeter Automator.

Note

The hostname is not necessarily the same as the domain name of the video service. For example, a video service may use a CDN to deliver video content, in which case the hostname will be the CDN hostname, not the video service's domain name.

Web Measurement Statistics

This section lists the KPIs that are available for web measurements.

Web measurement KPIs are realized with either the W3C APIs, as implemented in the respective browser versions used, or Google Lighthouse. Note that these are two different types of measurements, and that the KPIs are not directly comparable, unless they are listed in both sections.

W3C-based KPIs

The following APIs are used:

Underlying to the following KPIs is the following processing model (Source: W3C).

Specifically, for basic web load performance, we are interested in the timing from the start of the domain lookup until the end of the load event.

DNS Load Time

Unit: Seconds

The time from the start of domain lookup (domainLookupStart) until end of domain lookup (domainLookupEnd).

These fields are exposed in the PerformanceResourceTiming interface.

Specifically, the DNS timing of the main page that is requested will be calculated. Timings for other resources on the measured website are not included.

Note

DNS lookups may be cached by the operating system or the customer router, so that the DNS lookup time could become 0 (or close to 0). This is not an issue with the website, but with the operating system or router. Ensure that the DNS cache is cleared before running the measurement (which Surfmeter Automator attempts to do, for example). For avoiding router caching, use a different DNS server than the one provided by your ISP, or use a new set of host names to test. On the other hand, if you want to avoid DNS impacting your web tests at all, warm up the cache by performing DNS requests against the host names you want to test before running the test.

Document Ready Load Time

Unit: Seconds

The time from connect start (connectStart) until end of the DOM content loaded event (domContentLoadedEventEnd).

These fields are exposed in the PerformanceNavigationTiming interface.

Page Load Time

Unit: Seconds

The time from connect start (connectStart) until end of the load event (loadEventEnd).

These fields are exposed in the PerformanceNavigationTiming interface.

Server Response Time

Unit: Seconds

The time from the start of the load (startTime) until the response begins (responseStart).

These fields are exposed in the PerformanceNavigationTiming interface.

Also called Time to First Byte (TTFB), this metric measures the time it takes for the server to respond to a request. The lower the value, the better.

First Contentful Paint

Unit: seconds

The First Contentful Paint (FCP) marks the first time when the browser renders any text, image (including background images), non-white canvas or SVG.

This is exposed in the PerformancePaintTiming interface.

Largest Contentful Paint

Unit: seconds

The Largest Contentful Paint (LCP) marks the point in the page load timeline when the page's main content has likely loaded. This must be contrasted with First Contentful Paint which only captures the beginning of the loading experience.

This is exposed in the PerformancePaintTiming interface.

Google Lighthouse-based KPIs

These are directly exposed by Google Lighthouse in the audits section of the JSON report produced by the lighthouse command line tool.

For a detailed description of some of the below metrics, see the Google Lighthouse documentation.

The overall scoring system from Lighthouse is explained here, with an interactive scoring calculator being available.

Server Response Time

Unit: seconds

The time from the start of the load (startTime) until the response begins (responseStart).

These fields are exposed in the PerformanceNavigationTiming interface.

Also called Time to First Byte (TTFB), this metric measures the time it takes for the server to respond to a request. The lower the value, the better.

Total Byte Weight

Unit: bytes

Summarizes the total byte size of the page and all its network requests.

DOM Size

Unit: elements

The size of the DOM in elements. Higher values may indicate that the page is heavy on DOM manipulation.

Interactive

Unit: seconds

Also called Time to Interactive (TTI), this metric measures the time it takes for the page to become fully interactive. The lower the value, the better.

First Contentful Paint

Unit: seconds

The First Contentful Paint (FCP) marks the first time when the browser renders any text, image (including background images), non-white canvas or SVG.

This is exposed in the PerformancePaintTiming interface.

Largest Contentful Paint

Unit: seconds

The Largest Contentful Paint (LCP) marks the point in the page load timeline when the page's main content has likely loaded. This must be contrasted with First Contentful Paint which only captures the beginning of the loading experience.

This is exposed in the PerformancePaintTiming interface.

Speed Index

Unit: seconds

The Speed Index (SI) is a metric that summarizes the visual progress of a page load. It is calculated based on the speed of visual progress and the visual completeness of the page.

Cumulative Layout Shift

Unit: unitless

The Cumulative Layout Shift (CLS) metric measures the instability of content on a web page during the loading process. It quantifies how much the layout of a page shifts around.

Total Blocking Time

Unit: seconds

The Total Blocking Time (TBT) metric measures the total amount of time between First Contentful Paint and Time to Interactive (TTI) where the main thread was blocked for long enough to prevent input responsiveness.

First Meaningful Paint

Unit: seconds

The First Meaningful Paint (FMP) measures when the primary content of a page is visible to the user.

Warning

Per Google, “First Meaningful Paint (FMP) is deprecated in Lighthouse 6.0. In practice FMP has been overly sensitive to small differences in the page load, leading to inconsistent (bimodal) results. Additionally, the metric's definition relies on browser-specific implementation details, which means it cannot be standardized nor implemented in all web browsers. Moving forward, consider using Largest Contentful Paint instead.”

Speedtest Measurement Statistics

This section lists the KPIs that are available for speedtest measurements.

The interpretation of speedtest measurement KPIs depend on the type of speedtest being run. For example, speedtests run via the browser will exhibit limitations for very high levels of bandwidths, whereas speedtests that were run natively do not have such limitations.

Speedtests do not have KQIs due to the complex relationship between observed bandwidth and actual customer experience.

Note

Speedtest measurements have no statistic_values property, but instead provide the raw data that we collected during the measurement as direct attributes of the measurement. You can find a reference in the Measurement Data page.

Download

Unit: Mbit/s

The download speed as indicated by the speedtest provider.

Details on the methodology can be obtained from the respective provider, for instance:

Upload

Unit: Mbit/s

The upload speed as indicated by the speedtest provider.

Latency

Unit: ms

The latency as indicated by the speedtest provider.

The latency is to be interpreted with respect to the remote speedtest server chosen. The remote server may be available as an extra attribute of the measurement depending on whether the speedtest provider shows this information.

Network Measurement Statistics

Network measurements do not calculate any statistic values, but instead provide the raw data that we collected during the measurement. You can find a reference in the Client Reports page.

Conferencing Measurement Statistics

This section lists the KPIs that are available for conferencing measurements. Note that some KPIs overlap with the video measurement statistics, so we do not list them here again. The following KPIs are therefore specific to conferencing measurements.

Inbound Audio

These statistics relate to the inbound RTP audio stream.

Packets Received

Unit: N/A

The number of audio packets received.

Packets Lost

Unit: N/A

The number of audio packets lost during transmission.

Minimum Jitter

Unit: Seconds

The minimum observed jitter in the audio stream.

Maximum Jitter

Unit: Seconds

The maximum observed jitter in the audio stream.

Average Jitter

Unit: Seconds

The average jitter calculated over the duration of the audio stream.

Total Interruption Duration

Unit: Seconds

The total duration of interruptions in the audio stream.

Inbound Video

Packets Received

Unit: N/A

The number of video packets received.

Packets Lost

Unit: N/A

The number of video packets lost during transmission.

Minimum Jitter

Unit: Seconds

The minimum observed jitter in the video stream.

Maximum Jitter

Unit: Seconds

The maximum observed jitter in the video stream.

Average Jitter

Unit: Seconds

The average jitter calculated over the duration of the video stream.

Total Pauses Duration

Unit: Seconds

The total duration of pauses in the video stream, where a pause is defined as exceeding 5 seconds without a rendered frame.

See also the WebRTC specification for pauseCount and totalPausesDuration.

Total Freezes Duration

Unit: Seconds

The total duration of freezes in the video stream. It is a freeze if frame duration, which is time interval between two consecutively rendered frames, is equal or exceeds Max(3 * avg_frame_duration_ms, avg_frame_duration_ms + 150), where avg_frame_duration_ms is linear average of durations of last 30 rendered frames.

See also the WebRTC specification for freezeCount and totalFreezesDuration.

Frames Dropped

Unit: N/A

The number of frames dropped in the video stream. The total number of frames dropped prior to decode or dropped because the frame missed its display deadline for this receiver's track.

See also the WebRTC specification for framesDropped and framesDecoded.

Outbound Audio

Retransmitted Packets Sent

Unit: N/A

The number of audio packets sent as retransmissions.

Total Packet Send Delay

Unit: Seconds

The total delay for all packets sent in the audio stream.

NACK Count

Unit: N/A

The number of Negative Acknowledgment (NACK) messages sent for the audio stream.

Outbound Video

Retransmitted Packets Sent

Unit: N/A

The number of video packets sent as retransmissions.

Total Packet Send Delay

Unit: Seconds

The total delay for all packets sent in the video stream.

NACK Count

Unit: N/A

The number of Negative Acknowledgment (NACK) messages sent for the video stream.

FIR Count

Unit: N/A

The total count of Full Intra Requests (FIR) sent for the video stream.

PLI Count

Unit: N/A

The total count of Picture Loss Indications (PLI) sent for the video stream.

Quality Limitation Durations

These statistics relate to the quality limitations that may affect the video stream.

Bandwidth

Unit: Seconds

The total duration where bandwidth limitations affected the video quality.

CPU

Unit: Seconds

The total duration where CPU limitations affected the video quality.

None

Unit: Seconds

The total duration where there were no quality limitations.

Other

Unit: Seconds

The total duration where other factors limited video quality.

Local Candidate

Candidate Type

Unit: N/A

The type of the local candidate. The following types are possible: host, srflx, prflx, relay.

IP

Unit: N/A

The IP address of the local candidate.

Network Adapter Type

Unit: N/A

The type of network adapter used (e.g., "ethernet").

Network Type

Unit: N/A

The type of network (e.g., "ethernet").

Port

Unit: N/A

The port number used by the local candidate.

Protocol

Unit: N/A

The protocol used (e.g., "udp", "tcp", "tls").

VPN

Unit: N/A

Indicates whether a VPN is being used (true/false).

Remote Candidate

Candidate Type

Unit: N/A

The type of the remote candidate. The following types are possible: host, srflx, prflx, relay.

IP

Unit: N/A

The IP address of the remote candidate.

Port

Unit: N/A

The port number used by the remote candidate.

Protocol

Unit: N/A

The protocol used (e.g., "udp", "tcp", "tls").

AV Sync

We calculate the AV sync as the difference between the audio and video timestamps. Specifically, we sample the jitter buffer delay for the audio and video buffers, respectively, every second, and calculate the difference between the two.

ITU-R BT.1359-1 gives us some indication as to which delays are noticeable or not. The lip sync detection thresholds are +45 ms to -125 ms of audio leading video, and these experiments were done with talking head (news readers). The acceptability threshold is +90 and -185 ms, respectively.

Audio-video desync chart per ITU-R BT.1359-1

Other studies like this one show that the latency sensitivity depends on the content type, so it may be different for non-talking-head videos.

Minimum AV Sync

Unit: Milliseconds

The minimum observed audiovisual synchronization delay.

Maximum AV Sync

Unit: Milliseconds

The maximum observed audiovisual synchronization delay.

Average AV Sync

Unit: Milliseconds

The average audiovisual synchronization delay calculated over the duration of the stream.