Let me see if I get this straight.
Upvotes generate "claims" against the reward pool.
What's in the reward pool (and will thus be transferred to the upvoted posts and comments) is a mix of steem and SBD.
How is the composition of this mix calculated ?
I imagine the "smart contract" you mention looks first at the price feeds provided by the witnesses and averages them (all the active witnesses ? simple average of the ~140 price feeds of active witnesses ? or weighted average ?)
Now imagine the average price feed is 0.94 SBD to 1 STEEM
The total supply of SBD is 15 685 205. Circulating supply of STEEM is 274 725 189 and total supply is 291 699 283 (according to CoinmarketCap).
The smart contract calculates (15685205 * 0.94) / the supply of steem. If it uses "circulating supply", the ratio is 5.3%. If it uses total supply, the ratio is 5.05% (both cases it's above 5%, but which one is used?)
Therefore, it creates no SBD and only STEEM goes into the reward pool.
Is that correct ?
I'm not sure how the "bias" is used - given the fact that most witnesses have no "bias" set and those that have a bias set range from -0.2% for @pharesim to +0.81% for @raggaemuffin (I ignored @chainsquad and the dead witnesses), I guess my witness, @lux-witness, is not the only one to be unsure about how the "bias" is used in the code ... could you maybe offer a hint ?
1 - The SBD printing rate algorithm:
we need for that:
The debt to ownership ratio in the Steem ecosystem: [SBD Amount] / [Steem Market Cap]
And this is how it's coded:
we can consider 2% being 100% SBD and 5% being 0% SBD, and everything in between a ratio, e.g. 3.5% debt means 50% SBD / 50% STEEM
Right now, the result of this operation is provided as a blockchain property, so you just get it with a single RPC call.
Also worth noting, this will change in HF 20, so the sliding from 100% printing to 0% printing will occur between 9% and 10% debt-to-ownership ratio (which means there will be a higher debt-to-ownership ratio across the STEEM ecosystem and the printing rate will decrease much faster, almost like a "kill switch").
2 - The price feed bias is a weighted average, so the fist 21 witnesses count more than the rest. You can still make use of this as a public signal, I did this a lot although I'm not even in the first 50.
None of the first 21 have set a "Bias (%)". The first ones are @pharesim (28), @raggaemuffin (32) and @abit (34)
if it's not set it is implied to be zero.
Later edit: this is how it's looking on steemd.com: