I go mostly on gut instinct, comparable sales, and whatever information I have about the buyer (industry, location, potential use for the name). I don't use a formula. Since about 80% of my sales are on Sedo, I usually have little information about the buyer besides location, but you can sometimes hazard a guess based on a who owns other extensions. The other 20% are people who email me directly, and in that case, I Google everything I can find about them, and try to decipher how badly they want the name.
It also depends on how I'm feeling that day, and how "motivated" I feel to have a sale at that time.
There is always some negotiating involved, except if a name is priced BIN. I've had well-intentioned, deep-pocketed buyers start out low. If they want the name badly enough, it will show in their responses, even when they say things like "this domain isn't even worth that much." If it wasn't worth that much, you wouldn't still be emailing me and trying to buy it.