The Best Time to Post on Steemit
I have collected some data from the blockchain to try and answer the question: what time of day should you post?
We all want to maximize our rewards on Steemit. The best way to do so is to improve the quality of our writing, pick new/interesting/underrepresented topics, and be creative. But there may be another factor at play: the time of posting.
"time" by bigbirdz on flickr (CC-BY)
It seems obvious that publishing your post at 4 am in the morning will not yield a lot of exposure, and thus, result in fewer votes. The ideal time of posting varies wildly between different web sites, as it depends on the user demographic.
Thanks to the open nature of Steem, we can get a list of all posts ever made, the time they were posted, and the rewards they got, all in a computer-readable format. This data can be used for a statistical analysis of our question. Let's do it!
My theory
I would expect the majority of Steem users are living in America or Europe. The prime time is likely in the evening, as that is when most people will come home from work / school / other commitments.
If you are aiming for the front page, you may want to post a few hours earlier than prime time, to account for the time it takes for your post to gain steam (no pun intended) and reach the front page. You want to be already on the front page when the rush hour starts.
Based on these assumptions, I would guess the ideal publishing time to be around 6 PM Central Standard Time.
The script
Now let's get down and dirty with the blockchain. I quickly hacked together the following python script. It is fairly simple and could be improved in a number of ways. Interestingly I am using both piston and python-steem as there seems to be currently a bug in piston that prevented me from doing the stream_comments part with piston.
from piston.steem import Steem
from steemapi.steemnoderpc import SteemNodeRPC
from collections import Counter
from datetime import datetime
counter = Counter()
postcounter = Counter()
start_block = 3145790 # 2016-07-12
rpc = SteemNodeRPC("ws://localhost:8090")
steem = Steem(node="ws://localhost:8090", nobroadcast=True)
for c in rpc.stream("comment", start=start_block):
if c["parent_author"]:
continue # only interested in posts, not comments
try:
post = steem.get_content("@" + c["author"] + "/" + c["permlink"])
except:
continue
dt = datetime.strptime(post.created, "%Y-%m-%dT%H:%M:%S")
print("\n" + str(dt))
payout = float(post.total_payout_value.split(" ")[0]) + float(post.pending_payout_value.split(" ")[0])
counter[dt.hour] = counter[dt.hour] + payout
postcounter[dt.hour] = postcounter[dt.hour] + 1
for i in range(24):
if postcounter[i]:
print(str(counter[i] / float(postcounter[i])))
else:
print("0")
To run this script, you will need a local steemd node. When running steemd, disable standard output like this: ./steemd --rpc-endpoint &> /dev/null
, else the log output will slow things down tremendously.
The script will print a list of numbers, that is the average payout value for posting at each hour of the day.
The result
Paste the numbers into LibreOffice and we get a nice graph.
This graph shows the average Steem Dollar payout per post (vertical axis) vs. the time of day these posts were published (horizontal axis, GMT).
As you can see, there is a clear trend showing that posts published between 22:00-23:00 GMT (17:00-18:00 CST) earn the most rewards.
Unfortunately the data set for this experiment was limited (2016-07-12 to 2016-07-19). I wanted to use a larger data set, but I was hitting connection reset errors on certain blocks that prevented me from doing this. I am unsure if the bug is in python-steem, steemd or somewhere else. If anyone can help me resolve this, please let me know. Steem is very new tech so there are some kinks left to be worked out!
Finally, note that correlation != causation! Take the numbers with a grain of salt. In germany we have a nice saying: traue keiner Statistik, die du nicht selbst gefälscht hast (Don't trust a statistic you didn't fake yourself) ;)
Ironically, I published my post on the most unlucky time slot (0 am CST).
So we will see if there's any ground to my statements, based on the payout that this post will get. :)
I came to the same conclusion without the awesome data you presented. I feel like most of the Whales and Dolphins live on the East coast and are sleeping. My post I just put up mentioned this and it is stalling. Just glancing shows that we both put a lot of time into our posts. https://steemit.com/steem/@brianphobos/how-steemit-is-like-tinder-detailed-explanation-and-advice
Thanks for sharing this. I'm still working on the "gaining steam" part you mention...but posting at the right times couldn't hurt!
Would be cool to get an update on this post. Do the numbers still run the same. A lot more posting data available these days.
Funny...I've been posting at around 11 PM Mountain time... which is 6 GMT...pretty bad. I'll try a different time tomorrow.
D
Makes sense as at this point most Steemit users are from US and that is the time most people get online after work. Good job putting the code together!
Any recommendation how I get started with steemd? I used to program until a decade and a half ago and need to catch up a bit. The piston/python I can figure out (I think). Thx.
These links helped me with setting up steemd:
https://steem.io/documentation/how-to-build/
https://steemit.com/steem/@tuck-fheman/how-to-mine-steem-in-windows
https://gist.github.com/xeroc/e1c52ce7754c945ca9b0e0e97512f597
I came across an issue where steemd would report a parser error with multiple seed nodes in the config file, so I had to delete all but one.
I've been wanting to see this. Thanks!
The only thing I am wondering now is why didn't you post this at 6 pm CST?
I asked myself the exact same thing after I hit publish! I guess I'm just impatient.
We will see if there's any ground to the statements in my article, based on the payout that it gets. Hehe.
Well this is a good post. I am sure you have a winner. This will break the time barrier. Good work. All the best.
Maybe he wants to have an even graph !? ;)
With this kind of post he may be able to achieve it too.
wow! nice!
Thank you! I think it is so because US users are more than 18% of all users.