glossary

What X Actually Counts in the Twitter Engagement Rate

Taras Shynkarenko
Taras Shynkarenko
•Updated: •7 min read
What X Actually Counts in the Twitter Engagement RateWhat X Actually Counts in the Twitter Engagement Rate

TL;DR

7 min read

X defines the Twitter engagement rate as engagements divided by impressions, and it defines an engagement as a click anywhere on the post, including detail expands, profile clicks and hashtag clicks. That makes X's own number run well above a likes, replies and reposts calculation. The API returns the engagements total only to the post's author, only for posts from the last 30 days, and X's ads help center describes its engagement rate with the fraction upside down.

How is the Twitter engagement rate calculated?

X calculates the Twitter engagement rate as engagements divided by impressions, and X's own definition of an engagement is a click anywhere on the post, not only a like, reply or repost. The formula is short:

engagement rate = engagements / impressions x 100

The wording comes from X's help article "About your activity dashboard," which defined the two terms this way:

Engagements: Total number of times a user interacted with a post. Clicks anywhere on the post, including reposts, replies, follows, likes, links, cards, hashtags, embedded media, username, profile photo, or post expansion

Engagement rate: Number of engagements divided by impressions

That article no longer exists as a page you can read. Its address, help.x.com/en/managing-your-account/using-the-post-activity-dashboard, now answers with a 301 redirect to x.com/i/account_analytics, which sends a logged-out visitor to a login screen. The Internet Archive's capture from 13 February 2026 records that redirect. The last capture with the text intact is from 2 June 2024, and it remains the most complete definition of organic engagement X has published.

What does X count as an engagement?

X counts every click on the post as an engagement, and the retired activity dashboard article listed each click type as its own metric. The list is longer than most people expect.

Metric in X's dashboardX's definition
Detail expandsClicks on the post to view more details
User profile clicksClicks on the name, @username, or profile photo of the post author
Link clicksClicks on a URL or Card in the post
Hashtag clicksClicks on hashtag(s) in the post
Embedded media clicksClicks to view a photo or video in the post
Permalink clicksClicks on the post permalink (desktop only)
FollowsTimes a user followed you directly from the post
LikesTimes a user liked the post
RepliesTimes a user replied to the post
RepostsTimes a user reposted the post
Shared via emailTimes a user emailed the post to someone
App install attempts, App opens, Leads submittedCard actions for ads and app posts

Two actions are missing from that list. Bookmarks and quote posts do not appear anywhere in X's engagement definition, even though the API reports both as public counts. X never said whether its dashboard total includes them.

Here is why the click rule matters. Take an illustrative post with 10,000 impressions, 40 likes, 5 replies, 8 reposts, 25 link clicks, 30 profile clicks and 60 detail expands.

FormulaNumeratorRate
Likes, replies and reposts only530.53%
X's definition, named metrics only1681.68%

Same post, and the X version is more than three times higher. Detail expands alone outweigh every like, reply and repost combined. LinkedIn does the same thing with clicks, and the LinkedIn engagement rate formula gets inflated in exactly this way.

A close-up of a hand tapping a smartphone screen, illustrating the click-based engagement data the X API returns to authenticated post owners.

What does the X API return for engagement?

The X API returns the engagements total only in non_public_metrics, which requires user-context authentication on a post you own, and X's metrics page states that "Non-public, organic, and promoted metrics are only available for posts created within the last 30 days."

The public fields are a different set. Anyone with an app-only bearer token can read these from public_metrics:

FieldAccessWhat it counts
impression_countPublic"Count of times the post appeared on a user's screen. Not unique"
like_countPublicLikes
reply_countPublicReplies
retweet_countPublicReposts, and X notes it "Does not include quote posts"
quote_countPublicQuote posts
bookmark_countPublic"Number of times the post has been bookmarked by users"
url_link_clicksNon-publicLink clicks, author only
user_profile_clicksNon-publicProfile clicks, author only
engagementsNon-publicX's total, author only

So nobody outside your account can compute your rate the way X does. A competitor analysis tool can only divide public counts by impression_count, which is a narrower number by design. And after 30 days, even you lose the engagements field through the API. Keep your own exports if you report on older posts. API access has its own costs, covered in the breakdown of Twitter API pricing.

X's documentation also leaves engagements undefined. The metrics page lists the field without saying what goes into it, and the illustrative response on that same page does not add up. It shows engagements at 345 alongside 234 likes, 89 link clicks and 156 profile clicks. Those three alone sum to 479. The example is sample data, but it means the docs give you no way to rebuild the total from its parts. Treat engagements as X's figure, not yours.

RedReplier
RedReplier

Get Started

Reddit, X, Bluesky & HN

Real-time intent alerts

Unlimited AI replies

Ranked by buyer intent

How to read X's engagements total
A post you own
Created within the last 30 days
User-context authentication
non_public_metrics
engagements
Miss any step and the total is out of reach.

Are impressions and views the same thing on X?

X never states whether impressions and views are one count: the API field is impression_count, the app labels the number views, and X describes it three different ways.

  • The retired dashboard article: "Times a user is served a post in timeline or search results."
  • The API metrics page: "Count of times the post appeared on a user's screen. Not unique."
  • The "About view counts" help page: "Anyone who is logged into X who views a post counts as a view," and "If you're the author, looking at your own post also counts as a view." That page adds that "Embedded posts will not add to view counts."

"Served" and "appeared on a user's screen" are not the same event, and X has never published a viewability threshold for either. The self-view rule matters for small accounts. If the view count is the impression count, an author checking a post a dozen times is a visible share of the denominator, but X does not say that it is. For the wider question of how impressions relate to people reached, see reach vs impressions.

Does X Ads use the same engagement rate?

X Ads uses a different engagement rate, and its help center describes it with the fraction inverted. The campaign dashboard help page on business.x.com reads: "Engagement rate - This is the number of impressions for your ads divided by the number of results."

Two things are off. The numerator and denominator are swapped: a campaign with 10,000 impressions and 50 results would get an "engagement rate" of 200 by that wording. And the ads version divides by "results," which X defines on the same page as "the actions that are directly tied to your campaign objective(s)," such as link clicks for a website traffic campaign. That is a results rate, not the organic engagement rate. Read the dashboard number, not the help text.

In its answer on why reported conversions change, the ads help center also says "X reporting is finalized within 24-48 hours of when impressions are served." A number pulled the morning after a campaign day is still an estimate.

Organic rate and ads rate
Organic engagement rate
  • Engagements divided by impressions
  • Engagements are clicks anywhere on the post
X Ads help text
  • Impressions divided by results, the fraction upside down
  • Results are actions tied to the campaign objective
  • Finalized within 24-48 hours of impressions being served
Read the dashboard number, not the help text.

A marketing analyst reviewing performance charts on a laptop, reflecting the practice of comparing a post's engagement rate against its own past results rather than a vendor benchmark.

What is a good Twitter engagement rate?

X publishes no benchmark for the Twitter engagement rate in its help center, business help center or developer documentation. Every "average engagement rate on X" figure comes from a vendor study, and vendors outside your account cannot see detail expands or profile clicks, so their averages use a narrower numerator than X's own dashboard.

That makes comparing your native X number against a vendor benchmark a category error. Your dashboard counts clicks the benchmark could not see. Compare your posts against your own history, on one formula, and write the formula next to the number. The general case for doing that is laid out in the guide to engagement rate formulas.

Frequently asked questions

What is the Twitter engagement rate formula?

The Twitter engagement rate formula X uses is engagements divided by impressions, multiplied by 100 for a percentage. X defines engagements as clicks anywhere on the post, including detail expands, profile clicks, link clicks and hashtag clicks, alongside likes, replies, reposts and follows.

Do bookmarks count toward engagement rate on X?

X's published engagement definition does not name bookmarks, and X has not said whether its dashboard total includes them. The API exposes bookmark_count as a public metric, so any rate that adds bookmarks is a formula you chose, and it should say so.

Can I calculate a competitor's engagement rate on X?

You can calculate a public-metrics rate for a competitor's post by dividing likes, replies, reposts, quotes and bookmarks by impression_count. You cannot reproduce X's own rate, because engagements, link clicks and profile clicks are non-public metrics that only the post's author can read.

Why is my engagement rate on X higher than in my social media tool?

X's native rate counts clicks, detail expands and profile clicks that many third-party tools leave out or cannot read. A tool using likes, replies and reposts over impressions produces a lower number from the same post, so the gap is a formula difference, not a data error.

Does viewing my own post lower my engagement rate?

Viewing your own post adds to its view count, according to X's "About view counts" help page. X does not say whether views and impressions are one count, so it does not say whether a self-view lands in the engagement rate's denominator. If it does, an author refreshing a post with a few hundred views lowers the rate by a visible amount.

How long can I pull engagement data from the X API?

The X API returns non-public metrics, including engagements, url_link_clicks and user_profile_clicks, only for posts created within the last 30 days. Public metrics such as impression_count and like_count stay available after that.

Do clicks count as engagement on X?

Yes. X's definition counts clicks anywhere on the post, including detail expands, profile clicks, link clicks, hashtag clicks and embedded media clicks. Likes, replies, reposts and follows count too. That is why X's own rate runs higher than a likes, replies and reposts calculation.

RedReplier
RedReplier

Get Started

Reddit, X, Bluesky & HN

Real-time intent alerts

Unlimited AI replies

Ranked by buyer intent

Are impressions and views the same thing on X?

X never states whether they are one count. The API field is impression_count, the app labels the number views, and X describes it as "served" in one place and "appeared on a user's screen" in another. Write down which label your source used before you compare numbers.

Is the engagement rate in X Ads the same as the organic rate?

No. The organic rate is engagements divided by impressions. The ads help center describes its rate as impressions divided by results, which is inverted, and results are the actions tied to your campaign objective. Read the dashboard number, not the help text.

What is a good engagement rate on X?

X publishes no benchmark in its help center, business help center or developer documentation. Vendor averages use a narrower numerator, because vendors cannot see detail expands or profile clicks. Compare your posts against your own history on one formula, and write the formula next to the number.

See us more often in Google

One click marks RedReplier as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.

Before you go...

RedReplier

RedReplier

Catch every buyer asking for what you sell

RedReplier watches Reddit, X, Bluesky and Hacker News in real time, ranks every thread by buyer intent, and drafts your reply, so you get there first.

Reddit, X, Bluesky & HN

Real-time intent alerts

Unlimited AI replies

Ranked by buyer intent

Related Articles