I do not think it's a good way to drive shareholers to vote by just giving Delegates incentives to push it because it's low efficient. If we want people to vote, it's better to give them incentives directly instead of let Delegates to do it. So I believe we should do this with hard-coded:
1. For every new wallet, people must vote all their shares in like one week(set proper blocks number), if you do not vote, after that(one week), you will lose 5% of the shares in this wallet. We could call this as "iniital vote".
2. After the initial vote or penalty complete, you need to update you vote quaterly(I think yearly is too long), or you will lose 5% shares in this wallet every time.
EDIT for voting incentive: after further discussion with others, I realized that give penalty to these inactive acounts is not a good idea since it's too unfriendly and it may bother users all the time even we think voting is an important duty for everyone. Actually, like Gulu mentioned below, I start to believe financial penalty/award is not a correct way for voting incentive. I suggest we do like this:
Make a status remark for every account to show if it has voted or not, when is its last time to update its votes, and maybe the persentage of voted shares in this account. Make this information listed beside every acount name shows in everyone's wallet clearly and publicly. This may be just a small incentive, but it could be helpful, it's not unfriendly, it's easy to implement. By just doing this, we could not increase the voting rate to like 60% or more, but high voting rate like 60%+ should not be really necessary to the system at all.
EDIT END.
For encouraging the Delegates to compete each other and try to clime up on the Delegates list, I think current mechanism already works in an effective way. To make it even better, we could make the delegates maxiam pay rate limitation linked to their position in the list directly. Like set the maxiam pay rate limitation of No.1 Delegate as 100%, No. 2 as 99.5%, and reduce it by 0.5% of each postion down. For the Delegates in backup list, we could make it w/ discount fixed payrate, like set No.102 delegets to have 49.5%*10%=4.95% fixed payrate every round, and so there will be 99 paid backups in the row(from 4.95% to 0.05%), and these money could be covered by which we reduced from top 101 pay rate.
As for penalty for bad performance, I think the most important thing is have some automatic machanism to stop the bad performance immediately and make the Delegates have fianance loss meanwhile. For example, if one delegates missed x(may set it lower than 5) blocks continously, stop its right of block production immediately, make all the votes on it invalid until those votes get updated by shareholders. We could also set a maximum cumulative block miss for each Delegate and implement similar penalty. And meanwhile, we could set the cumulative record clear(to 0) like every month or quaterly. We could define more rules w/ similar or different penalty(from stop block production right by 24 hours to ban the delegate forever). The key is too have automatic way to stop the bad performance and/or attack immediately instead of waiting for shareholders to vote them out, which will not happen in minutes or hours for sure. And of couse, the behaviors restriced by these automatic mechanism should be simple/clear enough as "bad performance" or "attack" and get the community in agreement before it implemented into system.
In my view, the proposals above are more effective/simple, so want to share with you for discussion. Thanks.