
Nine Signals That Separate Real Telegram Members From Bots
Nine checks you can run on an exported member list - ID clustering, last-seen spread, view ratio - that prove a batch is fake before you pay for the next one.
The delivery came in on time and the counter moved. Now you need to know whether you bought 5,000 people or 5,000 SIM-farm accounts registered in the same afternoon - before the balance clears, and before you place a bigger order on the strength of a number that means nothing.
Eyeballing the member list does not work. Modern fake batches have profile photos, plausible names, and a scattering of bios. What they cannot fake cheaply is distribution: real audiences are messy across every dimension at once, and manufactured ones are only messy across the dimensions someone bothered to randomise.
Get the data out first
You need a member export, not a scroll. Two ways:
Telethon or TDLib against your own admin account. GetParticipantsRequest on the group you own returns user objects with id, username, first_name, last_name, photo, status, deleted, bot, and premium. That is every field the audit below needs. You are enumerating a group you administer, so you are not fighting the visibility restrictions that apply to other people's groups.
A bot with admin rights. More limited - the Bot API gives you getChatMemberCount and per-user lookups, but no full list. Fine for spot checks, useless for distributions.
Pull the export at three points: within an hour of delivery completing, at 72 hours, and at 14 days. The deltas between those three snapshots are worth more than any single snapshot.
The nine signals
1. Account ID clustering
This is the strongest single signal and the one sellers rarely think to defend against. Telegram user IDs are broadly monotonic with registration time - an account created in 2016 has a much lower ID than one created last month. Sort your export by id and plot the gaps.
An organic audience spreads across a decade of registrations with a long tail of old accounts. A manufactured batch shows dense runs where hundreds of consecutive IDs sit within a few thousand of each other, because they were registered back-to-back on the same rack of numbers. If 40% of a delivery falls inside three narrow ID bands, you are looking at three registration sessions, not an audience.
You do not need exact date mapping. Relative clustering within the batch is enough to make the case.
2. Profile photo rate
Real Telegram populations run somewhere around 55-80% with a profile photo, varying by region. Two failure patterns give away a fake batch: a rate under 25%, which is the cheap end where nobody bothered, and a rate near 100%, which no organic population has ever produced.
Check the photos themselves on a sample of 30. Duplicates, or thirty variations of the same stock-portrait aesthetic, close the argument.
3. Username rate
Setting an @username is a deliberate act, and most people never do it. Organic groups typically land in the 25-50% range. A batch at 90%+ was provisioned by a script, because scripts set usernames to make accounts look findable. A batch at 2% is a different tell - accounts created and abandoned in the same session.
4. Last-seen distribution
The status field returns one of a handful of values: online, recently, within last week, within last month, long time ago, or hidden by privacy setting. What matters is the shape.
| Pattern | Reading |
|---|---|
| Spread across all six states, ~10-25% "recently" | Normal population |
| 80%+ "long time ago" | Dormant or dead accounts |
| 90%+ hidden by privacy | Provisioned with identical privacy defaults, all at once |
| 70%+ "online" or "recently" at the moment of delivery | Automation actively driving the accounts |
The third row catches the more careful sellers. Real users configure privacy inconsistently; a batch where nearly everyone hid last-seen was configured by one settings script.
5. Deleted-account rate over time
Telegram removes accounts that violate its terms, and it removes them in waves. Compare deleted counts across your three snapshots. A batch that goes from 0.5% deleted at delivery to 12% deleted at 14 days is being cleaned up by Telegram in front of you - the members were real accounts, but not real people, and Telegram agrees.
Anything above 5% by day 14 is a dispute-worthy number on its own.
6. View-to-member ratio
Post something and watch the counter. This measures whether the accounts are attached to humans who open the app, which is ultimately the only question.
Rough working ranges from groups we have run and audited: a healthy discussion group sees 20-40% of members view a given post within 48 hours; a well-run announcement-style group can reach higher. Below 8%, the audience is not opening the app. Below 3%, they are not attached to humans at all.
One caution: view counts on a large group are a lagging indicator and are depressed by muting, which real people do constantly. Use this signal to confirm a conclusion the other eight already support, not to reach it alone.
7. Reaction and reply behaviour
Views can be produced by automation cheaply. Reactions are harder and replies are harder still. Put a one-tap reaction poll on a post - something with no cost to answer, like a two-emoji choice - and measure participation against members.
Even a bad organic audience produces some non-zero reaction rate. A batch that returns exactly zero reactions on three consecutive posts, while showing hundreds of views, is telling you the views are synthetic.
8. Name and language composition
Count the script of each display name and the composition of the name strings. Two things to look for.
Composition mismatch: you ordered a US-sourced batch and 45% of display names are in Cyrillic or Arabic script. Neither script is disqualifying - the US has speakers of everything - but the proportions should not invert.
Generative artefacts: long runs of FirstnameNumber patterns, names built from the same 200-word dictionary, or first/last pairs that never repeat a surname across 5,000 accounts. Real populations have surname collisions. Generated ones often do not.
9. Join-time spacing
If you have the delivery log or can reconstruct joins from the group's admin action history, plot join timestamps. Organic growth is bursty and irregular - a spike when someone shares your link, then nothing for six hours. Automated adds run on a timer and produce join events at suspiciously even intervals, or in perfect blocks of a fixed batch size.
This one also protects you from a supplier who is technically delivering real members but doing it at a pace that will get your group flagged.
Worked example: auditing a 5,000-member delivery
Order: 5,000 members, US-sourced, $60 per 1,000, $300 paid on delivery with a 14-day retention clause.
| Check | Result | Verdict |
|---|---|---|
| ID clustering | 61% of accounts inside 4 narrow bands | Fail |
| Profile photo rate | 97% | Fail (too uniform) |
| Username rate | 94% | Fail |
| Last seen | 88% hidden by privacy | Fail |
| Deleted at 14 days | 9.2% (460 accounts) | Fail |
| View rate at 48h | 2.1% (105 views) | Fail |
| Reactions on 3 posts | 0 | Fail |
| Name script | 51% non-Latin on a US order | Fail |
| Join spacing | Blocks of 200, every 12 minutes | Fail |
Cost of the audit: about two hours, most of it waiting for the 14-day snapshot. What it converts is a vague complaint - "these don't seem real" - into a numbered claim with data attached. Suppliers who dispute feelings tend to settle when handed a distribution.
Run the same table against a good batch and it looks different in a specific way: not perfect on every row, but inconsistent. Photo rate 68%, username rate 34%, last-seen spread across all states, 1.1% deleted at day 14, view rate 24%. Messy, which is what real looks like.
Where this pays off before the money moves
Write the audit into the order, not into a complaint afterwards. Three clauses cover most of it: a named retention threshold at 14 days, an agreed maximum deleted-account rate, and a delivery pace cap. Suppliers who will not agree to a measurable retention floor are telling you something.
It is also the reason we quote the way we do. TeleReach fills a Telegram group from source groups you name or from our US online-shopper pool at $60 per 1,000, and the sourcing is designed to survive exactly the checks above - because a customer who audits at day 14 and reorders is worth considerably more than one who does not audit and never comes back. Ask any supplier to state their expected deleted-account rate at 14 days before you order. The number, or the refusal to give one, tells you most of what you need.
What usually goes wrong
Auditing too early. At 24 hours nothing has settled. Telegram's own removal waves have not run, mute decisions have not been made, and your view rate is inflated by novelty. Day 14 is the honest measurement point.
Using view rate as the primary test. It is the noisiest signal in the list. Muting, notification settings, and time zone all move it. Lead with ID clustering and last-seen distribution; use views to corroborate.
Sampling 20 profiles by hand and calling it an audit. Every one of the nine signals is about distribution. A hand sample of 20 out of 5,000 has no statistical power and, worse, you will unconsciously pick the ones that look odd.
Ignoring the deltas. The single most damning number in the whole exercise is the change in deleted-account rate between day 1 and day 14, and you only get it if you took the day-1 snapshot. Take it before you do anything else.
Assuming a fake batch is a scam. Sometimes the supplier bought from a wholesaler and is as surprised as you are. Leading with data rather than accusation gets refunds faster.
Next step
Export your most recent delivery now, before anything else changes, and run signals 1, 4 and 5 - ID clustering, last-seen distribution, deleted rate. Twenty minutes of work. If any of the three fails, you have enough to open a dispute today rather than after your next order compounds the problem.
Then, when you are ready to buy against a spec rather than a promise, start with a 1,000-member test order and audit it the same way. Sixty dollars is a cheap way to find out whether a supplier can survive being measured.
Need the members to go with the plan
Everything above works better with an audience already in the room. TeleReach adds members to your group from the groups your buyers already sit in, priced at $60.00 per 1,000 members, delivered gradually and tracked live while it runs. No subscription, and whatever is not delivered comes back to your wallet.


