Recently I was in a meeting with a potential client discussing some issues they were facing and how they thought they can resolve. One of the solutions they want implemented is a Bonus system to reward a particular behaviour, they also wanted to add an element of retention to it by deferring this award so that people look forward to staying that extra duration to get the bonus.
Many a times companies end up trying to achieve too many things from one program, thereby losing track of the actual intent too in the bargain.
One of the things to note is that the bonus does not on its own drive the behaviour, but the communication around it, the messaging of the managers, the show of intent by leadership, the support of the performance program and many others things have to contribute to making any of these programs successful. Hence just getting a bonus program in place does not help at all unless backed with many other things. Similarly retention can't be achieved by deferring payouts, one has to carefully think about various other aspects of the job that need to be addressed to achieve retention.
Hence my advice is to follow one simple principle. Each program has its specific purpose, fixed pay is to provide for doing a job at the target level, variable pay is to drive particular intended behaviours, Stocks are for creating sense of ownership in the company, deferred payouts are ways of retention, use them for these purposes and back them up with other initiatives to ensure that people find them interlinked with all the other objectives they have to meet.
Also don't try to do too many things with each program, let them focus on one aspect which will give the best returns.