Στατιστικοί δείκτες ρίσκου διαδικασιών — όχι διαπιστώσεις παρανομίας.Μεθοδολογία · Δικαίωμα απάντησης

Μεθοδολογία

Έκδοση: 0.1 (draft) · Τελευταία ενημέρωση: 2026-07-08 · Άδεια: CC BY 4.0

Κεντρική αρχή — διαβάστε πρώτα αυτό: Οι δείκτες που δημοσιεύονται εδώ είναι στατιστικοί δείκτες ρίσκου διαδικασιών, όχι διαπιστώσεις παρανομίας, διαφθοράς ή κακοδιαχείρισης. Ένας υψηλός δείκτης σημαίνει «μοτίβο που, σύμφωνα με τη διεθνή βιβλιογραφία, δικαιολογεί περαιτέρω διερεύνηση» — τίποτα περισσότερο. Όπως το διατυπώνει το Red Flags Project (Ουγγαρία): «risky does not mean corrupt». Πολλά flags έχουν απολύτως νόμιμες εξηγήσεις (επείγουσες ανάγκες, εξειδικευμένες αγορές με έναν προμηθευτή, μικρά δείγματα, νησιωτικότητα κ.ά.).


1. Σκοπός

Η πλατφόρμα συγκεντρώνει, κανονικοποιεί και οπτικοποιεί δημόσια, ανοιχτά δεδομένα δημοσίων συμβάσεων της Ελλάδας, και υπολογίζει πάνω σε αυτά επικυρωμένους από τη βιβλιογραφία δείκτες ακεραιότητας διαδικασιών (procurement integrity indicators). Στόχοι:

  1. Να μπορεί κάθε πολίτης να δει τι αγοράζει ο δήμος, η περιφέρεια ή το υπουργείο του, από ποιον και με ποια διαδικασία.
  2. Να αναδεικνύονται μοτίβα που η διεθνής έρευνα συσχετίζει με αυξημένο ρίσκο μειωμένου ανταγωνισμού — πάντα με πλήρη πρόσβαση στα πρωτογενή δεδομένα και στη μεθοδολογία υπολογισμού.
  3. Να παρέχεται στους φορείς και τις εταιρείες δικαίωμα απάντησης/διόρθωσης (βλ. DISCLAIMER.md).

Ό,τι δημοσιεύεται συνοδεύεται από: (α) τα raw δεδομένα από τα οποία προέκυψε, (β) link στο πρωτότυπο ΑΔΑΜ/ΑΔΑ, (γ) την ακριβή φόρμουλα υπολογισμού, (δ) τους περιορισμούς της.


2. Πηγές δεδομένων

2.1 ΚΗΜΔΗΣ Open Data API (κύρια πηγή)

Το Κεντρικό Ηλεκτρονικό Μητρώο Δημοσίων Συμβάσεων (ΚΗΜΔΗΣ) είναι το επίσημο μητρώο στο οποίο οι αναθέτουσες αρχές υποχρεούνται εκ του νόμου (ν. 4412/2016) να καταχωρίζουν τις πράξεις τους. Οντότητες που αντλούμε:

Οντότητα Endpoint Πρόθεμα ΑΔΑΜ Περιεχόμενο
Αιτήματα POST /request REQ Πρωτογενή αιτήματα δαπάνης
Προσκλήσεις/Προκηρύξεις/Διακηρύξεις POST /notice PROC Δημοσίευση πρόθεσης σύναψης σύμβασης
Αναθέσεις POST /auction AWRD Αποφάσεις ανάθεσης (κατακύρωσης)
Συμβάσεις POST /contract SYMV Υπογεγραμμένες συμβάσεις
Εντολές Πληρωμών POST /payment PAY Εντολές πληρωμής
Συνδεδεμένες Πράξεις GET /adamChain/{ΑΔΑΜ} Η αλυσίδα REQ→PROC→AWRD→SYMV→PAY

Κρίσιμα πεδία κάθε εγγραφής (επιβεβαιωμένα από το API):

2.2 Μελλοντικές/συμπληρωματικές πηγές (δεν χρησιμοποιούνται ακόμα)

Κάθε νέα πηγή θα τεκμηριώνεται εδώ πριν χρησιμοποιηθεί σε δημοσιευμένο δείκτη.


3. Συλλογή & επεξεργασία δεδομένων

  1. Άντληση: μέσω του open-source client μας (src/kimdis/client.py): σελιδοποίηση 50 εγγραφών/σελίδα, χρονικά παράθυρα ≤180 ημερών, όριο <350 αιτήματα/λεπτό, αυτόματη επανάληψη σε προσωρινά σφάλματα. Τα δεδομένα αποθηκεύονται ως έχουν (raw) σε μορφή Parquet.
  2. Έλεγχοι πληρότητας: για κάθε batch μετράμε % εγγραφών με έγκυρο ΑΔΑΜ, ημερομηνία, ποσό, ΑΦΜ (με έλεγχο checksum), CPV. Τα reports πληρότητας δημοσιεύονται.
  3. Κανονικοποίηση: ενιαίος πίνακας φορέων (ΑΦΜ → όνομα → τύπος → NUTS) και αναδόχων. Στη Φάση 2 προστίθεται entity resolution (deduplication παραλλαγών ονομάτων) με μετρημένη ακρίβεια σε χειροκίνητο δείγμα.
  4. Αποπληθωρισμός: όπου συγκρίνονται ποσά μεταξύ ετών, μετατρέπονται σε σταθερές τιμές έτους βάσης με τον ΔΤΚ της ΕΛΣΤΑΤ. Ονομαστικά και αποπληθωρισμένα ποσά εμφανίζονται και τα δύο.
  5. Καμία χειροκίνητη παρέμβαση σε τιμές: δεν διορθώνουμε, δεν συμπληρώνουμε και δεν «καθαρίζουμε» ποσά ή ονόματα πέρα από τεκμηριωμένους, αναπαραγώγιμους κανόνες που ζουν στον κώδικα αυτού του repo.

4. Δείκτες (v1)

Όλοι οι δείκτες v1 υπολογίζονται αποκλειστικά από πεδία ΚΗΜΔΗΣ και στηρίζονται σε επικυρωμένη βιβλιογραφία (βλ. §8). Κάθε δείκτης δημοσιεύεται μαζί με: το N (μέγεθος δείγματος), την περίοδο αναφοράς, και τα επιμέρους στοιχεία από τα οποία υπολογίστηκε.

4.1 Ποσοστό απευθείας αναθέσεων

4.2 Συγκέντρωση αναδόχων (HHI & top-1 μερίδιο)

4.3 Single-bid rate

4.4 Έλεγχος Benford (1ο & 2ο ψηφίο)

4.5 Κατακερματισμός συμβάσεων (bid-splitting)

4.6 Ποσοστό έκπτωσης προκήρυξης → σύμβασης

4.7 Σύντομες προθεσμίες υποβολής

4.8 Σύνθετος δείκτης (τύπου CRI)


5. Κατώφλια δημοσίευσης & στατιστική προστασία

6. Τι ΔΕΝ ισχυριζόμαστε

  1. Δεν ισχυριζόμαστε ότι οποιοσδήποτε φορέας, εταιρεία ή πρόσωπο έχει διαπράξει παρανομία. Αυτό μπορεί να το κρίνει μόνο δικαστήριο ή αρμόδια ελεγκτική αρχή.
  2. Δεν υπολογίζουμε «πραγματικό κόστος αγοράς» ή «υπερτιμολόγηση» συγκεκριμένης σύμβασης — δεν υπάρχουν τα δεδομένα για κάτι τέτοιο. Ό,τι συγκρίσεις τιμών γίνουν (Φάση 3) θα είναι σχετικές συγκρίσεις εντός του ίδιου dataset (π.χ. απόσταση από τη διάμεση τιμή μονάδας ίδιου CPV/έτους), με δημοσιευμένη φόρμουλα.
  3. Δεν δημοσιεύουμε δεδομένα φυσικών προσώπων στη v1. Μόνο φορείς και νομικά πρόσωπα.
  4. Συγκεντρωτικές εκτιμήσεις «δυνητικής εξοικονόμησης» (Φάση 3) θα παρουσιάζονται μόνο ως εύρος σε εθνικό/κλαδικό επίπεδο με ρητές παραδοχές, ποτέ ως ποσό που αποδίδεται σε συγκεκριμένο φορέα.

7. Διαφάνεια, αναπαραγωγιμότητα & changelog

8. Βιβλιογραφία & πρότυπα

9. Changelog μεθοδολογίας

Ημερομηνία Έκδοση Αλλαγή
2026-07-08 0.1 Αρχική έκδοση: ορισμοί δεικτών v1, πηγές, αρχές δημοσίευσης. Κανένας δείκτης δεν έχει δημοσιευθεί ακόμα.
2026-07-08 0.2 Πρώτη υλοποίηση §4.5 (bid-splitting) και §4.6 (discount rate) σε scripts/compute_indicators_v1.py, επί δεδομένων 2020-2021 + 2025-05. §4.5: πίνακας ορίων απευθείας ανάθεσης ανά περίοδο – πριν 1/6/2021: 20.000€ (όλες οι κατηγορίες)· από 1/6/2021 (ν. 4782/2021): 30.000€ προμήθειες/υπηρεσίες, 60.000€ έργα/μελέτες/τεχνικές υπηρεσίες (κατηγοριοποίηση βάσει contractType.value). Χρειάζεται νομική επιβεβαίωση πριν οριστική δημοσίευση (πρώτο πέρασμα βάσει δημόσιας δευτερογενούς πηγής, όχι πρωτογενούς νομικού κειμένου). §4.6: η σύνδεση notice↔contract μέσω contract.noticeReferenceNumber είναι σχεδόν κενή στα δεδομένα (<0.1%, ελέγχθηκε επί 2020-01)· χρησιμοποιείται αντ’ αυτής η σύνδεση notice.referenceNumberauction.noticeRefNo (κάλυψη: μόνο ~10-18% των auctions έχουν καν noticeRefNo – αναμενόμενο, αφού οι απευθείας αναθέσεις δεν προηγούνται notice) και η τιμή κατακύρωσης (auction) ως proxy της τελικής τιμής σύμβασης αντί της υπογεγραμμένης σύμβασης. Το ποσοστό κάλυψης δημοσιεύεται πάντα δίπλα στον δείκτη. Προστέθηκε επίσης πίνακας κανονικοποίησης φορέων (scripts/build_entity_table.pydata/processed/entities.csv, ΑΦΜ→όνομα/τύπος/NUTS) και static dashboard v1 σκελετός (site/, χωρίς build step, τροφοδοτείται από scripts/build_site_data.py).
2026-07-09 0.3 Pre-release: εφαρμόστηκε το πλάνο του τεχνικού ελέγχου (docs/tech_report.md). Ενιαίος persisted VAT resolver (A3): build_entity_table.py γράφει πλέον data/processed/vat_resolver.csv (name→ΑΦΜ, χτισμένο από auction+contract+notice)· compute_indicators_v1.py και build_foreas_data.py τον διαβάζουν αντί να χτίζουν ο καθένας δικό του (πριν, το build_foreas_data.py χτίζε resolver μόνο από auctions, ~25% ΑΦΜ fill, με αποτέλεσμα ασύμφωνα κλειδιά ΑΦΜ ανάμεσα σε δείκτες και σελίδες προφίλ φορέα). Έλεγχος πληρότητας pagination (A1): το backfill πλέον επαληθεύει totalElements έναντι των πραγματικά κατεβασμένων εγγραφών· ελλιπείς μήνες δεν γράφονται καθόλου (αντί να γράφονται ως “πλήρεις” με λιγότερες γραμμές) και καταγράφονται σε data/raw/_backfill_failures.json για επανάληψη. Η αναδρομική επαλήθευση/διόρθωση του ήδη κατεβασμένου 2020-2023 dataset (audit A1 + γνωστά κενά auction_2020_08, auction_2021_02) εκκρεμεί ακόμα – θα εκτελεστεί σε επόμενο run του backfill_historical.py και οι αριθμοί των δεικτών θα ενημερωθούν τότε αν αλλάξουν.