---
title: Apdex: Measure user satisfaction
source: https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/apdex-measure-user-satisfaction
---

[Apdex](https://www.apdex.org/) is an industry standard to measure users' satisfaction with the response time of web applications and services. It's a simplified Service Level Agreement (SLA) solution that helps you see how satisfied users are with your app through metrics such as Apdex score and dissatisfaction percentage instead of easily skewed traditional metrics such as average response time.

Setting useful thresholds for your Apdex levels help you:

-   See at a glance your end users' overall satisfaction with your app.
-   Get the right amount of traces to troubleshoot and improve app performance.

-   [Go agent](https://one.newrelic.com/nr1-core?state=985d4005-ba90-a8c7-1da1-2af34539b03b)

-   [Java agent](https://one.newrelic.com/nr1-core?state=80d18bcb-4919-1fcb-2b77-9406838eb916)

-   [.NET agent](https://one.newrelic.com/nr1-core?state=30e93090-6dfa-6b70-8e75-472f54414355)

-   [Node.js agent](https://one.newrelic.com/marketplace/install-data-source?state=be2e62fa-cc3b-c428-27c4-8d662c9e80a1)

-   [PHP agent](https://one.newrelic.com/nr1-core?state=aa633b41-72d4-009c-3abf-55dcf64894fe)

-   [Python agent](https://one.newrelic.com/nr1-core?state=20fda75b-58fb-a92a-f9e1-7b052035c6e8)

-   [Ruby agent](https://one.newrelic.com/nr1-core?state=d69143ab-605c-579b-25bf-cc6e5fee5b80)

To learn more, watch this short YouTube video (approx. 3:50 minutes).

[Video](https://www.youtube.com/embed/VqOLmXxpkTw)

## 

## How to use Apdex [#what-is]

The Apdex score is a ratio value of the number of satisfied and tolerating requests to the total requests made. Each satisfied request counts as one request, while each tolerating request counts as half a satisfied request.

An Apdex score varies from 0 to 1, with 0 as the worst possible score (100% of response times were Frustrated), and 1 as the best possible score (100% of response times were Satisfied).

**Example Apdex score:**

During a 2 minute period a host handles 200 requests. The Apdex threshold T = 0.5 seconds (500ms). This value is arbitrary and is selected by the user.

-   170 of the requests were handled within 500ms, so they are classified as Satisfied.
-   20 of the requests were handled between 500ms and 2 seconds (2000 ms), so they are classified as Tolerating.
-   The remaining 10 were not handled properly or took longer than 2 seconds, so they are classified as Frustrated.

The resulting Apdex score is 0.9: `(170 + (20/2))/200 = 0.9`.

> #### ⚠️ IMPORTANT
>
> The formula used for calculating the Apdex score is designed for high-throughput apps. If your app's throughput is less than 100 RPM, not enough data is collected to determine a stable score. The instability may result in Apdex alert conditions behaving unexpectedly.

## Apdex counts

Apdex tracks three response counts:

-   **Satisfied:** The response time is less than or equal to T.
-   **Tolerating:** The response time is greater than T and less than or equal to 4T. In this example, 4 x 1.2 = 4.8 seconds is the maximum tolerable response time.
-   **Frustrated:** The response time is greater than 4T or the request returns a server-side error. A [high error rate](https://docs.newrelic.com/docs/apm/applications-menu/error-analytics/introduction-error-analytics) can cause you to have a satisfying average response time, yet a poor Apdex score.

Your configuration file's `apdex_f` value is four times your app server's Apdex T value. This threshold is useful, for example, with [transaction traces](https://docs.newrelic.com/docs/traces/configuring-transaction-traces). For more information, see the [configuration file documentation](https://docs.newrelic.com/docs/agents/manage-apm-agents/configuration/configure-agent) for your New Relic agent.

The time calculation will change based on your own app's T setting. In the following example, T = 1.2 seconds.

| **Level**  | **Multiplier** | **Time (T Example = 1.2)**  |
| ---------- | -------------- | --------------------------- |
| Satisfied  | T or less      | &lt;= 1.2 seconds           |
| Tolerated  | >T, &lt;= 4T   | Between 1.2 and 4.8 seconds |
| Frustrated | > 4T           | Greater than 4.8 seconds    |

After you define your Apdex levels, use any of New Relic's [resources to help identify and troubleshoot changes](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/view-your-apdex-score) that indicate poor customer experiences with your app.

You can define multiple Apdex T values for each of these:

| Apdex measurements | Comments                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| APM apps           | APM monitors the performance of these apps. To [define their Apdex settings](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/change-your-apdex-settings), use the APM UI. You can find **Apdex** on the [APM Summary](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/apm-overview-page) page.                                                                                                                                                                                                                                                                                                 |
| Browser apps       | Browser monitors the end-user experience for these apps. Instead of using Apdex to monitor your users, we recommend [core web vitals](https://docs.newrelic.com/docs/journey-performance/guide-to-monitoring-core-web-vitals).                                                                                                                                                                                                                                                                                                                                                                                        |
| Key transactions   | These are [transactions important to your business](https://docs.newrelic.com/docs/apm/transactions/key-transactions/introduction-key-transactions) that you choose to monitor. You can [define Apdex settings for key transactions](https://docs.newrelic.com/docs/apm/transactions/key-transactions/create-update-key-transactions) on the **Key transactions** page. > #### ⚠️ IMPORTANT > > The key transaction Apdex setting overrides the T value of that app. For details, see [Key transaction Apdex](https://docs.newrelic.com/docs/apm/transactions/key-transactions/create-update-key-transactions#apdex). |

## Apdex alerting [#apdex-alerts]

You can also [configure alert conditions](https://docs.newrelic.com/docs/alerts/create-alert/create-alert-condition/alert-conditions) for Apdex. When the Apdex score passes the [threshold](https://docs.newrelic.com/docs/alerts/new-relic-alerts/configuring-alert-policies/define-thresholds-trigger-alert) you define, New Relic sends an alert to the notification mechanism (channel).

## Errors pages [#error]

Any request that returns a server-side error such as `500: Application Error` is a frustrating response, regardless of its return speed. You can use Apdex to visualize the impact of these errors, and then identify and resolve these errors with New Relic's built-in [error analytics](https://docs.newrelic.com/docs/apm/applications-menu/error-analytics/introduction-error-analytics) and [error profile](https://docs.newrelic.com/docs/apm/applications-menu/error-analytics/apm-error-profiles-troubleshoot-trends) tools.

## Dissatisfaction percentage [#dissatisfaction]

The **dissatisfaction percentage** is the percentage of the total dissatisfaction experienced by the app's users that is contributed by a transaction.

**Example Apdex dissatisfaction calculation:**

Frustrations(Transaction) + Tolerations(Transaction)/2

Frustrations(App) + Tolerations(App)/2

To [visualize dissatisfaction percentage](https://docs.newrelic.com/docs/apm/new-relic-apm/apdex/view-your-apdex-score#apdex-dissat), you can sort your transactions by most dissatisfying.

If a transaction is always frustratingly slow but rarely visited, it will not contribute much to the app's total dissatisfaction. Conversely, if a transaction is normally fast, but has high throughput, this may contribute a large proportion of the app's dissatisfaction simply because it contributes a large proportion of your app's traffic.

## Customize Apdex visualizations  [#insights]

Use the query builder to customize how you visualize Apdex:

-   [Create dashboards](https://docs.newrelic.com/docs/query-your-data/explore-query-data/query-builder/introduction-query-builder) to analyze and share your Apdex data.
-   [Analyze your Apdex data](https://docs.newrelic.com/docs/insights/new-relic-insights/using-new-relic-query-language/nrql-reference#func-apdex) with NRQL queries.

## Change Apdex settings

You can define Apdex T values for each application. You can also define individual Apdex T thresholds for [key transactions](https://docs.newrelic.com/docs/apm/transactions/key-transactions/introduction-key-transactions).

For a quick overview of why Apdex measurements matter, and how to know what threshold is right for your application, watch this short YouTube video (approx. 3:40 minutes).

[Video](https://www.youtube.com/embed/RoLIBfEpYZg)

**Change APM Apdex settings**

You can only change Apdex thresholds for apps that are actively reporting data. For example, if one of your apps is not reporting, you won't see its Apdex setting options.

The default Apdex T threshold for an application server is 0.5 seconds. To change the default application server threshold for web transactions:

1.  Go to **[one.newrelic.com > All capabilities](https://one.newrelic.com/all-capabilities) > (select an app) > Settings > Application > Application settings**.
2.  From the **Application server** section, set the **Apdex T** value (in seconds) for this application.
3.  Select **Save application settings**.

    After you change Apdex settings, a black vertical bar appears in the main chart on the [APM **Summary** page](https://docs.newrelic.com/docs/apm/applications-menu/monitoring/apm-overview-page).
