Moved from gov-agreg/src/pages/achizitii/* to root (drop prefix). - 22 pages migrated, 127 files total - All internal links: /achizitii/X → /X (176 occurrences fixed) - AchizitiiLayout subnav rewritten: /X paths, top-right link to vreaudigital.ro hub - BaseLayout new (vreau.digital branding, OG tags, site URL) - astro.config.mjs: site https://vreau.digital, server output (was static) - docker-compose: port 5096 (vreaudigital is 5095), container vreau-digital - deploy.sh: paths /opt/vreau-digital, log /var/log/vreau-digital-deploy.log Backend shared with gov-agreg: - PostgreSQL satra (same schemas: seap, firms, anaf, anre, ...) - Photon, Martin tiles - Infisical /vreaudigital path (DATABASE_URL etc. shared) build: PASS (npx astro check 0 errors, npm run build 5s vite + 10s server)
20 KiB
Audit prospețime + completitudine — gov-agreg DB
Data: 2026-05-10
Sub-agent: G3 (data quality)
Bază date: architools_db @ 10.10.10.166 — dimensiune totală 29 GB
Acoperire audit: 17 schemas / 33 tabele de date (excludem staging și scrape_log)
Total rânduri reconciliat: 17,907,148 (~17.9M, vs ~6.94M citate anterior — schimbarea majoră vine din fonduri.afir_plati cu 5.33M rânduri și firms.entities la 3.99M).
1. Executive summary — Tabel sinteză 17 schemas
| Schema | Rânduri | Ultima înregistrare | Ultim scrape | Sursă (frecvență) | Gap | Acțiune | Prioritate |
|---|---|---|---|---|---|---|---|
| seap | 4,011,832 | 2026-05-30 | 2026-05-10 | live API + WSP | live OK; gap 2020-21 + 2024 + DA pre-2025 | Backfill DA 2017-24 (~8M) + WSP retake 2020-21 | 🔴 |
| firms | 8,640,978 | 2026-05-09 | 2026-05-09 | ONRC weekly | OK | menține cron weekly | 🟢 |
| fonduri | 5,430,381 | 2026-05-10 | 2026-05-10 | data.gov.ro | OK | (afir 2025 nepublicat încă) | 🟢 |
| regas | 78,546 | 2026-05-07 | 2026-05-09 | C.Concurenței lunar | OK | menține cron lunar | 🟢 |
| anaf | 140,777 | 2016-03-31 (datornici!) | 2026-05-09 (no-op) | data.gov.ro Q | 3,693 zile | scrape Q4 2025 (date nouă necesită captcha) | 🔴 |
| aep | 379,977 | 2024-12-27 | 2026-05-09 | banipartide.ro | ~140 zile | re-scrape 2025 (anual e OK) | 🟡 |
| ani | 25 PDFs / 0 parsate | 2023 | n/a | live ANI | parser ne-implementat | dezvoltare parser ANI 1.3M PDFs | 🔴 |
| bugetar | 18,822 entități / 0 execuție | n/a | 2026-05-09 | mfinante.gov.ro | execuție 0 rows!!! | repară pipeline bugetar.executie |
🔴 |
| anre | 29,536 | 2027-11-20 (data_emitere) | 2026-05-10 | live ANRE | OK; 2025 fresh | adaugă electricieni pipeline | 🟢 |
| ancom | 3,054 | live | 2026-05-10 | live ANCOM | OK | menține cron | 🟢 |
| cnsc | 29,488 | 2026 listing | 2026-05-10 | live CNSC | listing OK; 0% PDF parse | extracție decision_type din PDF (medium) | 🟡 |
| cnas | 36,244 (61 doc + 36k furnizori) | 2025-03-31 | 2026-05-10 | WP media CNAS | OK; 0% CUI match | activează matcher CUI | 🟡 |
| asf | 849 | 2022-12-19 | 2026-05-10 | live ASF | OK (nightly) | menține | 🟢 |
| aaas | 11 | n/a (last_action_date NULL) | 2026-05-10 | aaas.ro portfolio | only 11 firme — incomplete | backfill ORDIN 278/2005 PDF (~150 firme) | 🟡 |
| curteacont | 1,133 | 2026-05-15 | 2026-05-10 | live curteadeconturi.ro | listing OK; 0% PDF + 0 CUI | Stage 2 detail-page resolve | 🟡 |
| apia | 191 | 2024 (campaign) | 2026-05-10 | data.gov.ro CKAN | doar 1 CUI matched (191 PF) | re-rulează matcher cu fuzzy + adaugă camp.2025 | 🔴 |
| gnm | 349 (348 com + 1 amendă) | 2026-03-18 | 2026-05-10 | live gnm.ro RSS | listing OK; 0.6% amenzi parsate | finalizează Stage B (fuzzy matcher live) | 🟡 |
Legendă: 🟢 sănătos · 🟡 are gap-uri rezolvabile <2 zile · 🔴 problemă structurală sau backlog mare
2. Per-schema deep dive
2.1 SEAP (seap.*)
| Tabel | Rânduri | Min - Max date | Distinct CUI authority/supplier |
|---|---|---|---|
announcements |
781,029 | 2015-04-29 → 2026-05-30 | 14,616 / 65,643 |
direct_acquisitions |
2,229,285 | 2025-01-01 → 2025-12-31 | 14,642 / 74,239 |
cui_location |
96,523 | upd 2026-04-13 → 2026-05-09 | 96,523 |
entities |
432 | 2026-04-13 (one shot) | 430 |
cpv_codes |
~9,500 | static | — |
public_notices, notice_contracts |
0 / 0 | gol | (legacy goale) |
Distribuție anuală announcements:
2015: 4,368 2016: 39 2017: 26,871 2018: 17,871
2019: 16,570 2020: 0 2021: 0 2022: 24,676
2023: 46,996 2024: 750 2025: 607,256 2026: 26,178
Probleme observate:
- ❌ 2020 + 2021 lipsă completă (gap de 2 ani — confirmat în CLAUDE.md). Sursa: WSP scraper a sărit fereastra când a fost lansat în 2022.
- ❌ 2024 cvasi-absent (doar 750 rows în martie). Backfill nu a recoperit 2024.
- ❌ direct_acquisitions doar pentru 2025 (2,2M rows!) — istoric 2017-2024 = ~8M rânduri pierdute. CLAUDE.md confirmă "direct procurement 2017-2024 not ingested (~8M rows pending)".
- ❌
seap.sync_statearată feeddaînrunningdin 2025-10-16, ultim update 2026-04-13 — backfill istoric blocat, nu mai progresează. - ❌
wsp_sync_statenu a mai rulat din 2026-05-07 (3 zile stale; scraper rulează cron 2-4 ori/zi de obicei). - ❌
seap.public_noticesșiseap.notice_contractscomplet goale (legacy schema sau pipeline dezactivat). - ⚠️ TED import:
import_ted.pylinia 22-38 — arrayFIELDSNU conține'publication-date', deși codul îl folosește la linia 152. Toatepublication_datedin TED sunt NULL (1-line fix).
Completitudine recentă: announcements ultimele 30 zile = 3,474 rânduri ✅. DA ultimele 30 zile = 0 ❌.
2.2 firms (firms.*)
| Tabel | Rânduri | Coverage |
|---|---|---|
entities |
3,985,967 | 3.99M total · 3.32M active ANAF · 3.74M cu CAEN · 3.64M geocodate · 2.62M cu reprezentanți |
financials |
4,245,749 | 2020-2024 · 1.18M CUI distincți |
financials_banks |
66 | 2024 |
financials_ong |
286,240 | 2020-2024 · 74,862 ONG |
reprezentanti_if |
122,956 | sucursale UE |
Completitudine:
- 91.3% au CAEN (
caen_principal NOT NULL) - 91.3% sunt geocodate (
lat NOT NULL) - 65.7% au reprezentanți legali în JSON
- 83.4% activi ANAF (restul radiate / suspendate)
Probleme: niciuna critică. Last update 2026-05-09. Cron weekly OK. Există staging_onrc_* (~3GB) — probabil de șters după backfill.
2.3 fonduri (fonduri.*)
| Tabel | Rânduri | Date range | CUI matched |
|---|---|---|---|
afir_plati |
5,329,006 | source_year 2023-2024 | 37,647 distincți |
beneficiar_anunt |
41,494 | 2013-10 → 2026-05-08 | 8,772 |
beneficiar_anunt_lot |
48,392 | — | — |
beneficiar_proiect |
11,489 | 2010-05 → 2026-05-08 | 0 matched ⚠️ |
Probleme:
beneficiar_proiectare 11,489 rânduri dar 0 CUI matched (columncuipopulat?, darcount(distinct cui)= 0 — necesită investigație: probabil toate NULL).- AFIR plăți istoric 2007-2022 nepublicat (sursa data.gov.ro publică doar 2023-2024 unificat).
- AFIR 2025 — sursa de obicei publică în Q1 anul următor; nu e gap real, e timing.
2.4 regas (regas.ajutoare)
- 78,546 rânduri, 2016-01-13 → 2026-05-07 (live, lunar)
- 23,805 CUI distincți cu ajutoare de stat
- Distribuție: 2020-2023 sunt anii vârf (12k-21k/an), 2024 = 10,245, 2025 abia început
- ✅ Sănătos — last fetch 2026-05-09
2.5 anaf (anaf.*)
| Tabel | Rânduri | Min/Max date | Status |
|---|---|---|---|
datornici |
140,777 | 2016-03-31 (static!) | 🔴 stale ~10 ani |
lista_alba |
0 | — | gol |
datornici_latest |
view | — | reflect static |
Probleme catastrofale:
anaf.datorniciare doar Q1 2016 (publication_date = 2016-03-31). Sursa data.gov.ro publică trimestrial; ultimul Q4 2025 ar trebui ingerat.anaf.lista_albacomplet gol — 0 rânduri.- CLAUDE.md confirmă blocaj: "ANAF datornici via 2captcha" — site-ul actual ANAF cere captcha, ingestul automat a fost blocat după 2016.
2.6 aep (aep.*)
| Tabel | Rânduri | Min/Max | Note |
|---|---|---|---|
donatii_pf |
30,173 | 1997-03-29 → 2024-12-27 | persoane fizice |
donatii_pj |
3,567 | 2000-05-16 → 2024-12-13 | persoane juridice (2,148 CUI distincți) |
donatii_rvc |
346,237 | 2000-01-11 → 2034-01-31 ⚠️ | venituri (date eronate viitor) |
partide |
64 | — | partide active |
Probleme:
- ✅ Coverage 2024 prezent — bun.
- ⚠️
donatii_rvcare date până la 2034-01-31 — câteva rânduri cu data eronată în viitor (probabil OCR error pe banipartide.ro). - ⚠️ Surse 2025 lipsă pentru toate sursele AEP (raportările partidelor pe 2025 se publică abia Q2 2026).
2.7 ani (ani.*)
| Tabel | Rânduri |
|---|---|
declaratii |
25 (toate parse_status='pending') |
officials, bunuri, donatii, functii, shareholdings |
0 |
Status: Schema definită, pipeline ne-implementat. CLAUDE.md confirmă: "ANI 1.3M PDFs" — multi-week effort.
2.8 bugetar (bugetar.*)
| Tabel | Rânduri |
|---|---|
entitate |
18,822 (6,564 cu CUI matched, 12,258 fără) |
executie |
0 ❌ |
crawl_job |
0 ❌ |
Probleme catastrofale:
bugetar.entitatepopulat cu 18,822 entități publice, darexecutieșicrawl_jobcomplet goale.- Pipeline-ul mfinante.gov.ro pentru execuție bugetară nu rulează (sau rulează dar respinge toate datele).
2.9 anre (anre.*)
| Tabel | Rânduri | Stare |
|---|---|---|
licente |
29,536 | 1999-09-20 → 2027-11-20 (autorizări viitoare incluse) |
electricieni |
0 | nu rulează |
| Source breakdown | atestat: 23,996 · electricitate: 4,541 · gaze: 999 |
Distribuție stare: 11,957 expirate · 8,077 atestate · 3,436 retrase · 1,332 acordate · ~5k alte stări.
Problemă: anre.electricieni complet gol — pipeline pentru registrul electricienilor neimplementat sau eșuat.
2.10 ancom (ancom.*)
| Tabel | Rânduri |
|---|---|
operatori |
518 (toți cu CUI matched ✅) |
drepturi |
2,536 (1,311 servicii + 1,225 rețea) |
✅ Sănătos — registru live, 100% CUI match. Last fetch 2026-05-10.
2.11 cnsc (cnsc.decizii)
- 29,488 rânduri, distribute pe 2015-2026 (medie ~2,800/an)
- 0% au
decision_type,decision_summary,pdf_text_sha1— listing OK, dar PDF-uri complet neparsate - CLAUDE.md target: "50/page × 617 pages = ~30,850" — captura curentă (29,488) ≈ 96% din target. ✅ aproape complet.
- Last fetch 2026-05-10.
2.12 cnas (cnas.*)
| Tabel | Rânduri | Status |
|---|---|---|
documents |
61 (46 ok · 14 no_table · 1 unsupported) | 2022-03 → 2025-03 |
furnizori |
36,183 | 0 CUI matched ⚠️ |
Probleme:
- 100% furnizori extrași, 0% matched la CUI — câmpul
cui_match_methodeste gol pentru toate rândurile. - 25% PDF-uri (15/61) eșuat la parsing (no_table sau format necunoscut).
2.13 asf (asf.entitati)
- 849 rânduri (788 brokeri + 61 asigurători)
- Live nightly,
data_autorizare1900-2022 (1900 = data lipsă în sursă) - ✅ Sănătos.
2.14 aaas (aaas.firme)
- 11 firme (toate
aaas_status='active_holding') last_action_date= NULL pentru toate — câmp ne-populat- CLAUDE.md target: "12-15 firme active portfolio" — captura curentă (11) ≈ 73-92% din target.
- ❌ Backfill ORDIN 278/2005 PDF (~150 firme istorice) deferred.
2.15 curteacont (curteacont.rapoarte)
- 1,133 rânduri: 500 conformitate + 499 financiar + 114 follow-up + 20 performanță
- Last finished_at: 2026-05-10 (Stage 1 = listing OK)
- ❌ 0% au
pdf_path(zero PDF-uri descărcate) - ❌ 0% au
audited_entity_cui(entitatea auditată nu e extrasă) - ❌ 0%
parsed_at— Stage 2 (detail-page resolve) ne-implementat - audit_year: 2021(1), 2022(5), 2023(74), 2024(415), 2025(4)
2.16 apia (apia.fermieri)
- 191 rânduri — campania 2024
- ⚠️ Doar 1 CUI matched — 190/191 sunt PF (persoane fizice fără CUI), legitim, dar și PJ-urile nu sunt matchuite
- CLAUDE.md target: "monthly via CKAN" — sursa publică doar lista anuală
- Lipsește campania 2025 (în mod normal disponibilă din martie 2026)
- Sub-utilizat — datasetul real APIA are ~800k fermieri/an, captura noastră are 191 (probabil un eșantion)
2.17 gnm (gnm.*)
| Tabel | Rânduri |
|---|---|
comunicate |
348 |
amenzi_extrase |
1 |
- Distribuție: 2016(23), 2020-2023(8-51/an), 2024(51), 2025(92), 2026(5)
- Last
publicat_la= 2026-03-18 (~7 săptămâni stale față de scrape 2026-05-10) - 36/348 (10%) flagged
is_enforcement=true, 20/348 (5.7%) cutotal_amenzi_lei - Stage B fuzzy matcher recent comise (cf. commit
82b64b3) dar a produs doar 1 amendă — pipeline necesită testare.
3. Quick wins (≤2h fixes — ranking by impact)
| # | Fix | Schema | Effort | Impact | Comandă/path |
|---|---|---|---|---|---|
| 1 | Adaugă 'publication-date' în FIELDS array (TED import) |
seap (TED) | 5 min | 100% TED publication_date populat | services/seap-scraper/import_ted.py linia 22-38 |
| 2 | Re-rulează scraper SEAP WSP (3 zile stale, sync_state blocat la 2025-10-16) | seap | 30 min | recoperare daily live + deblochează backfill istoric | services/seap-scraper/wsp/ + seap.sync_state reset manual |
| 3 | Re-rulează matcher CUI pentru cnas.furnizori (36k rows, 0% matched) |
cnas | 20 min | 36k furnizori legabili la entități firme | services/seap-scraper/cron/match-cui-external.sh (extindere) |
| 4 | Re-rulează matcher CUI pentru apia.fermieri |
apia | 10 min | match PJ (cu CUI explicit) la firms.entities | cron/match-cui-external.sh |
| 5 | Curățare date eronate aep.donatii_rvc (date 2034-01-31) |
aep | 10 min | UPDATE … SET data_donatie = NULL WHERE data_donatie > now() | direct SQL |
| 6 | Re-rulează scrape AEP donatii pentru 2025 | aep | 1 h | adaugă raportările financiare 2024 finale | cron/scrape-aep-donatii.sh |
| 7 | Drop staging tables firms.staging_onrc_* (~3GB liberi) | firms | 5 min | recuperare spațiu DB după backfill | DROP TABLE manual |
| 8 | Drop seap.public_notices, seap.notice_contracts (legacy goale) | seap | 1 min | curățare schema | DROP TABLE |
| 9 | Repornire scraper GNM (last comunicat 2026-03-18, gap 53 zile) | gnm | 15 min | aducerea la zi a comunicatelor martie-mai 2026 | cron/scrape-gnm.sh |
Total quick wins recomandate: ~3h pentru a rezolva 9 issues cu impact direct vizibil.
4. Medium effort (1-2 zile fiecare)
| # | Fix | Schema | Effort | Impact |
|---|---|---|---|---|
| 1 | CNSC PDF parse pentru decision_type + decision_summary |
cnsc | 1-2 zile | 29,488 decizii devin filtrabile pe tip (admisă/respinsă) |
| 2 | Curtea Conturi Stage 2 — detail-page resolve + extract audited_entity_cui + descarcă PDF |
curteacont | 2 zile | 1,133 rapoarte legate la CUI + PDF disponibile |
| 3 | AAAS ORDIN 278/2005 backfill — parse PDF cu lista istorică ~150 firme | aaas | 1 zi | 11 → ~150 firme acoperire (12-13× growth) |
| 4 | bugetar.executie pipeline repair — entitate populat dar executie 0 rows | bugetar | 1-2 zile | adaugă date execuție pe ~6,564 instituții cu CUI matched |
| 5 | APIA campania 2025 + fixează volumul (191 rânduri pare mic vs ~800k fermieri reali) | apia | 1 zi | datasetul devine real reprezentativ |
| 6 | CNAS PDF parse upgrade pentru 14 doc cu parse_status='no_table' |
cnas | 1 zi | +25% acoperire furnizori CNAS |
| 7 | GNM Stage B finalizare — fuzzy matcher activ pe toate cele 348 comunicate (acum capturat 1/348) | gnm | 1 zi | extragerea efectivă a violatorilor de mediu |
| 8 | ANRE electricieni — pipeline neimplementat | anre | 1 zi | adaugă registrul electricienilor (~10k entries) |
| 9 | Reset seap.sync_state pentru da (blocat în running din 2025-10-16) |
seap | 30 min + replay | deblochează backfill direct_acquisitions |
| 10 | anaf.lista_alba populare din data.gov.ro | anaf | 1 zi | listă albă completă (paralel datornici) |
| 11 | fonduri.beneficiar_proiect matcher CUI (11,489 rows, 0 matched) |
fonduri | 1 zi | proiectele POIM/POR devin filtrabile pe CUI |
5. Heavy lifts (multi-week)
| # | Investiție | Schema | Effort | Impact |
|---|---|---|---|---|
| 1 | ANI 1.3M PDFs — declaratii avere + interese, parser + match officials | ani | 4-6 săptămâni | unlock declaratii politicieni — feature flagship |
| 2 | SEAP direct_acquisitions backfill 2017-2024 — ~8M rânduri | seap | 2-3 săptămâni | acoperire achiziții directe completă (acum doar 2025) |
| 3 | SEAP announcements backfill 2020-2021 + 2024 lipsă | seap | 1-2 săptămâni | închidere gap istoric anunțuri |
| 4 | ANAF datornici via 2captcha — re-acoperire 2017-2025 (33 trimestre stale) | anaf | 2-3 săptămâni | reactivare datornici (acum static la Q1 2016) |
| 5 | Curtea Conturi PDF text extraction + entity resolution | curteacont | 3-4 săptămâni | rapoarte audit devin căutabile pe text + linked la firme |
| 6 | ONRC raw → entities pipeline complet (există staging 791MB + 938MB + 443MB nefolosit) | firms | 2 săptămâni | refresh weekly al firms.entities din ONRC fresh dump |
6. Refresh cadence recommendation (cron schedule sustenabil)
Propunere /etc/cron.d/govagreg-refresh pentru steady-state:
# === LIVE / NEAR-REAL-TIME (multiple ori pe zi) ===
0 */4 * * * satra scrape-seap-wsp.sh # SEAP live feed (4h cycle, ~3-4k rows/zi)
30 2 * * * satra scrape-cnsc.sh # CNSC daily (~30 decizii noi/zi)
# === DAILY (o dată pe zi, off-peak 02:00-06:00) ===
0 3 * * * satra scrape-anre.sh # ANRE licențe (live registry)
0 4 * * * satra scrape-ancom.sh # ANCOM operatori (live)
0 5 * * * satra scrape-asf.sh # ASF entitati (rebuilt nightly)
30 5 * * * satra scrape-curteacont.sh # Curtea Conturi listing (Stage 1)
0 6 * * * satra refresh-mvs.sh # MV refresh (post-toate-scrape-urile)
# === WEEKLY (luni dimineață) ===
0 2 * * 1 satra scrape-gnm.sh # GNM weekly RSS (~5-15 noi)
0 3 * * 1 satra scrape-aaas.sh # AAAS portfolio (rar schimbă)
0 4 * * 1 satra scrape-cnas.sh # CNAS WP media (lunar dar ieftin weekly)
0 5 * * 1 satra import-onrc-fresh.sh # ONRC update săptămânal
# === MONTHLY (1 ale lunii) ===
0 2 1 * * satra scrape-regas.sh # RegAS — monthly publish
0 3 1 * * satra scrape-bugetar.sh # Bugetar mfinante (lunar)
0 5 1 * * satra import-apia-fermieri.sh # APIA CKAN
# === QUARTERLY (1 ale trim) ===
0 2 1 1,4,7,10 * satra scrape-anaf-datornici.sh # ANAF datornici Q (după activare 2captcha)
0 3 15 1,4,7,10 * satra scrape-aep-donatii.sh # AEP — raportări trimestriale partide
# === ANUAL (15 ianuarie) ===
0 2 15 1 * satra import-afir-historical.sh # AFIR plăți an precedent (CSV)
0 4 15 1 * satra import-financials.sh # Bilanțuri ANAF anul precedent
Estimări runtime per scraper (best-effort, observed)
| Scraper | Frecv | Runtime | Notes |
|---|---|---|---|
| scrape-seap-wsp | 4h | 5-15 min | depinde de volum daily |
| scrape-cnsc | daily | 2-5 min | (full re-scan ~617 pages = 30 min) |
| scrape-anre | daily | 3-5 min | 3 surse (atestat/electricitate/gaze) |
| scrape-ancom | daily | 1-2 min | 518 operatori |
| scrape-asf | daily | 2-3 min | 849 entități |
| scrape-curteacont | daily | 1-3 min | listing only |
| scrape-gnm | weekly | 1-2 min | RSS feed |
| scrape-aaas | weekly | 30 sec | 11 firme |
| scrape-cnas | weekly | 5-10 min | 61 PDF + parse |
| import-onrc-fresh | weekly | 30-60 min | 4M rows ETL |
| scrape-regas | monthly | 10-15 min | 78k rows update |
| scrape-bugetar | monthly | 30-60 min | 6,5k rapoarte |
| import-apia-fermieri | monthly | 5-10 min | CKAN API |
| scrape-anaf-datornici | quarterly | 30-60 min | dependent de captcha |
| import-afir-historical | yearly | 2-4 ore | 5M rows CSV |
Total cron load: ~30 min CPU/zi în steady-state, ~2h/lună în rafale lunare. Sustenabil pe satra Docker host.
Concluzie executivă (200 cuvinte)
Baza de date architools_db (29 GB) conține 17.9M rânduri pe 17 schemas. 6 schemas sunt sănătoase (firms, fonduri, regas, anre, ancom, asf), 6 au gap-uri rezolvabile sub 2 zile (aep, cnsc, cnas, aaas, curteacont, gnm), iar 5 au probleme structurale (seap istoric, anaf datornici stale 10 ani, ani neimplementat, bugetar executie 0 rows, apia subvolum).
Quick wins (3h total): (1) adaugă 'publication-date' în FIELDS la import_ted.py, (2) reset seap.sync_state pentru deblocare backfill DA, (3) rerulează matcher CUI pentru cnas.furnizori (36k rows, 0% match) și apia.fermieri.
Priorități critice: (a) backfill SEAP DA 2017-2024 = ~8M rânduri lipsă (CLAUDE.md confirmat), (b) reactivare ANAF datornici via 2captcha (date înghețate la Q1 2016), (c) repară pipeline bugetar.executie (entități populate dar execuție 0).
Cron-ul propus rulează în 30 min CPU/zi steady-state. ANI 1.3M PDFs rămâne flagship-ul de 4-6 săptămâni — singura sursă cu adevărat blocată din cauze tehnice (parser PDF complex), restul sunt operaționale.
Raport complet: /home/orchestrator/Code/gov-agreg/chatGPT/data-quality/freshness-audit-2026-05-10.md