← My articles
~14 minutes to read

The need for Diavgeia 2.0:
Hundreds of thousands of direct awards go unchecked every year, with suspicious patterns hidden behind messy data.

I downloaded all of Greece’s no-bid “direct awards” (απευθείας αναθέσεις) between 2023–2025, published on Diavgeia.gov.gr, which account for more than a million records, worth . Then I investigated them in a systematic way, with two goals:

  1. to identify the key “suspicious” insights and trends, hidden behind millions of messy datapoints;
  2. to come up with actionable recommendations, leveraging the latest AI capabilities, to improve the status quo.

Summary

Here are the three big takeaways:

  1. There are regular, systematic patterns that look like waste, fraud or abuse of public funds, and they need to be investigated. With the help of AI, it is now possible to uncover & prevent spending that is not in the best interest of the Greek society.
  2. The quality of the data on Diavgeia, combined with the volume of records uploaded every day, makes it impossible for humans to manually review them to prevent suspicious activities, without the help of AI.
  3. Three suggested actions to tackle these issues:
    1. Develop an AI-powered tool that can analyse in minutes what would take an entire team days. I built it and tested it myself.
    2. Minimise manual data entry (again, with AI) and add basic validation rules to cut the manual errors at the source. Today, almost every record is input by hand, and it is full of mistakes.
    3. Set up a small task-force to periodically investigate the most suspicious awards flagged by the AI tool, and iteratively fine-tune the AI tool so the screening keeps getting better.

Let’s start with the basics: what is a “direct award” and why are they important?

Every time a public entity (e.g. a ministry, a town hall, a public hospital, …) spends money, it has to publish a record of the decision on a public website called Diavgeia (“clarity”).

How does the state actually buy things? For most purchases it has to run an open tender: it advertises what it needs, competing suppliers put in their bids, and a committee picks a winner. That competition is what keeps the price honest, but it is slow and heavy on paperwork.

For smaller purchases, though, the law allows a shortcut: the (απευθείας ανάθεση). Here the buyer does not have to run a tender at all. It can choose a supplier itself and sign off on the price.

That freedom only goes so far, though: a direct award is allowed only below fixed legal thresholds. For supplies (προμήθειες), services (υπηρεσίες) and studies (μελέτες) the legal threshold is €30,000 before VAT; for construction works (έργα) it is €60,000. Below the threshold, one signature is enough; above it, the buyer owes the full tender.

Each direct award get uploaded on Diavgeia as a together with the associated , free for anyone to download via an API. Conceptually, it is a remarkably open government-spending record, although as I explain later, there is a lot of room for improvement, especially when we take into account that .

First, I downloaded all of Greece’s no-bid direct awards (απευθείας αναθέσεις) between 2023–2025 and reviewed them at a high level

I pulled every direct award from Diavgeia, more than a million decisions across 2023, 2024 and 2025, and loaded them into a database I could query.

I first looked at 2025, the most recent completed year, to get a first understanding of the data.

Figures as of July 2026. Diavgeia changes daily, so the exact counts will shift depending on when you download them.

I then looked at the same aggregated figures for 2023 and 2024, and put all three years side by side:

YearDirect awardsPublic bodiesSuppliersApparent spend
2023376,1482,11443,560€17.7B
2024342,2711,74339,720€12.4B
2025341,2401,54437,576€16.3B
Total1,059,6592,335*72,516*€46.4B

* For public bodies and suppliers, the total counts each one once across 2023–2025. A body or supplier active in several years is not double-counted, so these totals are deliberately not the sum of the three years. Direct awards and apparent spend are straight sums. Apparent spend carries the same caveats as the 2025 figures above.

I then created some histograms to visually understand the data. The results were very surprising…

Switch the category or year. Whatever you pick, the shape barely changes.

All direct awards in 2025, by value (€1,000 bands)

01,0002,0003,0004,000# of records1010K20K30K40K50K60K70K80K3award value (€, net of VAT)2Just under the legalthreshold (€30K)€37K ≈ €30K + VAT

Diavgeia direct awards, All, 2025: 197,508 records with a net amount, median €2,500.

Footnotes:

1 The y-axis is capped so the spikes near the threshold stay readable. The busiest low-value bands run off the top.

2 Amounts should be net of VAT, but a large share of records store the gross (VAT-inclusive) figure here instead. More on that later.

3 The axis stops at €80,000; 3,374 awards fall above it, far past the €30K–€60K legal thresholds for a direct award, and most likely data errors.

Explained in the “Initial insights” section below ↓

Initial insights

Three things became clear fast: two suspicious patterns in the prices, and a dataset riddled with errors

A legitimate direct award legally cannot exceed €30,000 (or €60,000 for construction works / έργα), so you would expect award values to taper off smoothly and stop at the threshold. The Diavgeia data tells a different story: a spike right below the line, a VAT-grossed spike just above it, and a long tail of awards that should not be there at all.

What you’d expect
# of records€30K thresholdBy law a direct awardcannot exceed €30,000,so there is nothing here.award value (€)
What the data actually shows
# of records€30K thresholdexplained in insight #1 belowexplained in insight #2 belowlikely data errors,see insight #3 belowaward value (€)

Note: simplified illustration, not the actual data, but close to its real shape.

1

Direct awards pile up right below the legal thresholds.

Intuitively, you would expect award values to follow a smooth, downward-sloping curve: lots of small purchases, steadily fewer large ones. For the most part the Diavgeia data does exactly that: there are more awards worth €0–5K than €5–10K, more €5–10K than €10–15K, and so on up the scale. But right at the legal threshold that smooth decline snaps into a sharp spike, far more awards at €29,000–30,000 than just above. That is counter-intuitive, and it is no fluke: the same spike shows up in every category and in every year from 2023 to 2025. Whatever produces it is systematic, and has been running for years.

2

A second spike sits at ~€37,000 (and ~€74,000 for works), exactly the threshold × 1.24, the Greek VAT rate.

For most purchases a direct award is no longer legal above €30,000 (construction works have a higher €60,000 cap), so past the line the chart should fall to almost nothing. Instead a second, smaller spike appears, at about €37,000, which is the €30,000 threshold plus 24% VAT.

These are the same awards sitting just under the line, only recorded with the VAT left in rather than stripped out, so a net €30,000 price shows up as a €37,200 gross figure (more on how, just below).

3

Even setting those patterns aside, the records are so riddled with manual-entry errors that no human could review them by hand.

Nearly every record on Diavgeia is keyed in by hand, into a free-text form with , so the structured data is full of mistakes. Each one is a typing slip, not wrongdoing, but together they make the data almost impossible to take at face value.

Why does this matter for oversight?

With the API metadata in this state, it becomes very difficult, and at times impossible, for a human to review the direct awards at all.

When the amount, the supplier or the category is missing or mistyped, the basic checks an auditor would run (total the spend, rank the biggest buyers, group like purchases, follow one supplier across awards) quietly return the wrong answer. Add the volume arriving every day, and manual review stops being merely slow; it becomes impossible.

That is why two things are needed: AI to screen the records, catching what a human team no longer can, and validation at the point of entry, so the errors never get in to begin with.

AI-powered analysis

Having looked at the data at a high level, I then decided to deep-dive and analyse the direct awards by looking inside the official published PDFs, with the help of AI

To know whether an award is reasonable you have to open the actual document and read what was bought, from whom, and for how much. No person can do that tens of thousands of times. So I created an AI tool to do it, and reviewed the results.

Hypothesis

A detailed analysis of the official documents attached to each direct award, combined with the associated company data from Γ.Ε.ΜΗ. (Greece’s business registry), will surface suspicious activity, signs of possible waste, fraud or abuse of public funds.

Analysed further in the Key Findings section below ↓

The AI tool analyses the direct awards in the following way:

1

Read the signed PDF

The AI tool opens the behind each record, not just the , and reads all the relevant details: what was actually bought, the price, the agreed scope of work, whether the government committee signed off unanimously or some members objected to the award, and more.

2

Assign an initial suspicion score

The AI analyses the API metadata and everything inside the official PDF, then scores the direct award by how “suspicious” the record seems, against a scoring guideline I developed.

3

Update the score with company data from Γ.Ε.ΜΗ.

Some patterns only show once you know who the supplier is. The AI looks the supplier’s tax ID (ΑΦΜ) up in Γ.Ε.ΜΗ. and reads the company’s data there (when it was set up, the range of activities it is registered for, the people and addresses behind it, and more) and nudges the suspicion score up or down accordingly.

4

Summarise the award, and explain the score

Finally, for every record the AI writes a short, plain-language summary of what was bought, from whom and for how much (so you never have to read the Greek PDF), together with the reason for the score it gave. Every result links straight back to the original public document, so anyone can check the reasoning.

I then reviewed the most suspicious direct awards flagged by the AI tool inside a custom-made dashboard I built:

Key findings

A detailed record-by-record analysis shows that there is a systematic pattern that looks like waste, fraud or abuse of public funds

The detailed, record-by-record analysis the AI tool ran was easily able to flag awards of suspicious activity, each one a lead that deserves a thorough, human investigation, and it showed consistent patterns of possible waste, fraud or abuse of public funds. None of these is a verdict; each is a lead for review.

I group the suspicious activity the AI surfaced into three key themes:

1

Direct awards that look like waste of public funds.

The award looks like a waste of public funds and deserves a thorough investigation. These awards typically look normal from a high level (the API metadata raise no alarms), and only once you look inside the signed document, and combine it with company information from Γ.Ε.ΜΗ., does the award start to look suspicious.

  1. 1aThe award’s price is unintuitively high compared with what the work or goods should plausibly cost.

  2. 1bThe direct award is granted for vague deliverables (e.g. vague consulting services) that make the cost hard to justify.

Why does this harm Greek society?

Every euro overpaid, or spent on something a public body had no business buying, is a euro that never reaches a school, a clinic or a road that genuinely needed it. One award barely moves the needle; the same habit, repeated across thousands of awards, quietly drains budgets that are already stretched, and signals to honest suppliers and citizens alike that careful spending is optional.

2

Suspicions over the specific supplier selected for the direct award, or even the broader selection process.

The content of the direct award seems sensible, but the specific supplier selected to complete the task seems like a suspicious choice.

  1. 2aThe supplier is a brand-new firm, registered just days or weeks before they were given their first direct award.

  2. 2bThe buyer’s own board committee voted against the award, and their public statement explaining their objection raises concerns about the selection process for the award.

Why does this harm Greek society?

When the winner is a shell with no staff, a firm tied to the people deciding the award, or a “contest” run between companies that share an office, the public is no longer getting the best supplier. It is getting the best-connected one. The work may be over-priced, half-delivered, or quietly passed on to someone else, while the genuine businesses that could have done it are shut out. Each such award also chips away at the basic trust that public money is spent on merit rather than relationships.

3

Direct awards structured in a way to avoid an open tender, while often setting the highest price possible.

The specific patterns we often observed to raise suspicion for these cases:

  1. 3aThe award value looks engineered to land as close to the legal threshold (€30,000) as arithmetically possible.

  2. 3bOne project split into several smaller direct awards that each stay under the legal threshold, but collectively exceed it.

A further pattern stood out that I’ve chosen not to detail here: a number of individual buyers and suppliers place a consistently high share of their direct awards, 30% or more, in the narrow band just below the €30,000 legal limit. I’ve withheld the names here to avoid causing unnecessary reputational damage to specific entities; the details are available on request.

Why does this harm Greek society?

This pattern raises the likelihood that an award goes to a less qualified supplier who has the right (political) connections, rather than the best one for the job. Over time it can create a feedback loop: capable firms that lack those connections lose out again and again, and eventually go out of business, even though they could deliver the same work at better quality and a lower price than those who keep winning the awards.

These are the shapes that recurred most as the tool read through the awards, not an exhaustive list, and weighted toward where I looked hardest (the threshold). Some patterns I haven’t yet paired with a public example; where I have, it links to a real Diavgeia record.

Each case behind the links above is a real record. Company and public-body awards link to their Diavgeia page; for an award to a private individual the source is withheld in this public version (available on request). As throughout, these are counter-intuitive leads for a human to review, not accusations, and quite possibly with perfectly legitimate explanations.

Why it matters

Why it matters for Greek society

1

Economic inefficiency

Every euro overpaid, or spent on something a public body had no real reason to buy, is a euro that does not reach a school, a clinic or a road that genuinely needed it. A single award barely registers; the same habit, repeated at scale, steadily drains budgets that are already stretched.

2

Lack of meritocracy

When an award is shaped to land just under the threshold, or quietly steered to a particular supplier, the work tends to go to the firm with the right relationship rather than the one offering the best price or the best quality. Repeated across thousands of awards over years, that slowly squeezes out the capable companies that lack the connections, some of which could have done the same job for less, until they stop bidding, or close. The state is left buying from a shrinking pool of the best-connected rather than the best-qualified.

3

Loss of trust in the institutions

When the winner is a brand-new shell with no staff, a firm tied to the people deciding the award, or the outcome of a “contest” between companies that share an office, citizens are no longer getting the best supplier, only the best-connected one. Repeated at scale, that erodes the public’s in meritocracy, and by association, in the quality of Greek institutions themselves. This last cost reaches well beyond any single contract: the quality of a country’s institutions is one of the most important determinants of its long-run prosperity, a link established by Acemoglu, Johnson and Robinson, who won the 2024 Nobel Prize in Economics for this work.

What to change

So here is what I think should change: build a Diavgeia 2.0, one AI tool to read every award, another to fill in the record, and a small task-force to act on the leads

None of this needs a new law or a new portal. Greece already publishes a great deal of its spending; the gap is in the quality of what gets published, and in whether anyone reads it. It comes down to the same three actions I sketched at the very start, two AI tools and a small team to act on what they surface. Together they would amount to a Diavgeia 2.0: the same portal, finally trustworthy and actually read. Each action below comes with a couple of concrete steps.

1

AI-powered automation: create an AI tool that can analyse every past award, and every new one as it is uploaded.

This is essentially the tool I already built for this piece. The AI-powered analysis already does the hard part, handing back a ranked shortlist of leads, each with a suspicion score and a plain-language reason. A similar version of this tool can be created, and by using open-source models, run locally, can be scaled to the entire Diavgeia dataset, at effectively zero significant costs (I tested exactly this on a sample of ~500 records; see the appendix).

  1. 1aReview every past award. Use the AI tool to read every award Diavgeia has published since 2010, not just the recent window this piece sampled, and analyse the historic trends, turning years of records into a complete, ranked map of where the money, and the risk, actually sit.

  2. 1bRun it on every new upload. Integrate the tool into Diavgeia so each award is read and scored the moment it is uploaded, enabling humans to review the most suspicious leads, rather than get lost in the tens of thousands of records uploaded daily.

2

Minimising manual data entry: create another AI tool that populates the API metadata automatically, reading each PDF as it is uploaded, to replace the error-prone manual entry done by clerks.

That screening is only as good as the data beneath it, and today a clerk types the API metadata by hand from the signed document, which is why so many records are incomplete or plainly wrong. A second tool fixes it at the source: it reads the PDF and fills the amount, supplier, ΑΦΜ (tax ID), dates and scope straight into the API metadata, so the clerk confirms a pre-filled form instead of retyping it.

  1. 2aPopulate new records as they arrive. As each award is uploaded, the tool reads its PDF and pre-fills the API metadata, and the obvious errors, a gross figure dropped into the net amount field or a missing ΑΦΜ, are caught at the door rather than published.

  2. 2bBackfill the historic record. Run the same reader over the awards already filed to fill the missing amounts and suppliers and to flag the gross-for-net figures behind the €37,000 spike, so the last three years stop being a field of gaps and become something anyone can actually search, trust and analyse.

3

A small task-force: to investigate the leads the AI flags, to keep fine-tuning Diavgeia 2.0, and to make the open-tender process itself easier and faster.

The tools produce leads and clean data; people still have to act on them. A handful of reviewers is enough to close the loop and keep the whole system honest.

  1. 3aInvestigate the shortlist of suspicious direct awards flagged by the AI tool. Work down from the highest-scoring leads and the biggest buyers, where the patterns move the most public money.

  2. 3bKeep fine-tuning Diavgeia 2.0. Feed what each investigation turns up back into the tools so their scoring and extraction keep sharpening.

  3. 3cConsolidate input from public bodies and suppliers on the existing pain points of the open-tender process, and identify actionable recommendations to make it more efficient. The goal is to make it easier and faster for public bodies to go through the open-tender process, instead of having to split contracts into multiple direct awards.

Conclusion

What the data shows: systematic patterns that need to be investigated in Greece’s direct awards, a database too messy for humans to review effectively, and a practical way to fix the status quo leveraging AI

To recap, I investigated Greece’s direct awards (απευθείας αναθέσεις) in a systematic way. The goal was:

  1. to identify the key “suspicious” insights and trends, hidden behind millions of messy datapoints;
  2. to come up with actionable recommendations, leveraging the latest AI capabilities, to improve the status quo.

I started by downloading all of them: more than 1 million records published on Diavgeia (the public transparency portal) between 2023 and 2025.

A first analysis & visualisation of the data provided 3 initial insights:

  1. A spike in the number of awards just below the legal threshold. Rather than tapering off smoothly as they approach the €30,000 threshold, the count of awards jumps sharply right beneath it.
  2. A second spike just above the threshold, at about €37,000. That is the threshold plus 24% VAT, the sign of a gross figure typed into the field meant for the net amount.
  3. A record full of gaps and errors. The structured data meant to describe each award is often incomplete or simply wrong: more than four in ten 2025 awards list no amount at all, and more than half name no supplier, which makes this spending almost impossible to audit at scale.

Taking into account the 3 insights uncovered from the initial high-level analysis, I hypothesised that a record-by-record analysis of the official documents attached to each direct award would surface a systematic pattern of waste, fraud or abuse of public funds.

To test this hypothesis, I analysed thousands of real documents, with the help of AI: opening the signed PDF behind each award, pulling the company’s details from Γ.Ε.ΜΗ. (the company registry), and assigning a suspicion score to each of them.

This detailed analysis surfaced 3 recurring themes:

  1. Awards that seem like a waste of public funds. From the API metadata the award looks ordinary; the questions surface only on reading the signed contract and cross-checking the supplier in Γ.Ε.ΜΗ.: a vague deliverable such as “advice” or “consulting” with nothing concrete to show for it, or a price several times what the work should plausibly cost.
  2. A supplier, or a selection process, that does not bear scrutiny. The work itself looks sensible, but the winner does not: a firm incorporated only days before it won, one registered for hundreds of unrelated activities with no real trading history, or a “contest” between vendors quietly controlled by the same people.
  3. Awards structured to sidestep the open tender, often at the top price allowed. The award is shaped to stay a one-signature direct award rather than trigger a competitive tender: a value engineered to land just under the €30,000 threshold, or a single job split into several smaller awards that each stay beneath it.

These findings imply that the current process for assigning direct awards has, in many cases, a clear negative impact on Greek society. The pattern steers public work to the best-connected firm rather than the best-qualified or the best-priced, which is clearly inefficient from an economic perspective. The second-order implication of this pattern is that society loses in meritocracy, and by association, in the quality of Greek institutions themselves. This last implication is critical for the broader Greek economy, as the quality of a country’s institutions is one of the most important determinants of its long-run prosperity.

The hopeful part is that the status quo can be improved quickly, leveraging the latest AI capabilities. I suggest 3 key actionable recommendations:

  1. AI-powered automation: create an AI tool, like the one I built for this piece, to analyse every past award and every new one as it is uploaded, handing back a ranked shortlist of leads, each with a suspicion score and a plain-language reason.
  2. Minimising manual data entry: create another AI tool that reads each signed PDF and fills the API metadata (the amount, supplier, ΑΦΜ, dates and scope) automatically, replacing the error-prone manual typing done by clerks, and run it back over the historic record to repair it.
  3. A small task-force: a handful of reviewers to investigate the leads the AI flags, starting where the pattern moves the most money at the biggest buyers, and to keep fine-tuning Diavgeia 2.0.

None of this needs a new law or a new portal. The same Diavgeia that surfaced every pattern in this piece could just as easily be what catches them. For now the record is good enough to raise the questions and not yet good enough to answer them, and closing that gap is well within reach.

And this is only the beginning. This piece looked at a single kind of decision, the direct award, and read only a small fraction of even those in detail, limited by what one person could analyse. Yet direct awards are a small corner of what Greece publishes: in 2025 alone, Diavgeia had more than 6.2 million decisions uploaded, of which only about 340,000 were direct awards.

YearAll Diavgeia decisionsDirect awardsDirect-award share
20236,108,577376,1486.2%
20245,833,068342,2715.9%
20256,222,295341,2405.5%

All-type totals come from Diavgeia’s OpenData API; the direct-award (Δ.1) counts are the same ones used throughout this piece. Both count published decisions issued in each calendar year.

So if these findings read as discouraging, the wider picture is the opposite. The same approach that surfaced these patterns in one narrow corner could be pointed at the rest of the portal, the tenders, the public hires, the grants, the contract changes, and at the roughly six million decisions that arrive every year. The problems are real, but the opportunity is far larger, and for the first time the tools to act on it are within reach.

Appendix

Appendix A

How to pull the Diavgeia data yourself

Everything in this piece comes out of a single public source, and you need no account, no API key, and no one’s permission to pull it yourself. Diavgeia (the government transparency portal) exposes an unauthenticated OpenData search endpoint that hands back the same structured records I worked from, as JSON. Here is the exact recipe I used to turn it into a local database of every direct award.

Method & caveats
  • Late uploads. Decisions signed in 2025 keep arriving on the portal for months afterwards, so the exact counts drift upward over time. The shape does not.
  • Leads, not verdicts. Every “suspicious” award is a candidate for human review, not a finding of wrongdoing. The careful rankings are human-checked; a cheaper automated pass over-flags and is not used for the headline cases.
  • Data-quality vs. suspicion. A gross-for-net amount or a missing tax ID is a data error, never treated as fraud.
  • Firm ages are a floor. Where a firm was already active before the data window, the age I can measure from the records is a floor, not an exact figure.
  1. Start at the search endpoint, filtered to direct awards. Every record sits behind one URL, https://diavgeia.gov.gr/luminapi/opendata/search.json, which you filter to Δ.1 (the direct-award decision type) over a date range. A real, runnable first call is …/search.json?type=Δ.1&from_issue_date=2025-01-01&to_issue_date=2025-02-01&size=500&page=0. It answers as JSON: an info block with the total count, then a decisions array. By default the endpoint returns only published decisions (status=Αναρτημένη), which already excludes any award later revoked.
  2. Use the long date-parameter names, and walk one month at a time. Two silent traps live here. First, the date parameters are from_issue_date and to_issue_date, not from_date / to_date. The short names are accepted and return a 200, but they filter the publication date rather than the issue date, so you get a differently bounded (often empty) set. Second, a single query silently covers at most about six months; ask for a whole year and you still get a 200, but it stops half-way. So I walk the year in twelve one-month windows. Because the upper bound is read as 00:00 Athens time (a half-open interval), I set each window’s to_issue_date to the first day of the next month, so the month’s last calendar day is not dropped.
  3. Page through each window until a short page comes back. Set size=500 (the maximum) and start at page=0, incrementing until a page returns fewer than 500 records, that is the last page of the month. 2025 alone holds roughly 341,000 Δ.1 records, so expect to page through a lot of them; a half-second pause between calls keeps it polite, and I never hit a rate limit.
  4. Download the organisation catalogue once, to turn IDs into names. Each decision names its buyer only as a numeric organizationId. The full roster of 5,400+ public bodies comes from one call to https://diavgeia.gov.gr/luminapi/opendata/organizations.json?size=15000, which maps each uid to a readable name (plus its supervising ministry and ΑΦΜ). A handful of renamed or retired bodies are missing from that dump; for those I look the uid up one at a time at …/opendata/organizations/{uid}.json.
  5. Keep the structured fields that matter, per decision. For every record I store the ΑΔΑ (the public posting id, in ada); the buyer (organizationId); the decision type (decisionTypeId, always Δ.1); the issue date (issueDate, as Unix milliseconds); the amount, which lives inside extraFieldValues as a single (optional) awardAmount field (labelled “Ποσό”, meant to be net of VAT); the supplier’s name and ΑΦΜ (from extraFieldValues.person); the CPV procurement codes (extraFieldValues.cpv); the free-text subject; and the documentUrl pointing at the signed PDF. Be ready for the amount to be missing, about 42% of 2025’s records carry none.
  6. Optionally, follow each documentUrl to the signed PDF. The metadata alone is enough to count and rank, but the real contract is the document. Each record’s documentUrl links straight to its PDF (the human-readable page is https://diavgeia.gov.gr/decision/view/{ada}). I fetch these only for the awards I actually mean to read.
  7. Load it into SQLite and start asking questions. I write one row per ΑΔΑ into a local SQLite file (decisions.db), with the organisation catalogue in a sidecar table joined on the uid, plus small log tables recording what was fetched and which decisions were revoked. After that it is ordinary SQL: sum each buyer’s awards by month, rank suppliers by how often they land just under a threshold, and so on. The whole 2025 corpus (about 341,000 awards, 1,544 active buyers, 37,576 distinct supplier ΑΦΜs, €16.3 billion of apparent spend) fits comfortably in one file on a laptop. (The headline 1.06 million awards and ~€46 billion of apparent spend elsewhere in this piece is the same pull extended across 2023–2025.)

Or, if that sounds like an afternoon you would rather skip: paste this entire recipe into Claude (Opus 4.8, with its 1 million-token context window) and you should be up and running in a few hours.

Appendix B

Scalability of the AI tool: The latest open-source models (like GLM 5.2 max) are almost equally as effective in analysing records from Diavgeia as the leading proprietary models from labs like Anthropic and OpenAI

The analysis in this piece ran on a paid, state-of-the-art model (Opus 4.8), the right call for accuracy but costly to run across a whole national dataset. So I also tested a free alternative: I re-scored a sample of about 500 direct awards with GLM 5.2, one of the newest open-source models, and compared it against Opus on the same records.

The two broadly agreed. The open model’s average suspicion score was 3.0, against Opus’s 3.2 on the same scale. They scored within a single point of each other on two out of three records, and within two points on 87% of them. Most useful for a real filter, the open model caught more than nine in ten of the awards Opus rated most suspicious.

Better still, because an open model can be fine-tuned, its accuracy can be pushed higher still by training out specific blind spots.

The point is the cost. GLM 5.2 is open-source, so it can be run on an organisation’s own hardware with no per-record fee, and pointed at every award the portal has ever published, and every new one as it arrives, at effectively zero marginal cost.

Appendix C

How to pull the Γ.Ε.ΜΗ. company data yourself

To judge a supplier rather than a single award, I matched each vendor’s tax ID (ΑΦΜ) against Γ.Ε.ΜΗ. (the General Commercial Registry, Greece’s company registry). The same data is public, and the cross-check is reproducible: here is how to pull a company’s registry profile yourself, starting from nothing but an ΑΦΜ read off a Diavgeia award.

  1. Start from the supplier’s tax ID. Every direct award names its contractor’s ΑΦΜ in the API metadata. That nine-digit number is the key that ties an award to a real company. Γ.Ε.ΜΗ. is the register every Greek company is enrolled in, so that number is what I take there next.
  2. Request an access code first. The data is free, but gated. You apply for a key at the Open Data Γ.Ε.ΜΗ. access-request form, the Central Γ.Ε.ΜΗ. Authority approves it (a business day or two), and your personal api_key then arrives by email, to be sent as a raw api_key request header on every call, not a Bearer token. The default budget is modest, about eight requests a minute (I asked them to raise mine to roughly thirty). The full method list, schemas and a try-it-yourself console live in the Swagger API docs (a shared api-docs-key lets you poke at it before you register), with more in the technical documentation.
  3. Query the open-data API by ΑΦΜ. The registry runs a JSON open-data service at opendata-api.businessportal.gr, and a lookup is a single GET /companies?afm=<ΑΦΜ> with your api_key header attached. The search response already carries the full record, so you rarely need the follow-up GET /companies/<αριθμός Γ.Ε.ΜΗ.> detail call.
  4. Throttle, and stay polite. That budget is small, so space your request starts a couple of seconds apart and back off whenever the service answers 429. There is no rush here: this is a slow read of public records, not a scrape.
  5. Read the company’s shape, age and size. Each profile returns the επωνυμία (legal name), the νομική μορφή (legal form), the κατάσταση (status: active, dissolved, or under liquidation), the σύσταση (incorporation date) and the κεφάλαιο (share capital). The most telling single field is the age: compare σύσταση to the date of the firm’s first award. A company set up only weeks before it starts winning public money, or one with token capital against large contracts, is not proof of anything, but it is worth a second look.
  6. Read the fields that connect firms to each other. The same profile carries the έδρα (registered seat), the ΚΑΔ (activity codes) and the εκπρόσωποι (the managers and representatives). These are the network leads: two “rival” winners sharing one registered address, a single firm registered for hundreds of unrelated trades, or a manager who also turns up among the buyer’s own people. None of these is a verdict (there is an innocent explanation for each), but every one is a thread worth pulling.
  7. Cache every answer to SQLite. I wrote each result into a local SQLite database (one table keyed by ΑΦΜ for the lookup, one for the resolved company) with a short time-to-live, so re-checking a company I had already seen costs no API call at all. With tens of thousands of suppliers to match, the cache is most of what keeps you inside the rate limit.
  8. Know the two honest limits. First, in my sample, roughly 15–20% of vendors are not in Γ.Ε.ΜΗ. at all, most of them natural persons and freelancers who fall outside the registry’s duty (and, in some cases, an ΑΦΜ mistyped into Diavgeia’s metadata), so their absence is usually normal and rarely a red flag on its own. Second, the API gives you the registry profile but not the filed accounts: the annual ισολογισμοί (financial statements) live only on the registry’s web portal, so you cannot read a company’s numbers this way. Even so, matching these signals across thousands of awards is exactly what turns a list of names into a network.

Appendix D

Greece ranks last in terms of Open Data Maturity across all 27 EU Member States

The EU’s Open Data Maturity (ODM) assessment is an annual exercise, run by data.europa.eu (the Publications Office of the European Union), that measures the progress of European countries in promoting and facilitating the availability and reuse of public-sector information. Its methodology evaluates developments in open data across four thematic dimensions: policy, portal, quality and impact. Maturity in these four dimensions is aggregated into a single overall score that shows a country’s open-data maturity.

In the 2025 edition, Greece came last in the union: 27th of 27 EU member states, and well below the EU average. A year earlier it ranked 26th.

Open-data maturity20242025
Greece56.2%61.2%
EU-27 average83%86%
Greece’s rank in the EU-2726th of 2727th of 27

Overall Open Data Maturity scores from the EU’s 2025 assessment and Greece’s country factsheets (2025, 2024), published by data.europa.eu. The report sorts countries into maturity clusters rather than printing a 1–27 list, so the rank is Greece’s position by overall score among the EU-27.

The benchmark covers all of Greece’s public-sector data, not Diavgeia alone, and it points the same way this piece does. Greece has had the mandate and the portal since Diavgeia launched in 2010, yet it ranks last in the EU on how mature its open data actually is. The full figures and methodology are in the 2025 Open Data Maturity report.

Appendix E

A short glossary of the Greek terms and codes

A quick reference for the Greek terms and code names that recur through this piece, so a reader can dip in without hunting back for where each was first defined.

  • Diavgeia, Greece’s mandatory transparency portal: every public-spending decision is published there as a signed PDF plus structured API metadata before it takes legal effect.
  • Δ.1 (απευθείας ανάθεση, direct award), the decision type for a no-bid award: a public body picks a supplier directly, with no open tender, allowed only up to €30,000 net for supplies and services (€60,000 for works / έργα).
  • ΑΔΑ, the unique posting id every Diavgeia decision carries, as in a diavgeia.gov.gr/doc/<ΑΔΑ> link.
  • ΑΦΜ, a Greek tax ID; here, the number that identifies the supplier behind an award.
  • Γ.Ε.ΜΗ., the General Commercial Registry, where Greek companies record their legal form, age (σύσταση), seat, activity codes (ΚΑΔ) and managers.
  • CPV / ΚΑΔ, two classification systems: CPV is the EU procurement vocabulary for what was bought; ΚΑΔ is the Greek activity-code system for what a company is registered to do.