Hey Pam, Mazin's explanation is excellent and it is aligned with my view. Standard Nostr clients attempt to get follower counts directly from the relays, so they are limited by two things: 1. the relay set that the user is connected to; and 2. the max number of events that a relay will return per request.
Primal uses a caching service with aggregation capabilities, similar to nostr.band and nostrgram.co (and maybe others?). We aggregate all events from all public relays, therefore our follower count calculation is not subject to the limitation mentioned above.
You can read more about our approach here: