Brandmaier Webentwicklung

Twitter Analytics Part 2 – A performance score for tweets

This is the second article in the series called “Twitter analytics”. My goal is to see whether it is possible to discover meaningful social media insights by applying data gathering and data analytics on the social network Twitter. In this part, I want to talk about the score that I came up with to rate and compare the performance of tweets.

Finding attributes and building a performance score

At first, I had to find or calculate a metric that tells me how good a tweet performed. Three things came to mind pretty fast: likes, replies and retweets. The main problem with those three metrics is, that they have a very high correlation to each other. If a post gets more likes, it will be displayed to even more people and therefore get more replies and retweets. A tweet with more replies and retweets will then again get more likes. This is a vicious cycle that I needed to consider in my performance score.

My scoring model

That is why I decided to put all the things that do not influence each other on one side and the number of likes, replies and retweets on the other side. On the left are all the attributes that a tweet can have. For example the date a tweet was posted or the hashtags that were used in a tweet. The attributes only influence each other very little. The hashtags of a tweet usually do not influence when the tweet was posted, the text of the tweet does not influence how much followers a user has, etc. On the right side are the more correlated likes, retweets and replies summarized as engagement. The higher those numbers are, the better a tweet performed.

You could also see this separation as before and after publishing the tweet. On the left are all the attributes that get defined before posting a tweet. The user for example writes a text, chooses hashtags and determines a time to publish the tweet. The right side represents what happens in the algorithm after the tweet got published. After posting the tweet the Twitter algorithm will decide who gets to see the tweet and therefore drive the three performance indicators “likes”, “retweets” and “replies” over time.

The engagement calculation

By defining that a single like, reply and retweet are worth the same, you can calculate the total engagement of a tweet by simply summing those numbers up.

EngagementScore =  Likes + Replies + Retweets

At the beginning of this project, I thought that using a relative score was the best idea. I calculated the engagement of every tweet relative to the best tweet in the data set in order to get a score from 0% to 100%. I later discovered that this score works well when comparing different tweets to each other (“Which of the two tweets had higher engagement?”) but it does not work well when you want to formulate absolute results (“What was the engagement of a specific tweet?”). Being able to say that the engagement was 1000 (so the sum of likes, replies and retweets was 1000) is much more intuitive than saying the engagement was 0,374% relative to the best tweet.

Using the engagement metric

By using the engagement metric, I was now able to rank the tweets and dive deeper into the attributes and their influence on the performance of a tweet. I decided to use a “divide and conquer” method where I group the tweets by a specific attribute and then calculate the average engagement for the groups. For example, I was able to group the tweets by text length and calculate the average engagement for every group of text length. I want to share this calculation by showing the results of an example data set. The insights you will see are NOT applicable to a generic tweet. I will gather tons of real insights that you can use for your tweets in the next article. But for now, let’s go through the theory:

At first, take a look at the orange “Amount of Tweets” graph. This graph is very simple. It just determines the length of every tweet (rounded by 10) and then counts how many tweets there are with a certain length. This way, we can see that most tweets in our dataset used up the 280 character limit of Twitter. This is pretty common because many people write tweets that are too long and then shorten them to get under the 280 character limit. The second most used tweet length is around 60 – 100 characters.

Let’s take a look at the average engagement. By clicking on “Amount of Tweets”, you can hide the orange graph and the blue graph will be shown. The blue graph contains the engagement score for all of the tweet length groups that we just looked at. To repeat myself one more time: With the orange graph, we first looked at what tweet length is used most. With the blue graph, we are now looking at what the average engagement was that a tweet with a specific length got. The blue graph shows that the posts that got the most engagement were rather short. The most engaging tweets were the ones with 70-80 characters. This means that even though most tweets contained 280 characters, the shorter tweets with 70-80 characters performed better.


I also wanted to talk about causation at this point because it is very easy to interpret too much into the engagement score. We cannot prove that the tweet length CAUSED the difference in engagement. The only thing that we can observe based on the graph is that the tweets with the highest engagement happened to have a content length of 70-80 characters. Sadly, we can’t observe what the real reason for this distribution is. It could be that image posts are more popular and often only have a short caption as text. Or maybe popular influencers with high engagement rates lead a very busy lifestyle and therefore cannot be bothered to write more than 80 characters. Long story short – we will never know what the real cause of the different engagement was by simply analyzing this graph.

What is next?

Knowing that trimming all your tweets to 80 characters probably won’t have a huge impact on the performance of your tweets is a bummer. The good news is that I am still planning on finding more insight into what makes a tweet perform well. I cannot prove the causation for a single attribute but what I can do is to look at as many attributes of a tweet as possible. Imagine you know the most engaging content length, text, hashtags, time to post, the optimal follower count, etc. By calculating the engagement distribution for ALL of those attributes we could figure out the ingredients for a good tweet, even if we don’t know what exactly caused the high engagement. I am also sure that there won’t be one factor that determines the engagement of a tweet. It is more likely that the performance of a tweet gets defined by a mix of all factors.


At first, I wanted to say that feedback is highly appreciated. If you have found an error or if you have suggestions for further analysis, be sure to write a comment or an e-mail. I am currently trying my best to analyze as many attributes as possible from my model. I am diving deeper into different attributes of a tweet in part three of this series to find the best time to post, the best hashtags, the best content type and many other interesting insights.