oneapi
Autentificare
Financiar v1 / Inflatie

Productivitatea muncii

Productivitatea pe persoană ocupată şi pe oră lucrată, pe ramuri, din 1995 până în 2025 — una
dintre cele mai lungi serii din modul.

⚠️ Productivitatea pe persoană × populaţia ocupată dă valoarea adăugată brută, NU produsul intern
brut.
Cine înmulţeşte cu PIB-ul greşeşte cu vreo 9%. Ruta verifică relaţia la fiecare cerere.

GET
https://oneapi.ro/api/financiar/v1/productivitate

Parametri de interogare

NumeTipDescriereValori acceptate
clasificareopțional string | null Opţional: rev2 (implicit, 1995-2025) ori rev1 (1999-2008). rev1rev2
de_laopțional integer | null Opţional, an, din 1995. 1995 – 2100
pana_laopțional integer | null Opţional, an. 1995 – 2100
caen_versiuneopțional string | null Opţional: revizia codului din caen — 1, 2 sau 3 — când forma lui e ambiguă (4932 înseamnă altceva în Rev.2 şi în Rev.3). Fără ea, codul se caută întâi în revizia seriei. 123
masuralistăopțional text Opţional: pe_persoana, pe_ora. pe_persoanape_ora
caenlistăopțional text Opţional, coduri separate prin virgulă: orice cod CAEN — secţiune (C), diviziune (62), grupă, clasă (6201) — din orice revizie. Se aduce la în rev2 ramura A10 care îl cuprinde (C → industrie); în rev1 secţiunea, subsecţiunea ori diviziunea publicată; ce s-a folosit e în meta.caen. ex. R
gruparelistăopțional text Opţional, separate prin virgulă: agregatele sursei care nu sunt coduri CAEN — total, celelalte (Rev.1) ori ramurile-sumă A10 cerute direct. Nu se trimite împreună cu caen. ex. administratie_educatie_sanatateex. comert_transport_horecaex. industrie

Cum se comportă

  • Productivitatea muncii pe persoană ocupată şi pe oră lucrată, pe ramuri — 1.322 de valori, din matricile TEMPO CON110A, CON110C, CON110E şi CON110F. Seria Rev.2 acoperă 1995-2025, 31 de ani — una dintre cele mai lungi din modul; cea Rev.1 doar 1999-2008.
  • ⚠️ Productivitatea pe persoană × populaţia ocupată dă valoarea adăugată brută, NU produsul intern brut. Cine înmulţeşte cu PIB-ul greşeşte cu vreo 9%. În 2023: 171.042,4 lei/persoană × 8.493,2 mii = 1.452.697,3, faţă de valoarea adăugată brută 1.452.697,1 de la /financiar/v1/conturi-integrate.
  • Relaţia se verifică la fiecare cerere, dar e declarată drept ce este: o concordanţă între trei matrici publicate separat, nu o identitate contabilă. Măsurat pe toţi cei 31 de ani, abaterea relativă maximă e 0,004%; într-un singur an (2017) depăşeşte pragul care iese din zecimalele publicate, ceea ce arată o revizuire, nu o eroare. Toleranţa e de aceea relativă, nu absolută.
  • Productivitatea orară se înmulţeşte cu orele lucrate şi dă acelaşi lucru, dar cu mult mai puţină precizie: e publicată cu o zecimală în lei (95,7 în 2023), iar înmulţită cu 15 milioane de ore rotunjirea singură face câteva sute de milioane.
  • ⚠️ Rev.1 şi Rev.2 nu se lipesc: nomenclatoare diferite, perioade care se suprapun doar parţial. Rev.1 amestecă în plus secţiuni, subsecţiuni şi diviziuni în acelaşi nomenclator.
  • Numitorul — populaţia ocupată şi orele lucrate — e la /financiar/v1/ocupare-conturi, cu aceleaşi sluguri de ramură.
  • Activitatea se cere ca pe toată platforma. caen primeşte orice cod CAEN, de orice nivel şi din orice revizie, iar ruta îl aduce la ce publică seria — urcând la părinte ori traducându-l prin corespondenţa oficială INS; meta.caen spune codul cerut, cel folosit şi dacă a fost urcat ori convertit. grupare e pentru agregatele sursei care nu sunt coduri CAEN.

La ce folosește

  • Creşterea productivităţii unei ramuri pe 30 de ani.
  • Comparaţia dintre productivitatea pe persoană şi cea pe oră — arată cât ţine de ore lucrate şi cât de eficienţă.
  • Verificarea unui calcul propriu de valoare adăugată, pornind de la ocupare.

Structura răspunsului

CâmpTipDescriere
data.clasificare string Clasificarea după care sunt împărţite valorile.
data.de_la integer Începutul intervalului acoperit de răspuns.
data.pana_la integer Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.filtre array Filtrele aplicate efectiv, aşa cum le-a înţeles ruta — util când o valoare a fost normalizată.
data.ani array Anii pentru care există valori.
data.serii[].masura string Măsura raportată — ce anume numără sau însumează valoarea.
data.serii[].unitate string lei / persoana ocupata ori lei / ora lucrata — două măsuri diferite, nu se compară direct.
data.serii[].clasificare string Clasificarea după care sunt împărţite valorile.
data.serii[].activitate string Activitatea economică la care se referă valoarea.
data.serii[].denumire_activitate string
data.serii[].nivel_activitate string În Rev.1: sectiune, subsectiune, diviziune, rest. Nu se adună între ele.
data.serii[].valori object Valorile seriei, pe perioade.
data.identitati.identitate string Identitatea verificată — ce sumă trebuie să dea ce total.
data.identitati.nota string Precizare despre cum se citesc datele — o capcană, o convenţie sau o limită a sursei.
data.identitati.toleranta_relativa string Pragul e relativ, fiindcă cele trei mărimi vin din matrici publicate separat.
data.identitati.verificari integer Câte combinaţii au fost verificate.
data.identitati.inchise integer Câte verificări s-au închis în toleranţă.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.acoperire.de_la integer Prima perioadă pentru care avem date.
meta.acoperire.pana_la integer Ultima perioadă pentru care avem date.
meta.serii_returnate integer Câte serii s-au întors efectiv, după filtre şi după plafonul de celule.
meta.nota_vab string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_identitate string Cum se verifică identitatea de mai sus şi ce înseamnă când nu se închide.
meta.nota_ocupare string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.fara_date data e null, iar aici stă motivul. Proiecţia peste datele INS e goală pe clasificarea cerută. Lista e la /ocupare-conturi/activitati. Ca la celelalte serii.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.
meta.caen[] object[] Cum s-a înţeles parametrul caen: codul cerut, revizia în care s-a citit şi codul pe care l-a folosit ruta. La o listă de coduri, câte un obiect pe cod.
meta.caen[].cerut string Codul CAEN trimis, normalizat (litere mari, fără puncte).
meta.caen[].versiune_cerut string Revizia în care s-a citit codul trimis: cea din caen_versiune, altfel prima în care există.
meta.caen[].folosit string Codul pe care l-a folosit seria: cel cerut, primul lui părinte publicat ori agregatul sursei care îl cuprinde (02-03).
meta.caen[].cod string Codul CAEN pe care îl reprezintă cheia folosită, când seria îşi numeşte activităţile altfel (agricultura = 01) ori când cheia e un agregat (62-63).
meta.caen[].nivel string Nivelul codului folosit — la rutele de firme, al codului cerut: sectiune, subsectiune, diviziune, grupa, clasa sau agregat.
meta.caen[].denumire string Denumirea codului, din nomenclatorul CAEN.
meta.caen[].versiune_serie string Revizia CAEN în care publică seria.
meta.caen[].conversie boolean true când codul a fost tradus dintr-o revizie în alta prin corespondenţa oficială INS.
meta.caen[].urcat boolean true când seria nu publică codul cerut şi s-a folosit un nivel superior.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/productivitate?per_pagina=3
{
    "data": {
        "clasificare": "rev2",
        "de_la": 1995,
        "pana_la": 2025,
        "filtre": [],
        "ani": [
            1995,
            1996,
            1997,
            1998,
            1999,
            2000,
            2001,
            2002,
            2003,
            2004,
            2005,
            2006,
            2007,
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024,
            2025
        ],
        "serii": [
            {
                "masura": "pe_ora",
                "unitate": "lei / ora lucrata",
                "clasificare": "rev2",
                "activitate": "administratie_educatie_sanatate",
                "denumire_activitate": "ADMINISTRATIE PUBLICA SI APARARE; ASIGURARI SOCIALE DIN SISTEMUL PUBLIC; INVATAMANT; SANATATE SI ASISTENTA SOCIALA",
                "nivel_activitate": "ramura",
                "valori": {
                    "1995": "0.3",
                    "1996": "0.4",
                    "1997": "1",
                    "1998": "1.5",
                    "1999": "3.1",
                    "2000": "5.1",
                    "2001": "7",
                    "2002": "9.2",
                    "2003": "11.2",
                    "2004": "9.8",
                    "2005": "13",
                    "2006": "14.7",
                    "2007": "16.7",
                    "2008": "22.8",
                    "2009": "21.3",
                    "2010": "28.4",
                    "2011": "26.5",
                    "2012": "30",
                    "2013": "33.3",
                    "2014": "39.6",
                    "2015": "32.6",
                    "2016": "39.6",
                    "2017": "48.7",
                    "2018": "59.7",
                    "2019": "68.1",
                    "2020": "74.5",
                    "2021": "71.1",
                    "2022": "76.2",
                    "2023": "94.4",
                    "2024": "102.4",
                    "2025": "103.5"
                }
            }
        ],
        "identitati": {
            "identitate": "`pe_persoana` × populaţia ocupată = valoarea adăugată brută",
            "nota": "⚠️ E valoarea adăugată brută, NU produsul intern brut — cine înmulţeşte cu PIB-ul greşeşte cu vreo 9%. Nu e o identitate contabilă, ci o concordanţă între trei matrici publicate separat: verificată pe toţi cei 31 de ani, cu abaterea relativă maximă de 0,004%. În 2023: 171.042,4 lei/persoană × 8.493,2 mii = 1.452.697,3, faţă de 1.452.697,1 la /financiar/v1/conturi-integrate.",
            "toleranta_relativa": "0.0001",
            "verificari": 31,
            "inchise": 31
        }
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — productivitatea muncii pe persoană ocupată şi pe oră (TEMPO, matricile CON110A, CON110C, CON110E şi CON110F).",
        "acoperire": {
            "de_la": 1995,
            "pana_la": 2025
        },
        "serii_returnate": 22,
        "nota_vab": "`pe_persoana` × populaţia ocupată = valoarea adăugată brută",
        "nota_identitate": "Verificat pe acest răspuns: productivitatea înmulţită cu ocuparea dă valoarea adăugată brută în 31 din 31 ani.",
        "nota_ocupare": "Numitorul acestei productivităţi — populaţia ocupată şi orele lucrate — e la /financiar/v1/ocupare-conturi."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă sau invalid.
403feature_indisponibilfinanciar.indici nu e în planul curent.
404caen_nepublicatNici codul, nici părinţii lui nu sunt publicaţi în serie; detalii.disponibile dă cheile. grupare_nepublicata — gruparea nu e în serie; răspunsul dă lista.
422caen_inexistentCodul din caen nu există în nicio revizie CAEN; e o valoare de FILTRU greşită, deci 422, nu 404. Clasificare, măsură, activitate ori an în afara formei aşteptate. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "caen_inexistent",
        "mesaj": "Codul din caen nu există în nicio revizie CAEN; e o valoare de FILTRU greşită, deci 422, nu 404. Clasificare, măsură, activitate ori an în afara formei aşteptate. caen şi grupare trimise împreună, caen_versiune fără caen, ori un cod fără forma CAEN.",
        "detalii": {
            "clasificare": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}