Exemple de la echipă

Cum am construit investigațiile-exemplu

Cinci investigații pe date publice, făcute de echipa proiectului cu aceleași noduri pe care le ai și tu. Pentru fiecare: întrebarea, schema pânzei, nodurile folosite și de ce, capcanele pe care le-am evitat și cum o reiei pentru primăria sau județul tău.

Exemple ale proiectului, nu acuzații

Le publică @romania-transparenta (Echipa România Transparentă), contul oficial, cu insigna Echipa. Fiecare cifră din concluzii vine din datele rulate, înghețate la publicare; concluziile spun ce arată datele și ce rămâne de verificat. Persoanele apar doar prin funcția publică. Investigațiile se refac din cod (scriptul scripts/exemple/construieste.ts) când se schimbă datele, ca versiuni noi.

Exemplul 1 din 5

Cum își cheltuiește banii Primăria Reghin

Bugetul pe șapte ani, cine primește banii prin achiziții și ce s-a schimbat de la un an la altul, pe ce se cheltuie și unde stă Reghinul față de cele 33 de municipii de mărime apropiată. Un exemplu al echipei, construit nod cu nod pe datele publice.

24 de noduri pe pânză (22 de noduri de date și calcul, 13 tipuri diferite; date publice: 6, calculează: 8, arată: 5, unelte: 3), 3 grupuri, 9 pași în poveste. Publicată 8 octombrie 2026, versiunea 1.

Ce întrebare am pus

Cum își cheltuiește o primărie banii: cât, pe ce, la cine, și e mult sau puțin față de altele asemănătoare?

Schema pânzei

Pe telefon, schema se glisează în lateral; lista de mai jos are aceleași noduri. Desenată din graful versiunii publicate: fiecare cutie e un nod, săgețile duc datele de la stânga la dreapta, cutiile colorate mari sunt grupurile. Pe pagina investigației, „Vezi graful” arată aceeași pânză, cu numărul de rânduri al fiecărui nod.

Ce noduri am folosit și de ce

Bugetul pe ani

  • Bugetul Reghinului pe ani (fișa primăriei) · Fișa primăriei
    Fișa primăriei din API are sub-tabelul buget.ani (execuția bugetului pe fiecare an). Un singur apel, șapte rânduri.
  • Cheltuielile: creșterea de la an la an · Statistică
    „Statistică → creștere an/an” dă totalul și variația procentuală; graficul de linie se face din el.
  • Ce procent din cheltuieli sunt investiții · Calcul (formulă)
    „Calcul” cu procent([cheltuieli_capital], [cheltuieli_totale]): ponderea investițiilor, an de an. Formula e citită de un parser propriu, fără cod.

Achizițiile

  • Achizițiile primăriei, totaluri pe an · Totaluri de achiziții pe ani
    Totalurile pe an și fel, direct din API (/v1/achizitii/sumar): rapid și exact, fără să aducem mii de rânduri.
  • Directe și contracte, separat · Împarte după valoare
    „Împarte după valoare” trimite achizițiile directe și contractele pe ieșiri diferite, fiecare cu graficul ei.
  • Furnizorii pe 2023 și 2024 (tot registrul) · Registru întreg (SQL)
    „Registru întreg (SQL)”: API-ul dă cel mult 1.000 de rânduri, iar un singur an are peste 500 de achiziții, deci adunăm pe furnizor direct în exportul Parquet (DuckDB în browser).
  • Furnizorii: 2023 față de 2024 · Compară două tabele
    „Compară două tabele” pe CUI: furnizori noi, dispăruți și schimbați între 2023 și 2024.
  • Sunt companii de stat printre ei? · Legătură între registre
    „Legătură între registre” pe CUI-ul furnizorului: care dintre cei mari sunt companii de stat sau locale.
  • Furnizori cu cel puțin 12 achiziții pe an · Dacă (două ramuri)
    „Dacă” cu două ieșiri: furnizorii recurenți (≥ 12 achiziții) separat de restul.
  • Pe ce s-a cheltuit în 2024 (categorii CPV) · Registru întreg (SQL)
    Al doilea nod „Registru întreg”: categoriile CPV, cu procentul din total calculat cu o funcție fereastră.

Comparația

  • Municipiile de 20.000–40.000 de locuitori · Registru întreg (SQL)
    Toate municipiile de 20.000–40.000 de locuitori, cu bugetele lor, legate pe SIRUTA (exporturile uat și uat_bugete).
  • Reghin față de mediană (Python + grafic) · Python
    Python (pandas + matplotlib): mediana, locul Reghinului și graficul cu Reghinul evidențiat. Codul e public, pe pagină.
  • Rezumatul celor trei indicatori · Statistică
    „Statistică → rezumat”: mediana, percentilele și abaterea, ca verificare a calculului din Python.

Capcanele pe care le-am evitat

Cum o reiei

Apasă „Reia investigația”, apoi schimbă SIRUTA în nodul „Bugetul pe ani” și CUI-ul primăriei în „Achizițiile primăriei” și în cele două noduri „Registru întreg” (scrie numele localității în câmp: codul se completează singur). Pentru comparație, schimbă intervalul de populație din SQL. Rulează tot (▶▶) și rescrie concluziile cu cifrele tale.

„Reia investigația” copiază graful, povestea și rezultatele în ciornele tale; pe pagina ta apare legătura spre original. Concluziile le rescrii tu, cu cifrele tale.

Exemplul 2 din 5

Spitalele publice din Mureș: ce cumpără, de la cine și cum sunt plătite funcțiile

Cele 17 unități sanitare publice din județul Mureș: acreditarea fiecăreia, achizițiile directe pe șapte ani, furnizorii pe care îi au în comun și salariile de bază pe funcții, acolo unde lista e publicată. Un exemplu al echipei, cu explicația construcției.

19 noduri pe pânză (17 noduri de date și calcul, 12 tipuri diferite; date publice: 5, calculează: 6, unelte: 4, arată: 2), 3 grupuri, 8 pași în poveste. Publicată 8 octombrie 2026, versiunea 1.

Ce întrebare am pus

Ce putem afla din date publice despre spitalele unui județ, fără să numim pe nimeni în afara funcției?

Schema pânzei

Pe telefon, schema se glisează în lateral; lista de mai jos are aceleași noduri. Desenată din graful versiunii publicate: fiecare cutie e un nod, săgețile duc datele de la stânga la dreapta, cutiile colorate mari sunt grupurile. Pe pagina investigației, „Vezi graful” arată aceeași pânză, cu numărul de rânduri al fiecărui nod.

Ce noduri am folosit și de ce

Unitățile și acreditarea

  • Unitățile sanitare publice din Mureș · Spitalele și unitățile sanitare publice
    Setul spitale_unitati din catalogul API-ului, filtrat pe județ: lista de pornire, cu CUI-ul fiecărei unități.
  • Acreditarea fiecărei unități (ANMCS) · Pentru fiecare
    „Pentru fiecare” rulează aceeași cerere (acreditarea ANMCS) pe fiecare CUI; a doua ieșire strânge unitățile fără rezultat, ca să nu se piardă.
  • Categoria de acreditare · Redenumește și alege coloane
    „Redenumește și alege coloane”: un tabel citibil în poveste (numele, categoria, punctajul, valabilitatea).

Ce cumpără și de la cine

  • Achizițiile directe pe an (tot registrul) · Registru întreg (SQL)
    „Registru întreg (SQL)” pe rapoartele lunare: API-ul ar da cel mult 1.000 de rânduri, iar un județ are mii de luni-unitate.
  • Primele 6 unități, pe ani (Python + grafic) · Python
    Python (pandas, matplotlib): un tabel pivot pe ani și graficul primelor șase unități.
  • Toate unitățile: creșterea de la an la an · Statistică
    „Statistică → creștere an/an” pe totalul județului, apoi un grafic de linie.
  • Furnizorii comuni (cel puțin 10 unități) · Registru întreg (SQL)
    Al doilea nod „Registru întreg”: furnizorii prezenți la cel puțin 10 unități.

Salariile, pe funcții

  • Salariile pe funcții (Mureș) · Salariile din spitale, pe funcții
    Setul spitale_salarii_functii: salariile de bază pe funcție, cum le publică spitalele (fără nume).
  • Aceeași funcție în spitale diferite (SQL) · SQL
    Nodul SQL (DuckDB în browser) compară aceeași funcție între spitale și scoate posturile unice.
  • Doar funcțiile de medic · Dacă (două ramuri)
    „Dacă” cu două condiții: funcțiile de medic, cu cel puțin 2 posturi.
  • Unități fără lista de salarii publicată · Combinare de tabele
    „Combinare → ce e în A, dar nu în B” pe CUI: unitățile fără listă de salarii în date.

Capcanele pe care le-am evitat

Cum o reiei

„Reia investigația”, apoi schimbă județul în nodurile „Unitățile sanitare publice” și „Salariile pe funcții” (ex. „Cluj”) și în cele trei interogări SQL (judet = 'Mureş', cu ș-ul din registru). Rulează tot și rescrie concluziile.

„Reia investigația” copiază graful, povestea și rezultatele în ciornele tale; pe pagina ta apare legătura spre original. Concluziile le rescrii tu, cu cifrele tale.

Exemplul 3 din 5

Firmele din Mureș care au primit ajutor de stat și lucrează și cu statul

Ajutoarele de stat acordate firmelor cu sediul în Mureș din 2024 încoace, pe măsuri, și care dintre aceste firme au câștigat în aceeași perioadă contracte sau achiziții directe de la autorități publice. Suprapunerea e arătată ca fapt: o potrivire nu e o acuzație.

15 noduri pe pânză (13 noduri de date și calcul, 9 tipuri diferite; date publice: 2, calculează: 8, unelte: 3), 2 grupuri, 7 pași în poveste. Publicată 8 octombrie 2026, versiunea 1.

Ce întrebare am pus

Primesc aceleași firme și ajutor de stat, și contracte publice? (Ca fapt, fără nicio concluzie despre legalitate.)

Schema pânzei

Pe telefon, schema se glisează în lateral; lista de mai jos are aceleași noduri. Desenată din graful versiunii publicate: fiecare cutie e un nod, săgețile duc datele de la stânga la dreapta, cutiile colorate mari sunt grupurile. Pe pagina investigației, „Vezi graful” arată aceeași pânză, cu numărul de rânduri al fiecărui nod.

Ce noduri am folosit și de ce

Ajutoarele de stat

  • Ajutoarele de stat, firme din Mureș, din 2024 · Ajutoarele de stat individuale
    Setul ajutoare_acordari (RegAS), filtrat pe județul sediului, din 2024, doar tip_valoare = ajutor (garanțiile nu se adună cu granturile).
  • Beneficiarii, pe CUI · Grupare și totaluri
    „Grupare și totaluri” pe CUI: o firmă cu mai multe acordări devine un singur rând.
  • Pe măsuri (scheme de ajutor) · Grupare și totaluri
    A doua grupare, pe măsură, ca să vezi din ce scheme vin banii.

Suprapunerea

  • Contractele acestor firme (tot registrul) · Registru întreg (SQL)
    „Registru întreg (SQL)” cu intrarea t1 = beneficiarii: caută CUI-urile lor în tot registrul achizițiilor (setul are peste 4 milioane de rânduri; API-ul ar cere o întrebare pentru fiecare firmă).
  • Au și ajutor, și contracte · Combinare de tabele
    „Combinare → ce e în amândouă” (semi-join): beneficiarii care sunt și furnizori.
  • Au ajutor, dar niciun contract · Combinare de tabele
    „Combinare → ce e în A, dar nu în B” (anti-join): beneficiarii fără contracte.
  • Ajutorul lângă contracte · Combinare de tabele
    „Combinare → doar rândurile potrivite”: ajutorul și contractele pe același rând, pentru grafic și tabel.
  • Ajutor și contracte, pe firme (Python + grafic) · Python
    Python: graficul pe scară logaritmică și corelația Spearman (pe ranguri, nu pe sume, ca o firmă mare să nu strice tot).
  • O potrivire nu e o acuzație · Text sau citat
    Un nod „Text” pe pânză, legat cu o săgeată de îmbinare: „o potrivire nu e o acuzație”.

Capcanele pe care le-am evitat

Cum o reiei

„Reia investigația”, schimbă județul în nodul „Ajutoarele de stat” (ex. „Cluj”) și cod_judet = 'MS' în interogarea SQL (ex. 'CJ'); opțional, perioada (de_la și anii din SQL). Rulează tot.

„Reia investigația” copiază graful, povestea și rezultatele în ciornele tale; pe pagina ta apare legătura spre original. Concluziile le rescrii tu, cu cifrele tale.

Exemplul 4 din 5

Cum votează deputații de Mureș: prezența și voturile strânse

Cei 8 deputați aleși în Mureș: cât de des votează la voturile finale față de restul Camerei, cum au votat la cele 15 voturi decise de câteva voturi și de câte ori au ales altceva decât grupul lor. Deputații apar doar prin funcția publică, cu sursa (cdep.ro).

17 noduri pe pânză (15 noduri de date și calcul, 13 tipuri diferite; date publice: 5, calculează: 7, unelte: 2, arată: 1), 3 grupuri, 7 pași în poveste. Publicată 8 octombrie 2026, versiunea 1.

Ce întrebare am pus

Cum votează deputații unui județ: sunt la voturi, cum votează când rezultatul se decide la câteva voturi?

Schema pânzei

Pe telefon, schema se glisează în lateral; lista de mai jos are aceleași noduri. Desenată din graful versiunii publicate: fiecare cutie e un nod, săgețile duc datele de la stânga la dreapta, cutiile colorate mari sunt grupurile. Pe pagina investigației, „Vezi graful” arată aceeași pânză, cu numărul de rânduri al fiecărui nod.

Ce noduri am folosit și de ce

Prezența

  • Deputații aleși în Mureș · Deputații
    Ruta /v1/parlament/deputati cu judet=MS: lista de pornire, cu idm (codul stabil al deputatului).
  • Prezența tuturor deputaților (tot registrul) · Registru întreg (SQL)
    „Registru întreg (SQL)” pe trei seturi: voturile, listele nominale și deputații; prezența se calculează pe tot registrul, pentru toți, ca să avem cu ce compara.
  • Doar deputații de Mureș · Combinare de tabele
    „Combinare → ce e în amândouă” pe idm: din toată Camera rămân deputații de Mureș.
  • Mureș față de Cameră (Python + grafic) · Python
    Python cu două intrări (Mureș și Camera): graficul și medianele.

Voturile strânse

  • Cele 15 voturi cele mai strânse · Registru întreg (SQL)
    SQL pe voturi: distanța dintre voturile „pentru” și prag.
  • Cum au votat deputații de Mureș la ele · Registru întreg (SQL)
    SQL cu intrare (t1): opțiunea fiecărui deputat de Mureș și majoritatea grupului lui, la fiecare vot strâns.
  • Pe deputat: la fel ca grupul sau altfel (SQL) · SQL
    Nodul SQL simplu (DuckDB) numără pe deputat; „Filtru” păstrează doar voturile diferite de grup.

Voturile „contra”

  • Voturile „contra” ale fiecăruia (fișa deputatului) · Legătură între registre
    „Legătură între registre” pe idm, cu filtru (optiune=contra) și sub-tabel (voturi.lista): o cerere pe deputat.
  • Luna votului · Dată și oră
    „Dată și oră” scoate luna din data votului, pentru „Valori unice” pe lună.
  • Câte voturi „contra” are fiecare · Grupare și totaluri
    „Grupare și totaluri” pe deputat, apoi „Sortare” și graficul.

Capcanele pe care le-am evitat

Cum o reiei

„Reia investigația”, schimbă judet în nodul „Deputații aleși în Mureș” (ex. CJ) și judet = 'MS' în SQL-ul „Cum au votat deputații…”. Rulează tot.

„Reia investigația” copiază graful, povestea și rezultatele în ciornele tale; pe pagina ta apare legătura spre original. Concluziile le rescrii tu, cu cifrele tale.

Exemplul 5 din 5

Fondurile europene 2021–2027: cât a ajuns la beneficiari, program cu program

Programele cu fonduri europene ale României în perioada 2021–2027, cât din alocarea UE s-a plătit beneficiarilor la ultima raportare a MIPE, cât s-a mișcat într-un an și cât înseamnă programele regionale pe locuitor, regiune cu regiune (Mureș e în regiunea Centru).

16 noduri pe pânză (14 noduri de date și calcul, 10 tipuri diferite; date publice: 4, unelte: 1, calculează: 8, arată: 1), 3 grupuri, 7 pași în poveste. Publicată 8 octombrie 2026, versiunea 1.

Ce întrebare am pus

Cât din banii europeni a ajuns la beneficiari, pe programe și pe locuitor, și ce s-a mișcat într-un an?

Schema pânzei

Pe telefon, schema se glisează în lateral; lista de mai jos are aceleași noduri. Desenată din graful versiunii publicate: fiecare cutie e un nod, săgețile duc datele de la stânga la dreapta, cutiile colorate mari sunt grupurile. Pe pagina investigației, „Vezi graful” arată aceeași pânză, cu numărul de rânduri al fiecărui nod.

Ce noduri am folosit și de ce

Absorbția pe programe

  • Programele 2021–2027 · Programele cu fonduri europene
    Setul fonduri_programe: catalogul, cu codul CCI și regiunea.
  • Codul programului ca cheie · Redenumește și alege coloane
    „Redenumește”: codul CCI devine id, ca îmbinările (care merg doar pe coduri) să-l recunoască drept cheie.
  • Absorbția la ultima raportare (MIPE) · Absorbția fondurilor europene, pe programe
    Setul fonduri_absorbtie, ultima raportare MIPE: un rând pe program și indicator.
  • Pe program: alocat, plătit, procent (SQL) · SQL
    Nodul SQL întoarce indicatorii într-un rând pe program (FILTER (WHERE …)) și calculează procentul.
  • Programe fără date de absorbție · Combinare de tabele
    „Combinare → ce e în A, dar nu în B”: programele din catalog fără date de absorbție.

Ce s-a mișcat într-un an

  • Plățile la toate raportările · Absorbția fondurilor europene, pe programe
    Aceeași rută, toate raportările, doar plățile către beneficiari.
  • Raportarea de acum un an (SQL) · SQL
    Al doilea nod SQL: raportarea de acum un an, aleasă cu o subinterogare pe dată.
  • Plățile: acum un an față de acum · Compară două tabele
    „Compară două tabele” pe id: programele noi și cele cu plăți schimbate, cu valoarea veche → nouă.
  • Cât de diferite sunt programele (scor z) · Statistică
    „Statistică → valori atipice”: scorul z al procentului plătit.

Regiunile, pe locuitor

  • Populația pe regiuni de dezvoltare · Registru întreg (SQL)
    „Registru întreg (SQL)” pe registrul localităților: populația pe regiune (fără dublarea Bucureștiului).
  • Programele regionale pe locuitor (Python + grafic) · Python
    Python cu trei intrări (absorbția, programele, populația): euro pe locuitor și graficul.
  • Alocat și plătit pe locuitor: corelație · Statistică
    „Statistică → corelație” între alocarea și plata pe locuitor.

Capcanele pe care le-am evitat

Cum o reiei

„Reia investigația”, în nodurile „Absorbția” schimbă setul de date (ex. un set 2014–2020 din lista set_date) și perioada în „Programele”. Rulează tot și rescrie concluziile.

„Reia investigația” copiază graful, povestea și rezultatele în ciornele tale; pe pagina ta apare legătura spre original. Concluziile le rescrii tu, cu cifrele tale.

Mai departe