CPV (Common Procurement Vocabulary) has been mandatory in EU procurement since 2003. Every notice carries at least one 'main CPV' and optional 'additional CPV' codes. A well-tuned CPV filter cuts through the 20,000+ daily notices to only the ones you can actually bid on.
Structure: 45123456-7
- First 2 digits — sector (45 = Construction)
- Digits 3-4 — sub-category (45.10 = Site preparation)
- Digits 5-6 — detail (45.10.11 = Demolition)
- Digits 7-8 — specific work (45.10.11.00 = Building demolition)
- Last digit — checksum
Most common CPV headers for cross-border firms
- 45 — Construction works
- 50 — Maintenance & repair
- 71 — Architectural & engineering services
- 72 — IT services, software development
- 73 — R&D
- 79 — Consulting, business services
- 33 — Medical devices, pharma
- 34 — Transport equipment
- 42 — Industrial machinery
- 31 — Electrical machinery & materials
Common construction/infrastructure sub-codes
- 45210000 — Building construction
- 45220000 — Engineering works (bridges, tunnels)
- 45230000 — Pipelines, transmission
- 45260000 — Roofing + insulation
- 45310000 — Electrical installation
- 45320000 — Insulation (thermal, sound)
- 45330000 — Plumbing + HVAC
- 45420000 — Joinery + interior
Filtering strategy
In BidIndex, add 2-4 CPV codes to a filter — too broad ('45') gives you 200+ notices/day; too narrow (45231000) misses opportunities. Sweet spot: 2-digit umbrella + 1-2 sub-codes. Example: electrical contractor → 45310000 + 71314000 (energy efficiency consulting).
A wrong CPV filter turns BidIndex into a spam folder. 20 minutes with the CPV list saves 200 hours of noise per year.