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.
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
Date publice
Calculează
Unelte
Arată
Notițe
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
Acordurile-cadru nu sunt cheltuieli: adunăm doar rândurile in_total (altfel o primărie ar „cheltui” plafoane de ani întregi).
1.000 de rânduri nu e tot anul: furnizorii se adună în registrul întreg, nu din primele rânduri ale API-ului.
Legăm doar pe coduri (CUI, SIRUTA), niciodată pe nume: două firme cu același nume nu sunt aceeași firmă.
Sumele sunt nominale (fără inflație), iar comparația pe locuitor folosește populația din registru.
Un an fără date nu înseamnă zero; 2025 și 2026 sunt încă incomplete în SEAP.
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 putem afla din date publice despre spitalele unui județ, fără să numim pe nimeni în afara funcției?
Schema pânzei
Date publice
Calculează
Unelte
Arată
Notițe
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
Salariile doar pe funcție; posturile unice (un singur om pe funcție) le scoatem din comparație.
Listele de salarii au date diferite (2020, 2026): nu le comparăm ca și cum ar fi din aceeași lună.
Achizițiile directe nu sunt toate cumpărăturile unui spital: contractele mari trec prin licitații.
Datoriile spitalelor nu sunt în datele publice RT; nu le deducem din altceva.
Un CUI fără rezultat la acreditare nu e „neacreditat”: DSP-ul și ambulanța nu se acreditează ca spitale.
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.
Primesc aceleași firme și ajutor de stat, și contracte publice? (Ca fapt, fără nicio concluzie despre legalitate.)
Schema pânzei
Date publice
Calculează
Unelte
Arată
Notițe
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
Doar pe CUI: două firme cu nume asemănătoare nu sunt aceeași firmă.
Ajutorul (granturi) și instrumentele financiare (garanții, credite) nu se adună: filtrăm pe tip_valoare.
Județul e al sediului, nu al investiției: o firmă din Mureș poate investi în alt județ.
Suprapunerea e un fapt, nu o concluzie. Nu scriem „suspect”: obiectul contractelor și al proiectelor poate fi fără legătură.
Furnizorii persoane fizice apar fără nume și fără cod, deci nu intră în legătură.
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.
Cum votează deputații unui județ: sunt la voturi, cum votează când rezultatul se decide la câteva voturi?
Schema pânzei
Date publice
Calculează
Unelte
Arată
Notițe
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
Absența nu e un rând în lista nominală: o numărăm ca diferență față de voturile ținute în mandat.
Deputații intrați mai târziu se măsoară doar pe voturile de după intrare (de_la).
Un vot diferit de grup nu e o greșeală: e o alegere politică, de citit în stenogramă.
Persoanele apar doar prin funcția publică (deputat), cu sursa la vedere; fără date personale.
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.
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
Date publice
Calculează
Unelte
Arată
Notițe
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
„Plătit beneficiarilor” nu înseamnă proiecte terminate și nici bani rambursați de Comisie: sunt indicatori diferiți.
Bucureștiul apare în registru și ca municipiu, și pe sectoare: adunăm doar sectoarele.
Procentele cresc în timp: perioada 2021–2027 se implementează până în 2029.
Proiectele pe localități nu sunt în datele RT (beneficiarii fără CUI): nu le legăm pe nume.
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.