What is the Common Procurement Vocabulary?
The Common Procurement Vocabulary (CPV) is a standardised classification system used across all UK and European public procurement. Every contract notice published through the Find a Tender Service (FTS), Sell2Wales, Public Contracts Scotland or any other public portal must be tagged with at least one CPV code. Those codes describe what is being bought, in a language that is consistent across thousands of contracting authorities and millions of notices.
The system was developed by the European Commission and adopted into UK law. Following Brexit, the UK retained CPV codes in its domestic procurement legislation and they remain the universal tagging standard for all above-threshold contracts. If you are selling to the public sector, CPV codes are the vocabulary your buyers use to describe your services. Understanding them is not optional; it is the difference between finding the right opportunities and missing them entirely.
The 8-Digit Structure
Every CPV code is an 8-digit number followed by a check digit, written in the format XXXXXXXX-Y. The digits are hierarchical, moving from broad to specific as you read left to right.
| Level | Digits | Name | Example |
|---|---|---|---|
| 1st | XX000000 | Division | 72000000 IT services |
| 2nd | XXX00000 | Group | 72200000 Software programming and consultancy |
| 3rd | XXXX0000 | Class | 72210000 Programming services |
| 4th | XXXXX000 | Category | 72212000 Application software programming services |
The check digit (after the hyphen) is calculated automatically and you can ignore it for searching purposes. What matters is understanding that the first two digits define the broad division. There are 45 divisions in total, running from 03000000 (Agricultural products) through to 98000000 (Other community, social and personal services).
Identifying the Right Codes for Your Services
Most suppliers start by searching the official CPV database, which is published by the EU Publications Office and freely available online. A keyword search for your service type will return candidate codes with their full descriptions. However, the keyword search alone can be misleading because the CPV vocabulary was written in the early 2000s and does not always use modern terminology. A few practical steps help here.
- Work backwards from won contracts. Search for award notices where a competitor or a close analogue of your firm won work. Look at the CPV codes on those notices. This reveals which codes buyers actually use when they buy what you sell.
- Search at division level first. Rather than jumping straight to a specific eight-digit code, find your division first and browse the groups and classes beneath it. You will often spot adjacent categories you had not considered.
- Check supplementary codes. Contracting authorities can attach multiple CPV codes to a single notice: one primary code and several supplementary codes. A cleaning services contract might carry a primary code of 90910000 but also carry 90911300 (window cleaning) or 98341120 (facilities management) as supplementary codes. Your search should capture both.
- Read the notice, not just the code. The CPV code points you to the opportunity; the notice description tells you whether it is genuinely relevant. Always confirm the scope before investing time in a response.
Using CPV Codes Strategically
Most suppliers make one of two mistakes: they either filter too narrowly, missing opportunities coded differently to what they expect, or they cast their net so wide that the volume of irrelevant notices overwhelms them. A strategic approach sits between those two extremes.
Monitor adjacent codes, not just exact matches
Buyers often reach for the nearest available code rather than the most accurate one. A contract for user experience research might be coded under 73200000 (Research and development consultancy services), 72000000 (IT services), or 79311000 (Survey services), depending on which procurement officer raised it. If you only watch one code, you will miss the others. Building a list of five to ten adjacent codes and checking them regularly is more effective than relying on a single exact match.
Spot mis-coded notices
Mis-coding is common. A training contract might be tagged under facilities management because the officer responsible for procurement used the wrong lookup. These notices appear in your searches only if you are watching the right parent division. When you find a mis-coded notice that is genuinely relevant to your work, you have found an opportunity that most of your competitors have not seen, because their filters are set too narrowly to catch it.
Avoid over-narrow filtering
Setting your saved search to a single eight-digit code is a valid starting point for very specialised services, but it is rarely the right long-term strategy. The procurement officers who raise notices are generalists. They are buying dozens of different things across a year and they do not always reach for the most granular code. Filtering at class or group level (six or four significant digits) typically returns a more complete picture of the market, at the cost of some noise you will need to filter out manually.
A Worked Example: Cyber Security Consultancy
Imagine you run a cyber security consultancy. A narrow search might only look at 72220000 (Systems and technical consultancy services). In practice, relevant contracts appear across a wider set of codes.
- 72220000 Systems and technical consultancy services
- 72212517 IT security software development services
- 79131000 Document management services (data handling scoping)
- 75200000 Provision of services to the community (public sector security programmes)
- 80533100 Computer training services (security awareness training)
A buyer procuring a penetration testing and staff training package might split those two elements across different CPV codes, or might tag the whole lot under a single high-level IT services code. Watching the 72000000 division as a whole, alongside a few known adjacent codes, ensures you see the full picture rather than the fraction that is coded exactly as you might expect.
How TenderSignal Maps CPV to Plain-English Sectors
Memorising CPV codes is not a productive use of your time. TenderSignal handles the translation automatically. When you set up your profile, you choose from plain-English sectors such as IT and digital services, construction and maintenance, or professional services. Behind the scenes, TenderSignal maps each sector to the relevant CPV divisions, groups, and classes, including the adjacent codes that buyers regularly use for the same type of work.
Your daily or weekly digest then surfaces notices that match those mappings, together with an AI relevance score that flags the strongest matches for your specific business. You are not searching a raw database of codes; you are seeing a curated, ranked list of opportunities that match your profile.
On the Browse page you can also search directly by keyword or filter by CPV category if you want finer control. This is useful when you already know a specific code from a framework you have won previously, or when you are investigating a new market and want to understand what volume of notices exists in a given category before committing time to it.
For users who want complete visibility, TenderSignal monitors all 145 live sources simultaneously, meaning that even a mis-coded notice on a regional council portal will appear in your results if the keyword or supplementary CPV code matches your profile, regardless of whether the primary code aligns with what you would expect.
Start Finding the Right Tenders Today
CPV codes are a tool, not a barrier. Once you understand the structure and know which codes buyers reach for when they procure what you offer, you can build a monitoring strategy that captures the full market rather than a narrow slice of it. TenderSignal does the heavy lifting on the code mapping, leaving you to focus on evaluating opportunities and writing winning bids.
Create a free TenderSignal account and set up your sector profile in under five minutes. Your first matched tenders will be waiting in your dashboard before the end of the day.