BidScout
All guides
5 min read

CPV codes explained: how to use them without being misled

Every EU tender carries a CPV code — 9,454 of them, arranged in 45 divisions. We match tenders for a living, and the first thing our data taught us: trust CPV for browsing, never for completeness.

We match tenders against company profiles for a living, and here is the first thing our data taught us about CPV codes: trust them for browsing, never for completeness. The same service gets filed under different codes by different buyers, and if your alerts hang on one code, you are missing real contracts right now.

What the code actually is

CPV stands for Common Procurement Vocabulary — the EU's classification system for what a contract buys, set by Regulation (EC) No 213/2008 and in force since 2008. There are 9,454 codes arranged in 45 divisions. Every tender in the EU system carries at least one.

The format is eight digits plus a check digit, and the digits are a hierarchy:

LevelDigitsExample
Divisionfirst 272000000-5 — IT services: consulting, software development, Internet and support
Groupfirst 372200000-7 — Software programming and consultancy services
Classfirst 472260000-5 — Software-related services
Categoryfirst 572263000-6 — Software implementation services

The trailing digit after the hyphen is only a checksum. There's also a supplementary vocabulary for qualifiers (materials, purposes), which you'll rarely need as a bidder.

Where CPV helps — and where it misleads

It helps with browsing and filtering: every serious tender search, TED's included, lets you filter by CPV, and watching one or two divisions is a reasonable first net.

It misleads in two ways. First, buyers misclassify — routinely. A hospital's software project might be filed under IT services (72), under software supplies (48 — a different division entirely, because licences count as supplies, not services), or under the hospital's own sector. Nobody audits these choices. Second, one contract gets one main code, however many things it actually contains — the code tells you the headline, not the contents.

This is, honestly, why our matching doesn't rely on CPV: BidScout reads the tender's title and description and compares meaning against your company profile, precisely because the code alone would miss too much. We still store and show the codes — they're useful context — but they're a label, not the truth.

Using CPV in practice

Find your divisions. Skim the 45 divisions once and note the two to four that cover your business. Construction lives in 45, IT in 72 and 48, engineering services in 71, transport in 60.

Watch wide, filter later. Set alerts at division or group level, not category level. An over-narrow CPV filter is the single most common way companies quietly miss tenders they'd have won.

Check the neighbours. If you sell services, check the corresponding supplies division too (and vice versa) — the services/supplies split is where misclassification happens most.

And if maintaining CPV filters across countries and languages sounds like the wrong job for a human — that's the part monitoring tools automate. BidScout does it by meaning rather than by code, with the free plan covering all of TED.

Let the tenders find you

BidScout matches EU and national tenders against your company profile and emails you the fits. Free to start.