A frequent question about using CommCare is "how many cases is too many cases?"
There are lot of dimensions to this question, and this page is intended to help you think through them.
Reasonable Case Loads
The acceptable case load varies depending upon several factors:
- how big the case is
- the device/phone
- the complexity of what you are doing in your app
- how long your users can wait for a case list load or for a sync
In general, for a single case type, we find the following case loads to be technically feasible:
- CommCare for Android: 1000
- CommCare for Feature Phones: 200
However it is important to test a realistic load of cases on your phone if you will be approaching these numbers. A rough rule of thumb for an "average" case is that every 25 cases or so will add an additional second to the sync process.
Furthermore, just because it is technically possible to have 1000 cases on your phone may not mean it is operationally feasible - for example, if you are using case sharing and need to frequently sync data it may take close to a minute each time, which may not be acceptable in some workflows.
Closed cases are not synced to the phone and do not count against these numbers.
Slow loading of the Case List
Slow Sync with Server
The sync time with the server is affected by the total number of cases on the phone. The first sync may time out; subsequent syncs should succeed. To understand what's happening, the server is calculating what needs to be sent to the phone during the first sync request and will cache it for subsequent requests even if the first sync times out. There's ongoing work to improve this experience.