Tutorial: Get the value of your steemit earnings, Part #2 - Calculate Steem Power
steemdev·@schererf·
0.000 HBDTutorial: Get the value of your steemit earnings, Part #2 - Calculate Steem Power
In the second post of this series I added the conversation of the VESTS rewards to Steem Power. # The Mission The requirements for the first part of this series: 1. Get the steemit earnings (STEEM, SBD, VESTS) for an account 2. Create a HTML and CSV report You can find the first part here: https://steemit.com/steemdev/@schererf/tutorial-get-the-value-of-your-steemit-earnings-part-1 https://i.imgur.com/Cq1hhlw.jpg The requirements for this second part: 1. Calculate the Steem Power (SP) for the VESTS reward # System Requirements ### nodeJS As the runtime system for the program I used "nodeJS" (LTS version). You can download nodeJS here: https://nodejs.org http://i.imgur.com/J0VuhLa.jpg # Implementation ### git repository You can download the complete sources of this tutorial from my GitHub repository: https://github.com/SchererF/steemit-earnings ### calculation of Steem Power The Steem Power is calculated using the following formula: ```` total_vesting_fund_steem * (user's vesting_shares / total_vesting_shares) ```` <br> Thanks to @lantto: https://steemit.com/steem/@lantto/how-to-calculate-steem-power-using-the-api ### using steemd data To calculate the Steem Power of VESTS reward, we need historical data for *total_vesting_fund_steem* and *total_vesting_shares*. The only way I found to get this historical data is provided by @jesta. He creates snapshots of steemd data on a regular base. Thanks to @jesta: https://steemit.com/witness-category/@jesta/jesta-witness-update-2016-09-02 The data are provided under this URL: https://steemdb.com/api/props http://i.imgur.com/X6H12OY.jpg ```` var url='https://steemdb.com/api/props'; console.log( 'loading data from "' + url + '"'); return fetch(url ).then((response) => response.json() ).then((data) => steemdApiPropsData = data); ```` <br> Get the timestamp of an single item ```` var date = new Date(parseInt(steemdApiPropsDataItem.time.$date.$numberLong)); ```` <br> Calculate the *steem_per_mvests* value ```` steem_per_mvests = steemdApiPropsDataItem.total_vesting_fund_steem * 1000000 / steemdApiPropsDataItem.total_vesting_shares; ```` #### Example time.$date.$numberLong 1515871554000 (GMT: Saturday, January 13, 2018 7:25:54 PM) total_vesting_fund_steem 199304254.488 total_vesting_shares 408153245669.0034 steem_per_vests 0.000488307 = 199304254.488 / 408153245669.0034 #### small deviations Unfortunately, there are small deviations in the comma range for the calculated Steem Power values compared to those in the wallet. Personally, I can live with this small deviations, but if you know a solution to this problem, I would appreciate a hint. # Let's do it Please have a look at the first post of this series if you want to know how to download, install and run this program. https://steemit.com/steemdev/@schererf/tutorial-get-the-value-of-your-steemit-earnings-part-1 ### Take a look at the output HTML The created HTML now includes the values for *steem_per_mvests* and *SP* values. http://i.imgur.com/klGHQHK.jpg # Tutorial Preview In the next parts of this little series add the STEEM and SBD earnings as EUR/USD based on the historical exchange rate of the reward claim date. # Note This tool can simply be used for your personal interests or of course to create a template for reporting your steemit earnings for a financial office (as we need it in Germany for the tax office). ***The created report is of course not an official document. It is just an idea on how to report your earnings!*** Please give me feedback if this tutorial was helpful for you. Thanks for reading and watching, @schererf
👍 schererf, docmarenkristina, elonymou, infinityroad, roxane, djpoertsch, dalexx, mikenero, freiheit50, trans-juanmi, juanmiguelsalas, germansailor, alexvan, tiagopaixao, blazing, uwelang, cutiepie, shortcut, andyjaypowell, felixxx, cityslicker, crokkon, abh12345, starboye, unityofmulti, opmonis, steem.test, alpha.steem, resteemme, helli, james.steem, player01, player02, resteemmebot, player03, shaka, pollux.one, smasher,