---
title: "Engagement Rate on X: Formula, Steps and Examples"
description: "Work out engagement rate on X with one formula, a worked example and the choices that change the answer: impressions or followers, and which clicks to count."
url: https://kairopost.com/blog/x-engagement-rate
---

# How to calculate engagement rate on X

By Sami Kerr

Published

8 November 2026

11 min read

(Analytics. How to calculate engagement rate on X. A fraction, engagements over impressions equals 3%, sits above a grid of 100 dots. Three of the dots are lit in amber.)

## The short answer

To calculate engagement rate on X, divide a post's engagements by its impressions and multiply by 100, the same two numbers X's own definition uses. Dividing by followers gives a different rate, so choose one formula and keep it.

## Key takeaways

- Engagement rate on X is engagements divided by impressions, times 100.
- X's engagements total includes clicks nobody else can see, so it is bigger than the likes, replies and reposts under a post.
- Impressions are not unique: one person seeing a post twice counts as two impressions.
- Rate by impressions judges a post. Rate by followers only compares accounts when impressions are missing.
- Write the formula and the engagement types next to every figure, and compare new posts with the median of your own recent posts.

## How to calculate engagement rate on X

1. Open the post's analytics: Find the post and note its impressions. You need impressions and either X's engagements total or the separate counts.
2. Decide which engagements count: Use X's engagements total, or add the counts you choose yourself. Write the choice down.
3. Add up the engagements: If you chose the counts, add them. If you chose X's total, take it as it shows.
4. Divide by impressions and multiply by 100: Engagements divided by impressions, times 100, gives the rate by impressions.
5. Label the result: Write the formula and the engagement types next to the number so it can be read later.
6. Repeat for your recent posts: Do the same for your last 20 to 30 posts, then take the median as your baseline.

### Contents14 sections

You posted something that seems to have done well, and now someone wants the engagement rate on X. You open the post's analytics and find impressions, likes, replies and a total called engagements, but no rate you can copy into a report. Many views and few reactions? See why X posts get impressions but no engagement.

The calculation is one division. What takes care is deciding what goes into each number, and writing that choice down so next month's figure means the same thing as this month's. This guide gives you the formula, X's own definitions, a worked example with made up numbers and the decisions that change the answer.

## What is the formula for engagement rate on X

Engagement rate on X is a post's engagements divided by its impressions, multiplied by 100. X's own definition of engagement rate is the number of engagements divided by the number of impressions, so with X's engagements total this is the figure X itself shows.

Definition

Engagement rate

The share of impressions that led to an engagement, written as a percentage. Engagements divided by impressions, times 100.

```
`engagement rate = engagements ÷ impressions × 100`
```

Take a plain case. A post with 40 engagements and 1,000 impressions has a rate of 40 ÷ 1,000 × 100, which is 4%.

Everything else in this guide is about the two inputs. What you count as an engagement, and what you divide by, can move one post's rate several times over, as the worked example below shows.

## What X counts as an engagement and as an impression

X defines an engagement as the total number of times someone interacted with a post. That includes clicks anywhere on the post, plus reposts, replies, follows and likes. Impressions are simpler to state and easier to misread.

Definition

Engagements

Every interaction with a post, as X counts them: clicks anywhere on the post, reposts, replies, follows and likes. Some of these, such as clicks, are only visible to you.

Definition

Impressions

The number of times the post appeared on a user's screen. Not unique: the same user viewing a post twice counts as two impressions.

That second definition matters more than it looks. Impressions count views, not people, so a rate by impressions asks one question: each time the post was shown, how often did something happen?

Impressions count views, not peopleThree people open X over the day and the post is shown six times, so the impression counter reads 6 while the people count stays at 3. Made up numbers.

Some of what X counts, anyone can see. The rest only shows up in your own analytics. X's developer docs split the two like this.

| Counts anyone can see | Counts only you can see |
| --- | --- |
| Likes | Link clicks |
| Replies | Profile clicks |
| Reposts and quotes | Video playback milestones |
| Bookmarks and impressions | X's own engagements total |

So X's total is bigger than the likes, replies and reposts under a post. A rate you build from the visible counts alone will usually come out lower than the rate in your analytics.

What we could not confirm

The definition we found names clicks, reposts, replies, follows and likes. It does not name bookmarks or quotes, so we cannot say X's total includes them. Treat both as your own choice and say which you used.

## How to calculate engagement rate on X, step by step

Six steps cover one post and then your whole account. Do them in order the first time, and the routine takes a minute per post after that.

X's own [Post Activity Dashboard](https://kairopost.com/blog/x-analytics) shows impressions, engagements and the engagement rate for each post, so you can check your sums against it.

1. Open the post's analytics: Find the post and note its impressions. You need those, and either X's engagements total or the separate counts under the post.
2. Decide which engagements count: Use X's engagements total, or add the counts you choose yourself, such as likes, replies, reposts and quotes. Write the choice down before you look at the result.
3. Add up the engagements: If you chose the counts, add them. If you chose X's total, take it as it shows.
4. Divide by impressions and multiply by 100: Engagements divided by impressions, times 100. In a spreadsheet with impressions in column B and engagements in column C, the rate is `=C2/B2` formatted as a percentage.
5. Label the result: Write "rate by impressions, likes, replies, reposts and quotes" next to the figure. A bare percentage cannot be compared with anything later.
6. Repeat for your recent posts: Do the same for your last 20 to 30 posts and take the median. That is your baseline, and the last section shows how.

## A worked example with made up numbers

These figures are made up. They are the starting values in our [engagement rate calculator](https://kairopost.com/tools/engagement-rate-calculator), so you can type them in and watch it agree with the sums below.

A post gets 84 likes, 12 replies, 9 reposts, 3 quotes and 21 bookmarks. It also gets 30 link clicks and 14 profile visits, which only you can see. It had 5,420 impressions, and the account had 2,150 followers.

(One post, one rate. Anyone can see: Likes 84, Replies 12, Reposts 9, Quotes 3, Bookmarks 21. Only you can see: Link clicks 30, Profile visits 14. Together: 173 engagements, over 5,420 impressions, times 100, equals 3.19%. Example numbers, made up.)

Seven kinds of engagement add up to 173. Divided by 5,420 impressions, the rate is 3.19%. Example numbers.

Now see how much the choice of engagements changes the answer for this one post.

| What you count | Engagements | Rate by impressions |
| --- | --- | --- |
| Likes, replies, reposts and quotes | 108 | 1.99% |
| Add bookmarks | 129 | 2.38% |
| Add link clicks and profile visits | 173 | 3.19% |
| X's own total, if it showed 210 | 210 | 3.87% |

Same post, same day, and the rate runs from 1.99% to 3.87%. None of those is wrong. Mixing them inside one report is.

### The maths and the rounding

173 ÷ 5,420 = 0.031919, and times 100 that is 3.1919, which we write as 3.19%. Round only at the end, never between steps.

Going from 2.38% to 3.19% is a rise of 0.81 percentage points. Measured against 2.38% it is a rise of about 34%. Say which one you mean, because they sound alike and are very different numbers.

## Engagement rate by impressions or by followers

Use impressions to judge a post and followers only when you do not have impressions. Divide the same 173 engagements by the 2,150 followers and you get 8.05% instead of 3.19%.

The same 173 engagements, two denominatorsOne pile of 173 engagements laid on two bars drawn to the same scale. Against 5,420 impressions it is 3.19%. Against 2,150 followers it is 8.05%. Made up numbers.

Neither is a mistake, but they answer different questions.

| By impressions | By followers |
| --- | --- |
| Divides by the times the post was shown | Divides by the people who follow you |
| Asks: when it was shown, how often did people act? | Asks: how much activity for this audience size? |
| Needs impressions from the post's analytics | Needs only a follower count |
| Stays comparable when a post travels beyond followers | Can pass 100% when it travels |

If engagements outnumber followers, the rate passes 100%. That is not an error. It means people beyond your followers acted on the post.

If you do use followers, take the count from the day you posted, because it changes. And never put a rate by followers and a rate by impressions in the same column.

## Which engagement types should you include

Include whichever set you will keep using, and keep using it. The right set is the one you can repeat for every post, every month.

Pick one set and keep it

Write the set at the top of your sheet, for example likes, replies, reposts, quotes and bookmarks. Use it for every post and every month.

Change the set when a number looks low

Adding link clicks to one month's report makes that month look better and makes the trend meaningless.

There are two honest routes, and each has a catch.

- **X's total.** It matches the figure on X's screen and includes clicks others cannot see. You can only get it for accounts you run.
- **Public counts.** The rate is lower, but it works for any post whose counts are public, including someone else's. It leaves out private clicks.

From our agency years

The arguments about a report were rarely about the numbers. They were about which formula sat behind them. What we do now is put the formula and the engagement types on the [first line](https://kairopost.com/blog/x-hooks) of every report, before the first figure.

The Kairo Post team

## How to get one number for a month or an account

[A single post](https://kairopost.com/blog/how-to-write-great-x-posts) gives you a rate. A month of posts gives you a choice of four versions, and each answers a different question.

One post

Rate by impressions

Engagements over impressions. Use it to judge a post and to test formats or times.

No impressions

Rate by followers

Engagements over followers. Use it to compare accounts of different sizes when impressions are missing.

One month

Pooled rate

All engagements over all impressions. Use it for a monthly report. One big post dominates it.

Baseline

Median post rate

The middle value of each post's rate. Use it to know what a normal post achieves.

The tempting shortcut is to average the percentages. It gives posts with tiny reach the same weight as posts seen by thousands.

Why you do not average percentagesPost A: 1,000 impressions and 100 engagements, 10%. Post B: 9,000 impressions and 90 engagements, 1%. Averaging the two rates says 5.5%. Pooling says 190 over 10,000, which is 1.9%. Made up numbers.

Pool the counts, then divide once. The pooled rate is the one for a monthly total, and the median is the one for a normal post.

## How to find your own baseline instead of chasing a benchmark

Your baseline is the median rate of your own recent posts, worked out with one formula every time. We think it beats a published average, which comes from other people's accounts and a formula you often cannot see.

1. Take your last 20 to 30 posts.
2. Work out each post's rate by impressions with the same engagement set.
3. Sort the rates and take the middle one. That is your median.
4. Note the middle half of the values, from the 25th to the 75th percentile. That is your ordinary range.
5. Judge a new post against both: above the median is good, above the top of the middle half is a clear win.

(Ten example posts, ranked. Rate by impressions, one bar per post. Median 2.85%. Middle half 2.42% to 3.17%. Bug fix thread 3.25%. Office photo 3.21%. Opinion on onboarding 3.17%. Pricing poll 3.16%. Launch thread 3.08%. Customer story 2.61%. Weekly tips 2.46%. Hiring post 2.41%. Changelog 1.35%. Industry news link 1.03%. Five beat the median. Example numbers, made up.)

Ten example posts from the calculator, ranked. Five beat the median, two sit well below it. Made up numbers.

Ten posts is too few to trust in real life. The figures are here to show the shape. With 20 to 30 posts the median settles, and it ignores the one post that went far.

You can do the sorting in a spreadsheet, or paste a table of posts into the Account baseline tab of the [engagement rate calculator](https://kairopost.com/tools/engagement-rate-calculator). Refresh it every month or two, since your normal moves as your audience does.

Comparing posting times

The same reasoning applies to each time slot. [Our guide to the best time to post on X](https://kairopost.com/blog/best-time-to-post-on-x) uses the median rate per slot for exactly that.

## Can you work out the engagement rate of someone else's account

Yes, but only from public counts, and the result is not the rate in the owner's analytics. X's developer docs list impressions, likes, replies, reposts, quotes and bookmarks as public metrics. Clicks, profile clicks and X's own engagements total are not public.

So for a post on another account the formula is public engagements divided by public impressions, times 100. It will usually come out lower than the owner's own figure, because the private clicks are missing.

| Your own post | Someone else's post |
| --- | --- |
| Can use X's engagements total | Public counts only |
| Includes link clicks and profile clicks | Leaves private clicks out |
| Compare with your own median | Compare only with other public counts |

The last row is the one people skip. Put a rate from public counts next to a rate from X's total and one of them is measuring something the other cannot see. If you are checking a competitor, rebuild your own post's rate from public counts too, so the two match.

## How to write the rate in a report so nobody argues with it

A figure without its recipe starts a debate. Put five small facts beside every engagement rate and the debate rarely starts.

| Write this | Example (made up) |
| --- | --- |
| The formula | Rate by impressions |
| The engagement types | Likes, replies, reposts, quotes, bookmarks |
| The age of the posts | Measured 7 days after posting |
| The sample | 24 posts from 1 to 30 September |
| The comparison | Median of the previous 24 posts |

> Median rate by impressions, 7 days after posting, likes, replies, reposts, quotes and bookmarks: 2.9% across 24 posts.

That one line carries everything a reader needs to repeat the number. It is also what makes next month's report comparable with this one. If you send reports for clients, [what to put in a monthly X report](https://kairopost.com/blog/managing-x-for-clients) covers the rest of the page.

## Mistakes that make engagement rate misleading

Most bad engagement rate figures come from a small set of habits. These are the ones we would check first.

- **Mixing formulas.** A rate by followers and a rate by impressions in one table cannot be compared.
- **Changing the engagement set.** Adding a type halfway through the quarter breaks the trend.
- **Judging posts at different ages.** Impressions keep arriving after you post. We pick one age, such as 7 days, and measure every post then.
- **Trusting tiny samples.** On 90 impressions, one extra like moves the rate by more than a point.
- **Averaging percentages.** Pool the counts, or use the median.
- **Counting your own activity.** Take your own replies out of the count where you can see them, because they inflate small posts.
- **Treating a benchmark as a target.** A number from someone else's account cannot tell you what your audience responds to.

The API adds one more. Non public, organic and promoted metrics are only available for posts created within the last 30 days, so a report built later cannot rebuild an old post's clicks. Save the figures while you can.

## Your next step

Work out the rate for one recent post, then write its formula next to it. After that, repeat it for your last 20 to 30 posts and keep the median.

Before you share an engagement rate

- The formula and the engagement types are written next to the number.
- Every post in the comparison used the same engagement set.
- Impressions come from the same place for every post.
- Posts are measured at the same age.
- Each post has enough impressions that one like does not swing the rate.
- You compared against your own median, not a stranger's average.

If you would rather not keep a spreadsheet, Kairo Post's analytics read post metrics from the official [X API](https://kairopost.com/blog/x-api-guide) and can save a daily or weekly report as a private file. The [engagement rate calculator](https://kairopost.com/tools/engagement-rate-calculator) stays free and runs in your browser.

In the product

## How Kairo Post does this

Everything above works by hand. Kairo Post does the same work for you, with your approval before anything goes out.

- [Free tool Engagement rate calculator Work out engagement rate the right way.](https://kairopost.com/tools/engagement-rate-calculator)
- [Feature Analytics & Rewards What works, and how close you are to payouts.](https://kairopost.com/features/analytics)

## Questions people ask

### What is a good engagement rate on X?

A good rate is one that beats your own median. Published averages come from other accounts, other topics and often an unstated formula. Work out the rate of your last 20 to 30 posts, take the middle value, and aim above it.

### Why is my engagement rate by followers over 100%?

Your post reached people who do not follow you, so engagements outnumbered followers. That is no error, and it is one reason we judge posts by impressions, which stay comparable when a post travels.

### Does X count bookmarks as engagements?

The definition we found names clicks, reposts, replies, follows and likes, and does not name bookmarks. X's developer docs list bookmarks as a public metric, so you can add them yourself. Do it for every post or for none.

### When should I measure the engagement rate of a post?

Pick one age and use it for every post, for example 7 days after posting. Impressions and engagements keep adding up, so a post measured after an hour cannot be compared with one measured after a week. The age you choose matters less than keeping it the same.

### Can I get engagement rate from the X API?

The metrics page in X's developer docs lists counts such as impressions, likes, replies and reposts, and no rate, so you divide them yourself. Non public, organic and promoted metrics are only available for posts created in the last 30 days, so save them in time.

## Sources

Every rule, limit and figure in this post was checked against these on the date shown.

1. [Post and Video Activity Dashboards, X Business Help](https://business.x.com/en/help/campaign-measurement-and-analytics/tweet-activity-dashboard) business.x.com: · checked: 1 October 2026
2. [X Ads glossary, X Help Center](https://help.x.com/en/business-and-advertising/x-ads-glossary) help.x.com: · checked: 1 October 2026
3. [Export CSV Definitions, X Help Center](https://help.x.com/en/business-and-advertising/export-csv-definitions) help.x.com: · checked: 1 October 2026
4. [Metrics, X Developer Platform](https://docs.x.com/x-api/fundamentals/metrics) docs.x.com: · checked: 1 October 2026

Written by

## Sami Kerr, founder of Kairo Post

Keep reading

## More in Analytics and measurement

[All posts on this topic](https://kairopost.com/blog#analytics)

- (Analytics. X analytics: the complete guide. A caliper closes on a post card and reads 3.0%, with the words engagements over impressions beneath it.) Analytics and measurement · Guide: ### [X analytics: the complete guide](https://kairopost.com/blog/x-analytics) Where X analytics live, what each metric means, how the API's 30 day window works and how to build a monthly report around your own baseline. 13 October 2026: 18 min read

## Post at the right moment. Starting today.

Connect an account, describe your voice and let Kairo Post do the legwork.

[Get started](https://app.kairopost.com/signup) [See pricing](https://kairopost.com/pricing)
