How to Use CPV Codes for Procurement Search
When you search for government contracts on TED or any EU procurement platform, you are searching through hundreds of thousands of notices published across 27 member states in 24 official languages. The CPV classification system provides the standardized vocabulary that cuts through this complexity. Keyword search alone is unreliable — the same service can be described in dozens of different ways across languages and procurement traditions. The OECD recommends using structured classification systems as the primary search mechanism.
CPV codes solve this problem. The Common Procurement Vocabulary is a standardized classification system that tags every public procurement notice with numeric codes describing what is being purchased. A CPV code works the same whether the notice is written in German, French, Polish, or Greek. It is the universal language of European procurement classification.
Yet many companies use CPV codes badly or not at all. They rely on keyword searches, miss relevant opportunities, get buried in noise, and wonder why their hit rate is so low. This guide teaches you how CPV codes actually work, how to build effective search strategies around them, and how to avoid the pitfalls that trip up even experienced procurement professionals.
Understanding the CPV Structure
CPV codes are 8-digit numbers organized in a hierarchical tree. Each level of the hierarchy narrows the scope.
The hierarchy
XX000000-Y Division (45 divisions)
XXX00000-Y Group (~300 groups)
XXXX0000-Y Class (~1,300 classes)
XXXXX000-Y Category (~3,000 categories)
XXXXXXX0-Y Sub-category (most detailed level)
The final digit after the hyphen is a check digit — it is calculated automatically and is not meaningful for classification purposes.
A concrete example
Let us trace the hierarchy for software development services:
| Level | Code | Description |
|---|---|---|
| Division | 72000000-5 | IT services: consulting, software development, Internet and support |
| Group | 72200000-7 | Software programming and consultancy services |
| Class | 72210000-0 | Programming services of packaged software products |
| Category | 72212000-4 | Programming services of application software |
| Sub-category | 72212100-0 | Industry-specific software development services |
What each level means for searching
- Division (2 digits): Your broadest net. Searching CPV 72 captures every IT-related procurement. Useful for market sizing and broad monitoring, but generates high volume.
- Group (3 digits): A focused sector slice. CPV 722 covers software and consulting specifically. Good for setting up primary alerts.
- Class (4 digits): Your working level. CPV 7221 is software programming services. This is where most day-to-day searching happens.
- Category (5 digits): Specific match. CPV 72212 is application software programming. Use this for your most targeted alerts.
- Sub-category (6-8 digits): Very narrow. Useful only when you operate in a very specific niche.
Building Your CPV Code Map
Before you start searching, you need to build your company's CPV code map — the set of codes that correspond to your products and services.
Step 1: Identify your primary divisions
Start by listing your company's main offerings and finding the corresponding CPV divisions. Common mappings:
| Business Area | Primary Division |
|---|---|
| IT services and software | 72 |
| Telecommunications | 64 |
| Construction | 45 |
| Consulting and management | 79 |
| Medical equipment | 33 |
| Vehicles and transport | 34 |
| Office supplies | 30 |
| Security services | 79710000 |
| Cleaning services | 90910000 |
| Training and education | 80 |
Step 2: Drill down to your classes
Within your primary divisions, identify the specific classes that match your capabilities. This is where precision matters.
If you are a cybersecurity company, your map might include:
- 72212100 — Industry-specific software development
- 72220000 — Systems and technical consultancy services
- 72260000 — Software-related services
- 72310000 — Data-processing services
- 72500000 — Computer-related services
- 79417000 — Safety consultancy services (for physical security assessments)
Step 3: Identify adjacent codes
CPV classification does not always match how your market thinks about itself. A cloud infrastructure company might need to search:
- 72400000 — Internet services (primary match)
- 72310000 — Data-processing services (hosting, processing)
- 72710000 — Local area network services (if offering network services)
- 48600000 — Database and operating software packages (if offering software)
This adjacency mapping is critical. Missing one relevant CPV code means missing all opportunities tagged with it.
Step 4: Check with historical data
The best way to validate your CPV code map is to look at past contracts you would have wanted to bid on and check which CPV codes they used. If you use a platform like Duke, you can search by buyer or keyword and note the CPV codes on matching notices. This often reveals codes you would not have identified from the CPV tree alone.
Search Strategies That Work
Strategy 1: Tiered alerting
Set up alerts at multiple CPV levels:
- Tier 1 (weekly, division level): Your primary CPV divisions across all target countries. High volume, used for market sensing and identifying new sub-sectors.
- Tier 2 (daily, class level): Your core CPV classes in your primary markets (Germany, France, etc.). Medium volume, your main opportunity feed.
- Tier 3 (immediate, category level): Your most specific CPV categories in your highest-priority markets. Low volume, highest relevance — every match deserves immediate attention.
Strategy 2: CPV + Geography combination
CPV codes combined with NUTS region codes create highly targeted searches. Instead of searching CPV 72 across all of Europe (thousands of results), search CPV 72210 in DE (Germany) and FR (France) for a manageable, relevant feed.
Strategy 3: Main CPV + Supplementary CPV
Contract notices have a main CPV code and supplementary codes. A procurement for a hospital information system might have:
- Main CPV: 48814000-7 (Medical information systems)
- Supplementary: 72260000-5 (Software-related services), 72263000-6 (Software implementation)
Searching only by the main CPV code would show this notice. But if your company does software implementation (72263000), searching only that code as a main CPV would miss this notice. When possible, search across both main and supplementary CPV fields.
Strategy 4: Negative filtering
Some CPV codes in your division are definitely not relevant. If you are an IT services company but never do hardware repair, exclude 50300000 (Repair and maintenance of computer machinery). This reduces noise without risking missed opportunities.
Common Pitfalls
Pitfall 1: Searching too narrowly
This is the most common mistake. A company selling project management software searches only CPV 48331000-7 (Project management software package) and misses:
- 72212000-4 (Programming services of application software) — buyers who describe it as custom development
- 72268000-1 (Software supply services) — buyers who frame it as a supply
- 48445000-9 (Customer Relationship Management software) — if the software also handles CRM
Narrow searches have high precision but low recall. You see exactly what you are looking for, but you miss everything described differently.
Pitfall 2: Relying on one code
Buyers do not always choose the most accurate CPV code. A procurement officer in a municipality may tag an IT procurement with a general code (72000000-5) rather than the specific sub-category. If you only search at the sub-category level, you miss these notices.
Pitfall 3: Ignoring supplementary codes
A notice for "construction of a hospital" will have a main CPV code in division 45 (construction). But it may include supplementary codes for medical equipment (33), IT systems (72), or security systems (35). If you sell medical equipment, this notice is relevant to you — but only if you search or filter across supplementary codes.
Pitfall 4: Not accounting for CPV code changes
The CPV vocabulary was last substantially revised in 2008 (Regulation 213/2008). While it has not changed since, some national platforms use supplementary national classification systems alongside CPV. When searching on national platforms, be aware that the CPV code attached may be the buyer's best approximation rather than a precise classification.
Pitfall 5: Assuming cross-border consistency
Different procurement cultures use CPV codes differently. German contracting authorities tend to be precise and use detailed sub-category codes. French contracting authorities may use broader codes. When monitoring multiple markets, adjust your search breadth by country.
Cross-Mapping CPV to NAICS
For companies operating in both European and North American markets, understanding the relationship between CPV and NAICS (North American Industry Classification System) codes is important.
Key mappings
There is no official CPV-NAICS crosswalk, but the primary mappings are well established:
| CPV Division | Description | NAICS Approximate |
|---|---|---|
| 72 | IT services | 5415, 5112 |
| 45 | Construction | 236, 237, 238 |
| 33 | Medical equipment | 3391, 4234 |
| 79 | Business services | 5416, 5611 |
| 34 | Vehicles | 3361, 3362 |
| 30 | Office equipment | 3341, 4234 |
| 50 | Repair/maintenance | 8111, 8112 |
| 64 | Telecommunications | 5173, 5174 |
| 80 | Education/training | 6116, 6117 |
Using crosswalks strategically
If you currently bid on US government contracts using NAICS codes and want to expand into EU procurement above the EU threshold, start by:
- Identifying your NAICS codes from your SAM.gov registrations
- Finding the approximate CPV equivalents from the table above
- Searching TED with those CPV codes to see the volume and nature of matching opportunities
- Refining your CPV map based on actual notice content
The mapping is approximate — CPV and NAICS were designed for different systems with different structures. But it provides a solid starting point for market entry.
Building a CPV-Based Monitoring Workflow
For solo practitioners
- Identify your top 5-10 CPV codes at the class level
- Set up daily TED alerts for each (see the alert setup guide)
- Set up weekly alerts at the division level for market sensing
- Review daily alerts every morning, spending no more than 15 minutes
- Quarterly, review your CPV code map against actual opportunities you pursued or missed
For teams
- Map your company's full product/service portfolio to CPV codes (typically 20-50 codes at the class level)
- Assign code groups to team members by expertise area
- Set up tiered alerts with routing — specific codes to specific people
- Maintain a shared CPV code map document that evolves as your business changes
- Use a platform like Duke to centralize alerts, eliminate duplicates, and provide team-wide visibility
Updating your CPV map
Your CPV code map should not be static. Update it when:
- You launch a new product or service line
- You discover opportunities in adjacent sectors
- Award notices show you missed contracts because you were not monitoring the right code
- A team member identifies a new relevant code through manual browsing
- Market shifts create new procurement categories (e.g., AI services, green hydrogen)
How Duke Helps
CPV codes are powerful but limited by the inconsistency of how buyers apply them. Duke enhances CPV-based search:
- Intelligent code expansion — When you set up a scope, Duke automatically includes related CPV codes that are frequently used for the same type of procurement, catching notices where the buyer chose an adjacent code
- Cross-classification matching — Duke maps between CPV, NAICS, and other classification systems, enabling companies active in multiple markets to use a single set of search criteria
- Buyer pattern analysis — See which CPV codes specific buyers use most frequently, helping you predict where future opportunities will be tagged
- Quality scoring — Not all matches are equal. Duke scores opportunities based on how closely they match your profile, so a CPV division-level match ranks lower than a precise class-level match combined with geographic and value alignment
Conclusion
CPV codes are the backbone of procurement search in Europe. Used well, they give you systematic, reliable coverage of your target market. Used poorly — or not at all — they leave you dependent on keyword searches that miss non-English notices, near-matches, and differently described opportunities.
The key principles are simple: build a comprehensive CPV code map for your business, search at multiple levels of the hierarchy, combine CPV with geographic filters, account for supplementary codes, and update your map regularly.
Mastering CPV codes transforms procurement search from an art (guessing the right keywords) into a science (systematically covering your classification space). It is one of the highest-return investments you can make in your EU procurement strategy.
Related Resources
- How to Set Up Tender Alerts -- Turn your CPV code map into a tiered alert system
- IT Procurement in Europe -- CPV divisions 72 and 48 explained for technology suppliers
- The Procurement Data Gap -- Why CPV inconsistency matters and how to overcome it
- CPV Codes -- Full concept reference for the Common Procurement Vocabulary
- Nordic Procurement Markets Compared -- How CPV usage varies across the Nordics
Stop guessing which CPV codes to monitor. Duke automatically expands your search to catch adjacent codes, cross-maps classifications, and scores every opportunity against your profile. Start your free trial today.