I switched from consulting to a company. In short contracting is a headache if what you care about is doing good tech work.
Rates in the contract world represent a lot of overhead and headaches you experience there:
1. Payment risk: chances someone doesn’t pay you is surprisingly high. A lot of time is just spent chasing down your money.
2. Poor payment terms: being able to bill after 30 days of work is actually seen as generous. More and more you see 45, 60 or even 90 day terms. And clients are always playing dumb cash flow games
3. Invoicing and tracking time is not fun: There’s a lot of overhead following some clients invoicing rules and time tracking. Then you can get questioned non stop about why you spent hours on this or that.
4. Employer tax: in the US if you’re self employed you pay the employers share of Medicare and social security.
5. Health insurance: in the US you need to purchase your own private health care. This can be quite a lot if you have a family. I know outside the US, in some places, private health insurance can also be needed for other reasons.
6. Sales and marketing overhead: the work to attract clients and close deals is pretty substantial and out of your pocket.
7. Relationship work: you are always paranoid about the relationship with the client. You’re first to go if money gets tight for them. And often clients don’t communicate their grievances with vendors, they just fire them. The trust building to get good feedback is very substantial.
8. Project management: in my experience clients aren’t good at managing contractors work. You have to take a bunch of this work on yourself to help organize the work and show transparently what’s getting done. If you have any subcontractors or work on a larger team, this gets substantial and clients don’t always understand why you bill for it (though we always did).