a6c03a091e
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)
357 lines
20 KiB
Markdown
357 lines
20 KiB
Markdown
# 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`
|