A lot of these issues only arise if you're assuming you need to create some sort of master pay system that is "fair." We all know in practice that decisions like pay can be based on the environment at the the time of hiring, or other random variables.<p>For example, an engineer may get hired at a time when there is a high supply and relatively low demand, and is only able to negotiate a salary of $100k. 5 years later, because of the relative shortage of engineers, a junior engineer is hired at $130k, while the the more senior engineer is now only making $120k.<p>Of course, trying to come up with a master system to adjust for something like that will be impossible, as this article points out (using a hypothetical move from a higher cost location to a lower cost location). The company will not adjust the senior engineers salary until he puts up a fight and comes in with competing offers.<p>What this suggests is perhaps that the most effective and fair system is no system at all, one that remains dependent individual actors (or businesses) trying to get the best deal that they can for themselves. This is, in practice, what is happening now, but we wouldn't have any expectation of every company trying to create some sort of formula to determine what is "fair."<p>This means sometimes that you will be hurt by environmental factors (say you quit or get fired in a down market in your field), but other times you may cash in (maybe the senior guy at your company quits and you have the opportunity to leverage that into a much higher salary for doing his job).<p>Trying to make some master system that is "fair" and will work in all circumstances just seems silly. The market is perhaps a good arbiter of value on a broad scale over long time periods, but in more localized environments and shorter time spans, it is far more random. Thus, the best personal system in my mind is one in which we can take advantage of the randomness when possible, and learn to handle the inevitable downsides as well.