# 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_state` arată feed `da` în `running` din **2025-10-16**, ultim update 2026-04-13 — backfill istoric blocat, nu mai progresează. - ❌ `wsp_sync_state` nu a mai rulat din **2026-05-07** (3 zile stale; scraper rulează cron 2-4 ori/zi de obicei). - ❌ `seap.public_notices` și `seap.notice_contracts` complet goale (legacy schema sau pipeline dezactivat). - ⚠️ TED import: `import_ted.py` linia 22-38 — array `FIELDS` **NU conține `'publication-date'`**, deși codul îl folosește la linia 152. Toate `publication_date` din 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_proiect` are 11,489 rânduri dar **0 CUI matched** (column `cui` populat?, dar `count(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.datornici` are **doar Q1 2016** (publication_date = 2016-03-31). Sursa data.gov.ro publică trimestrial; ultimul Q4 2025 ar trebui ingerat. - `anaf.lista_alba` complet 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_rvc` are 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.entitate` populat cu 18,822 entități publice, dar `executie` și `crawl_job` complet 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_method` este 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_autorizare` 1900-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%) cu `total_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: ```cron # === 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`