A collected list is always smaller than it appears. Some people you never see at all; others you see but cannot write to. This is how the platform is built, not a fault in the tool, and the plan should account for it from the start.
Who is invisible
Anyone who restricted who can see them in member lists. They are in the group, they read it, and they do not appear in an export.
Who is visible but unreachable
- No username. The most common case. A conversation cannot be opened from your side without one — users without a username.
- Messages from non-contacts disabled. The username exists, the message simply never arrives, and you get no error.
- Deleted accounts. Still listed, gone in practice.
- Bots. Technically messageable, pointless.
The silent failure
The awkward part is that a blocked message looks exactly like an ignored one. Nothing tells you which happened, so a campaign against a list full of unreachable entries reads as poor copy rather than as a bad list.
The way to separate them is to clean first and measure after — cleaning a database.
How to plan
Never plan against the raw number. Collect one representative group, clean it, and use the surviving proportion for everything else — that ratio is specific to your audience and cannot be looked up: how many members you can export.
What works instead
People who cannot be reached privately can be reached where they already are: in the chat, under the post. Slower, and independent of anybody's privacy settings — marketing through chats.
How Neurogram does this
Everything above is manual work that runs into the number of hours in a day. Neurogram does it on your own accounts and without you: it collects channels and audiences, writes comments and replies with a language model, and keeps limits and quiet hours so the accounts survive. See pricing or look at your case.