Your first point is solid. On your second, I don't think the rate is tied to cost of living. It is setting a minimum rate necessary before the contract isn't profitable. The formula is:
When negotiating with customers, the formula will be:
Offer Rate = (Potential Salary * 1.25) / 1000
Potential Salary is the area where your value is estimated. Since the customer will likely negotiate down, the minimum rate is simply the point that one should never go below.
No. "Potential salary" is a number based on a salary. Salaries are discounted almost arbitrarily because they include a long-term commitment from the client (employer) to the vendor (employee). How big that discount is depends on a lot of different factors, but: a 2-year 40-hour-a-week commit from a client at my last company would have garnered you a pretty freaking enormous discount.
You have to see the whole picture. There is always more being transacted than simply dollars for lines of code. When you grok that, you see that "salary" does not make sense as the "free variable" in your valuation equation.
Genuinely wondering what commitment you're speaking of. I've worked for some big names, in several states, but my employment has never had any commitment attached to it by the Employer.
If a company extended you a full-time job offer knowing that they were only going to use you for 2 months and then get rid of you, you'd be pissed, and so would HN when you told them about it. People would be disinclined to accept job offers from that company, once they found out what happened.
Legal commitment isn't the only kind of commitment.
Understandable, but I've seen several people let go because they didn't mesh with a company culture, within a probational period, and I think if it were me I wouldn't hold any hard feelings if such a thing were to happen.
In a situation where everyone is negotiating in good faith, when a company offers you full time salaried employment they're expecting you to stick around for awhile. Depending on the company, this could be a year, two years, ten years. They don't expect to terminate your employment themselves. That's the commitment tptacek is speaking of. They're committing to buying all of your available work hours for an semi-defined period of time in exchange for a regular paycheck. Their legal commitment to you is generally extremely limited, but also not relevant to this discussion.
In consulting/contracting/freelancing terms, if a client accepts a multi-year retainer with a large number of hours, you'll likely give them a bit of a discount relative to your normal everyday rate. They're committing to continuing your business relationship for the duration of the contract, even though the contract will almost always state that either side can end it at any time with a certain amount of notice (just like full time salaried employment).
Basically $100/hour is a nice round number that seems to be roughly in line with the market for line of business application programming on a consulting basis. More specialized programming that requires particular problem domain expertise can command much higher rates, basically inversely correlated with the number of other devs who are able to do it.
Minimum Rate = (Potential Salary * 1.25 – Freedom Tax) / 1000
When negotiating with customers, the formula will be:
Offer Rate = (Potential Salary * 1.25) / 1000
Potential Salary is the area where your value is estimated. Since the customer will likely negotiate down, the minimum rate is simply the point that one should never go below.