One of the first metrics a new customer often notices is our Apdex scoring. Response time and throughput are immediately relatable, but what is this Apdex stuff?
The essence of Apdex is in measuring customer happiness. How frequently are my customers happy with the performance of my application? How frequently are they tolerating slow performance and how often are they frustrated? These levels: satisfied, tolerating and frustrated, are derived from a performance goal that you set. To learn more, check out How Apdex Reveals User Frustration with Your Web Experience.
So what should my Apdex goal be?
Your Apdex goal represents the ideal response time for your application. When customers are using your application, they don't care what your technology stack is. They don't care what language you write code in, and they certainly don't care which database you use. What matters is perceived value per transaction. Broadly speaking, the leader board for a mobile game needs to be much faster than submitting an order for a flying car online. Ideally, your application is among the top performers in your category.
Setting Apdex too low
It can be tempting to want to put a low Apdex goal in place, and work for several releases to speed up the app to see if you can make your goal. If you found out that a competitor had really low response times, for example, it might be tempting to use Apdex as a way to benchmark against the goal of catching up. The problem with setting Apdex too low in comparison to your current average response time is that the Apdex breakdown loses a lot of value in the mean time.
Let's say, for example, your average response time was 1,000ms. If you set your Apdex goal to be 500ms (0.5s), you'll get an overwhelming majority of requests in the bottom tiers and it won't help you see performance outliers.
Setting Apdex too high
Following our earlier example, let's say we set our Apdex goal to 2.0 seconds with an average response time of 1 second. With this configuration, we would see an artificially high and consistent Apdex score. Setting Apdex too high or too low can both result in hiding your performance outliers.
The ideal Apdex score for your app is...
If you set your Apdex goal to match your average response time, you'll get a lot more value out of it. The benefit of Apdex in practice is that it highlights discrepancies in response time that are otherwise hidden by an average.
1. Set your Apdex goal near your average response time
As an example, this customer has an average response time of 140ms and has set their Apdex goal to 200ms (0.2s).
2. Focus on application performance, as indicated by customer happiness
By setting a relevant and achievable goal, this customer immediately sees fluctuations in customer satisfaction that are otherwise hard to spot. If customers experience an increasing number of slower than ideal responses, you'll see this reflected immediately in the Apdex chart, while the average response time may not change much.
3. Lower your Apdex score to your new, faster response time average
As you improve the performance of your application, lower your Apdex score so it stays relevant.
While we've heard many customer stories of how increasing application performance increases sales, we've yet to hear the opposite. Feel free to enjoy those additional profits while your customers enjoy your improved performance! It's on us!
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.