App apdex is an overall score that reflects the quality of your user experience. Apdex score ranges between 0 and 1. The higher the value, the closer you are to satisfying user experience:
- Apdex score ≥ 0.94 equates to Excellent performance.
- Apdex score ≥ 0.85 and < 0.94 equates to Good performance.
- Apdex score ≥ 0.7 and < 0.85 equates to Fair performance.
- Apdex score ≥ 0.5 and < 0.7 equates to Poor performance.
- Apdex score < 0.5 is considered Unacceptable.
To calculate the app apdex score, Instabug buckets all user sessions into four categories:
- Crashing sessions
- Frustrating sessions
- Tolerable sessions
- Satisfying sessions
The overall app apdex is calculated as follow:
Total = Satisfying sessions + Tolerable sessions + Frustrating sessions + Crashing sessions
Apdex score = (Satisfying sessions + 0.5 * Tolerable sessions) / Total
A session starts when the user launches the app or brings it to the foreground. It ends when the user moves the app to the background, or when the app exits. App exit can be triggered by the user through killing the app or by the OS when the app crashes.
Any session that ends with a fatal crash or OOM is flagged as a crashing session. Any session that is affected by an ANR or App hang is flagged as a frustrating session. Otherwise, a bucket is defined based on all the other metrics and occurrences (app launch, app traces, network, and UI hangs) that happened within the session.
Let's take an example. During the same session, 5 network calls, 3 screen visits, and 2 app traces occurred. And based on the set target of each, they got flagged as follows:
- 2 network calls were frustrating
- 2 network calls were tolerable
- 1 network call was satisfying
- 3 screen visits were frustrating
- 2 app traces were satisfying
Based on the previous breakdown:
Frustrating count = 2 + 3 = 5
Tolerable count = 2
Satisfying count = 1 + 2 = 3
Total = 10
Next, we calculate:
Frustrating% = 5 / 10 = 50%
Tolerable% = 2 / 10 = 20%
Satisfying% = 3 / 10 = 30%
Based on the different percentages:
- Frustrating session if frustrating% ≥ 30%
- Otherwise, it is a satisfying session if satisfying% ≥ 50%
- Otherwise, it is a tolerable session
Yes, within a session a lot of captured metrics and occurrences may not be affecting your end-user experience. For example, if you are performing network calls to send usage data for analysis purposes, this isn't affecting your user experience. We recommend excluding them from your app's overall apdex.
By default, app launch, all app traces, network URL patterns, and UI traces are marked as key metrics and included in your app apdex. You can exclude any of them from the list or details page as highlighted in the screenshots below.
Updating your key metrics doesn't affect the already calculated app apdex and will be applied moving forward.
Updated about 2 months ago