DEV Community

Cover image for The Hidden Cost of Cheap: Why I Stopped Arguing with Low-Ball Clients
Frank Oge
Frank Oge

Posted on

The Hidden Cost of Cheap: Why I Stopped Arguing with Low-Ball Clients

It’s the most common objection in the freelance world. You’ve spent an hour on a discovery call, mapped out a technical architecture, and presented a fair quote. Then comes the line:
​"I can find someone on [Freelance Site] to do this for 20% of your price."
​In the past, I would have panicked. I would have started justifying my hourly rate or, worse, offered a discount.
​Today? My answer is simple: "Okay. I understand. Good luck with the project."
​Here is why "Okay" is the most powerful word in a senior developer's vocabulary, and why competing on price is a race to the bottom that you don't want to win.
​1. Price is What You Pay, Cost is What You Endure
​In software, a low initial price is almost always a down payment on future technical debt.
When a client hires the "cheapest" option, they aren't just saving money; they are often buying:
​Brittle Code: Lack of tests and poor architecture that breaks under load.
​Communication Gaps: Endless back-and-forth because the developer doesn't understand the business requirements.
​The "Do-Over" Tax: Eventually, they will have to hire a professional (like you) to delete the cheap code and rebuild it from scratch.
​2. You are an Asset, Not an Expense
​Low-ballers view developers as a "cost center"—like office supplies or electricity.
High-value clients view developers as "revenue generators."
​If your software is going to automate a $100k/year process, it doesn't matter if you charge $5k or $10k. The value is in the result. If a client can't see that, they aren't looking for a partner; they are looking for a pair of typing hands. You don't want that contract.
​3. The Comparison Table
​When a client tries to low-ball you, keep this internal table in mind. It will give you the confidence to say "No."

The Cheap Developer The Professional Engineer
Focuses on "Features" Focuses on "Business Outcomes"
Writes code that "Works for now" Writes code that is "Maintainable and Scalable"
Needs a micro-managed checklist Needs a high-level goal
Is a liability (Risk) Is an investment (Growth)

Conclusion
​When you say "Okay" to a low-baller, you aren't being arrogant. You are protecting your schedule for the clients who actually value high-performance software.
​The best clients don't want the cheapest developer; they want the developer who makes the problem go away the first time.

​Hi, I'm Frank Oge. I build high-performance software and write about the tech that powers it. If you enjoyed this, check out more of my work at frankoge.com

Top comments (0)