The return of the bid-bot

in #steem6 years ago (edited)

How much are delegators earning on their investment in bid-bots? The Steem blockchain has most of the data needed to make the calculations so let’s follow the numbers!

But not so fast. First, we need some definitions and some code. Any Steem account can delegate its Steem Power to another one and undelegate anytime with no previous notice. The account that delegates is the delegator and the account that receives the delegated funds is the delegatee. There is no credit risk for the delegator as she does not depend on the delegatee’s actions to get her money (Steem Power) back. It takes 7 days to get the undelegated funds back in the delegator’s account so delegators have some incentive to not undelegate so often.

In this short-term credit market, the delegated funds are the bid-bot’s debt. It is common for bid-bots to pay interest on their debt every day. This reduces how much a delegator would not receive if a bid-bot were to default on its interest payments.

The query to get all delegations ever made to one bid-bot account (see previous posts to learn about getting and processing the Steem blockchain info) is:

bidbot <- 'your_favorite_bid_bot'
sqltxt <- paste("SELECT * FROM TxDelegateVestingShares WHERE delegatee IN ('",bidbot,"')",sep="")
delegations_to_bot <- data.table(dbGetQuery(conn, sqltxt))
    To calculate the monthly end-of-period delegation balances for each delegator we use a procedure discussed in https://busy.org/@verodato/building-delegation-time-series. The next step is to estimate the interest payments to delegators. If the bid-bot sends transfers that are not interest payments to its delegators and does not label each type of transfer accordingly, we risk taking other expenses as interest payments. The list of all accounts that have delegated to the bid-bot is found by:
    delegators <- unique(delegations_to_bot[,list(to=delegator)])
    delegators[,isdelegator := 'yes']
    
      To get all the transfers from the bid-bot account to other accounts we prepare the following query:
      sqltxt <- paste("SELECT [from],[to],amount,amount_symbol,memo,timestamp,type FROM TxTransfers (NOLOCK) WHERE [from] IN ('",bot,"')",sep="")
      transfers_out <- data.table(dbGetQuery(conn, sqltxt))
      
        Merge the “delegators” table obtained above with the “transfers_out” table, so that we can check which transfers from the bid-bot were directed to the delegators' accounts:
        setkey(transfers_out,to)
        setkey(delegators,to)
        transfers_out <- delegators[transfers_out]
        transfers_out[,isdelegator := ifelse(is.na(isdelegator),'no',isdelegator)]
        interest_payments <- transfers_out[isdelegator=='yes',list(int_usd=sum(usd)),by=list(delegator=to,year,month)]
        
          Merge the "delegation_balances" table with the "interest_payments" table and find how the monthly interest payments are related to the monthly amounts delegated. The “mrr” column is the monthly rate of return on the investment on the bid-bot and the “arr” column shows the annualized rate of return:
          setkey(delegation_balances,delegator,year,month)
          setkey(interest_payments,delegator,year,month)
          cash_flow <- merge(interest_payments,delegation_balances)
          cash_flow_monthly <- cash_flow[delegation_usd > 0,list(interest_usd=round(sum(interest_usd)),delegation_usd=round(sum(delegation_usd))),keyby=list(year,month)]
          cash_flow_monthly[,mrr := round(100*interest_usd/delegation_usd,4)]
          cash_flow_monthly[,arr := round(100*(((1+(mrr/100))^12)-1),4)]
          
            Now we need a bid-bot to test our code. At the moment of writing, the highest bid-bot vote value in the https://steembottracker.com page is the @postpromoter one, so we’re going to use it. The table below shows the results. Interest payments and delegations were converted to USD using historic SBD and STEEM coinmarketcap prices (https://coinmarketcap.com/currencies/steem/historical-data/). The annualized rate of return of the postpromoter bid-bot to its delegators has oscillated around a downward trend and reached its minimum value of 24% in June 2018. The total delegated to the bid-bot quickly reached more than USD 10 million in February 2018. The interest payments, after nearing USD 300.000 in the first two months of 2018, went down with the crashing cryptocurrencies prices of the following months, bringing down the rate of return with them.

            Sort:  

            You have some very nice skills!

            I have been noticing the ROI's dropping on http://isteemd.com/

            There is also minnowbooster where people can delegate.
            https://www.minnowbooster.net/market?direction=asc&sort=effective_price

            Thanks!
            Great to know about http://isteemd.com/ !

            Nice work. Hard pressed to get 11% from your friendly bank. The big telling analysis is when the degradation curve brings the returns below bank rates.

            Hi, @carrinm, there was an error in the conversion of delegations from VESTS to USD in the first version of this post. Sorry. Getting 24% from your friendly bank is going to be tough!

            Very well written article, definitely gave me some insight to returns etc. I'm new here so this article was a great source of information!

            Loading...

            Very detailed analysis, thanks a lot. Was looking for this analysis already on the net, but did not find anything. Hopefully things will turn back around and return will reach its high back again.

            those are some nice skills. you have me motivated to do some experimenting with steem blockchain queries too. profits have declined for sure but they are still better than the alternative investment options. i have faith in steem.

            You got a 28.45% upvote from @th3voter thanks to: @verodato!



            Image Source cloudinary.com


            This post has upvoted from @th3voter !For more information, click here!

            You can earn daily profit by delegating SP to our bot, 100% of earnings paid out to delegators. To do so, click below:
            30SP, 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP, 10000SP,
            Custom Amount
            Make sure you have at least 15 SP left on your account.

            Couldnt happen to a nicer group of folks.

            Can someone explain to me why does the APR% return increases with increase in value of STEEM.
            This would imply that the circulation/creation of STU increases with increase in value , doesn't this mean it gets highly inflated as the price goes up? and subsequently creating a downward price pressure on STEEM Price.

            quite similar to how the US government keeps printing more money when they need to.

            sorry not an economist ...

            Actually it was because of the runup in SBD, not STEEM. The reward functions adjust for changes in STEEM price (using witness price feeds). There is no similar compensation for changes in SBD premium (SBD price in excess of $1 floor).

            But whenever there is bull run SBD prices will run up...

            That depends on the maturity of the market.

            You got a 17.48% upvote from @upmewhale courtesy of @verodato!

            Earn 100% earning payout by delegating SP to @upmewhale. Visit http://www.upmewhale.com for details!

            To listen to the audio version of this article click on the play image.

            Brought to you by @tts. If you find it useful please consider upvoting this reply.