BlogGuide

What Are CPV Codes and How to Use Them to Find Tenders

July 21, 2026 · 7 min read

Picture a heating contractor in Porto who has given up on public tenders. He searched TED every Monday for "boiler", "HVAC", and "climatização", scrolled a few pages, found mostly noise, and closed the tab. Three months later he learned that a regional hospital had tendered a heating plant upgrade worth several hundred thousand euros. The notice never used the word "boiler". It used a number: 45331100. That number is a CPV code, and not knowing it cost him a real shot at the contract.

If you sell to government buyers in Europe, CPV codes are the single most important thing you are probably ignoring. Here is how they work and how to turn them into a reliable stream of relevant tenders.

What a CPV code actually is

CPV stands for Common Procurement Vocabulary. It is the standardised classification system the European Union uses to describe the subject of a public contract. Every contracting authority, from a town hall in Slovenia to a national rail operator in Spain, is required to tag its tender notices with at least one CPV code so that the same product or service is described the same way regardless of language.

This solves a real problem. A buyer in Lisbon writes "ventilador", a buyer in Paris writes "ventilateur", a buyer in Warsaw writes something else again. Keyword search across 24 official EU languages is hopeless. The CPV code is the common thread that ties them together.

Each code is an 8-digit number plus a check digit (the ninth digit, separated by a hyphen, is just a control character). The digits are hierarchical, and that structure is the whole point:

  • The first two digits define the division, for example 45 = construction work, 33 = medical equipment, 72 = IT services, 09 = petroleum and fuels.
  • Each further digit narrows the category. So 45000000 (construction) leads to 45300000 (building installation work), then 45330000 (plumbing and sanitary works), then 45331000 (heating, ventilation, air conditioning), then 45331100 (central heating installation).
  • Read left to right, a code goes from a broad sector to a precise deliverable. That hierarchy is what lets you search broad or narrow on purpose, instead of guessing keywords.

    How to find your CPV codes

    Do not try to memorise the list. There are over 9,000 codes. Instead, build a short, deliberate set that matches what you actually sell.

    A practical method:

    1. Start from a notice you would have wanted. Find one or two past tenders that were a perfect fit for your business. On TED or your national portal, open the notice and read the CPV code it used. Buyers tell you exactly how they classify your work. 2. Browse the official tree. The European Commission publishes the full CPV in the SIMAP section of its site, and the codes are searchable inside TED itself. Type a plain word ("oxygen", "catering", "asphalt") and the tool returns matching codes with descriptions. 3. Go one level up and one level down. If your sharpest match is 33157400 (medical breathing devices), check the parent 33157000 and siblings too. Some buyers tag loosely. A code that is one level broader catches notices a too-specific filter would miss. 4. Keep the list tight. Most SMEs need somewhere between 5 and 20 codes, not 200. A bloated list reintroduces the noise you were trying to escape.

    Write the final set down. This list becomes the backbone of every search and every alert you set up.

    Using CPV codes on TED and national portals

    TED (Tenders Electronic Daily) is the EU's official journal supplement for public procurement. It publishes notices above the EU thresholds, which for most goods and services sit roughly in the €140,000 to €215,000 range for central and sub-central authorities, and over €5 million for public works. Below those thresholds, tenders are published nationally rather than on TED.

    On the TED website, use the advanced search and filter by CPV code rather than free text. Combine it with country and a publication date range, and you get a clean list of in-scope contracts. You can save the query and, on the current TED platform, turn it into an email alert.

    The same logic applies on national portals, which is where most below-threshold business actually lives:

  • Portugal: BASE.gov.pt and the operational platforms (acingov, vortalGOV, anoGOV) all index by CPV.
  • Spain: the Plataforma de Contratación del Sector Público lets you filter by CPV.
  • France: BOAMP and PLACE both carry CPV tagging.
  • Italy, Germany, Poland, and the rest run their own systems, and nearly all of them expose a CPV filter.
  • The workflow is identical everywhere: filter by your code list first, then read titles. You stop scrolling past contracts in languages you do not speak, because the code did the translation for you.

    A worked example

    Say you supply medical gas pipeline systems to hospitals. Your core CPV set might look like this:

  • 33157000 medical gas and respiratory therapy devices
  • 33157400 medical breathing devices
  • 44160000 pipeline and related items
  • 45333000 gas-fitting installation work
  • 50421000 repair and maintenance of medical equipment
  • Filter TED and the Spanish, French, and Portuguese portals on those five codes, set the country to a handful of target markets, and you have replaced "search five portals in three languages every week" with one structured query. A hospital in Seville tendering an oxygen plant will surface even though its notice is written entirely in Spanish, because 45333000 means the same thing in Seville as it does in Coimbra.

    Where CPV codes fall short, and how to close the gap

    CPV is powerful but blunt. Two limits matter:

  • Buyers misclassify. A relevant contract sometimes gets a generic parent code, or the wrong one entirely. Codes catch most of your market, not all of it. Keep a few keyword alerts running alongside your code filters as a safety net.
  • Monitoring is still manual. Knowing your codes does not save you from logging into TED plus four national portals, every week, forever. That is the part that quietly breaks down, exactly as it did for the Porto contractor.
  • This is where a CPV-aware feed earns its place. Instead of running the same searches by hand, you define your codes and target countries once, and a platform watches TED and the national portals continuously, matches each new notice against your profile, and scores it for fit. You open a single daily list of tenders that already belong to you, ranked by relevance, with the deadline attached. The classification system was built to make your market findable. A daily scored feed is simply the tool that finds it for you, every morning, without the open tab and the Monday scroll.

    Share this article

    Related articles