This document consolidates all time-bound and performance-critical app requirement thresholds. These thresholds are tested during certification and monitored post-launch. For these thresholds, you should:
- Validate each threshold during your lab testing.
- Test all entry points for tile, voice, deep linking, and Continue Watching.
- Test degraded network conditions.
- Confirm telemetry for Firebolt Lifecycle, playback events, seek/pause/resume behavior, and crash/error reporting is active and stable.
Before submitting for certification, ensure your app meets all thresholds outlined below. Your app may fail certification if it does not meet these thresholds. Post‑launch breaches may result in escalation, feature restrictions or delisting.
Operational thresholds
Ongoing metrics that monitor the reliability and performance of your app, including launch times, error rates, and session quality. These thresholds are continually monitored post-launch as long as your app remains on the platform.
OR-01 Time to Minimally Useable
Measures how quickly users can start interacting with your app after launch. Cold start means the app is in the Unloaded state. Loading indicators must be shown promptly and remain active throughout the launch sequence. Apps must operate flawlessly at ≥ 2.5 Mbps, with graceful degradation below this threshold.
- Time to Minimally Useable (TTMU) is an ongoing operational metric that measures real-world customer experiences when launching an app.
- UI load from cold start is a metric that is tested as part of app certification before final release. It can be thought of as a testing proxy metric for TTMU.
| Aspect | Threshold |
|---|---|
| Time to Minimally Useable (TTMU) | P95 ≤ 10s over 24hr (min 1000 launches) |
| Splash screen appearance (Sky Glass) | ≤ 2s from cold start |
| Splash screen appearance (All other devices) | ≤ 5s from cold start |
| UI load from cold start | ≤ 10s |
| Multiroom allowance (Sky Q) | +10% load time |
| Minimum network for flawless operation | ≥ 2.5 Mbps |
OR-02 Error Free Session Rate
Tracks the percentage of app sessions that complete without any user-detectable errors, including errors that do not display a message. Sessions are tracked via Metrics.error() and monitored continuously post-launch.
| Aspect | Threshold |
|---|---|
| Error-Free Session Rate (EFSR) | > 95% over 4hr (min 1000 launches) |
OR-03 Errors Per Content Minute
Measures the total number of user-detectable errors per minute of content viewed, aggregated across all users rather than per-session. This metric identifies apps that frequently disrupt the viewing experience.
| Aspect | Threshold |
|---|---|
| Errors Per Content Minute (EPCM) | < 0.05 over 4hr (min 1000 launches) |
Functional thresholds
Core requirements for your app to function properly on all devices, covering responsiveness and resource usage.
FR-01 Response time
Ensures visible feedback appears immediately after any user input. The UI must remain responsive during navigation, trickplay, and playback state transitions—if a user presses 'play', either playback starts or a loading indicator appears within 100ms.
| Aspect | Threshold |
|---|---|
| Response from user key press | ≤ 100ms |
FR-04 Playback start
Defines how quickly content must begin playing after a user initiates playback. No black screens or freezes are permitted during playback initiation.
| Aspect | Threshold |
|---|---|
| Playback start from request | ≤ 3s |
FR-06 Memory usage
Sets memory consumption limits to ensure your app coexists with platform services. Apps exceeding 390 MB may be terminated by the platform. Animations must be disable-able per device model to help manage memory on lower-spec devices.
| Aspect | Threshold |
|---|---|
| Stable state memory | ~190 MB (≤ 220 MB acceptable) |
| Inactive state memory | < 120 MB |
FR-08 IP stack
Ensures your app and all associated services are reachable over both IPv4 and IPv6. Many devices are IPv6 only and cannot connect to services without an IPv6 address.
| Aspect | Threshold |
|---|---|
| IPv4 support | Required |
| IPv6 support | Required |
FR-09 HTTPS
Requires all app connections to use HTTPS for secure communication, including data and content delivery endpoints.
| Aspect | Threshold |
|---|---|
| Connection protocol | HTTPS |
FR-12 Screen saver
Not applicable to distribution with Sky
Requires a screen saver to activate after a period of UI inactivity to prevent screen burn-in on display panels.
| Aspect | Threshold |
|---|---|
| Screen saver deployment | ≤ 15 min of inactivity |
FR-14 Error messaging
Defines requirements for error messages displayed to users. Errors must be user-readable and localized where relevant. A complete error code list must be provided before launch.
| Aspect | Threshold |
|---|---|
| Error identification | Unique ID for each error type |
Audio/video thresholds
Minimum quality standards for delivering a consistent, high-quality audio and video experience across all supported devices and resolutions.
AV-01 Quality
Establishes minimum resolution and bitrate standards. The asset quality selected must play in the stated format (HD, UHD, HDR, etc.) and video must use adaptive bitrate (ABR) streaming.
| Aspect | Threshold |
|---|---|
| UI resolution | ≥ 1080p |
| Video resolution | ≥ 1080p with ABR |
| Audio bitrate | ≥ 96 Kbit/s |
AV-06 Extended playback
Verifies your app can sustain continuous playback over extended periods with no audio/video degradation, black screens, freezes, or UI inconsistencies.
| Aspect | Threshold |
|---|---|
| Extended playback stability | 10+ hours without issues |
Sign-in & authentication thresholds
Performance requirements for sign-in flows to ensure users can authenticate and access content quickly.
AR-03 App sign-in response
Ensures sign-in flows complete quickly regardless of authentication method. These thresholds apply whether the user subscribed via the platform or directly with the partner.
| Aspect | Threshold |
|---|---|
| Invalid credentials error display | ≤ 1s |
| PIN pair sign-in completion | ≤ 1s |
| QR code sign-in completion | ≤ 1s |
Quick Start thresholds
Lifecycle state transition requirements that enable fast app launching and seamless user experience when switching between apps.
QS-04 Inactive to foreground active (Quick Start)
Measures how quickly your app resumes from the inactive state. When entering the Inactive state, apps must stop AV playback, free unnecessary memory (e.g., buffers), reduce or stop timers and polling, minimize CPU and network usage, and close unnecessary sockets. Failure to manage lifecycle resources is treated as a performance risk.
| Transition | Threshold |
|---|---|
| Inactive → Foreground Active | UI ≤ 1s |
QS-05 Unloaded to foreground active (cold start)
Defines the maximum time for a full app launch when the app is in the Unloaded state (not already in memory). This is the baseline launch experience users encounter when the app hasn't been used recently.
| Transition | Threshold |
|---|---|
| Unloaded → Foreground Active | UI ≤ 10s |
QS-06 Foreground active to inactive
Specifies how long your app retains its state after the user dismisses it, enabling users to return where they left off. During this retention period, apps must maintain minimal resource usage while preserving state.
| Aspect | Threshold |
|---|---|
| App state retention after dismiss | 60s |
QS-08 App crash from active foreground / background
Defines how crashes must be reported to the platform lifecycle system. Apps must perform a clean lifecycle close and cold start on next launch. Missing or suppressed telemetry is treated as a platform risk.
| Aspect | Threshold |
|---|---|
| Lifecycle crash handling | Reason == "Error" |
Trickplay thresholds
Response time requirements for playback controls including play, pause, fast-forward, rewind, and scrubbing.
TP-01 Play
Defines response times for resuming playback from various states. No black screens, freezes, or UI inconsistencies are permitted during play transitions.
| Aspect | Threshold |
|---|---|
| Resume from pause | ≤ 0.5s |
| Play from content tile | ≤ 2s |
| Resume after FF/RW | ≤ 2s |
TP-02 Pause
Specifies how quickly playback must pause after user input. Pause response time is allowed to be slightly longer during active fast-forward or rewind operations.
| Aspect | Threshold |
|---|---|
| Pause while watching | ≤ 0.5s |
| Pause during FF/RW | ≤ 2s |
TP-03 Fast-forward
Defines response time and speed increments for fast-forward functionality. Trickplay must persist cleanly across content and ad boundaries without black screens or playback resets.
| Aspect | Threshold |
|---|---|
| FF initiation | ≤ 0.5s |
| FF speed increments | x2, x6, x12, x30 |
TP-04 Rewind
Defines response time and speed increments for rewind functionality. Rewind behavior must mirror fast-forward for a consistent trickplay experience, with no black screens or playback resets.
| Aspect | Threshold |
|---|---|
| RW initiation | ≤ 0.5s |
| RW speed increments | x2, x6, x12, x30 |
TP-05 Scrubbing
Specifies how quickly playback must resume at a new position after the user scrubs through the timeline. No black screens, freezes, or UI inconsistencies are permitted during or after scrubbing.
| Aspect | Threshold |
|---|---|
| Scrub to position | ≤ 2s |
Advertising thresholds
Response time requirements for ad playback controls to ensure seamless transitions between content and advertisements. Trickplay must persist cleanly across ad boundaries, with no black screens or playback resets on ad transitions.
AT-01 Fast-forward
Defines response time for fast-forward functionality during ad-supported content. Fast-forward must initiate promptly to maintain a responsive trickplay experience.
| Aspect | Threshold |
|---|---|
| FF initiation | ≤ 0.5s |
AT-02 Rewind
Defines response time for rewind functionality during ad-supported content. Rewind must initiate promptly to maintain a responsive trickplay experience.
| Aspect | Threshold |
|---|---|
| RW initiation | ≤ 2s |
Gaming thresholds
Performance and latency requirements specific to cloud gaming apps to ensure responsive and immersive gameplay.
GG-04 Cloud gaming app responsiveness
Ensures the gaming app UI remains responsive during navigation and game selection. The UI must remain responsive during all state transitions.
| Aspect | Threshold |
|---|---|
| Tile-to-tile transition | ≤ 100ms |
| Asset playback start from UI | ≤ 3s |
GG-05 Visual playback latency
Measures the end-to-end delay between controller input and on-screen visual response. Low visual latency is essential for responsive, competitive gameplay.
| Aspect | Threshold |
|---|---|
| End-to-end visual latency | < 150ms |
GG-06 Audio playback latency
Measures the delay between game events and corresponding audio output. Audio must remain synchronized with visuals to maintain gameplay immersion and provide accurate audio cues.
| Aspect | Threshold |
|---|---|
| Audio latency | < 250ms |