# Staking Calculations

### Calculating weekly voSPOOL accrual

The accrued voSPOOL per week depends on the amount of SPOOL Tokens staked. The formula for calculating how much voSPOOL is accrued per week (epoch) is the following:
voSPOOLperWeek = 1/156 * stakedSPOOLTokenAmount

### Calculating total voSPOOL accrued

The total accrued voSPOOL depends on the time staked in weeks (epochs) and the amount of SPOOL Tokens staked.
totalvoSPOOLaccrued = min(weeksStaked/156, 1) * stakedSPOOLTokenAmount
The minimal function is added because after 3 years / 156 weeks (epochs) the amount of voSPOOL equals the amount of SPOOL Tokens staked and, therefore, stops increasing.

### Calculating the amount of SPOOL received for staking SPOOL

The amount of SPOOL Tokens received per period depends on the amount of SPOOL Tokens distributed in that period, the amount of SPOOL Tokens the User has staked and the total amount of SPOOL Tokens staked. The formula for calculating the amount of SPOOL a given User will receive in a given period can be found below:
SPOOLReceived = stakedSPOOLTokenAmount / totalStakedSPOOLAmount * SPOOLToBeDistributed

### Calculating the amount of rewards for staking SPOOL

Calculating the amount of reward tokens (irrespective of which token that would be), is done through the same formula used in calculating the SPOOL received for staking SPOOL:
rewardTokenReceived = stakedSPOOLTokenAmount / totalStakedSPOOLAmount * rewardTokenToBeDistributed

### Calculating the amount of SPOOL/DAI LP for staking SPOOL

Calculating the amount of SPOOL/DAI LP received , is done through the same formula used in calculating the SPOOL received for staking SPOOL:
LPTokensReceived = stakedSPOOLTokenAmount / totalStakedSPOOLAmount * LPTokensToBeDistributed