Want tender expert help? See our tender preparation service

What Is a CPV Code? The Number That Matches Your Services to Public Tenders

Rows of wooden card-catalogue cabinets in a library reading room

Photo: Michael Holley Swtpc6800, public domain, via Wikimedia Commons

Tendly helps you find and win public tenders in 28 markets

Use Tendly's tender intelligence tools to find and analyse opportunities, or let our tender experts find the right tenders and prepare the bid for you.

Join for free

The entire European public sector, every ministry, school, hospital and city government, is ready to buy from your company. You only need to find the right tenders, but there are hundreds of thousands of them in the air. The EU procurement market is worth over two trillion euros a year. CPV codes exist to find the needle in that pile of banknotes. For the step-by-step method, read our guide CPV codes explained.

If you sell to the public sector, or want to start, this number is one of the most important ones for your business. Yet oddly, many entrepreneurs have never heard of it. So here is a short summary.

CPV stands for Common Procurement Vocabulary. The idea is simple: the subject of every tender gets one number, and that number means exactly the same thing in all 24 official languages of the European Union. Code 72000000 means IT services, whether the notice was published by the city of Tallinn, a hospital in Lisbon or a small Finnish municipality.

Before CPV, every country described its tenders in its own statistical system, each in its own way. The result was a mess that made cross-border bidding nearly impossible and held back the whole market. A common number solved it: you do not need to speak a word of Polish to find a software tender published in Poland; the number is enough.

How to read a CPV code

A CPV code consists of eight meaningful digits, followed after a dash by a ninth check digit, for example 72212517-6. The eight digits form a five-level tree, where each further digit makes the description more precise. The rule of thumb is simple: the more zeros at the end of a code, the more general it is.

Let's walk down one branch. Since we know the IT field best, take a software developer as the example. The first two digits are the division: 72 means all IT services. The third digit is the group: 722 is software programming and consultancy. The fourth gives the class: 7221 is programming of packaged software. The fifth is the category: 72212 is programming of application software. And finally the full code 72212000-4, application software programming services. The same logic applies everywhere, whether you build bridges or run a translation agency.

In total the list contains nearly 9,500 codes, divided into 45 divisions. They cover everything the public sector can buy, from ballpoint pens to nuclear plant maintenance.

Why Europe built it

CPV was born with Regulation 2195/2002, which for the first time created a single classification for the whole procurement market. Using the codes became mandatory on 1 February 2006. The list was then thoroughly reworked and re-issued with Regulation 213/2008, which took effect on 17 September 2008. That 2008 version, with its nearly 9,500 codes, is the one still in use today.

In substance, CPV has not been revised since 2008. It is 2026, and the European Union's official tender portal still shows the same 2008 list. We are working with a classification older than the first iPhone. Some codes describe technology the way it looked almost two decades ago. Worth keeping in mind, because it explains a few things.

Where CPV codes are used

The most important place is TED, the European Union's official tender notice portal. Every tender above the cross-border threshold must carry at least one CPV code, and since October 2023 the code is a separate machine-readable data field, not just a word somewhere in the text. TED publishes hundreds of thousands of notices a year. Total European public sector purchasing exceeds two trillion euros a year, roughly a seventh of the whole European economy, spread across more than 250,000 contracting authorities.

On top of TED, every EU country runs its own national procurement register using the same codes, and the same system applies beyond the Union, for example in Norway, Iceland and Liechtenstein. One important difference: TED only shows the larger tenders above the EU threshold; the smaller national ones live only in each country's own register. If a specific market matters to you, follow both.

How to find the right codes

First, move down the tree, not up. Start from the division, find the right branch for your field, then work down to the group and class level. Do not start from the bottom, from the most precise eight-digit end.

Second, map every code a buyer might use, not just the one that feels right to you. The same software development tender can land in the register under division 72 (IT services), but just as easily under division 48 (software packages and information systems) if the buyer treats it as a goods purchase, or even under division 79 (business services) if the emphasis is on business analysis. Follow them all.

Third, learn from the past. Search for closed tenders in your field and see which codes buyers actually used. Contract award notices are especially valuable, because they show the code used, who won, at what price and against how many bidders: a code-finding tool and competitive intelligence in one. Through tendly.eu you can of course monitor all of this automatically.

Buyers get it wrong too, and often enter the wrong code themselves

The code for a tender is chosen not by you but by the buyer, and buyers often choose badly. One analysis of 405 tender notices found that nearly one in four carried the wrong main code. The reason is human: an official enters the code by hand, and hand-entered data contains slips.

The European Commission patched one hole in 2020 with rule R388. It only checks that the code matches the tender type: works always start with 45, goods and services have their own ranges, and a notice with the wrong type is rejected. But the rule only catches type errors. If the buyer picks an overly general parent code instead of a precise one, or files the tender in a neighbouring branch entirely, the mistake stays.

If you only follow code 72230000-6, custom software development, you will miss the tender the buyer filed under the parent group 72200000-7 or the neighbouring category 72212000-4. Same work, different number. That is why you should always add a simple keyword search on tender content next to your CPV monitoring. The code is a good filter, but it is not infallible.

Tendly.eu finds every tender that matters to you automatically and emails them to you the next working morning.

Share this article
Try Tendly

See which tenders fit your company

Tendly helps you find and analyse public tenders in 28 markets. Use our tender intelligence tools yourself, or let our tender experts find the right opportunities and prepare the bid for you.

Create free account

Continue reading