HomeDocumentationAPI Reference
Getting StartedAPI ReferenceBug ReportingCrash ReportingAPMHelp Center

App Apdex for React Native

This page covers app apdex score on React Native.

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.

Your performance homepage showing your app's overall apdex.

How Is the App Apdex Calculated?

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

What Is the Session Definition?

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.

How Does Sessions Bucketing Work?

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

Can You Exclude Some Metrics From the App Apdex?

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.


Click on the highlighted action in the list to decide whether a metric is a key metric and affects your app's overall apdex.


Or, you can control it from the corresponding details page.


Updating your key metrics doesn't affect the already calculated app apdex and will be applied moving forward.