if pool on current round does not find a block, miners shares are keep (up to 50 blocks), but their value is reduced by 50% everytime we dont found a block. when pool has positive balance, all share are summed up to block# where payment will be made, and burst payment are made proportional to total share miners own up to this time
if pool has a balance (lets say 10000 burst), 5000 are distributed for miner proportional to their shares up to current block as payment, the rest 5000 burst will be allocated and paid for next round, (whether we found a block or not), this allocation continue until pool balance is drained out
deadline value from miner is converted into share value using this equation
share = 1000 / ( NetDiff * Deadline + 1 ) 0.75
where NetDiff (network difficulty) is calculated by Block0-BaseTarget / Block#N-BaseTarget
note : to prevent user spamming low share, we implement share penalty of -0.001 on each submission for miners who submit nonce that has higher deadline than their (current round) own best deadline, as spamming low share is no use since pool will always pick one best deadline for every submitted nonce per round.