Skip to content

rankings

github-actions[bot] edited this page Oct 15, 2026 · 1 revision

Statistics

Use this page when you run or follow a group or channel and want facts instead of a feeling: which messages attracted attention, who answers questions, which questions still wait, and whether newcomers stay. You will learn what to ask your AI agent, which command it runs, what the answer looks like and where the numbers can mislead.

Some words on this page:

  • Saved history is the copy of messages that tg keeps on this computer. Every report counts only this copy. If the relevant messages are missing, download the history first.
  • Observed means seen in saved history. An answer, a join or a reaction that was never downloaded is not counted, so a missing value is unknown, not zero.
  • A counter is a number Telegram keeps on a message, such as views or reactions.

What you can find out

Question Command
Which messages got the most reactions tg personal stats messages top
Who answers questions most tg personal stats contacts top
Which questions wait for an answer tg personal stats messages unanswered
How quickly one person replies tg personal stats contacts responses
Whether newcomers got help tg personal stats chats newcomers
Whether newcomers stay tg personal stats chats retention
Which posts were viewed but not discussed tg personal stats messages discussion
How fresh views and reactions are tg personal stats messages counters show

The requests, names and results below are fictional examples. Replace the chat name with yours. Tables show how an agent can present its answer; commands with --json return data for it.

Messages people react to

Find the messages with the most recorded reactions.

Your request:

Show the three most-reacted-to messages in Hiking.

Command:

tg personal stats messages top --chat "Hiking" --measure reactions --limit 3 --json

Example agent answer:

Message Reactions
Packing list 18
Trip photos 11
New route 7

Your agent can open the original messages so you can check the context. Counters are cumulative totals, not reactions received only during a selected period.

Who answers questions

Compare people by their observed answers to questions.

Your request:

Who answered the most questions in Hiking? Show three people.

Command:

tg personal stats contacts top --chat "Hiking" --measure answers --limit 3 --json

Example agent answer:

Person Answers
Alex Rivera 4
Lena 2
Sam 1

Answer counts help you find examples of participation; they do not prove a person’s helpfulness.

Questions waiting for an answer

Find older questions without an observed direct answer.

Your request:

Which questions in Hiking have waited more than a day?

Command:

tg personal stats messages unanswered --chat "Hiking" --older-than 24h --json

Example agent answer:

One question has no observed answer.

From Question Waiting
Ira Who will bring the cooking pot? 2 days

History is incomplete: an answer may be missing from the archive.

Questions are detected by a question mark outside links. A direct reply from another known person qualifies; an unrelated next message does not close the question.

How quickly someone replies

See the number of answers and waiting times for a selected person.

Your request:

How quickly does Alex Rivera answer questions in Hiking? Show an example.

Command:

tg personal stats contacts responses --chat "Hiking" --answerer "Alex Rivera" --json

Example agent answer:

Metric Result
Observed answers 1
Median waiting time 2 days
p90 waiting time 2 days

Both values come from one answer, so the sample is small. I can open the question and its linked answer.

The median is the middle observed waiting time; p90 is the upper boundary for about 90% of answers. Selecting a person does not establish that they were an administrator in the past.

Help for newcomers

Check whether people who recently joined received answers to their questions.

Your request:

Did newcomers to Hiking get help during their first week?

Command:

tg personal stats chats newcomers "Hiking" --within 7d --json

Example agent answer:

Newcomer Questions Answered
Kate 2 2
Oleg 1 0

Oleg has no observed answer. One person’s joining date is unknown, so their first week was not calculated.

By default, the report selects joins from the last 30 days. First seeing someone in the archive does not establish their joining date.

Do newcomers stay?

Compare observed membership one day, one week and one month after joining.

Your request:

How many Hiking newcomers stayed after a day, a week and a month? Show gaps in the data.

Command:

tg personal stats chats retention "Hiking" --checkpoints 1d,7d,30d --within 7d --timezone UTC --json

Example agent answer:

After joining Stayed among observable members Unknown Not due yet
1 day 1 of 1 — 100% 1 1
7 days 1 of 2 — 50% 0 1
30 days No observable denominator 2 1

The denominators differ, so these percentages are not a complete retention curve. No observed message does not prove that someone was silent.

This needs known joining dates and saved member lists. Absence from a partial list remains unknown. Saved member lists of groups you run help collect data for later reports.

Posts without discussion

Find viewed posts with little recorded discussion.

Your request:

Which posts in News received views but no discussion?

Command:

tg personal stats messages discussion --chat "News" --min-views 100 --max-replies 0 --json

Example agent answer:

Post Stored views Observed replies
New route 240 0

This is an absence of discussion in available history. Missing comments could change the conclusion.

How fresh are the counts?

Check when views and reactions were observed separately.

Your request:

Check the age of Hiking’s view and reaction counts without refreshing anything.

Command:

tg personal stats messages counters show --chat "Hiking" --counters views,reactions --max-age 24h --limit 20 --json

Example agent answer:

Message field Value Observed
Views 0 1 hour ago — fresh
Reactions 0 3 days ago — stale

Fields have independent freshness. A missing value is shown as unknown, not zero.

Preview a refresh

Before fetching new counters, ask for the exact messages and limits.

tg personal stats messages counters refresh --chat "Hiking" --counters views,reactions --max-messages 20 --sync-time 30s --dry-run --json

Plan: at most 20 messages, up to 30 seconds. Views and reactions are supported. This is a preview: no connection or refresh has occurred.

A real refresh needs your request. It reads counters from Telegram and saves observations locally; it sends no messages, marks nothing read and requests no view increment. Comments can also be refreshed where Telegram supplies them.

If a name or history is unknown

When several people match, the agent shows candidates and asks you to choose. Failing to identify someone does not mean zero activity. Even an explicitly selected ID without observations remains unknown: JSON exposes identityKnown: false, status: unknown.

An empty report with incomplete history does not establish that there were no questions or answers. Ask the agent to open the source messages and show the available-history limits.

More control

You can select a period, choose a measure or combined score, and save a selection for another report. Scoring formulas, exact evidence arguments and page limits live in the shared statistics specification and the command reference for statistics.

To verify a finding, ask the agent to open the question, answer or members behind that report row. Before the next report, check archive coverage.

Clone this wiki locally