Career

Why Engineers Systematically Underprice Their Own Work

A client asks how long a fix will take. The honest answer is twenty minutes. The number that comes out of your mouth is too low, and you know it's too low before you've finished saying it. That gap isn't a math error — it's anchoring, the effort heuristic, and impostor syndrome, all pulling the same lever.

Published February 7, 202611 min readUpdated Feb 7, 2026

Written by · Full-Stack Agentic AI Software Engineer — AI Agents, Automation & Revenue Systems for GTM/RevOps teams

In brief

Why do engineers consistently price their own work below what clients would actually pay, even when they know the market rate?

Because the number gets anchored to the wrong reference point before any real pricing logic runs. Ariely, Loewenstein and Prelec's 2003 anchoring experiments showed that even arbitrary, irrelevant numbers pull willingness-to-pay judgments toward them and the effect persists across repeated choices. Kruger, Wirtz, Van Boven and Altermatt's 2004 'effort heuristic' research found people rate a work's value by how much effort it visibly took to produce — which works against you specifically when you have private knowledge that a fix only took twenty minutes. And Clance and Imes's 1978 clinical work on the impostor phenomenon describes high performers who attribute their results to luck rather than skill, which shows up commercially as a habit of pricing to match self-doubt instead of value delivered. None of these are the tactical question of how to build a fixed-scope quote — that's a separate, mechanical problem. This is the number you're anchored to before scoping even starts.

  • Anchoring effects on willingness-to-pay are documented even for numbers with zero logical connection to the price, per Ariely, Loewenstein and Prelec's 2003 Quarterly Journal of Economics study
  • The effort heuristic (Kruger et al., 2004) means people value work by perceived effort — and you are the one person who knows exactly how little effort a fix took, which drags your own price down where a client's price would stay high
  • Clance and Imes's 1978 impostor phenomenon research describes attributing success to luck rather than skill; commercially this becomes pricing to match self-doubt, not value delivered
  • The 'if it only took twenty minutes it can't be worth $500' fallacy conflates your cost to produce with the client's value received — two numbers that have no required relationship
  • This is the psychology underneath pricing, not the scoping mechanics — for the tactical side, see the companion post on pricing fixed-scope work

Evidence notes

Ariely, Loewenstein & Prelec — 'Coherent Arbitrariness: Stable Demand Curves Without Stable Preferences' (Quarterly Journal of Economics, 2003)

Six experiments in which participants first wrote down the last two digits of their Social Security number, then bid on ordinary consumer goods (wine, keyboards, books, chocolate). Bids correlated strongly with the arbitrary anchor: people in the top 20% of SSN digits bid 216-346% more than those in the bottom 20%, despite the anchor having no logical connection to the goods' value.

Kruger, Wirtz, Van Boven & Altermatt — 'The Effort Heuristic' (Journal of Experimental Social Psychology, 2004)

Three experiments (a poem, a painting, a suit of armor) in which participants rated quality, value and liking higher when told the object took longer to produce, holding the object itself constant. The effect was strongest when quality was otherwise ambiguous — exactly the condition of most freelance and consulting work.

Clance & Imes — 'The Imposter Phenomenon in High Achieving Women: Dynamics and Therapeutic Intervention' (Psychotherapy: Theory, Research and Practice, 1978)

The original clinical paper describing high-achieving individuals who persistently attribute their success to luck, timing or deception of others rather than to competence, despite external evidence of skill. Later work extended the phenomenon beyond the original sample; the mechanism — discounting one's own competence — is the one this post applies to pricing.

Continue with purpose

A client asks how long a fix will take. The honest answer is twenty minutes. The number that comes out of your mouth is $150, because that felt like a lot of money for twenty minutes, and it's the wrong number by an order of magnitude, and some part of you knows it's wrong before you've finished saying it.

This isn't a one-off mistake. Ask around and most freelance engineers, consultants and contractors have a version of this story, usually several. The pattern is stable enough that it isn't really a pricing problem at all. It's a psychology problem wearing a pricing problem's clothes, and the fix is not a better spreadsheet. For behavioral economics framed around revenue rather than architecture, is the better starting point. For behavioral economics framed around revenue rather than architecture, XenGrowth's revenue operations work is the better starting point.

Why the anchor is the wrong number

Dan Ariely, George Loewenstein and Drazen Prelec ran an experiment in 2003 that should unsettle anyone who thinks their prices are set by rational calculation. Participants wrote down the last two digits of their Social Security number, then bid on ordinary items — a bottle of wine, a keyboard, a box of chocolates. The SSN digits have nothing to do with any of those things. And yet bidders in the top 20% of digit values bid 216 to 346% more than bidders in the bottom 20%, across six separate experiments. The anchor was arbitrary and the effect was real.

Now replace the SSN digits with your last salary, or the first number a mentor told you freelancers charge, or the fee your least confident client pushed back on hardest. None of those numbers describe what your current work is worth to your current client. They're just the number sitting closest to hand when you have to say something out loud. Anchoring doesn't require the anchor to make sense — it just requires it to be first. This is a different question from how to scope and quote a fixed project, which assumes you've already got a defensible starting number. This post is about where that starting number actually comes from, and why it's usually wrong.

The effort heuristic runs backward on your own work

Justin Kruger, Derrick Wirtz, Leaf Van Boven and William Altermatt published a paper in 2004 called, plainly, 'The Effort Heuristic.' Across three experiments — a poem, a painting, a suit of armor — they showed people the exact same object but varied how much effort they were told went into making it. Told it took longer, participants rated it higher in quality, value and how much they liked it. The object never changed. Only the story about the labor behind it did.

The effect was strongest when the true quality was ambiguous, which is nearly every consulting deliverable that isn't a load-bearing production system somebody can watch fall over in real time. Here's the part that should bother you specifically: you are the one person in the transaction who knows exactly how little effort the twenty-minute fix took. A client without your context sees a solved problem. You see the clock. The heuristic that would normally inflate a stranger's valuation of your work runs in reverse on you, because you're grading your own price against information the client never had and never needed. works through the operations side of this in more operational detail. The XenGrowth resource library works through the operations side of this in more operational detail.

What you're computing

What it feels like

What actually sets the price

Hours spent typing

A fair, honest number

Irrelevant to the buyer's decision

Difficulty of the problem for you

Modesty, not wanting to overcharge

Irrelevant — the buyer can't solve it themselves, which is the whole reason they're paying

Risk removed or revenue unlocked for the client

Feels presumptuous to name a number this size

This is the actual input to a rational price

What the client would pay elsewhere or lose by not fixing it

Feels like a sales tactic, uncomfortable

This is the market's real ceiling, and it's usually far above your first number

There's a reason this table matters more than it looks like it should. Most pricing advice tells you to 'charge based on value,' as if that were a switch you flip. It isn't a switch, because the effort heuristic keeps generating a competing number in the background — the hours number — and that number feels more honest precisely because it's yours. Value-based numbers feel invented. Cost-based numbers feel earned. The uncomfortable truth is that the earned-feeling number is the one with no bearing on what the client should pay.

Scenario

Cost-based instinct

Value-based reality

A one-line config fix that stops silent payment failures

$100-200, priced on minutes spent

Whatever the leaking transaction volume is worth per week the bug ran undetected

A script that automates a weekly two-hour manual report

A few hundred dollars, priced on build time

Roughly the annual cost of the two hours multiplied across every week it saves, plus the error rate it removes

An architecture review that finds a scaling ceiling before launch

A day rate, priced on hours in the room

The cost of the outage or re-platform the client avoids by catching it early

Imposter syndrome isn't a confidence problem, it's a pricing problem

Pauline Clance and Suzanne Imes published the original clinical description of the impostor phenomenon in 1978, based on their work with high-achieving women who persistently attributed their accomplishments to luck, charm or having fooled everyone, rather than to skill — despite clear external evidence of competence. Later research extended the finding well beyond that original population. The mechanism is the interesting part: it's not general low self-esteem. It's a specific, targeted discounting of one's own competence that survives contact with proof.

Commercially, that discounting doesn't stay in your head. It shows up as a number. If you privately believe you got lucky, or that a better engineer would have done this faster or cheaper, you price to match the self-doubt rather than the outcome delivered. The client doesn't experience your self-doubt. They experience the outcome. Pricing to your anxiety instead of their outcome is a systematic transfer of value from you to them, and it repeats every time you quote.

The client is not buying your effort. They're buying the fact that they no longer have your problem. Those are different products with different prices, and only one of them is for sale.

The internal-cost fallacy

Put the three mechanisms together and you get a single sentence engineers say to themselves constantly: if it took me twenty minutes, it can't be worth $500. This conflates two numbers that have no required relationship to each other — your cost to produce the fix, and the client's value received from having it fixed. Cost-to-produce is a floor. It tells you the minimum you'd need to charge to not lose money. It says nothing about the ceiling, which is set by what the problem was costing the client to leave unsolved. Companies that get pricing structurally right — the kind writes operator guides about on the revenue-operations side — don't price a fix by the hour it took an engineer. They price it against the revenue at risk, the churn it prevents, or the deal it unblocks, because that's the number the buyer is actually reacting to. On AI agents and marketing automation specifically, is worth reading. On AI agents and marketing automation specifically, XenGrowth on AI agents and marketing automation is worth reading.

A twenty-minute fix that stops a payment integration from silently dropping 3% of transactions is not a $150 line item. It's whatever 3% of that client's transaction volume is worth per week, capitalized over however long the bug would otherwise have run undetected. The engineer's clock and the client's exposure live in completely different units, and only one of those units belongs anywhere near the invoice.

What actually corrects for this

None of the three studies above are about willpower. You can't out-discipline an anchoring effect by trying harder to be rational in the moment you're asked for a number — the whole finding is that the bias operates below the level where trying harder helps. What works instead is changing which number gets anchored on first, before the conversation happens. For the operational version of this — pricing tiers, contingency, discovery-phase billing — the companion piece on pricing a fixed-scope automation project covers the mechanics. This is the layer underneath it.

  1. Write your price before you estimate your hours, not after. Anchor on the client's stated cost of the problem, then check whether your effort estimate changes the number — usually it shouldn't, much

  2. Ask what the problem is costing the client per week it stays broken. That number is almost always larger than your instinct, and it's the number that should anchor the quote, not your hourly rate

  3. Separate the floor from the price out loud, even just to yourself: 'my cost is X, my price is Y' — writing both down breaks the habit of treating them as one number

  4. Notice when you're discounting because of self-doubt versus discounting because of a genuine scoping uncertainty — only the second one is a legitimate reason to lower a number

  5. Get a second opinion on the number from someone outside the engagement, specifically because the effort heuristic is strongest exactly where you have private information nobody else has

There's also a market-level version of this worth naming. Engineers who move from full-time employment into consulting frequently import their old salary, divided into an hourly rate, as the anchor for their new pricing — even though the number was set by an entirely different market with entirely different constraints (headcount budgets, internal pay bands, negotiation against other employees) that have nothing to do with what an outside client would pay for the same skill applied to a specific, painful problem. The salary anchor is comfortable precisely because it's familiar, and familiarity is not the same thing as relevance.

This also explains why raising your rates rarely loses the clients you'd want to keep. A client who was anchored to your old, cost-based number will push back the first time you quote against value instead — that's the anchor doing its job on their side too. A client who actually has the problem you're solving, and who has already priced out what it costs to leave unsolved, tends not to blink, because your new number is still smaller than their exposure. The clients who disappear at a higher price were mostly buying your hours cheap, not your outcome. approaches this from the AI search, GEO and discovery side. XenGrowth on AI search, GEO and discovery approaches this from the AI search, GEO and discovery side.

None of this makes pricing comfortable. It shouldn't — asking for money commensurate with value delivered, rather than with how hard the work felt, is supposed to feel presumptuous the first several times. That discomfort is not a signal you're doing something wrong. It's a signal you're finally pricing against the right number instead of the easy one.

The anchoring, the effort heuristic and the impostor phenomenon aren't three separate failures. They're one failure — treating your own private knowledge of the work as more relevant to the price than the client's actual exposure — showing up in three different literatures. Fix the anchor, and the rest of the quote tends to follow it upward on its own. On the measurement side of pricing conversations, is a useful adjacent read, and their covers the same value-versus-effort question from the buyer's side of the table.

Further reading from XenGrowth

Where this work meets go-to-market

If you price your own engineering work by the value it creates rather than the hours it took, the same discipline pays off on the commercial side of a business. publishes operator guides on exactly that: pricing, packaging and revenue operations built around outcomes instead of effort.

Further reading from XenGrowth

Where this work meets go-to-market

writes for the teams who have to run behavioral economics day to day.

Further reading from XenGrowth

Where this work meets go-to-market

XenGrowth's work on go-to-market systems writes for the teams who have to run behavioral economics day to day.

Test the pricing psychology

Four questions on the research behind why your quotes come in low. The mechanism matters more than the number — that's where the explanations live.

1 / 4
In Ariely, Loewenstein and Prelec's 2003 anchoring study, what number did participants write down before bidding on unrelated consumer goods?

Apply this article

How to turn insights into execution

A practical sequence for teams turning concepts into production outcomes.

PricingPsychologyFreelancingCareerConsultingBehavioral Economicscareer

Audit your current state

Map the bottlenecks and constraints connected to the article’s core problem.

Choose one bounded change

Test the most useful recommendation on one workflow before widening the scope.

Measure what changed

Keep the parts that improve the work, document what failed, and make the next decision from evidence.

Next step

Need help applying this in your stack?

I can translate these patterns into a concrete implementation plan for your team.

Discuss implementationBack to blog

Replies usually within 24 hours.

Next Steps

Continue reading

Should You Bill by the Hour or by the Outcome?

A client asks for a number. You can quote your hours or you can quote the size of the problem you're removing, and those aren't two prices for the same thing — they're two different contracts that select for two different clients before anyone has signed anything.

Navigate

How Much Should You Pay a Freelance AI Developer?

Expert pricing guide for hiring freelance AI developers. Navigate rates, red flags, and what experience levels deliver.

Navigate

How Do You Say No to a Client Without Losing Them?

Most 'no' conversations fail for one of two reasons: the engineer says yes to avoid the conversation, or says no with nothing behind it. Neither is a negotiation. A framework from Harvard's Program on Negotiation, and 52% of projects that report scope creep, explain why.

Navigate

How Do You Scope a Project So It Doesn't Eat You Alive?

The most-cited scoping statistic in software — a 16% project success rate — comes from a 1994 survey whose own authors' later critics called the definitions misleading. The number is shaky. The reason scoping fails anyway is not.

Navigate

How Do You Build a Reputation That Brings Work to You?

Cal Newport's 'craftsman mindset' argument says the passion-first advice for building a reputation has the causality backwards. Kevin Kelly's '1000 True Fans' essay adds the scale: you need thousands of people who trust you, not millions who've heard of you.

Navigate

How to Price a Fixed-Scope Automation Project as a Freelancer or Agency

Stop underpricing automation work. Learn how to build defensible pricing for fixed-scope projects that protect margins and set clear expectations with clients.

Navigate

How to Structure a Discovery Call for an Automation Project

A structured discovery call separates automation projects that fit your expertise from those that don't. Learn the framework to uncover real problems, qualify scope, and set realistic expectations.

Navigate

Why Every Developer Should Learn Basic Self-Hosting

This isn't a pitch to move your production app off Vercel. It's an argument that not knowing what a reverse proxy, a process manager, or a TLS handshake actually does puts a ceiling on how good a debugger you'll ever be — and a $5 box you're allowed to break is enough to fix it.

Navigate
  • What's the Difference Between a Contractor and a Consultant?

    The IRS has a three-factor legal test for this distinction, and it has nothing to do with which word sounds more impressive on an invoice. Most engineers who call themselves 'consultants' are, by that test and by function, contractors.

  • When Should You Fire a Client?

    A 1985 study found theater-goers who'd paid more for their season tickets kept attending plays they didn't enjoy, just to avoid feeling like the money was wasted. The same bias is why engineers keep bad clients long after the math stopped working.