---
title: "What is a Retainer?"
canonical: https://wavect.io/glossary/retainer/
language: en
description: "Recurring monthly engagement where the vendor reserves a defined capacity in exchange for a predictable fee."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

ENGAGEMENT

# Retainer

Recurring monthly engagement where the vendor reserves a defined capacity in exchange for a predictable fee.

Last reviewed: 2026-05-24 by [Kevin Riedl](/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

A retainer is a subscription to a vendor’s time. You pay every month; in return you get a defined number of days or a defined team capacity. The exact scope shifts; the availability does not.

Retainers work well when the work is ongoing and the priorities change too fast for a [Statement of Work](/glossary/sow/) to keep up. Product teams use retainers for design partners, engineering teams use them for fractional senior roles, and almost every legal counsel arrangement is a retainer. In Austria a retainer is usually structured as a Dienstvertrag or freier Dienstvertrag, since what you are buying is reserved availability and judgement rather than a fixed work product.

The risk is the inverse of [T&M](/glossary/time-and-material/): the vendor gets paid even when there is no work. Smart customers attach a “reasonable use” clause and review the retainer quarterly to confirm capacity is being used. If utilisation is below 60%, the retainer is the wrong shape and you want a per-engagement SoW instead.

Worked example: a startup puts a senior advisor on a 10-day-a-month retainer “to be safe”. For two months it is fully used; then the launch ships and the work drops to two days a month, but the invoice does not. They are now paying for eight idle days. The fix is not to cancel the relationship, it is to right-size it: drop to a smaller retainer plus the option to scope a [fixed-price](/glossary/fixed-price/) build when a real deliverable appears. Healthy retainers sit at 70 to 85% utilisation; below that you are buying insurance, above 95% you are running the vendor as staff with no slack for the work that matters.

The honest trade-off is predictability versus efficiency. A retainer buys you a known monthly cost and a reserved senior brain, at the price of paying for capacity in the quiet months. Related: [Fractional CTO Austria](/services/fractional-cto/) runs a weekly [retainer](/glossary/fractional-cofounder/) you can cancel any week, which removes most of the lock-in that makes traditional retainers risky.

// FAQ

## FAQs

### Retainer or SoW?

Retainer when the priorities shift faster than you can write a scope. SoW when there is a clear deliverable. Most companies start with retainers because it feels flexible, then realise they are paying for capacity that goes unused. Audit utilisation every quarter.

### How do I know my retainer is the wrong shape?

If utilisation is below 60%, you are overpaying for availability you do not use. If it is above 95%, the vendor has no slack for the work that matters and you are running them as staff augmentation. Healthy retainers sit at 70 to 85%.

### Can I cancel a retainer mid-month?

Depends on the contract. Most retainers require 30 to 90 days notice; some carry a minimum-term clause. Wavect’s Fractional Co-Founder model is the outlier: cancel any week, no notice. Most of the industry is not that flexible.

Related terms

- [SoW](/glossary/sow/)
- [Time & Material](/glossary/time-and-material/)
- [Fixed-Price](/glossary/fixed-price/)
- [Fractional Co-Founder](/glossary/fractional-cofounder/)

Related services

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

Related case studies

- [Bond Analytics Platform](/case-studies/bond-analytics/)

Related guides

- [Fixed price vs time and materials](/software-development-guide/fixed-price-vs-time-and-materials/)

Discussed in articles

- [Fixed price vs T&M: scope creep by the numbers](/blog/fixed-price-vs-tm-scope-creep-rates/)

Talk to us

## 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/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/glossary/retainer/#term",
      "@type": "DefinedTerm",
      "alternateName": [],
      "description": "Recurring monthly engagement where the vendor reserves a defined capacity in exchange for a predictable fee.",
      "inDefinedTermSet": "https://wavect.io/glossary/#termset",
      "name": "Retainer",
      "termCode": "retainer",
      "url": "https://wavect.io/glossary/retainer/"
    },
    {
      "@id": "https://wavect.io/glossary/retainer/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-05-24",
      "description": "Recurring monthly engagement where the vendor reserves a defined capacity in exchange for a predictable fee.",
      "headline": "Retainer",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-05-24",
      "mainEntity": {
        "@id": "https://wavect.io/glossary/retainer/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        }
      ],
      "name": "Retainer",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/glossary/retainer/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/",
          "name": "Tech, product & engagement glossary",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/retainer/",
          "name": "Retainer",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Retainer when the priorities shift faster than you can write a scope. SoW when there is a clear deliverable. Most companies start with retainers because it feels flexible, then realise they are paying for capacity that goes unused. Audit utilisation every quarter."
      },
      "name": "Retainer or SoW?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "If utilisation is below 60%, you are overpaying for availability you do not use. If it is above 95%, the vendor has no slack for the work that matters and you are running them as staff augmentation. Healthy retainers sit at 70 to 85%."
      },
      "name": "How do I know my retainer is the wrong shape?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Depends on the contract. Most retainers require 30 to 90 days notice; some carry a minimum-term clause. Wavect's Fractional Co-Founder model is the outlier: cancel any week, no notice. Most of the industry is not that flexible."
      },
      "name": "Can I cancel a retainer mid-month?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
