EU public contract expiry radar

The re-tender is 12 months out. The expiry date is already public.

Tender alerts fire when a notice opens, by which point the specification is written and the outcome is largely decided. An expiry date sits a year upstream — in the window where a challenger can still shape requirements.

A row tells you what it does not know

Provenance is a column, not a convention. Every lead states which of its facts the buyer published and which were computed, so what you are acting on is legible before you act on it.

expiry_source
publishedderived

84% of rows carry an end date the buyer published. The rest are computed from a published start date plus a published duration, and are never presented as published facts.

incumbent_scope
lotnotice

A supplier is known for 92% of rows. 52% name the holder of that specific lot; the rest name suppliers on a multi-lot award without publishing which holds which.

reopens_competition
winnable now

12,471 contracts sit on frameworks that rerun competition during their term. Those are winnable without waiting for the expiry date at all. See them →

Where the inventory sits

SectorContractsValue publishedShare of corpus

By country

CountryContractsRelative volume

Browse all expiring contracts →

Or skip the website entirely

The same corpus is a tool. Point an MCP or A2A client at the endpoint and query it directly — six capabilities, identical on both protocols, with discovery free and unauthenticated.

MCP/mcpstreamable HTTP, tools/list is free →
A2A/a2aJSON-RPC, signed agent card →
AccessTrial key14 days, no card, works on both →
Or pay per callx402no account, USDC on Base →

Recompete is paid by vendors for delivered leads, never for outcomes. No fee is contingent on winning a contract. Ranking is computed from published procurement data alone and is not influenced by who pays.