HomeGlossaryCPV Code Structure (8-Digit Format)
CPV Codes & Classification

CPV Code Structure (8-Digit Format)

The CPV code structure is an eight-significant-digit numeric format followed by a check digit, where each positional digit encodes a progressively finer level of the procurement classification hierarchy from division through group, class, category, and subcategory to a reserved eighth position.

Quick answer

The CPV code structure is an eight-significant-digit numeric format followed by a check digit, where each positional digit encodes a progressively finer level of the procurement classification hierarchy from division through group, class, category, and subcategory to a reserved eighth position.


Understanding the internal structure of a CPV code allows a supplier to decode the meaning of any code instantly, navigate the hierarchy without a lookup tool, and verify that a code is syntactically valid before relying on it. The format is consistent across all codes in the Common Procurement Vocabulary and has been stable since the CPV 2008 revision.

What is the CPV Code Structure?

A CPV code in full consists of nine characters: eight significant digits followed by a hyphen and one check digit. The format is XXXXXXXX-Y, where XXXXXXXX is the eight-digit classification string and Y is the check digit. The eight significant digits encode the hierarchical classification through five positional levels.

Digits 1 and 2 (Division). The first two digits identify the division, the broadest level of the hierarchy. Division 45 covers construction works; division 72 covers IT services; division 85 covers health services.

Digit 3 (Group). The third digit identifies the group within the division. Division 45, digit 3 = 1, gives group 451 (site preparation works). Digit 3 = 2 gives group 452 (building completion work).

Digit 4 (Class). The fourth digit identifies the class within the group. Group 451, digit 4 = 1, gives class 4511 (demolition work and wrecking of buildings). Digit 4 = 2 gives class 4512 (test drilling and boring work).

Digit 5 (Category). The fifth digit identifies the category within the class. Class 4511, digit 5 = 0, gives category 45110 (building demolition and wrecking work; earthmoving work). Where a class has only one category, digit 5 is 0 by convention.

Digits 6 and 7 (Subcategory). Digits six and seven together identify the subcategory within the category. Category 45110, digits 6 and 7 = 00, gives subcategory 451100 (demolition work). Digits 6 and 7 = 01 give a different subcategory for earthmoving. The eighth digit is currently reserved and set to 0 in all active codes.

The check digit. The check digit is calculated from the preceding eight digits using a modular arithmetic algorithm specified in Regulation (EC) 213/2008. It serves as an error-detection mechanism. A code where the check digit does not match the algorithm applied to the preceding eight digits is either mistyped or fabricated.

Why it matters for bidders

Knowing the structure allows you to decode any CPV code you encounter without needing a reference table. If you see code 45112700-2, you immediately know: division 45 (construction), group 451 (site preparation), class 4511 (demolition and wrecking), category 45112 (earthmoving work), subcategory 45112700 (landscaping work). The check digit 2 confirms validity.

This positional reading also helps when navigating from a broad code to a precise one. If you know your market is in class 4512, you can list all possible category codes (45121, 45122, etc.) and all subcategory codes within them without downloading the full vocabulary.

Example

Code 48820000-2 breaks down as: division 48 (software), group 488 (servers and network infrastructure), class 4882 (servers), category 48820 (servers), subcategory 488200 (not subdivided further at this level), reserved digit 0, check digit 2. A supplier of server hardware sees instantly that this code sits at the terminal category level within a class focused entirely on server products.

Frequently Asked Questions

How is the check digit calculated?

The check digit Y is calculated by summing the products of each of the eight significant digits multiplied by its position weight (where position weights are defined in the CPV regulation), dividing by 11, and taking the remainder. The full algorithm is specified in the annex to Regulation (EC) 213/2008. Procurement platforms typically validate check digits automatically.

Does the check digit change meaning depending on the other digits?

The check digit has no independent meaning; it is purely a mathematical function of the other eight digits. Two codes that differ only in their check digit are either one valid code and one invalid code, or both valid if the check digit algorithm produces a different result for different eight-digit strings.

Can I construct a CPV code myself from the hierarchy?

You can determine the approximate code by following the hierarchy from division to subcategory, but you must verify the check digit using the algorithm or a lookup tool. Codes with incorrect check digits are invalid even if the eight significant digits are otherwise correct. A CPV code lookup tool handles this automatically.

How Bidovate helps

Bidovate puts CPV Code Structure (8-Digit Format) to work inside your capture and proposal workflow.

Tender discovery

See Bidovate in action

Book a demo and we will show you the platform using your actual contract data.

Related terms

Common Procurement Vocabulary (CPV)

The Common Procurement Vocabulary is the single classification system for public procurement across the European Union, providing a standardised set of codes that describe the subject matter of any contract for works, supplies, or services published on TED or national portals.

View

CPV Code

A CPV code is the individual numeric identifier assigned to a procurement notice to describe its subject matter, drawn from the Common Procurement Vocabulary classification system and structured as eight significant digits plus one check digit covering works, supplies, and services.

View

CPV Division

A CPV division is the highest level of the Common Procurement Vocabulary hierarchy, identified by the first two digits of a CPV code, grouping all procurement subjects into 45 broad sectors such as construction works, food products, financial services, and health services.

View

CPV Group

A CPV group is the second hierarchical level of the Common Procurement Vocabulary, identified by the first three digits of a CPV code, subdividing a division into clusters of related procurement subjects to provide an intermediate layer of specificity between broad sector and precise product or service type.

View

CPV Class

A CPV class is the third hierarchical level of the Common Procurement Vocabulary, identified by the first four digits of a CPV code, refining a group into clusters of closely related products or services and providing one of the most practically useful levels for broad-spectrum tender monitoring.

View