No black box

How BaciScout Scores a Tender

Every number below is computed by the same matching engine that runs against your profile every night — right now, as this page loads. Nothing on this page is hand-written.

The example search profile

A fictional cross-border bidder looking for software work in the DACH region. This is the yardstick both example tenders are measured against.

CPV codes (what they do)
48000000, 72212000
Keywords (what they want)
development, migration, support
Countries
AT, DE
Contract value range
€100,000 – €2,000,000
The four scoring components

Each component scores 0–100 on its own, then the engine takes a weighted average. The weights are yours to change in profile settings — these are the defaults:

  • CPV code match — 35% of the total. Exact 8-digit code = 100, 6–7 digit family match = 75, 4–5 digits = 50, else 0.
  • Keywords — 25%. Scored on how many of your keywords appear (a title hit counts 3× a description hit) — matching 2 of 4 tops out around half marks.
  • Country — 20%. Buyer inside your country list = 100. A valid country outside your list is a hard filter — the match is vetoed, whatever the other scores say.
  • Contract value — 20%. Inside your range = 100, with graded partial credit just outside it. When a tender publishes no value, this component is simply left out — it never punishes the tender.
Worked example

One tender, scored in the open

The tender

Migration of the cadastral register to a new web platform

Buyer country
DE
CPV code(s)
72212100
Published value
€850,000

The authority seeks a partner for the development and migration of its cadastral register. The contract includes hosting support for two years after go-live. Development work is expected to span eighteen months.

Score sheet — computed by the engine on this request
Component What the engine saw Score × Weight Points
CPV code tender 72212100 vs profile 72212000 — 5 digits in common 50 35% 17.50
Keywords 3/3 keywords matched: development, migration, support 73.95 25% 18.49
Country buyer in DE — inside the profile's list 100 20% 20.00
Contract value Value €850,000.00 is within range [€100,000.00, €2,000,000.00] 100 20% 20.00
Total — weighted average of the four components 75.99

75.99 is at or above the Go bar of 60, so the verdict is:

Go
Near miss

Same profile, weaker tender

The tender

Operation and support of the environmental information system

Buyer country
DE
CPV code(s)
72212010
Published value
€4,500,000

The agency seeks a contractor for ongoing support and operation of its environmental information system, including minor updates and system monitoring for four years.

Score sheet — where the points went
Component What the engine saw — and why points were lost Score × Weight Points
CPV code tender 72212010 vs profile 72212000 — 6 digits in common 75 35% 26.25
Keywords 1/3 keywords matched: support lost points — only 1 of 3 keywords appear (support) 30.77 25% 7.69
Country buyer in DE — inside the profile's list 100 20% 20.00
Contract value Value €4,500,000.00 is 125.0% above maximum €2,000,000.00 (out of range) €4,500,000 is far above the profile maximum €2,000,000 — past the tolerance band, so zero 0 20% 0.00
Total — 75.99 − 22.05 points vs the first tender 53.94

53.94 sits below the Go bar of 60 but at or above Maybe (40), so the verdict is:

Maybe

It stays visible in the inbox — “Maybe” means consider with caution, not hidden. A tender that scores below 20 lands in No Go territory and never reaches the default inbox view at all.

Verdicts

Score bands, and who sets them

Strong Go 80–100
Go 60–79
Maybe 40–59
Weak Maybe 20–39
No Go 0–19

These are the defaults. Every band boundary — and every component weight — is editable per profile in settings, so the ladder above is a starting point, not a decree.

The thresholds are yours to tune

If you would rather see more tentative matches, lower the Maybe bar. If your pipeline is full, raise Go and only the strong ones surface. Weights work the same way: care mostly about CPV classification? Give it more of the total. The sheet above recomputes with your numbers the next time the engine runs.

What this engine reads — honestly

BaciScout monitors TED, the EU's official procurement journal: above-threshold tenders that EU buyers are legally required to publish there. That is the corpus the nightly sync scores against your profile.

Below-threshold and national portal notices (for example Slovakia's e-Esencenie) are not covered. We would rather state the boundary plainly than imply complete coverage.

See It Run on Your Own Profile

Set your CPV codes, keywords and thresholds — the engine does the rest, every night.

Get Started Free