Every time an ĀutID joins a new Hub, their Commitment Level amounts rebase dynamically, reducing the Commitment assigned to the previous Hubs. Based on their Commitment, members can hit different tiers and it’s up to each Hub to decide whether they want to differentiate permissions and rewards based on those tiers.
Below the process we use to make the CL allocation self-rebasing and discrete.
Parameters
i C L t o t = 100 iCL_{tot} = 100 i C L t o t = 100 : the Total Individual Commitment Level that a user j has available to allocate to the set of Hubs [ H ⋅ ] {[\tt H \cdot]} [ H ⋅ ] in which they contribute.
N: the number of Hubs [ h ⋅ ] ∈ [ H ⋅ ] {[\tt h \cdot]} \in {[\tt H \cdot]} [ h ⋅ ] ∈ [ H ⋅ ] where j is already contributing.
i C L [ h ⋅ ] iCL_{[\tt h \cdot]} i C L [ h ⋅ ] : the iCL allocated by j to a Hub [ h ⋅ ] {[\tt h \cdot]} [ h ⋅ ]
a i C L t o t aiCL_{tot} ai C L t o t : the iCL allocated to Hubs where j is already contributing.
i C L n e w iCL_{new} i C L n e w : the iCL allocated to the new Hub.
f i C L [ h ⋅ ] fiCL_{[\tt h \cdot]} f i C L [ h ⋅ ] : the fractional CL allocated by j to each Hub.
u i C L [ H ⋅ ] uiCL_{[\tt H \cdot]} u i C L [ H ⋅ ] : the updated CL for previous Hubs in the set [ H ⋅ ] {[\tt H \cdot]} [ H ⋅ ] .
riCL : the remaining iCL , calculated as i C L t o t − a i C L t o t iCL_{tot} - aiCL_{tot} i C L t o t − ai C L t o t
Calculate the Proportional Decrease of each Hub's iCL
Calculate the total iCL allocated to existing Hubs:
a i C L [ j , h ⋅ ] = ∑ [ h ⋅ ] = 1 N i C L N \displaystyle aiCL_{[j, \text{ } \tt h \cdot]} = \sum_{[\tt h \cdot] = 1}^N iCL_{N} ai C L [ j , h ⋅ ] = [ h ⋅ ] = 1 ∑ N i C L N
then allocate a portion of r i C L riCL r i C L to a new Hub [ h ⋅ ] ( n e w ) [\tt h \cdot]_{(new)} [ h ⋅ ] ( new )
Calculate the remaining points: r i C L = i C L t o t − a i C L riCL = iCL_{tot} - aiCL r i C L = i C L t o t − ai C L
Calculate the proportion of iCL for each existing Hub:
f i C L [ j h ⋅ ] = i C L [ h ⋅ ] a i C L t o t ∀ [ h ⋅ ] ∈ [ H ⋅ ] \displaystyle fiCL_{[j \text{ } \tt h \cdot]} = \frac{iCL_{[\tt h \cdot]}}{aiCL_{tot}} \text{ } \forall \text{ } [\tt h \cdot] \in [\tt H \cdot] f i C L [ j h ⋅ ] = ai C L t o t i C L [ h ⋅ ] ∀ [ h ⋅ ] ∈ [ H ⋅ ]
Adjust the allocation for each existing Hub:
u C L [ h ⋅ ] = f i C L [ h ⋅ ] × r i C L ∀ [ h ⋅ ] i n [ H ⋅ ] j \displaystyle uCL_{[\tt h \cdot]} = fiCL_{[\tt h \cdot]} \times riCL \text{ } \forall \text{ } [\tt h \cdot] \text{ } in \text{ } [\tt H \cdot]_{j} u C L [ h ⋅ ] = f i C L [ h ⋅ ] × r i C L ∀ [ h ⋅ ] in [ H ⋅ ] j
Final Formula
the new iCL is calculated as:
u C L [ j , h ⋅ ] = i C L [ h ⋅ ] × ( i C L t o t − i C L n e w ) ∑ h ⋅ = 1 N i C L N ∀ [ h ⋅ ] ∈ [ H ⋅ ] j \displaystyle uCL_{[j, \text{ } \tt h \cdot]} = \displaystyle iCL_{[\tt h \cdot]} \times \frac {(iCL_{tot} - iCL_{new})}{\displaystyle \sum_{\tt h \cdot=1}^{N} {iCL_N}} \text{ } \forall \text{ } [\tt h \cdot] \text{ } \in \text{ } [\tt H \cdot]_{j} u C L [ j , h ⋅ ] = i C L [ h ⋅ ] × h ⋅ = 1 ∑ N i C L N ( i C L t o t − i C L n e w ) ∀ [ h ⋅ ] ∈ [ H ⋅ ] j with ∑ [ h ⋅ ] [ 1 + . . . + N ] = [ H ⋅ ] \displaystyle \sum {[\tt h \cdot]}_{[\tiny 1 + ... + N]} = [\tt H \cdot] ∑ [ h ⋅ ] [ 1 + ... + N ] = [ H ⋅ ]
Simplified as a matrix
Another way to visualize the iCL update is through a basic matrix:
r i C L = i C L t o t − i C L n e w f i C L [ h ⋅ ] = [ i C L 1 i C L t o t i C L 2 i C L t o t ⋮ i C L [ h ⋅ ] i C L t o t ] u C L j = f i C L j × r i C L j \begin{align*}
riCL &= iCL_{tot} - iCL_{new} \\
\mathbf{fiCL_{[\tt h \cdot]}} &= \begin{bmatrix}
\tiny \frac{iCL_{1}}{iCL_{tot}} \\
\tiny \frac{iCL_{2}}{iCL_{tot}}\\
\vdots \\
\scriptsize \frac{iCL_{[\tt h \cdot]}}{iCL_{tot}}
\end{bmatrix} \\
\mathbf{uCL}_{j} &= \mathbf{fiCL}_{j} \times riCL_{j}
\end{align*} r i C L fiC L [ h ⋅ ] uCL j = i C L t o t − i C L n e w = i C L t o t i C L 1 i C L t o t i C L 2 ⋮ i C L t o t i C L [ h ⋅ ] = fiCL j × r i C L j
Steps:
We extract riCL from the known values of:
[i] allocated commitment, and
[ii] newly-added commitment.
We apply the fiCL ratio to determine each i C L [ j , h ⋅ ] iCL_{[j, \text{ } \tt h \cdot]} i C L [ j , h ⋅ ] ’s individual weight.
We multiply each individual f i C L [ 1 , . . . , N ] fiCL_{[1, \text{ }..., \text{ } N]} f i C L [ 1 , ... , N ] for previously extracted r i C L riCL r i C L (1.)
Examples
Scenario [i.] -> step-by-step, with flat iCL values
Let's assume that:
a user j is part of 5 Hubs → N = 5
j has allocated 20 iCL points per Hub → i C L [ 1 , 2 , 3 , 4 , 5 ] = 20 iCL_{\tiny [1, 2, 3, 4, 5]} = 20 i C L [ 1 , 2 , 3 , 4 , 5 ] = 20
j joins a 6th Hub, allocating 10 CL points to it → iCL_{\tiny new} = 10
In order to update existing Hubs’ allocation, we'll need to:
Calculate Remaining Points: r i C L = 100 − 10 = 90 riCL = 100 - 10 = 90 r i C L = 100 − 10 = 90
Calculate Sum iCL for existing Hubs: ∑ a i C L t o t = 20 × 5 = 100 \sum{aiCL_{tot}} = 20 \times 5 = 100 ∑ ai C L t o t = 20 × 5 = 100
Calculate Proportions: f i C L h ⋅ = 20 100 = 0.2 ∀ [ h ⋅ ] fiCL_{\tt h \cdot} = \frac{20}{100} = 0.2 \text{ }\forall \text{ } {[\tt h \cdot]} f i C L h ⋅ = 100 20 = 0.2 ∀ [ h ⋅ ]
Recalculate iCL for Existing Hubs: u C L [ h ⋅ ] = 0.2 × 90 = 18 uCL_{[\tt h \cdot]} = 0.2 \times 90 = 18 u C L [ h ⋅ ] = 0.2 × 90 = 18
So each of the 5 original Hubs would have their CL adjusted to 18, and the new Hub would have a CL of 10, maintaining the total at 100.
Scenario [ii.] -> direct calculations, with higher iCL variety
5 Hubs:
i C L [ h ⋅ ] 1 = 16 iCL_{[\tt h \cdot]_{1}} = 16 i C L [ h ⋅ ] 1 = 16
i C L [ h ⋅ ] 2 = 18 iCL_{[\tt h \cdot]_{2}} = 18 i C L [ h ⋅ ] 2 = 18
i C L [ h ⋅ ] 3 = 20 iCL_{[\tt h \cdot]_{3}} = 20 i C L [ h ⋅ ] 3 = 20
i C L [ h ⋅ ] 4 = 22 iCL_{[\tt h \cdot]_{4}} = 22 i C L [ h ⋅ ] 4 = 22
i C L [ h ⋅ ] 5 = 24 iCL_{[\tt h \cdot]_{5}} = 24 i C L [ h ⋅ ] 5 = 24
a i C L t o t = 100 aiCL_{tot} = 100 ai C L t o t = 100
new:
i C L [ h ⋅ ] n e w = 20 iCL_{[\tt h \cdot]_{new}} = 20 i C L [ h ⋅ ] new = 20
u C L [ h ⋅ ] 1 = 16 100 × ( 100 − 20 ) = 0.16 × 80 = 12.8 uCL_{[\tt h \cdot]_{1}} = \frac {16} {100} \times (100 - 20) = 0.16 \times 80 = 12.8 u C L [ h ⋅ ] 1 = 100 16 × ( 100 − 20 ) = 0.16 × 80 = 12.8
u C L [ h ⋅ ] 2 = 18 100 × ( 100 − 20 ) = 0.18 × 80 = 14.4 uCL_{[\tt h \cdot]_{2}} = \frac {18} {100} \times (100 - 20) = 0.18 \times 80 = 14.4 u C L [ h ⋅ ] 2 = 100 18 × ( 100 − 20 ) = 0.18 × 80 = 14.4
u C L [ h ⋅ ] 3 = 20 100 × ( 100 − 20 ) = 0.20 × 80 = 16.0 uCL_{[\tt h \cdot]_{3}} = \frac {20} {100} \times (100 - 20) = 0.20 \times 80 = 16.0 u C L [ h ⋅ ] 3 = 100 20 × ( 100 − 20 ) = 0.20 × 80 = 16.0
u C L [ h ⋅ ] 4 = 22 100 × ( 100 − 20 ) = 0.22 × 80 = 17.6 uCL_{[\tt h \cdot]_{4}} = \frac {22} {100} \times (100 - 20) = 0.22 \times 80 = 17.6 u C L [ h ⋅ ] 4 = 100 22 × ( 100 − 20 ) = 0.22 × 80 = 17.6
u C L [ h ⋅ ] 5 = 24 100 × ( 100 − 20 ) = 0.24 × 80 = 19.2 uCL_{[\tt h \cdot]_{5}} = \frac {24} {100} \times (100 - 20) = 0.24 \times 80 = 19.2 u C L [ h ⋅ ] 5 = 100 24 × ( 100 − 20 ) = 0.24 × 80 = 19.2
∑ [ h ⋅ ] = 1 5 = 80 + 20 → 100 \displaystyle \sum_{[\tt h \cdot] = 1}^{5} = 80 + 20 \rightarrow 100 [ h ⋅ ] = 1 ∑ 5 = 80 + 20 → 100
Sequence Diagram