Files
vreau-digital/chatGPT/data-quality/freshness-audit-2026-05-10.md
T
Claude VM a6c03a091e initial: split from gov-agreg — vreau.digital standalone platform
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)
2026-05-13 00:10:32 +03:00

357 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`