I've a friend who runs a small startup, and has run into an issue with a freelancer he was trying to hire to refactor & improve their mobile codebase. He had a limited budget and so was trying to figure out how much could be done within that budget.
He had a few phone discussions with the developer and gave them access to their repository so they could look over the code. He was upfront about what his budget was (which to be honest is fairly low, but he offered to bolster it with equity only if the freelancer was open to it). He didn't make any sort agreement about payment at that point and was going to talk about that after the freelancer provided the estimate.
A few days later the freelancer sent a quote with a couple of different options, one being 3 times the original budget and the other being more than 6 times. They stated they didn't want to refactor the code and that they advised a re-write instead, and based the quotes on that. They didn't provide any sort of detailed analysis or code review, other than stating that they didn't like it. My friend responded stating that their quotes were much too high and therefore wouldn't engage their services.
The freelancer responded by sending a bill for 16 hours of time to write up the estimate and investigate, at a rate they had discussed for development work but hadn't agreed to. They don't have any formal or informal agreement about payment for the estimate.
My friend isn't really sure what to do about this as the bill for the estimate would eat up a significant part of the development budget, and he feels that if the freelancer had wanted to bill them for time to provide an estimate they should have discussed that before the freelancer started on it (as he would have refused at that point).
He doesn't want to pay this but also doesn't want to be dragged into small claims court or have the freelancer give him a bad name in the relatively small local development community. In this situation should he have to pay the freelancer?