Community post
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.
https://farm5.staticflickr.com/4036/4352532193_1c05480f0d_b_d.jpg
"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).
https://i.imgsafe.org/f041656725.png
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) ;)
Replies (29)
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!
http://images.techtimes.com/data/images/full/163416/meaning-of-vault-boy-thumbs-up-jpg.jpg?w=600
http://38.media.tumblr.com/24098b950dd5779aa7bd2d137d3719f9/tumblr_inline_nl2u9oeqfb1tn61nd.gif
The only thing I am wondering now is why didn't you post this at 6 pm CST?
This is pretty awesome. Good info. I can imagine your next step being some kind of realtime website showing the stats as they happen. Thanks for sharing.
BTW why are you posting so early (GMT) where we see the least SD?
Yeah,that's near about when I posted my verification,and it exploded. So maybe you are right, but for me,waiting always the end of the day will be hard watching others doing good calls
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. :)
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.
Maybe he wants to have an even graph !? ;)
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
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.
Yeah, myself I couldn't be arsed to wait another 20 hours to post this. I guess I'm too impatient.
Good point, by waiting you always take a risk that someone else posts about the same thing first.
Well this is a good post. I am sure you have a winner. This will break the time barrier. Good work. All the best.
With this kind of post he may be able to achieve it too.
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 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
wow! nice!
Thanks for sharing this. I'm still working on the "gaining steam" part you mention...but posting at the right times couldn't hurt!
Thank you! I think it is so because US users are more than 18% of all users.
I am so sorry guys, there was a bug in my code!
The problem was, that when a post is edited, it appears again on the blockchain, and so was counted again. So, some posts were incorrectly getting counted multiple times.
Here is the corrected graph and the corrected code:
https://i.imgsafe.org/11e62e8a28.png
This new graph is a little all over the place, but there are still some tendencies.
But I guess that timing doesn't matter that much after all, as posts can remain on the frontpage for a whole day or longer.
I did warn you that I could be wrong! Let's hope I'm right this time :)
Is graph in UTC?
Yes it is.
Thanks for updating! Your comment needs to be upvoted so people can see the mistake
Translated to American time zones, that sounds like the best time to post would be 9am Mountain and 11am Eastern. The next few hours after that seem "out of the woods," with very few low-yield time slots.
Great stuff you really went out your way for this one
Thank you for detailed explanation.
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.
I've been wanting to see this. Thanks!
thanks for the info, so i am thinking 6 pm CST is about 11 am Australia, seems for me the best times are between 9 and 11 am AEST. have you done a study on the best days to post?
Thanks for the awesome statistical approach! Now that some time has passed since this article, do you have anymore onsite on time to post? I finished a post but I’m hokd My off in posting now lol. So new to Steemit :)