Free · no login · formula shown
Twitter engagement rate calculator: by followers and by views
Enter an X username and get the account's engagement rate two ways: against its follower count and against the views its posts got. The result is worked out from the account's recent original posts, and the arithmetic is written out under each figure so you can check it.
How the engagement rate is calculated
- The sample. The tool takes the account's most recent page of posts, which is up to 20, and keeps original posts only. Replies and reposts are dropped, so the number of posts analysed is usually 5 to 20. The result card says how many were used.
- The averages. For those posts it averages four public counts: likes, reposts, replies and quotes. It also averages views.
- Engagement rate by followers. Average (likes + reposts + replies + quotes) per post ÷ followers × 100.
- Engagement rate by views. The same numerator ÷ average views × 100.
You can type a username as NASA, @NASA or paste the profile link. If a number needed for one of the rates is missing, that figure shows as n/a and the card names the missing input.
Two formulas, two very different numbers
Both rates share the same numerator. The only difference is the denominator, and that is enough to put them far apart for a large account. When we ran the tool on @NASA it analysed 12 posts with an average of 4,613 likes and returned 0.006% by followers and 0.284% by views. Neither number is wrong. They answer different questions. Those figures are one sample and will be different when you run it.
| Rate | Formula | What it tells you | Keep in mind |
|---|---|---|---|
| By followers | (likes + reposts + replies + quotes) per post ÷ followers × 100 | Out of everyone who follows the account, how many interactions an average post gets. | The follower count includes people who never saw the post, so large accounts get very small numbers. |
| By views | (likes + reposts + replies + quotes) per post ÷ views per post × 100 | Out of the times a post was shown, how often it got an interaction. | Views include people who do not follow the account. It says nothing about audience size. |
Large accounts have low by-follower rates, and that is normal. It is the reason a rate quoted without its formula is hard to use: ask which denominator it was divided by before comparing it with anything.
Calculate the engagement rate of one post by hand
If you already have the numbers for a single post, type them in. Both rates update as you type. Views are optional; leave them empty and only the by-followers rate is shown.
By followers
n/a
Enter at least one of likes, reposts, replies or quotes.
By views
n/a
Enter at least one of likes, reposts, replies or quotes.
The numbers you type stay in your browser; the sum runs on this page.
A worked example with made-up numbers: a post with 120 likes, 30 reposts, 15 replies and 5 quotes has 170 interactions. On an account with 20,000 followers that is 170 ÷ 20,000 × 100 = 0.85%. If the post was viewed 8,500 times, the rate by views is 170 ÷ 8,500 × 100 = 2%.
What this number can and cannot tell you
- It is a small sample. One page of recent original posts is at most 20 posts. A single viral post lifts the average for as long as it stays in the sample, and a quiet week lowers it. Recheck over time and look at the trend, not at one reading.
- Replies and reposts are excluded. The account's replies to other people and its reposts of other people's posts are not counted as its posts. An account that mostly replies will have few posts in the sample, or none.
- Only public counts are used. X's own analytics defines engagement more broadly for the account owner, with numbers such as link clicks and profile visits. Those owner-only numbers are not public and are not included here, so the rate on this page will not match the one an owner sees in their analytics.
- It is an outside measurement. The figures come from the counts shown on the posts at the moment of the check. This is not a score issued by X.
- Protected accounts cannot be measured. Their posts and counts are not public.
Limits: 20 free checks a day per visitor without signing in, more with a free Google sign-in. Results for the same account are reused for up to 15 minutes.
Tracking engagement for many accounts?
The tool checks one account at a time. To run the same calculation on a list, or on a schedule, it is two API calls per account. /twitter/user/info returns the follower count in data.followers, and /twitter/user/last_tweets returns the recent posts in data.tweets. Drop the items where isReply is true or retweeted_tweet is set, average the four counts, and divide.
import requests
HEADERS = {"X-API-Key": "YOUR_API_KEY"}
BASE = "https://api.twitterapi.io/twitter"
def engagement(username: str) -> dict | None:
info = requests.get(f"{BASE}/user/info", headers=HEADERS,
params={"userName": username}, timeout=20).json()
user = info.get("data") or {}
if info.get("status") != "success" or user.get("unavailable"):
return None # not found, or suspended
followers = user.get("followers") or 0
page = requests.get(f"{BASE}/user/last_tweets", headers=HEADERS,
params={"userName": username}, timeout=30).json()
tweets = (page.get("data") or {}).get("tweets") or []
# Original posts only: drop replies and reposts.
posts = [t for t in tweets
if not t.get("isReply") and not t.get("retweeted_tweet")]
if not posts:
return None
def avg(key: str) -> float:
return sum(t.get(key) or 0 for t in posts) / len(posts)
interactions = (avg("likeCount") + avg("retweetCount")
+ avg("replyCount") + avg("quoteCount"))
views = avg("viewCount")
return {
"posts_analyzed": len(posts),
"by_followers_pct": interactions / followers * 100 if followers else None,
"by_views_pct": interactions / views * 100 if views else None,
}
print(engagement("NASA"))Cost: the profile call is 18 credits ($0.00018) and the posts call is 15 credits ($0.00015) per post returned, so one account with a full page of 20 posts comes to 318 credits, about $0.0032. $1 is 100,000 credits. See pricing.
Get a free API key →Questions
How to calculate Twitter engagement rate?
Add up a post's likes, reposts, replies and quotes, divide by the account's follower count and multiply by 100. That is the rate by followers. Divide the same sum by the post's views instead and you get the rate by views. For an account, average each count over several posts first. This tool does that over the original posts in the account's most recent page of posts.
What counts as engagement on Twitter?
This calculator counts the four interactions anyone can see on a post: likes, reposts, replies and quotes. Bookmarks are not in the formula. X's own analytics shows the account owner a broader set of numbers, such as link clicks and profile visits. Those are visible only to the owner, they are not public, and they are not included here.
Is 2.5% engagement rate good?
There is no official benchmark from X, so there is no fixed answer. The rate depends heavily on the size of the account and on which formula produced the number: the same posts give a much higher rate by views than by followers. Compare an account with itself over time, or with accounts of a similar size, and always say which formula a quoted rate uses.
Why is the rate by views so different from the rate by followers?
The top of the fraction is the same in both; only the bottom changes. Followers is the size of the whole audience, whether or not they saw the post. Views counts how often the post was actually shown, to followers or anyone else. For a large account the follower count is usually far bigger than the views of a single post, so the rate by followers comes out much smaller.
Why did the result change when I checked again?
The sample is one page of recent posts: up to 20, of which only the original posts are kept, so usually 5 to 20. When the account posts again the sample shifts, and the counts on existing posts keep growing. A single viral post can move the average a lot. Results for the same account are reused for up to 15 minutes, so a recheck inside that window returns the same numbers.
Is the calculator free? What do you store?
Yes, 20 checks a day per visitor without signing in, more with a free Google sign-in. We log each check (time, the username checked, result) to prevent abuse; we don't sell or publish them. The manual calculator runs in your browser and needs no check at all.