---
tags: Spec-Revenue-Sharing
---
# Revenue Sharing Policy Options
## Regular Policies Table
<table>
<tr>
<th>Policy</th>
<th>Option 1</th>
<th>Option 2</th>
<th>Option 3</th>
<th>Implementation</th>
</tr>
<tr>
<td>
Delegator Join Check
</td>
<td>
<a href="#1.-None-DJC">None</a>
</td>
<td>
<a href="#2.-Maximum-Stake">Maximum Stake</a>
</td>
<td>
<a href="#3.-Broker-Whitelist">Broker Whitelist</a>
</td>
<td>
</td>
</tr>
Whitelisting could be a module; max stake maybe a config param on the BrokerPool
<tr>
<td>
Pool Maximum Allocation
</td>
<td>
<a href="#1.-None-PMA">None</a>
</td>
<td>
<a href="#2.-Maximum-Staking">Maximum Staking</a>
</td>
<td>
</td>
<td>
</td>
</tr> max stake maybe a config param on the BrokerPool
<tr>
<td>
Delegator Invest
</td>
<td>
<a href="#1.-Simple-Investment">Simple Investment</a>
</td>
<td>
<a href="#2.-Bonding-Curve-Investment">Bonding Curve Investment</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Yield
</td>
<td>
<a href="#1.-Simple-Yield-Policy-IB">Simple Yield Policy IB</a>
</td>
<td>
<a href="#2.-Simple-Yield-Policy-Pool">Simple Yield Policy Pool</a>
</td>
<td>
<a href="#3.-Simple-Yield-Policy-Mixed">Simple Yield Policy Mixed</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
Slashing Penalty Allocation
</td>
<td>
<a href="#1.-None-SPA">None</a>
</td>
<td>
<a href="#2.-Broker-Penalty">Broker Penalty</a>
</td>
<td>
<a href="#3.-Pool-Value-Decrease">Pool Value Decrease</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Divest Check
</td>
<td>
<a href="#1.-None-DDC">None</a>
</td>
<td>
<a href="#2.-Time-Requirement">Time Requirement</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Maximum Withdraw
</td>
<td>
<a href="#1.-All-Free-Funds">All Free Funds</a>
</td>
<td>
<a href="#2.-Minimum-Funding">Minimum Funding</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Divest
</td>
<td>
<a href="#1.-Retirement-Only-Divest">Retirement Only Divest</a>
</td>
<td>
<a href="#2.-Bonding-Curve-Divest">Bonding Curve Divest</a>
</td>
<td>
<a href="#3.-Available-Funds-Only">Available Funds Only</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Retirement
</td>
<td>
<a href="#1.-Retirement-Pool-with-Debit">Retirement Pool with Debit</a>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Decrease Stake
</td>
<td>
All Stake Returned
</td>
<td>
Debits Paid off First
</td>
<td>
Mixed Policy
</td>
<td>
</td>
</tr>
</table>
## Regular Policies Definitions
### Delegator Join Check
This policy maps a delegator and pool to a boolean value which says whether or not a delegator is allowed to join a pool.
#### 1. None DJC
Any delegator is able to join any pool at any time.
#### 2. Maximum Stake
This policy returns true only if the maximum stake is not reached for a given pool.
#### 3. Broker Whitelist
This policy returns true if a broker is within the broker whitelist.
### Pool Maximum Allocation
This policy controls what the maximum allocation a delegator may put in is. It takes the amount of a delegator has sent as maximum allocation and returns the minimum of that number and the policy number.
#### 1. None PMA
There is no maximum allocation of funds and thus it will just return what the delegator put as maximum allocation.
#### 2. Maximum Staking
A parameter for maximum stake will dictate the maximum amount of funding a pool will have. Thus a delegator will be capped if the difference between the current funding and max funding is less than what the delegator is trying to allocate.
### Yield
This policy maps how the broker revenue is disbursed between debits, the broker itself, and the delegators who have staked on the broker.
#### 1. Simple Yield Policy IB
The simple yield policy takes all revenue and first pays off any debits if debits are implemented. After that it is split between the owner share and the delegator share mapped to the internal balances in the vault.
#### 2. Simple Yield Policy Pool
The yield is paid out for the owner share and the rest all goes into pool value.
#### 3. Simple Yield Policy Mixed
A parameter decides the amount of the yield that gets allocated as the simple yield to internal balance policy and the amount to be allocated to the simple yield pool policy.
### Delegator Retirement
This policy takes care of how the delegators can retire from their delegations.
#### 1. Retirement Pool with Debit
When a delegator retires, they are moved to a retirement pool and their stake for each broker becomes a debit which is paid over time. Once the debits are all paid off they are removed from the retirement pool.
### Slashing Penalty Allocation
This policy allocates the penalties from a broker being slashed between the broker and current delegators.
#### 1. None SPA
Nothing is done to account for the slashing.
#### 2. Broker Penalty
The broker is penalized for the slashing by slashing their balance or adding a debit for them to pay.
#### 3. Pool Value Decrease
The slashing hits the pool value directly and is subtracted out.
### Delegator Invest
This policy controls how the investment from a delegator is translated to shares owernship in the broker pool.
#### 1. Simple Investment
Under simple investment, every time a delegator delegates to a broker, a new amount of shares is created which reflects how much money they put in regardless of number of shares or timing.
#### 2. Bonding Curve Investment
Under a bonding curve, the shares given to a delegator is computed from a bonding curve leading to a larger price per share over time.
### Delegator Divest Check
This policy returns a boolean value for whether or not a delegator is allowed to divest.
#### 1. None DDC
Any time a delegator can divest.
#### 2. Time Requirement
A delegator is required to have been in the pool for a designated amount of time.
### Delegator Maximum Withdraw
This policy returns the minimum of the maximum decided by the system and what the delegator is asking to withdraw.
#### 1. All Free Funds
All of the free funds can be withdrawn.
#### 2. Minimum Funding
There is a minimum funding amount as a parameter and only free funds in excess of this can be withdrawn.
### Delegator Divest
This policy controls the mechanics of how divestment works for the delegators.
#### 1. Retirement Only Divest
With this policy, the delegators are not allowed to withdraw ever unless they are retiring from the system completely.
#### 2. Bonding Curve Divest
Under this policy, a bonding curve is used to determine shares to be withdrawn by a delegator. The transaction can either be put to a debit on the broker pool or immediate fund withdraws.
#### 3. Available Funds Only
This policy allows for exchanging of pool tokens only for funds that are free within the pool at a given time.
## Behavioral Policies Table
<table>
<tr>
<th>Policy</th>
<th>Option 1</th>
<th>Option 2</th>
<th>Option 3</th>
</tr>
<tr>
<td>
Broker Joining Behavior
</td>
<td>
<a href="#1.-Simple-Broker-Joining-Behavior">Simple Broker Joining Behavior</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Broker Leaving Behavior
</td>
<td>
<a href="#1.-Simple-Broker-Leaving-Behavior">Simple Broker Leaving Behavior</a>
</td>
<td>
<a href="#2.-No-Broker-Leaving-Behavior">No Broker Leaving Behavior</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Joining Behavior
</td>
<td>
<a href="#1.-Simple-Delegator-Joining-Behavior">Simple Delegator Joining Behavior</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Leaving Behavior
</td>
<td>
<a href="#1.-Simple-Delegator-Leaving-Behavior">Simple Delegator Leaving Behavior</a>
</td>
<td>
<a href="#2.-No-Delegator-Leaving-Behavior">No Delegator Leaving Behavior</a>
</td>
<td>
</td>
</tr>
<tr>
<td>
Delegator Allocation Behavior
</td>
<td>
<a href="#1.-Simple-Delegator-Allocation-Behavior">Simple Delegator Allocation Behavior</a>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Broker Staking Behavior
</td>
<td>
<a href="#1.-Simple-Broker-Staking-Behavior">Simple Broker Staking Behavior</a>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
## Behavioral Policies Definitions
### Broker Joining Behavior
This behavioral policy underpins assumptions of how quickly brokers are joining the revenue sharing system.
#### 1. Simple Broker Joining Behavior
It only returns either the number 0 or 1 (new brokers) and the probability of a new one is based upon 1-n/20 where n is the number of brokers.
### Broker Leaving Behavior
This behavioral policy underpins assumptions of how quickly likely brokers are to leave.
#### 1. Simple Broker Leaving Behavior
The simple broker leaving behavior gives each broker a 1/50 chance of leaving each period.
#### 2. No Broker Leaving Behavior
In this broker behavior there is no leaving for brokers.
### Delegator Joining Behavior
This behavioral policy underpins assumptions of how quickly delegators are joining the revenue sharing system.
#### 1. Simple Delegator Joining Behavior
It only returns either the number 0 or 1 (new delegators) and the probability of a new one is based upon 1-n/20 where n is the number of brokers.
### Delegator Leaving Behavior
This behavioral policy underpins assumptions of how quickly likely delegators are to leave.
#### 1. Simple Delegator Leaving Behavior
The simple delegator leaving behavior gives each delegator a 1/50 chance of leaving each period.
#### 2. No Delegator Leaving Behavior
In this delegator behavior there is no leaving for brokers.
### Delegator Allocation Behavior
This behavioral policy underpins assumptions of how delegators allocate their capital.
#### 1. Simple Delegator Allocation Behavior
The simple delegator allocation just gives all currently unused funds a delegator has to all brokers split evenly.
### Broker Staking Behavior
This behavioral policy underpins assumptions of how quickly brokers deploy stake to different streams.
#### 1. Simple Broker Staking Behavior
In the simple broker staking behavior all funds are immediately allocated to staking.