Performance Improvements on the Contacts Page | List View

TL;DR The List View of the Contacts Page is now much faster.


We have been working on improving the performance of the CHT. Previously, we worked on the Detail View of the Contacts Page. To quantify these improvements, we’ve been running simulated user behavior on physical devices and evaluating apdex scores. To see more about how we tested these, see this post.

Area of Focus

We worked on speeding up the List View of the Contacts Page. This is the first thing users see when they tap on the tab, and it is probably the most visited screen in the app.


Significant gains were achieved. The baseline score was 0.68 (Poor) and the score with the updates was 0.91 (Good). This page implements lazy loading, where only a subset of rows initially, and loads more rows as the user scrolls through the list. CHWs are normally seeing a list of households on this screen. Their phones typically show between 8 and 12 households within the frame of the screen and they typically have fewer than 150 households total in the list. The improvement was achieved by reducing the number of households loaded during the initial and subsequent loads from 50 down to 25.

Apdex scoring

Snapshot Satisfied Tolerable Frustrated Total Apdex Score Level
Baseline 22 37 1 60 0.68 (:heavy_multiplication_x:) Poor
After 50 9 1 60 0.91 (★) Good


The changes are expected to be included in 4.8.0 . The only thing you need to do to take advantage of this massive performance gain is to upgrade to this version.