Many people confuse being a contractor with being a consultant. The first difference is that a consultant realizes that customers don’t always know what they need but they almost always think they know what they want. Sure, some contractors have figured this out too. The second difference is that a consultant has the integrity to care about giving a customer what they need, not what they want.
This distinction is why consultants charge for results and contractors charge for effort.