---
title: "Scope-Creep Rates: Fixed-Price vs T&M"
canonical: https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/
language: en
description: "Actual scope-change frequency across fixed-price and time-and-material work. Werkvertrag mechanics, change-request discipline, when each model is wrong."
image: "https://wavect.io/img/blog/headers/header_fixed-price-vs-tm-scope-creep-rates.png"
---

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

6 min read · 26 May 2026

[**Next**](/blog/fractional-cto-when-to-hire-austria/)

# Scope-Creep Rates Across Fixed-Price vs Time-and-Material Engagements: Our Numbers

TL;DR

Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change averaging 8-15% of original scope, while 80-90% of time-and-material engagements drift, often 20-40% above the initial estimate. Fixed-price is not a trap, bad change-control is. Wavect's fixed price is a Werkvertrag: signed SoW, legally bound to deliver the agreed scope, with changes handled via change-request addendum.

Related service: [Custom Software Development](/services/software-development/)

Every founder asks: won't scope creep eat the [fixed price](/glossary/fixed-price/)? Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change. Average change size is around 8-15% of original scope, handled via change-request addendum to the [SoW](/glossary/sow/). On [T&M](/glossary/time-and-material/) engagements, roughly 80-90% drift in scope at some point, and total drift is often 20-40% above the initial estimate by end of engagement. Fixed-price is not a trap. Bad change-control is.

Fixed-price at Wavect is a Werkvertrag: signed SoW, we are legally bound to deliver the agreed scope. We do not write "refunds" into contracts because that is not how Werkvertrag works. The legal obligation is to deliver scope, full stop.

## What is the actual scope-creep rate side by side?

Aggregated ranges across Wavect's [custom software development](/services/software-development/) engagements. Not a randomized sample, just our books.

| Metric | Fixed-price (Werkvertrag) | Time-and-material |
| --- | --- | --- |
| Engagements that hit a scope change | 55-70% | 80-90% |
| Average change size (% of original scope) | 8-15% | 20-40% (cumulative drift) |
| How changes are handled | Change-request addendum, re-quoted, signed | Just keeps going against the rate card |
| Budget surprise at end of engagement | Rare (priced before work starts) | Common |
| Client decision velocity | Slower (sign-off per CR) | Faster (no friction) |
| Best for | Well-scoped feature builds, MVPs with clear PRD | True discovery, R&D, exploratory work |

## Why is the fixed-price creep rate lower?

Because every change has to go through a change request. The friction is the feature. Not all friction is bad. A founder who has to sign off on a 5k EUR change request usually decides whether they actually want it. Half the time, the answer is "not now". That decision does not get made on T&M, because nothing forces it. The work just happens.

The result: fixed-price engagements ship closer to the original product vision. T&M engagements ship more, but also drift more. Neither is universally better. They serve different problems.

## When does fixed-price actually break?

- **True discovery work.** If you genuinely do not know what to build, fixed-price prices fiction. Use [T&M](/glossary/time-and-material/) for the [discovery phase](/glossary/discovery-phase/), then fixed-price the build once the PRD is solid.
- **Multi-year contracts.** Markets shift, tech shifts, the original SoW goes stale. Use shorter fixed-price increments instead, one quarter or one milestone at a time.
- **R&D / novel tech.** When nobody on the planet has built exactly this thing, the estimate is a guess. Pricing a guess as fixed is dishonest. T&M with a not-to-exceed ceiling is more honest.
- **Highly volatile founder roadmap.** If the founder is going to pivot the product twice during the engagement, fixed-price creates pain. Either stabilize the roadmap first or stay T&M.
- **Regulated work where the regulation itself is moving.** Crypto in 2024-26 is an example. Scope shifts because the law shifts. Fixed-price does not adapt fast enough.

## How does Wavect actually price?

Most of our larger mandates run as [agile](/glossary/agile/) fixed-price (we wrote the long-form on this in [Pricing Software The Right Way](/blog/agile-fixed-pricing/)). Short version: discovery is T&M with a small fixed budget, then the build is fixed-price per phase against a signed SoW, with a defined change-request process for in-flight scope changes.

That structure is why our fixed-price creep stays in the 8-15% band. The change-request mechanism is not an obstacle, it is the discipline.

![Kevin Riedl](/img/team/kevin.webp)

"The contract feature is not the price. It is the change-control discipline. A fixed-price with no CR process is just a wrong number, and T&M with no scope discipline is just an open tab."

## How do we handle a scope change in practice?

1. Client raises a change (new feature, modified flow, removed feature).
2. We scope the change against the signed SoW and price it as a CR addendum.
3. Client signs the CR or declines. If declined, the original scope stays.
4. If accepted, the CR is appended to the SoW and the timeline is updated.
5. The original Werkvertrag obligation is unchanged for non-CR scope. We are still legally bound to deliver the original SoW.

This sounds bureaucratic. It is not. Each CR is usually one paragraph plus a price. The whole process takes a working day. The reason to do it is that everybody, six months later, knows exactly what was agreed and what was added.

## What about the agency that refuses change requests?

You have hired the wrong agency. A real fixed-price provider expects scope changes (because reality changes) and has a CR mechanism ready. An agency that refuses CRs either ships the wrong thing or quietly absorbs the change and reduces quality. Read our earlier piece on why [agencies get a bad reputation](/blog/why-agencies-are-bad/) for context.

## Does T&M ever beat fixed-price on outcome?

Yes. For exploratory work, true R&D, or for founders who are themselves technical and want to drive the build week by week, T&M ships more product per euro because there is no CR overhead. The tradeoff is that you (the founder) own the scope discipline. If you cannot enforce it, T&M will drift 30-40% and you will be unhappy with the bill. Comparable engagement structures: see [Wavect vs a generalist dev agency](/compare/wavect-vs-dev-agencies/) and [Wavect vs freelance platforms](/compare/wavect-vs-freelance-platforms/).

## What about hybrid models?

We do these often. Examples:

- Discovery T&M (capped), then phase-1 fixed-price, then optional phase-2 fixed-price.
- Fixed-price build + ongoing T&M maintenance under a [retainer](/glossary/retainer/).
- Fixed-price MVP + T&M post-launch iteration on a 90-day rolling basis.

The hybrid lets you fix the price where the risk is knowable and stay flexible where it is not. Most founders we work with end up here.

## Final thoughts

Scope creep is real on both models. It is just better contained in fixed-price because the change-request friction forces decisions. The 8-15% band on fixed-price is not zero, and it should not be. Real products evolve. The point is that every change is conscious, signed, and priced before work starts.

If an agency tells you their fixed-price will never change, they either have not shipped real products or they are about to under-deliver. If they tell you T&M will stay on the original estimate, the same applies.

Ask for the change-request process before you sign. That is the contract feature that actually matters.

## You may also like..

[**Pricing Software the Right Way** Most people know the downfalls of hourly pricing and instead ask for fixed prices. What if we tell you fixed pricing on software projects is no better?](/blog/agile-fixed-pricing/) [**Wavect vs a generalist dev agency** Generalists sell capacity; we sell product judgment plus the engineering to ship it.](/compare/wavect-vs-dev-agencies/)

Software buying and funding

## Continue through this cluster

Agency selection, contracts, pricing, grants and the commercial mechanics of delivery.

[Start with the cornerstone**Software Agency Proposal Teardown: 12 Clauses That Change Price, Scope and Ownership**](/blog/software-agency-proposal-teardown/)

- [Software Project Takeover: A 30-Day Provider Change Plan](/blog/software-project-takeover-provider-change/)
- [What "Dienstleister" Commits Your Vendor To](/blog/werkvertrag-vs-dienstvertrag-software-austria/)
- [Software Agencies in Tyrol Compared 2026](/blog/software-agencies-tyrol-comparison-2026/)
- [Software Agency Proposal Teardown: 12 Clauses That Change Price, Scope and Ownership](/blog/software-agency-proposal-teardown/)
- [AI Consulting in Austria 2026: An Honest Guide for SMEs](/blog/ai-consulting-austria-2026/)

Inbox, without the noise

## Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

[**Back**](/blog/overview/)

[![Kevin Riedl](/img/team/kevin.webp)](/team/kevin-riedl/)

[Kevin Riedl](/team/kevin-riedl/) https://linkedin.com/in/wsdt

6 min read · 26 May 2026

[**Next**](/blog/fractional-cto-when-to-hire-austria/)

New posts by email ×

×

Get new posts by email

A short email when we publish. Free, no tracking.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-07-07",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-07-07",
      "url": "https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "abstract": "Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change averaging 8-15% of original scope, while 80-90% of time-and-material engagements drift, often 20-40% above the initial estimate. Fixed-price is not a trap, bad change-control is. Wavect's fixed price is a Werkvertrag: signed SoW, legally bound to deliver the agreed scope, with changes handled via change-request addendum.",
  "articleBody": " Blog overview/Business and regulation/Software buying and funding Scope-Creep Rates Across Fixed-Price vs Time-and-Material Engagements: Our Numbers TL;DR Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change averaging 8-15% of original scope, while 80-90% of time-and-material engagements drift, often 20-40% above the initial estimate. Fixed-price is not a trap, bad change-control is. Wavect's fixed price is a Werkvertrag: signed SoW, legally bound to deliver the agreed scope, with changes handled via change-request addendum. Related service: Custom Software Development Every founder asks: won't scope creep eat the fixed price? Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change. Average change size is around 8-15% of original scope, handled via change-request addendum to the SoW. On T&M engagements, roughly 80-90% drift in scope at some point, and total drift is often 20-40% above the initial estimate by end of engagement. Fixed-price is not a trap. Bad change-control is. Fixed-price at Wavect is a Werkvertrag: signed SoW, we are legally bound to deliver the agreed scope. We do not write \"refunds\" into contracts because that is not how Werkvertrag works. The legal obligation is to deliver scope, full stop. What is the actual scope-creep rate side by side? Aggregated ranges across Wavect's custom software development engagements. Not a randomized sample, just our books. Metric Fixed-price (Werkvertrag) Time-and-material Engagements that hit a scope change 55-70% 80-90% Average change size (% of original scope) 8-15% 20-40% (cumulative drift) How changes are handled Change-request addendum, re-quoted, signed Just keeps going against the rate card Budget surprise at end of engagement Rare (priced before work starts) Common Client decision velocity Slower (sign-off per CR) Faster (no friction) Best for Well-scoped feature builds, MVPs with clear PRD True discovery, R&D, exploratory work Why is the fixed-price creep rate lower? Because every change has to go through a change request. The friction is the feature. Not all friction is bad. A founder who has to sign off on a 5k EUR change request usually decides whether they actually want it. Half the time, the answer is \"not now\". That decision does not get made on T&M, because nothing forces it. The work just happens. The result: fixed-price engagements ship closer to the original product vision. T&M engagements ship more, but also drift more. Neither is universally better. They serve different problems. When does fixed-price actually break? True discovery work. If you genuinely do not know what to build, fixed-price prices fiction. Use T&M for the discovery phase, then fixed-price the build once the PRD is solid. Multi-year contracts. Markets shift, tech shifts, the original SoW goes stale. Use shorter fixed-price increments instead, one quarter or one milestone at a time. R&D / novel tech. When nobody on the planet has built exactly this thing, the estimate is a guess. Pricing a guess as fixed is dishonest. T&M with a not-to-exceed ceiling is more honest. Highly volatile founder roadmap. If the founder is going to pivot the product twice during the engagement, fixed-price creates pain. Either stabilize the roadmap first or stay T&M. Regulated work where the regulation itself is moving. Crypto in 2024-26 is an example. Scope shifts because the law shifts. Fixed-price does not adapt fast enough. How does Wavect actually price? Most of our larger mandates run as agile fixed-price (we wrote the long-form on this in Pricing Software The Right Way). Short version: discovery is T&M with a small fixed budget, then the build is fixed-price per phase against a signed SoW, with a defined change-request process for in-flight scope changes. That structure is why our fixed-price creep stays in the 8-15% band. The change-request mechanism is not an obstacle, it is the discipline. \"The contract feature is not the price. It is the change-control discipline. A fixed-price with no CR process is just a wrong number, and T&M with no scope discipline is just an open tab.\" How do we handle a scope change in practice? Client raises a change (new feature, modified flow, removed feature). We scope the change against the signed SoW and price it as a CR addendum. Client signs the CR or declines. If declined, the original scope stays. If accepted, the CR is appended to the SoW and the timeline is updated. The original Werkvertrag obligation is unchanged for non-CR scope. We are still legally bound to deliver the original SoW. This sounds bureaucratic. It is not. Each CR is usually one paragraph plus a price. The whole process takes a working day. The reason to do it is that everybody, six months later, knows exactly what was agreed and what was added. What about the agency that refuses change requests? You have hired the wrong agency. A real fixed-price provider expects scope changes",
  "articleSection": "Business & Legal",
  "author": {
    "@id": "https://wavect.io/team/kevin-riedl/#person",
    "@type": "Person",
    "name": "Kevin Riedl",
    "sameAs": [
      "https://www.wikidata.org/wiki/Q139796365",
      "https://www.linkedin.com/in/wsdt",
      "https://github.com/wsdt"
    ],
    "url": "https://wavect.io/team/kevin-riedl/"
  },
  "dateModified": "2026-07-07",
  "datePublished": "2026-05-26",
  "description": "Across Wavect's engagement history, roughly 55-70% of fixed-price projects hit at least one scope change averaging 8-15% of original scope, while 80-90% of time-and-material engagements drift, often 20-40% above the initial estimate. Fixed-price is not a trap, bad change-control is. Wavect's fixed price is a Werkvertrag: signed SoW, legally bound to deliver the agreed scope, with changes handled via change-request addendum.",
  "headline": "Scope-Creep Rates. Our Numbers",
  "image": "https://wavect.io/img/blog/headers/header_fixed-price-vs-tm-scope-creep-rates.svg",
  "inLanguage": "en",
  "mainEntityOfPage": {
    "@id": "https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/",
    "@type": "WebPage"
  },
  "publisher": {
    "@id": "https://wavect.io/#organization",
    "@type": [
      "Organization",
      "ProfessionalService",
      "LocalBusiness"
    ]
  },
  "url": "https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/",
  "wordCount": 1368
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "item": "https://wavect.io/",
      "name": "Home",
      "position": 1
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/overview/",
      "name": "Blog overview",
      "position": 2
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/topics/business-regulation/",
      "name": "Business and regulation",
      "position": 3
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/clusters/software-buying-funding/",
      "name": "Software buying and funding",
      "position": 4
    },
    {
      "@type": "ListItem",
      "item": "https://wavect.io/blog/fixed-price-vs-tm-scope-creep-rates/",
      "name": "Scope-Creep Rates: Fixed-Price vs T&M | ",
      "position": 5
    }
  ]
}
```
