Skip to content

Client Reports

Client Reports are complex objects that are specific to the technology that was used to measure the data.

We provide them so you can dig deeper into the data and analyze it in more detail.

Each Client Report contains:

  • metadata (e.g., the type and timestamp) common to all Client Reports
  • the actual data that was measured by the client

Normally, each measured subject has its own type of Client Report. For example:

  • A video study with subject youtube has a YoutubeClientReport
  • A network study with subject dns has a DnsClientReport
  • … and so on

However, there are also some generic Client Reports that can be used for multiple services:

  • Each video study has a P1203ClientReport which contains information about the video quality and a PerformanceClientReport which contains information about the performance of the playback.

Finally, some services could have multiple types of Client Reports (e.g., YouTube has a Client Report for its Stats for Nerds, but we might add more in the future). In the latter case, the data_type attribute may identify the specific type of the Client Report.

Example

Here is are two example Client Reports, both for a video measurement (as identified by the measurement_id):

We provide this one for every video measurement. This corresponds to the input format of the P.1203 video QoE model. It allows you to get a good overview of what happened during a streaming session.

{
  "id": 43009,
  "measurement_id": 874,
  "type": "P1203ClientReport",
  "data_type": "object",
  "created_at": "2023-02-11T13:42:58.510Z",
  "updated_at": "2023-02-11T13:42:58.510Z",
  "client_time": "2023-02-11T13:42:54.875Z",
  "client_time_skewed": "2023-02-11T13:42:54.878Z",
  "data": {
    "I11": {
      "segments": [
        {
          "codec": "opus",
          "start": 0,
          "bitrate": 125.36497312878555,
          "duration": 0.6666666666666666
        },
        {
          "codec": "opus",
          "start": 0.6666666666666666,
          "bitrate": 125.36497312878555,
          "duration": 19.333333333333332
        },
        {
          "codec": "opus",
          "start": 20,
          "bitrate": 127.71297482399984,
          "duration": 20.333333333333332
        },
        {
          "codec": "opus",
          "start": 40.333333333333336,
          "bitrate": 133.1045843559189,
          "duration": 19
        }
      ],
      "streamId": 1
    },
    "I13": {
      "segments": [
        {
          "fps": 25,
          "codec": "vp9",
          "start": 0,
          "bitrate": 296.51000006291014,
          "duration": 0.6666666666666666,
          "resolution": "640x360"
        },
        {
          "fps": 29.666666666666668,
          "codec": "vp9",
          "start": 0.6666666666666666,
          "bitrate": 296.51000006291014,
          "duration": 19.333333333333332,
          "resolution": "854x480"
        },
        {
          "fps": 51,
          "codec": "vp9",
          "start": 20,
          "bitrate": 2516.2002482479243,
          "duration": 20.333333333333332,
          "resolution": "1920x1080"
        },
        {
          "fps": 61,
          "codec": "vp9",
          "start": 40.333333333333336,
          "bitrate": 2401.3066847336336,
          "duration": 19,
          "resolution": "1920x1080"
        }
      ],
      "streamId": 1
    },
    "I23": {
      "pauses": [
        [
          0.513657,
          0.068
        ],
        [
          0.591163,
          0.035
        ],
        [
          0.674196,
          0.05
        ],
        [
          0.702526,
          0.009
        ],
        [
          0.768459,
          0.003
        ]
      ],
      "stalling": [
        [
          0,
          0.901
        ]
      ],
      "streamId": 1
    },
    "IGen": {
      "device": "pc",
      "displaySize": "1920x1080",
      "viewingDistance": "150cm"
    }
  }
}
  1. This is a P1203ClientReport data type (see below for its definition).

This is a Client Report for a YouTube video measurement. It contains the Stats for Nerds data that YouTube provides for each video. This is a very detailed report that allows you to analyze the video quality in great detail.

Note that the data type is stats_for_nerds, as we might add more YouTube Client Reports in the future.

{
    "id": 43008,
    "measurement_id": 874,
    "type": "YoutubeClientReport",
    "data_type": "stats_for_nerds",
    "created_at": "2023-02-11T13:42:58.502Z",
    "updated_at": "2023-02-11T13:42:58.502Z",
    "client_time": "2023-02-11T13:42:54.332Z",
    "client_time_skewed": "2023-02-11T13:42:54.335Z",
    "data": { // (1)!
        "s_cpn": "BBGW T4J4 V8DK",
        "volume": 100,
        "video_id": "aqz-KE-bpKQ",
        "viewport": "1920x1080",
        "timestamp": "Sat Feb 11 2023 13:42:53 GMT+0000 (Coordinated Universal Time)",
        "audio_itag": 251,
        "video_itag": 303,
        "color_space": "bt709",
        "current_fps": 60,
        "current_res": "1920x1080",
        "optimal_fps": 60,
        "optimal_res": "1920x1080",
        "frames_total": 2747,
        "mystery_text": "s:8 t:58.36 b:0.000-99.733 L pbs:1562",
        "buffer_health": 41.55,
        "frames_dropped": 2,
        "audio_codec_mime": "opus",
        "connection_speed": 69076,
        "content_loudness": -4.7,
        "network_activity": 1680,
        "video_codec_mime": "vp09.00.51.08.01.01.01.01.00",
        "normalized_volume": 100
    }
}
  1. This is a YoutubeStatsForNerdsInfo data type (see below for its definition).

Properties

Common Properties

General attributes for a client report.

Property Type Description
clientTime string, or number The time at which the report was created
clientTimeSkewed string, or number (optional) The time at which the report was created, adjusted in case of client skew
data object (no predefined properties) The actual client report data
dataType array of string The type of data (if not explicitly defined, simply 'object')
type array of string The type of client report

Data Properties

ByteCountClientReport Data

A report for storing byte counts for a given measurement session.

Property Type Description
byteCounts array of [unknown, number] The byte counts, as a tuple of timestamp and bytes

DnsClientReport Data

A report for dig-based DNS measurements.

Property Type Description
answerIp string The resolved IP for the host, as returned by the DNS server (may be IPv4 or IPv6)
avgQueryTime number Average query time in microseconds
host string The host that was queried (multiple client reports will be used for multiple hosts)
individiualQueryTimes array of number Individual query times in microseconds
maxQueryTime number The maximum query time in microseconds
nameserver string The used nameserver for this request, may be empty if useGetAddrInfo was used for the study

HttpProberClientReport Data

A report for HTTP prober measurements containing results for a single URL being probed.

Property Type Description
abortedAt string, or null ISO datetime when testing was aborted, or null if not aborted
abortedReason string (optional) Reason for aborting, if applicable
byteRange ByteRangeTestResult (optional) Results for byte range request tests
enabledTests array of string List of test types that were enabled for this URL
errorRate ErrorRateTestResult (optional) Results for error rate tests
finishedAt string ISO datetime when testing finished
httpCompliance HttpComplianceTestResult (optional) Results for HTTP compliance tests
protocol ProtocolTestResult (optional) Results for protocol tests
startedAt string ISO datetime when testing started
url string URL that was tested
userAgent array of UserAgentTestResult (optional) User agent test results (one per user agent tested)
ByteRangeTestResult

Results for byte range request tests

Property Type Description
clientErrorRequests number Number of client error responses (4xx status codes)
failedRequests number Number of requests that failed due to network errors
fullContentRequests number Number of full content responses (200)
otherStatusRequests number Number of responses with other status codes
partialContentRequests number Number of successful partial content requests (206)
requests array of ByteRangeRequestResult Individual request results for detailed analysis
responseTimeAvg number Average response time in milliseconds
responseTimeMax number Maximum response time in milliseconds
responseTimeMedian number Median response time in milliseconds
responseTimeMin number Minimum response time in milliseconds
serverErrorRequests number Number of server error responses (5xx status codes)
totalRequests number Total number of requests made
totalTime number Total time taken for all requests in milliseconds
ErrorRateTestResult

Results for error rate tests

Property Type Description
cacheHits number Number of cache hits detected from X-Cache header
cacheMisses number Number of cache misses detected from X-Cache header
clientErrorRequests number Number of client error responses (4xx status codes)
errorRate number Server error rate as percentage (serverErrorRequests / totalRequests * 100)
failedRequests number Number of requests that failed due to network errors
otherStatusRequests number Number of responses with other status codes (1xx, 3xx)
serverErrorRequests number Number of server error responses (5xx status codes)
successRequests number Number of successful requests (2xx status codes)
totalRequests number Total number of requests made
totalTime number Total time taken for all requests in milliseconds
HttpComplianceTestResult

Results for HTTP compliance tests

Property Type Description
error string (optional) Error message if request failed
headers object
statusCode number HTTP status code returned by the server
violations array of string List of HTTP compliance violations found
ProtocolTestResult

Results for protocol tests

Property Type Description
error string (optional) Error message if request failed
headers object
httpVersion string HTTP version detected (1.1, 2.0)
isChunked boolean Whether the response uses chunked transfer encoding
protocol string Protocol used for the request (http, http2)
statusCode number HTTP status code returned by the server
transferEncoding string (optional) Transfer-Encoding header value
UserAgentTestResult

Results for user agent tests

Property Type Description
error string (optional) Error message if request failed
headers object
statusCode number HTTP status code returned by the server
userAgent string User-Agent string used for the request
ByteRangeRequestResult

Result of a single byte range request

Property Type Description
contentLength number Number of bytes in the response body
contentRange string (optional) Content-Range header value from server response
error string (optional) Error message if request failed
headers object
isPartialContent boolean Whether the response is partial content (206) or full content (200)
rangeMax number Maximum byte position of the requested range
rangeMin number Minimum byte position of the requested range
responseTime number Time taken for the request in milliseconds
statusCode number HTTP status code returned by the server
timings object with properties: connect, download, lookup, response, ... (optional) HAR-like timing information for HTTP requests

IcmpPingClientReport Data

A report for ping-based ICMP measurements.

Property Type Description
avgRtt number The average round-trip time (in milliseconds)
dataBytes number The number of bytes of data sent in each ping
host string The host that was pinged
individualPings array of IndividualPingsIndividualPing (optional) An array of individual ping results
ipAddress string The IP address of the host that was pinged
maxRtt number The maximum round-trip time (in milliseconds)
minRtt number The minimum round-trip time (in milliseconds)
packetsLost number The packet loss percentage (from 0 to 100)
packetsReceived number The number of ping packets received
packetsTransmitted number The number of ping packets transmitted
stdevRtt number The standard deviation of round-trip times (in milliseconds)
IndividualPingsIndividualPing
Property Type Description
dataBytes number The number of bytes
icmpSeq number The ICMP sequence number of the ping packet.
ipAddress string The IP address of the host that was pinged.
time number The time (in milliseconds) that the ping was sent.
ttl number The time-to-live value of the ping packet.

LighthouseClientReport Data

A Lighthouse measurement result. Simplified type definition from the original Lighthouse project.

Property Type Description
audits object
categories object
categoryGroups object (optional)
configSettings object
entities object (optional)
environment object
fetchTime string The ISO-8601 timestamp of when the results were generated.
finalDisplayedUrl string The URL displayed on the page after Lighthouse finishes.
finalUrl string (optional) For historical reasons, this will always be the same as mainDocumentUrl.
fullPageScreenshot object, or null (optional) Screenshot taken of the full page, with node rects referencing audit results. If there was an error with collection, this is null. If disabled via the disableFullPageScreenshot setting, this is undefined.
gatherMode string Gather mode used to collect artifacts for this result.
i18n object
lighthouseVersion string The version of Lighthouse with which these results were generated.
mainDocumentUrl string (optional) URL of the last document request during a Lighthouse navigation. Will be undefined in timespan/snapshot.
requestedUrl string (optional) The URL that Lighthouse initially navigated to. Will be undefined in timespan/snapshot.
runWarnings array of string List of top-level warnings for this Lighthouse run.
runtimeError RuntimeError (optional) A top-level error message that, if present, indicates a serious enough problem that this Lighthouse result may need to be discarded.
stackPacks array of object (optional) An array containing the result of all stack packs.
timing object
userAgent string The User-Agent string of the browser used run Lighthouse for these results.
RuntimeError

A top-level error message that, if present, indicates a serious enough problem that this Lighthouse result may need to be discarded.

Property Type Description
code string
message string

NetflixClientReport Data

Information gathered from the Netflix player debug window. Note that in practice some data may not be available.

Property Type Description
audioBitrate number The bitrate of the audio in kbps
audioCdn string The domain of the CDN used to deliver the audio content
audioCodec string The audio codec used by the stream in MIME format, e.g. "audio/mp4; codecs=\"mp4a.40.5\" (he-aac)"
bufferingState string The state of the player's internal buffering
bufferingVmaf number The VMAF score of the stream for buffering
corruptedFrames number The number of corrupted frames in the stream
decodedFrames number The number of decoded frames in the stream
droppedFrames number The number of dropped frames in the stream
duration number The duration of the stream in seconds
framerate number The framerate of the stream in frames per second
playerState string The state of the player
playingVmaf number The VMAF score of the stream for playing
position number The position of the player in the stream in seconds
renderingState string The state of the player's rendering
resolution string The resolution of the stream
throughput string, or number The throughput as a string formatted as "69000 kbps" or similar, or a number in kbps (legacy)
totalFrameDelay number, or null The total frame delay of the stream
videoBitrate number The bitrate of the video in kbps
videoCdn string The domain of the CDN used to deliver the video content
videoCodec string The video codec used by the stream in MIME format, e.g. "video/mp4;codecs=vp09.00.11.08.02 (vp9)"

NetworkPerformanceClientReport Data

This report contains global and domain-specific metrics based on a set of network requests and responses.

Property Type Description
domainPerformance array of NetworkPerformanceDomainMetrics The domain-specific metrics
firstRequestTime string The time of the first request in ISO 8601 format
globalMetrics NetworkPerformanceGlobalMetrics
parentDomain string The parent domain from which requests were made
totalRequests number The number of requests
NetworkPerformanceDomainMetrics

Performance metrics for a specific domain

Property Type Description
averageResponseTime number The average of the total time for each request, in seconds
contentTypeBreakdown object
domain string The domain name
performanceProfile PerformanceProfile The fastest and slowest request
totalEncodedDataLength number Total transferred size in bytes
totalRequests number The number of requests
NetworkPerformanceGlobalMetrics

The global metrics

Property Type Description
averageRequestTime number
contentTypeDistribution object
totalTransferSize number
PerformanceProfile

The fastest and slowest request

Property Type Description
fastestRequest object with properties: connectionReused, contentLength, contentType, contentTypeClassification, ... (optional) Performance entry for a single network request
slowestRequest object with properties: connectionReused, contentLength, contentType, contentTypeClassification, ... (optional) Performance entry for a single network request

OoklaSpeedtestClientReport Data

A report for Ookla Speedtest measurements made with the Ookla Speedtest CLI.

Property Type Description
download OoklaSpeedtestSingleResult A single speedtest result.
interface Interface Network interface information
isp string Internet Service Provider
packetLoss number Packet loss percentage
ping Ping Network ping information
result Result Test result information
server Server Server information
timestamp string The timestamp of the report in ISO 8601 format
type string The type of report, should be fixed to "result"
upload OoklaSpeedtestSingleResult A single speedtest result.
Interface

Network interface information

Property Type Description
externalIp string External IP address
internalIp string Internal IP address
isVpn boolean Whether using a VPN
macAddr string MAC address
name string Network name
OoklaSpeedtestSingleResult

A single speedtest result.

Property Type Description
bandwidth number The speed in bytes per second
bytes number The number of bytes transferred
elapsed number The time in milliseconds that this test took
latency Latency (optional) Latency information for this channel
Ping

Network ping information

Property Type Description
high number (optional) Upper bound latency in ms
jitter number Network jitter
latency number Network latency in ms
low number (optional) Lower bound latency in ms
Result

Test result information

Property Type Description
id string Unique ID of the results
persisted boolean Whether the result was persisted
url string A URL where to see the results
Server

Server information

Property Type Description
country string Server country
host string Server hostname
id number Server ID
ip string Server IP address
location string Server location
name string Server name
port number Server port
Latency

Latency information for this channel

Property Type Description
high number Upper bound latency in ms
iqm number Inter-Quartile Mean
jitter number Jitter
low number Lower bound latency in ms

P1203ClientReport Data

P1203ClientReport is the same as P1203InputReport, but with additional options for the programmatic calculation.

Property Type Description
I11 I11 Audio segments information
I13 I13 Video segments information
I23 I23 Stalling, seeking and pause events
IGen IGen Device and viewing conditions
O21 array of number (optional) A list of input scores to use instead of audio segments for computing final score
O22 array of number (optional) A list of input scores to use instead of video segments for computing final score
calculationSettings Partial<P1203StandaloneOptsWithoutClasses> (optional)
IGen

Device and viewing conditions

Property Type Description
device string (one of: mobile, pc) The type of device
displaySize string The display size in pixels, e.g. "1920x1080"
viewingDistance string The viewing distance in centimeters, e.g. "150cm", or viewing height, e.g. "3H"
I11

Audio segments information

Property Type Description
segments array of I11Segment
streamId string, or number (optional)
I13

Video segments information

Property Type Description
segments array of I13Segment A list of video segments
streamId string, or number (optional) Optional stream ID
I23

Stalling, seeking and pause events

Property Type Description
pauses array of [number, number] — A pause event, consisting of position (media time) and duration, in seconds (optional) A list of pause events
seeking array of [number, number] — A seeking event, consisting of position (media time) and target, in seconds (optional) A list of seeking events
stalling array of [number, number] — A stalling event, consisting of position (media time) and duration, in seconds A list of stalling events
streamId string, or number (optional)
Partial<P1203StandaloneOptsWithoutClasses>

Extra options for the calculation

Property Type Description
amendment1App2 boolean (optional) Enable the amendment 1 appendix 2 for bitstream-based/FR model O22 scores
amendment1Audiovisual boolean (optional) Enable the amendment 1 for low audiovisual quality
amendment1Stalling boolean (optional) Enable the amendment 1 for stalling
fastMode boolean (optional) Calculate the fast (but less accurate) mode
pa string (optional) The audio model to use
pq string (optional) The integration model to use
pv string (one of: P1203PvRetrained, P12043BitstreamMode0) (optional) The video model to use
verbose boolean (optional) Enable verbose logging
I11Segment
Property Type Description
bitrate number
codec string (one of: aac, aaclc, ac3, heaac, ...)
duration number
representation string (optional)
start number
I13Segment
Property Type Description
bitrate number
codec string (one of: av1, h264, hevc, vp9)
displaySize string (optional)
duration number
fps number
representation string (optional)
resolution string
start number

PerformanceClientReport Data

A report for video playback performance.

Property Type Description
audioBufferTrace array of [number, number] (optional) The video player audio buffer size. Each entry is a tuple of media timestamp and size in seconds.
bufferTrace array of [number, number] The video player buffer size. Each entry is a tuple of media timestamp and size in seconds.
droppedVideoFrames number The number of dropped video frames
latencyTrace array of [number, number] The video player latency (CDN-to-player). Each entry is a tuple of media timestamp and latency in seconds.
videoBufferTrace array of [number, number] (optional) The video player video buffer size. Each entry is a tuple of media timestamp and size in seconds.

TracerouteClientReport Data

A report for traceroute-based measurements.

Property Type Description
firstHop FirstHop (optional) The first hop
host string The host name of the target
individualHops array of IndividualHopsIndividualHop (optional) An array of individual hop results
ipAddress string The IP address of the target
lastHop LastHop (optional) The last host
maxHops number Maximum number of hops used
numHops number (optional) The final number of hops to the target
packetSize number Bytes per packet
FirstHop

The first hop

Property Type Description
asns array of number (optional) The AS numbers of the IP addresses (if AS lookup was enabled in the study)
hostnames array of string The hostname of the hop
ipAddresses array of string The IP addresses of the hop
rtts array of number The round-trip time (in milliseconds)
seq number The sequence number of the hop
IndividualHopsIndividualHop
Property Type Description
asns array of number (optional) The AS numbers of the IP addresses (if AS lookup was enabled in the study)
hostnames array of string The hostname of the hop
ipAddresses array of string The IP addresses of the hop
rtts array of number The round-trip time (in milliseconds)
seq number The sequence number of the hop
LastHop

The last host

Property Type Description
asns array of number (optional) The AS numbers of the IP addresses (if AS lookup was enabled in the study)
hostnames array of string The hostname of the hop
ipAddresses array of string The IP addresses of the hop
rtts array of number The round-trip time (in milliseconds)
seq number The sequence number of the hop

WebrtcInternalsClientReport Data

Data that can be extracted from the chrome://webrtc-internals page via download.

Property Type Description
PeerConnections object
UserAgent string
getUserMedia array

YoutubeClientReport Data

An object containing the YouTube Stats for Nerds window information.

Property Type Description
audioCodecMime string The audio codec MIME type, e.g. "opus"
audioItag number The audio itag
bufferHealth number Buffer health in seconds
colorSpace string (optional) The color space name, e.g. "bt709". Not always fetchable, e.g. in Safari.
connectionSpeed number The connection speed in kbps
contentLoudness number The content loudness
currentFps number The current fps
currentRes string The current resolution in "<width>x<height>"
framesDropped number The number of dropped frames
framesTotal number The total number of frames
mysteryText string Who knows what this might be?
networkActivity number The current network activity in KB
normalizedVolume number The normalized volume
optimalFps number The optimal fps
optimalRes string The optimal resolution in "<width>x<height>"
sCPN string The video title
timestamp string (optional) An ISO 8601 timestamp
videoCodecMime string The video codec NIME type, e.g. "av01.0.08M.08"
videoId string The video ID
videoItag number The video itag
viewport string The viewport size in "<width>x<height>"
viewportScale number The viewport scale
volume number The volume