Last period Impact Hours and Total Impact Hours can be seen in charts through this link
I should have linked this (start here): https://medium.com/token-engineering-commons/how-to-earn-tec-tokens-now-an-inside-look-at-impact-hours-7d93043b739d
Let’s hear people’s thoughts on this.
What are you going to spend TEC tokens on?
Latest updates as per the last working session. Thank you @Freedumbs00 and team (They wrote this post)!
Please Consider the Following and Post Comments
- We need comments on Min/Max Hatch Goal as something connected to min/max IH rate (DAI/IH)
- We need to hack on a proposed equation that has the right impact parameters
- We need comments on Impact Hours minimum wage price
- We need to call out that if the hatch fails, then people get nothing (This is not a post about a specific course of action. It is simply defining a failed Hatch and what could be done about the Impact Hours wage)
- Video of IH Deep Dive: https://youtu.be/GJcaiopzSSE
- Notes for that video session: https://docs.google.com/document/d/1hotbM3fiYumtqQjmhc4gwn79wFsQi2GPuvTpRxPBPV8/edit#heading=h.kw5maga80kky
- Spreadsheet that explores the DAI/hr equation (See Sems newst work in the “Other explorations” tab: https://docs.google.com/spreadsheets/d/1qWHdLAVSEm_bP5fhBpEYwdEYC5zTxdzqWArSwBKcJo8/edit?usp=sharing
I’ve been translating the IH exploration spreadsheet to a formula where the independent variable (x) is the funds raised, and the dependent variable is the IH rate (y). This is the formula:
The formula has three parameters:
- H : Total number of impact hours.
- m : Hour slope, or how much funds do we expect to raise per IH. A low number makes a more curved function, whereas a high number flattens the curve.
- R : Top IH rate limit. It’s an asymptotic limit never reached, no matter how much funds are raised.
We can replicate the original IH exploration with the following parameters:
- H = 6000 hours
- m = 1000 DAI/hour
- R = 210 DAI/hour
You can visualize and play with it in this graph. You can select other parameters, and moving the X slider, you can see IH rate and IH percent based on total raised.
A high m makes the function practically linear, so I would recommend to set up a lower one of maybe 200 DAI/h. On the other hand we have to be careful on setting up a low m because it also increases the percentage of raised money that goes to cover IH.
Also, in order to have a fair minimum wage, we can play with both R and m having into account a min goal X. So for example with a min goal X of 300k, a R of 80 and an m of 200, we have a IH rate of 16 DAI/h, and this represents the 32% of the raised funds.
This is amazing… so Params we need are:
m : Hour slope, or how much funds do we expect to raise per IH. A low number makes a more curved function, whereas a high number flattens the curve.
R : Top IH rate limit. It’s an asymptotic limit never reached, no matter how much funds are raised.
Is that right?
Really great work guys, I recommend anyone seeing this to checkout the math widget and play around with it. Notice you can slide x to pick a scenario of raise amount, and then based on the parameters you see r_x and p_x at the bottom as hourly rate and percent of hatch going to cultural build.
My initial comments:
- I’m not sold on the intuition for m. I can’t quite see how it is ‘expected funds raised per IH’
- Anyways, if it is ‘expected funds raised per IH’, then notice that the ‘true funds raised per IH’ would be x/h. Plugging that in for m, we get r_x = R/2 which is cool. So if we perfectly guess our raise capabilities then the hourly rate should be 50% of the max.
- We can put bounds on the parameter space by constraining the results of r_x and p_x. For example r_x >15, 0.01 < p_x < 0.2.
Great initial work, and I’m excited to see this framework evolve.
As far as I can tell, yes, it’s m and R to be decided. Additionally, it looks like we can add constraints to this model such as minimum and max raise, minimum wage, and minimum and max hatch percentages going to the cultural build.
That’s right. That’s why I think we can name m as “expected raise per IH”, since it’s the amount IH people get rewarded with R/2. If the raise gets less than m, the reward drops significantly, if the raise gets more than m, the reward increases slowly until it reaches max rate of R.
We can find better names, maybe doing reference to the “half-way”. It’s the raise in which IH receive half of the max rate. What about “half-raise”, or “half-way raise”? I can’t find suitable names, maybe you can continue with the brainstorming.
That being said, it’s important to remark that setting a low m will make it easy to reach a IH ratio greater than R/2, which is what makes the curve. Setting up a high “expected raise”/“half-way raise”, we flatten the curve, making it indistinguishable from a straight line.
Calculator here: https://www.desmos.com/calculator/r8kq0r6e2s
For the test HatchDAO these are the Params I am playing with
m = 30/2500 expected raise/total IH
During user testing we discovered that the Impact Hour Slope concept is too hard for users to grok… and they all wanted to understand it… It became a big blocker for most people trying to propose
So I propose we add a new user facing variable called Curvature
C = R/m
This is used to derive m Impact hour slope… but is… hopefully easier to understand than m, and users can try to forget that there is math and just start playing
updated the calculator: Impact Hours rate
Perhaps if you explain what the curve or slope is, and what impact it has on system configurations, that could help people understand what exactly we are trying to configure here?
E.g. “The IH slope denotes the sliding agreement of funds allocation attributed to builders (inputting time) vs backers (inputting funds). At smaller fundraise amounts, builders receive a larger proportion of tokens, while at larger fundraise amounts, builders are better compensated but larger proportions of tokens go to backers. This curve essentially represents a novel form of dynamic ownership allocation between funders and builders.”
Impact hour slope is the “expected raise per impact hour” in which builders receive 50% of max impact hour rate (R).
I like @griff’s idea on simplifying it by relating to max rate, but I think it would be more suitable if we use the inverse function of what he is proposing, like this:
C = m/R
This defines C as a factor that multiplies max rate. In order to define a “expected raise per IH” twice as much as “max rate”, we can define C=2. If we want it to be half of max rate, we define C=1/2.
We can define C as a parameter that goes from 0 to 5 (although it could be higher). Here you can find a demonstration here.
I hope you like the idea.
I originally had it inverted like that… since it gives more range at the smaller numbers… but then i had to think of what do we call the variable… and with it inverted, the smaller the number, the more curvature it has.
So if we want to invert it, we shouldnt call it Curvature… cause the smaller the number, the more curvy it is… and this would be non-intuitive…
We could change the name… but honestly, it was harder to find the name than to invert the ratio!
I started from the user experience and worked towards the math.
Curvature is what i think will make sense to the user its like how curvy the IH rate line is, and the Max rate is the asymptote… and then i think its very easy to explain and play with
I understand, it’s a trade-off between user experience and math simplicity.
I still prefer
m=C*R because it has more meaning, but in case we go
m=R/C I would not add more constants in the formulas. I changed the desmos proposed by griff so it doesn’t multiply R by 500 anymore (it felt arbitrary). I would just make the range of C from 0 to 5, with steps of 0.01. Here is the updated desmos.
Also, there is something that can make things easier. We already consider “target goal” as a parameter. Let’s use it to replace
mH in the original formula, because this is exactly what it means. If we reach the “target goal”, impact hour holders will get paid at a rate of “max rate”/2.
The final formula would be
f(x) = R * x / (x + Tg). This simplified form is actually used by the smart contract. We would have one parameter less to define for the hatch dao, and overall, less always is better.
Yet another option is defining the curve based on two points, (+∞, maxRate) and (minGoal, minRate).
This gives us two intuitive parameters to define the IH formula, the max rate (nearly impossible to reach), and the min rate, which is the rate that receives each impact hour when the min goal is reached. Target goal could also be used instead of min goal, but min rate felt more useful for modeling.
The formula to get
m for the original formula based on min goal
G and min rate
You can play with the updated desmos here.
THIS IS AMAZING!!!
It is WAY more intuitive to allow the user to choose a point on the line and define the asymptote then they only need one slider to play with to get their slope…
I do think the most intuitive point to design around is the Target Goal as opposed to the min goal tho… what do you think, can we play with the equation to make that a thing?
Yes of course, we can use target goal instead of min goal, and add min goal rate as an output to have into consideration. It’s the same formula as above, but
G now means “Target Goal” and
r is the target goal rate. This is the updated desmos.
What is the Impact Hour Rate at Target Goal (wxDai/IH)?
The Impact Hour Rate at Target Goal (wxDai/IH) parameter determines the amount of wxDai allocated for each Impact Hour earned by the Builders of our community. The source of these funds comes from the amount raised during the Hatch Period and therefore the ratio between wxDai and Impact Hours is dependent upon the amount of funds raised.
Implications & Parameter Options
The Impact Hour Rate at Target Goal parameter is measured in wxDai, and you will have the option to set this parameter anywhere between 0 and ∞ .
This parameter has several implications and determines how much we reward our Community Builders in relation to the amount of Impact Hours they earned. The source of these funds come from the amount of wxDai raised during the Hatch Period, specifically from the unredeemable pool of funds determined by the Hatch% Parameter.
Depending on your Target Goal, we suggest an Impact Hour Rate of 20-200 wxDai.
Related Parameters to consider when defining the Impact Hour Rate (wxDai/IH) at Target Goal:
Target Goal (wxDai)
Minimum Goal (wxDai)
Maximum Goal (wxDai)
Impact Hour Rate at Infinity (wxDai/IH)
What is the Impact Hour Rate at Infinity (wxDai/IH)
The Impact Hour Rate at Infinity (wxDai/IH) determines the theoretical maximum for the Impact Hour Rate. The rate serves as an asymptote for the curve according to the amount of funds raised during the Hatch Period.
Implications & Parameter Options
The Impact Hour Rate (wxDai/IH) at Infinity is measured as a ratio, and you will have the option to set this parameter between 0 and 1000.
Since the Impact Hour Rate is dynamic based on the amount of funds raised during the Hatch Period, the Impact Hour Rate at Infinity(wxDai/IH) parameter defines the curve for this rate. The higher you set your ratio, the amount of wxDai per single Impact Hour increases as it moves beyond your Target Goal (wxDai) parameter. This parameter is at the foundation for your Hatch Strategy because it serves as a method for defining your hatch-raise incentives. The Impact Hour rate rewards our Community Builders, and this parameter establishes the magnitude of that reward. Inversely, this also impacts the amount of voting power held by Backers within the HatchDAO.(?)
The Impact Hour Rate at Infinity should be carefully considered, but we suggest a range of 80-1000 wxDai.
Related Parameters to consider when defining the Impact Hour Rate (wxDai/IH) at Infinity:
Target Goal (wxDai)
Minimum Goal (wxDai)
Maximum Goal (wxDai)
Impact Hour Rate at Target Goal (wxDai/IH)