How to Select the Correct CPV Code: A Practical Guide for Contracting Authorities
CPV codeshow to select CPV codecontracting authoritypublic procurementtender classificationEU procurement

How to Select the Correct CPV Code: A Practical Guide for Contracting Authorities

Contracting authorities must correctly identify the subject of a contract and select the most precise main CPV code and any supplementary codes. This step-by-step guide explains how to do it right — and the common mistakes that cause tenders to miss their target suppliers.

Updated:7 min read

Every public tender notice must carry at least one CPV code that accurately describes what is being purchased. Getting this right is not a formality — it directly determines which suppliers will see your notice, how it is classified in TED and national portals, and whether your procurement can be challenged on procedural grounds.

This guide explains the classification hierarchy, gives concrete examples of correct and incorrect code selection, and walks through the most common mistakes contracting authorities make.

Why Correct CPV Code Selection Matters

Suppliers subscribe to tender alerts by CPV code. Procurement portals filter and sort notices by both contract type and CPV code. An inaccurate code means the suppliers you need will never see your notice — and the suppliers who do see it may be entirely irrelevant to your needs.

Beyond discoverability, incorrect codes can create legal exposure. A challenge alleging that a notice was deliberately miscoded to limit competition — or that the contract type declared does not match the CPV code used — can delay or void a procurement.

The CPV Code Structure

A CPV code consists of 8 digits followed by a check digit after a hyphen, for example 33111000-1. The hierarchy works on a simple principle: the more significant digits in use, the more precise the subject matter.

LevelFormatExample
DivisionXX00000045000000 — Construction work
GroupXXX0000045200000 — Complete or part construction work and civil engineering work
ClassXXXX000045210000 — Building construction work
CategoryXXXXX00045251100 — Nuclear power station construction work
Sub-categoryXXXXXXXX45251200 — Gas power station construction work

The same logic applies across all domains. In medical equipment: 33000000 (division) → 33100000 (group) → 33150000 (class) → 33151000 (category) → 33111000-1 (Radiography apparatus). Always aim for the lowest level — the sub-category — that accurately fits the subject matter.

The Core Rule: Be as Specific as Possible

You should always select the most specific main CPV code available, rather than defaulting to a broad division or group code.

Incorrect selections

  • Purchasing an X-ray machine and using 33100000 (Medical equipment) — too broad
  • Purchasing building construction works and using 45000000 (Construction work) — too broad

Correct selections

  • X-ray machine: 33111000-1 (Radiography apparatus)
  • Building construction: 45210000 (Building construction work)
  • Biogas power plant construction: 45251200 (Gas power station construction work)
  • Wastewater treatment plant construction: 45252000 (Water-treatment plant construction work)

Exceptions: When a Broader Code Is Acceptable

The specificity rule has two legitimate exceptions:

  1. No precise code exists. If you cannot find a code that accurately describes the subject matter at a lower level, use the closest higher-level code. Do not force an inaccurate specific code just to appear precise.
  2. The contract covers multiple distinct subjects. When a single contract bundles items of genuinely different natures, a broader code that captures the overall scope may be more accurate than any single specific code.

Divided Contracts and Lots

When a contract is divided into lots — for example, purchasing several different types of medical equipment as separate lots — the main CPV code can legitimately be set at a higher level to represent the overall contract.

For example, 33100000 (Medical equipment) is acceptable as the main code when the contract covers multiple lots with different specific devices. However, each lot should carry its own precise supplementary or lot-level CPV code.

The same principle applies in food procurement: a framework covering multiple dairy products might carry 15500000 (Dairy products) as the main code, with individual product codes as supplementary codes for each lot.

In all cases, supplementary CPV codes should be as specific as the main code — do not add precision with the main code and then use vague supplementary codes.

Contract Type Must Match the CPV Code

The contract type declared in the notice must always be consistent with the CPV code. The first two digits of the code determine which type applies:

Code rangeContract type
03xxxxxx – 44xxxxxx, 48xxxxxxSupplies
45xxxxxxWorks
50xxxxxx – 98xxxxxxServices

Tender alert subscriptions are filtered by both CPV code and contract type. A mismatch — such as declaring the contract type as "Supplies" while using a services code starting with 7x — means the notice will not reach suppliers who have set up correctly targeted alerts.

Common Mistakes

Using a division or group-level code when a category exists

This is the most frequent error. Suppliers receive too many irrelevant notices and start ignoring the codes, or your specific tender is buried among hundreds of unrelated ones.

Fix: Browse the CPV tree down to the 5–8 digit category or sub-category level before settling on a code.

Contract type does not match the code prefix

For example, selecting a services code (70xxxxxx or 79xxxxxx) but declaring the contract type as Supplies in the notice form.

Fix: Always verify the code prefix: 03–48 = Supplies, 45 = Works, 50–98 = Services.

Supplementary codes are too broad

The main code is precise, but supplementary codes are added at division level without thought. Supplementary codes are the second most important signal suppliers use to filter notices.

Fix: Apply the same specificity standard to supplementary codes as to the main code.

Reusing codes from a previous contract without review

Frameworks are often re-tendered every four years. The scope, classification, or available CPV codes may have changed since the last time.

Fix: Review the CPV tree fresh for every new notice, even if the subject matter seems identical to a previous contract.

Step-by-Step Selection Process

  1. Determine the contract type first. Decide whether you are buying supplies, works, or services. This tells you which section of the CPV tree to start in.
  2. Search by keyword. Use a CPV search tool and enter the subject matter in plain language. Try multiple synonyms — different CPV entries use different terminology.
  3. Navigate the hierarchy. Open the relevant division and drill down through group, class, and category until you reach the most specific accurate level.
  4. Choose the most specific code that fits. If two codes seem equally applicable, prefer the lower-level (more specific) one — unless it over-specifies and distorts the subject matter.
  5. Add supplementary codes for complex or multi-lot contracts. Identify precise codes for each distinct element or lot and add them as supplementary codes.
  6. Cross-check contract type consistency. Confirm that the first two digits of your chosen main code are consistent with the contract type you will declare in the notice.

Responsibility and the Role of Supervisory Bodies

In Lithuania, the Public Procurement Office (VPT) is not empowered to assign CPV codes to individual contracts — that is the sole responsibility of the contracting authority, based on the specific technical specification of each procurement.

The VPT monitors how accurately contracting authorities select codes, publishes guidance material, and investigates cases where incorrect codes appear to have been chosen deliberately to restrict competition. Similar oversight functions exist in procurement supervisory bodies across all EU member states.

The contracting authority bears full responsibility for correct CPV code assignment, since only the authority has complete knowledge of all the circumstances surrounding the specific procurement.

Summary

Selecting the right CPV code is one of the most consequential decisions made when drafting a public tender notice. A precise, accurate code ensures your notice reaches the right suppliers, reduces the risk of procedural challenge, and contributes to reliable spend analytics. Apply the specificity rule by default, use broader codes only when genuinely justified, and always verify that the code prefix matches the declared contract type.

You can search the full CPV code hierarchy in all 24 EU official languages directly on this site.

CPV codeshow to select CPV codecontracting authoritypublic procurementtender classificationEU procurement

Related articles

What Is Public Procurement? A Complete Guide
public procurementEU procurement directivesgovernment contracts

Public procurement is how governments buy the goods, services, and works that keep public life running. This guide explains the full process, the legal framework, and how businesses of every size can participate effectively.

12 min read
Read