Ffantomu.dev
← All articles

Business

Fixed-Price vs. Retainer: How to Choose the Right Engagement Model

April 23, 2026

Before the first line of code is written, clients and developers have to agree on how the work will be structured and billed. The choice between a fixed-price project and an ongoing retainer shapes everything: how requirements are defined, how changes are handled, who carries the risk, and what the working relationship looks like six months in.

Neither model is universally better. Both have specific conditions under which they work well, and specific ways they break down.


Fixed-price: when it works

A fixed-price engagement works when the scope is genuinely stable. This means you can describe, before any work starts, exactly what will be built, what done looks like, and what is explicitly out of scope. Examples where fixed-price is the right choice:

  • Building a defined feature with a clear acceptance criterion (a payment flow, a reporting module, a data migration)
  • A greenfield project with a locked specification and a hard launch deadline
  • A one-off integration between two systems with documented APIs on both sides

For the client, fixed-price offers budget certainty. For the developer, it creates a clear definition of done. When scope is stable, both parties benefit from the clarity.

Fixed-price: when it breaks

Fixed-price breaks down the moment the scope is uncertain or evolving. Requirements that seem clear at the start almost always expand once the client sees working software. Every change request becomes a negotiation. The developer is incentivised to deliver the minimum that satisfies the spec. The client is surprised by what is and is not included.

For ongoing product development, where priorities shift, users give feedback, and the backlog changes every sprint, fixed-price creates friction at every turn.


Retainer: when it works

A retainer works when you need consistent throughput over time rather than a single defined deliverable. Examples:

  • A growing SaaS product where the roadmap is defined month-to-month
  • An internal tool that needs ongoing maintenance, small features, and quick turnarounds
  • An embedded developer role: attending standups, reviewing PRs, contributing to architecture decisions

Retainers allow the developer to build genuine context in your codebase. Context compounds: a developer who has worked in your system for six months can solve a problem in two hours that would take a new hire two days. That accumulated knowledge is the primary value of a long-term engagement.

Retainer: when it breaks

A retainer without milestones becomes difficult to evaluate. If neither party tracks what was delivered in a given month, the engagement drifts. Clients may feel they are not getting value; developers may feel the scope is unbounded. The fix is lightweight monthly reporting: what was shipped, what is in progress, what is planned next.

Retainers also require a baseline of trust. If the client needs to approve every hour before it is spent, the model creates overhead that eliminates the speed advantage that makes retainers worthwhile.


Three questions to decide

When evaluating which model fits your situation, answer these three questions:

  • Can you write a complete spec today? If yes, fixed-price may work. If no, a retainer will serve you better.
  • Is this a one-time build or ongoing work? One-time: fixed-price. Ongoing: retainer.
  • What matters more: cost certainty or speed of iteration? Cost certainty favours fixed-price; iteration speed favours retainer.

What we recommend

At Fantomu.dev we default to fixed-price for well-scoped integrations and standalone features, and retainer for clients building products. In practice, many engagements start with a fixed-price discovery phase (a few weeks to define scope, produce a technical spec, and establish working patterns) before moving to a retainer for the build.

The model should serve the work. If you are unsure which fits, the answer is almost always to start smaller and more defined, then expand once trust and context are established.