Announcement is good, honesty is good, punishment for higher ups is absolutely required (and announced), future plans need to be announced on how to save the company financially and ensure those who stay won't have a problem in a near future.
In my situation you end up with the 'worst' half, but they're also the ones least likely to leave since they have fewer prospects.
Of course, in the current climate with so much bad news, the optimism about finding a new job might be curtailed.
That's sort of my assumption right now, but while enough are still here I plan to see if I can make it work for them.
I realize that we want layoffs to be humane, but putting the company in a worse spot than it is at present doesn't help anyone.
We have our own ideas about who we would like to stay (I mean, aside from "everyone" :( ), but we plan to tell everyone the severance package so that anyone we want to stay can still make their own decision with all the info.
This means then we need an idea of "if X doesn't stay, who Y should we ask to stay instead?", which comes uncomfortably close to stack-ranking.