qlows
qlows · field notesVol. 02

Reference · CPV

CPV codes explained

Every EU public tender is tagged with one. Learn the code that decides whether an opportunity ever reaches you — and how to stop guessing which ones to watch.

Robin Dauer·Founder, qlows
JUL 4, 2026 · 6 min read

If you bid on European public contracts, CPV codes quietly decide which opportunities you ever see. Every notice on TEDand the EU national portals is tagged with at least one. Get the codes right and the relevant tenders surface; get them wrong and you miss contracts you were perfectly placed to win. Here’s how the system works — and how to stop hand-maintaining code lists.

01 · What a CPV code is

CPV stands for Common Procurement Vocabulary— the EU’s single classification system for the subject of public contracts, established by EU regulation and mandatory across the bloc. Instead of every buyer describing “laptops” or “road resurfacing” in their own words and language, they attach a numeric code that means the same thing in every member state.

That language-independence is the point. A Portuguese buyer and a Finnish buyer tagging the same code lets a supplier in a third country find both with one search — which is what makes cross-border bidding under the WTO-GPA and EU rules practical at all.

02 · How the 8-digit structure works

A CPV code is eight digits plus a ninth check digit, arranged as a tree that gets more specific left to right:

  • Digits 1–2 — Division. The broad sector. E.g. 45 = construction work, 72 = IT services, 33= medical equipment & pharmaceuticals, 30= office & computing equipment.
  • Digit 3 — Group, digit 4 — Class, digit 5 — Category, each narrowing the subject.
  • Digits 6–8add further detail; trailing zeros mean “no further specification.”
  • The 9th digit (after a hyphen) is a check digit for validation, not meaning.

So 45000000-7is “construction work” in general, while 45233140-2is specifically “roadworks.” An optional supplementary vocabulary(alphanumeric codes) can bolt on qualitative attributes — material, purpose — when the main code isn’t precise enough.

See it in practice

Every industry page on qlows is a CPV/NAICS bucket — see live tenders in yours.

Pick a category and country in the tender directory to see the notices behind the codes.

Open the tender directory
03 · Finding the right code

The practical workflow: identify the division that matches your sector, then drill down to the most specific code that still covers everything you sell. Two realities make this easier than it looks:

  • Buyers tag broadly. Many notices carry a high-level code plus a couple of specifics, so watching a small set of divisions usually captures most of your relevant tenders.
  • Codes are a filter, not a strategy.A watchlist of codes still floods you with near-misses inside those codes. The signal you actually want is “tenders that fit what I deliver,” which is narrower than any code.

That’s why catalog matching beats maintaining code lists: instead of you guessing codes, qlows maps your products and services to the right CPV (and NAICS) codes and then scores each notice inside them by fit.

04 · CPV vs NAICS: the cross-border gap

CPV is the EU system. North American procurement uses NAICS(the North American Industry Classification System), often alongside PSC/FSC product-service codes in US federal buying. They classify similar things but aren’t interchangeable, and there’s no perfect one-to-one mapping — the NAICS vs CPV guide breaks the gap down in full.

For a supplier bidding both sides of the Atlantic, that means maintaining two mental models: your CPV divisions for TED and EU portals, and your NAICS/PSC codes for SAM.gov. qlows collapses that: one catalog, mapped to both classification systems, so the same “what I sell” definition surfaces tenders in every connected market at once.

Free to start

Stop maintaining CPV watchlists by hand.

Import your catalog and let qlows do the mapping — across every connected EU market and TED.

qlows · field notesqlows.com