CPV codes explained and how to use them
Every European public tender is classified with one or more CPV codes (Common Procurement Vocabulary). This is the key with which search engines — including ours — filter tenders. If you don’t understand the logic of CPV codes, you will miss tenders that were actually meant for you.
How the codes are structured
Each CPV code is an 8-digit code with a check digit, split into hierarchical levels:
- The first two digits are the main division (e.g. 45 = construction, 71 = architecture and engineering, 90 = environment).
- The next three digits refine towards the sector.
- The last three digits specify the exact product or service.
Example: 45232152 = “construction work for pumping stations”. Broken down:
- 45 = construction
- 452 = civil engineering and construction work
- 4523 = construction work for pipelines, communication and power lines
- 45232 = construction work for pipelines, communication and electricity lines
- 452321 = pipelines and pumping stations
- 45232152 = construction work for pumping stations
The pitfall of hierarchical searching
If you search for CPV 45232152, you only see tenders that were classified with exactly this code. But contracting authorities are not consistent: the same type of tender might be classified by one municipality under 45232152, by another under 45231110 (pipelines), by a third under 45252100 (water treatment plants).
Practical rule: search on the levels that are relevant, not just on the exact code. For a company in pumping stations and pressure sewers, that often means: all codes under 45232, plus 45252, plus 42122 (pumps as supply) — sometimes with some trial and error.
Combining with keywords
CPV alone is rarely sufficient. Additional keywords filter your results further. For our pumping station contractor, for example:
- CPV: 45232, 45252, 42122
- Keywords: pumping station, pressure main, water treatment, sewer, effluent
This captures both tenders with the correct CPV and tenders where the contracting authority used a generic code but the specification clearly talks about pumping stations.
Exclusion keywords
Equally important: exclusion keywords. If you don’t do surface sewers but do underground pressure mains, exclude “surface sewer” or “retention basin”. Saves hours.
CPV in Tender Tracker
In Tender Tracker you configure per search profile:
- A list of CPV codes (may contain prefixes, e.g.
45232*for “everything under 45232”) - A list of keywords (must appear)
- A list of exclusion keywords (must not appear)
- Optionally: separate keywords that must only appear in the full specification (not in the title)
The AI filter comes on top of that: even if CPV and keywords match, the relevance score filters out false positives.
Practical starting points
The full CPV list is available on the EU website (search for “CPV 2008”). In practice you don’t start with the list — you start with three recently won tenders of your company, look at which CPV they had, and work towards your search set that way. That is a more pragmatic approach than trying to understand the whole hierarchy all at once.
Learn more
- How Belgian public procurement works — the broader context.
- Reading a BOSA tender efficiently — what to do next.
Or try Tender Tracker free for 14 days and see which CPV combination works for your company.