The structure of labour cost
What labour cost is made of, as percentages of the total — 13 elements across 68 activities, annually since 2000. It complements /financiar/v1/cost-forta-munca, which gives the quarterly index but not the composition.
⚠️ The composition changes twice during the series, and the source writes it into the row names themselves. Only total, cheltuieli_directe and cheltuieli_indirecte cover the whole range; the details begin in 2008, the unemployment contribution is replaced from 2018 by the work insurance contribution, and the amounts from the wage fund change definition in 2020. Every element carries its own validity range.
Query parameters
caen code — 1, 2 or 3 — when its form is ambiguous (4932 means different things in Rev.2 and Rev.3). Without it, the code is looked up in the series revision first.
123
total, grupa, detaliu.
totalgrupadetaliu
C), division (62), group, class (6201) — from any revision. It is brought to the published section, division or range (CAEN Rev.2); what was used is in meta.caen.
e.g. C,62
total or the merged division ranges (02-03, 38-39, 59-60, 62-63). Not sent together with caen.
e.g. 02-03e.g. 38-39e.g. 59-60
How it behaves
- The share of each labour cost component, in percent of the total — 12,644 values, annually from 2000 to 2024, from TEMPO matrix
FOM112C. 13 components × 68 NACE Rev.2 activities. - It completes
/financiar/v1/cost-forta-munca, which gives the quarterly cost index but not what the cost is made of. - ✅
totalis exactly 100 in all 1,700 cells — it is a percentage structure, not a sum of money. ✅total=cheltuieli_directe+cheltuieli_indirecte: 1,700 of 1,700. ✅total= the sum of the detail components: 1,156 of 1,156, but only from 2008 onward. - ⚠️ The composition changes twice over the series, and the source writes it into the row names themselves. Only
total,cheltuieli_directeandcheltuieli_indirectecover the whole 2000-2024 span; the details start in 2008.contributie_somajruns to 2017 and is replaced from 2018 bycontributie_asiguratorie_munca;fond_salariiruns to 2019 and becomesfond_salarii_si_alte_fondurifrom 2020. Each series carriesvalabil_de_laandvalabil_pana_la. - The 2018 tax reform is visible directly in the figures. For the economy as a whole, employer social contributions fall from 18% of labour cost in 2017 to 1.4% in 2018 — shifted onto the employee — while amounts paid from the wage fund jump in the same year from 77.8% to 92.6%. The total cost does not change; what changes is who pays it on paper. That is why series before and after 2018 do not compare component by component.
- The two levels do not mix:
grupaare the two halves of the total,detaliuare the components beneath them. - Activity is requested the same way across the platform.
caentakes any CAEN code, at any level and from any revision, and the route brings it to what the series publishes — climbing to a parent or translating it through the official INS correspondence;meta.caenstates the requested code, the one used and whether it was climbed or converted.grupareis for the source aggregates that are not CAEN codes.
What it is for
- How much of labour cost actually reaches the employee and how much goes to contributions.
- The effect of the 2018 reform on the structure of cost.
- The share of vocational training spending, by branch.
Response structure
total, grupa or detaliu. They do not mix.
data is null and this says why. The projection over the INS data is empty. The lists are at /cost-forta-munca/elemente. As on the other series.
fara_date is prose and may be rephrased, this is not.
caen parameter was understood: the requested code, the revision it was read in and the code the route used. For a list of codes, one object per code.
caen_versiune, otherwise the first it exists in.
02-03).
sectiune, subsectiune, diviziune, grupa, clasa or agregat.
true when the code was translated from one revision to another through the official INS correspondence.
true when the series does not publish the requested code and a higher level was used.
Response examples
{
"data": {
"unitate": "procente din costul total",
"de_la": 2000,
"pana_la": 2024,
"filtre": [],
"ani": [
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
],
"serii": [
{
"caen": "01",
"forma_cod": "diviziune",
"activitate": "01 Agricultura, vanatoare si servicii anexe",
"element": "alte_cheltuieli",
"denumire_element": "Alte cheltuieli",
"nivel_element": "detaliu",
"valabil_de_la": 2008,
"valabil_pana_la": 2024,
"unitate": "procente din costul total",
"valori": {
"2000": null,
"2001": null,
"2002": null,
"2003": null,
"2004": null,
"2005": null,
"2006": null,
"2007": null,
"2008": "0.6",
"2009": "0.7",
"2010": "0.5",
"2011": "0.5",
"2012": "0.9",
"2013": "0.4",
"2014": "0.4",
"2015": "0.3",
"2016": "0.1",
"2017": "0.1",
"2018": "0.1",
"2019": "0.2",
"2020": "0.2",
"2021": "0.2",
"2022": "0.1",
"2023": "0.1",
"2024": "0.2"
}
}
],
"identitati": {
"toleranta": "0.2",
"total_suta": {
"identitate": "`total` = 100",
"nota": "E o structură procentuală, nu o sumă de bani. Verificat pe toată proiecţia: 1.700 din 1.700.",
"verificari": 1700,
"inchise": 1700
},
"grupe": {
"identitate": "`total` = `cheltuieli_directe` + `cheltuieli_indirecte`",
"nota": "Verificat pe toată proiecţia: 1.700 din 1.700. Cele două grupe sunt singurele care acoperă tot intervalul 2000-2024.",
"verificari": 1700,
"inchise": 1700
},
"detalii": {
"identitate": "`total` = suma elementelor de detaliu",
"nota": "Verificat pe toată proiecţia: 1.156 din 1.156 — dar numai din 2008 încoace, fiindcă înainte sursa nu publică detaliile. Suma se calculează din bază, cu setul de elemente valabil în fiecare an.",
"verificari": 1156,
"inchise": 1156
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — ponderea cheltuielilor directe şi indirecte ale costului forţei de muncă (TEMPO, matricea FOM112C).",
"acoperire": {
"de_la": 2000,
"pana_la": 2024
},
"serii_returnate": 841,
"nota_procente": "Valorile sunt procente din costul total, nu sume de bani: `total` e exact 100.",
"nota_valabilitate": "Fiecare element îşi poartă `valabil_de_la`/`valabil_pana_la`: componenţa se schimbă în 2008, 2018 şi 2020. Lista completă e la /financiar/v1/cost-forta-munca/elemente.",
"nota_identitate": "Verificat pe acest răspuns: totalul e suma celor două grupe în 1700 din 1700 celule.",
"nota_indice": "Indicele trimestrial al costului forţei de muncă: /financiar/v1/cost-forta-munca."
}
}
{
"data": {
"unitate": "procente din costul total",
"de_la": 2020,
"pana_la": 2024,
"filtre": {
"caen": [
"C",
"62-63"
]
},
"ani": [
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"caen": "62-63",
"forma_cod": "interval",
"activitate": "62-63 Activitati de servicii in tehnologia informatiei; Activitati de servicii informatice",
"element": "alte_cheltuieli",
"denumire_element": "Alte cheltuieli",
"nivel_element": "detaliu",
"valabil_de_la": 2008,
"valabil_pana_la": 2024,
"unitate": "procente din costul total",
"valori": {
"2020": null,
"2021": null,
"2022": null,
"2023": "0.1",
"2024": "0.1"
}
}
],
"identitati": {
"toleranta": "0.2",
"total_suta": {
"identitate": "`total` = 100",
"nota": "E o structură procentuală, nu o sumă de bani. Verificat pe toată proiecţia: 1.700 din 1.700.",
"verificari": 10,
"inchise": 10
},
"grupe": {
"identitate": "`total` = `cheltuieli_directe` + `cheltuieli_indirecte`",
"nota": "Verificat pe toată proiecţia: 1.700 din 1.700. Cele două grupe sunt singurele care acoperă tot intervalul 2000-2024.",
"verificari": 10,
"inchise": 10
},
"detalii": {
"identitate": "`total` = suma elementelor de detaliu",
"nota": "Verificat pe toată proiecţia: 1.156 din 1.156 — dar numai din 2008 încoace, fiindcă înainte sursa nu publică detaliile. Suma se calculează din bază, cu setul de elemente valabil în fiecare an.",
"verificari": 10,
"inchise": 10
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — ponderea cheltuielilor directe şi indirecte ale costului forţei de muncă (TEMPO, matricea FOM112C).",
"acoperire": {
"de_la": 2000,
"pana_la": 2024
},
"serii_returnate": 18,
"nota_procente": "Valorile sunt procente din costul total, nu sume de bani: `total` e exact 100.",
"nota_valabilitate": "Fiecare element îşi poartă `valabil_de_la`/`valabil_pana_la`: componenţa se schimbă în 2008, 2018 şi 2020. Lista completă e la /financiar/v1/cost-forta-munca/elemente.",
"nota_identitate": "Verificat pe acest răspuns: totalul e suma celor două grupe în 10 din 10 celule.",
"nota_indice": "Indicele trimestrial al costului forţei de muncă: /financiar/v1/cost-forta-munca.",
"caen": [
{
"cerut": "C",
"versiune_cerut": "Rev.2",
"folosit": "C",
"nivel": "sectiune",
"denumire": "INDUSTRIA PRELUCRĂTOARE",
"versiune_serie": "Rev.2",
"conversie": false,
"urcat": false
}
]
}
}
{
"data": {
"unitate": "procente din costul total",
"de_la": 2024,
"pana_la": 2024,
"filtre": [],
"ani": [
2024
],
"serii": [
{
"caen": "01",
"forma_cod": "diviziune",
"activitate": "01 Agricultura, vanatoare si servicii anexe",
"element": "alte_cheltuieli",
"denumire_element": "Alte cheltuieli",
"nivel_element": "detaliu",
"valabil_de_la": 2008,
"valabil_pana_la": 2024,
"unitate": "procente din costul total",
"valori": {
"2024": "0.2"
}
}
],
"identitati": {
"toleranta": "0.2",
"total_suta": {
"identitate": "`total` = 100",
"nota": "E o structură procentuală, nu o sumă de bani. Verificat pe toată proiecţia: 1.700 din 1.700.",
"verificari": 68,
"inchise": 68
},
"grupe": {
"identitate": "`total` = `cheltuieli_directe` + `cheltuieli_indirecte`",
"nota": "Verificat pe toată proiecţia: 1.700 din 1.700. Cele două grupe sunt singurele care acoperă tot intervalul 2000-2024.",
"verificari": 68,
"inchise": 68
},
"detalii": {
"identitate": "`total` = suma elementelor de detaliu",
"nota": "Verificat pe toată proiecţia: 1.156 din 1.156 — dar numai din 2008 încoace, fiindcă înainte sursa nu publică detaliile. Suma se calculează din bază, cu setul de elemente valabil în fiecare an.",
"verificari": 68,
"inchise": 68
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — ponderea cheltuielilor directe şi indirecte ale costului forţei de muncă (TEMPO, matricea FOM112C).",
"acoperire": {
"de_la": 2000,
"pana_la": 2024
},
"serii_returnate": 608,
"nota_procente": "Valorile sunt procente din costul total, nu sume de bani: `total` e exact 100.",
"nota_valabilitate": "Fiecare element îşi poartă `valabil_de_la`/`valabil_pana_la`: componenţa se schimbă în 2008, 2018 şi 2020. Lista completă e la /financiar/v1/cost-forta-munca/elemente.",
"nota_identitate": "Verificat pe acest răspuns: totalul e suma celor două grupe în 68 din 68 celule.",
"nota_indice": "Indicele trimestrial al costului forţei de muncă: /financiar/v1/cost-forta-munca."
}
}
{
"data": {
"unitate": "procente din costul total",
"de_la": 2000,
"pana_la": 2024,
"filtre": {
"nivel_element": [
"total"
]
},
"ani": [
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
],
"serii": [
{
"caen": "01",
"forma_cod": "diviziune",
"activitate": "01 Agricultura, vanatoare si servicii anexe",
"element": "total",
"denumire_element": "Total",
"nivel_element": "total",
"valabil_de_la": 2000,
"valabil_pana_la": 2024,
"unitate": "procente din costul total",
"valori": {
"2000": "100",
"2001": "100",
"2002": "100",
"2003": "100",
"2004": "100",
"2005": "100",
"2006": "100",
"2007": "100",
"2008": "100",
"2009": "100",
"2010": "100",
"2011": "100",
"2012": "100",
"2013": "100",
"2014": "100",
"2015": "100",
"2016": "100",
"2017": "100",
"2018": "100",
"2019": "100",
"2020": "100",
"2021": "100",
"2022": "100",
"2023": "100",
"2024": "100"
}
}
],
"identitati": {
"toleranta": "0.2",
"total_suta": {
"identitate": "`total` = 100",
"nota": "E o structură procentuală, nu o sumă de bani. Verificat pe toată proiecţia: 1.700 din 1.700.",
"verificari": 1700,
"inchise": 1700
},
"detalii": {
"identitate": "`total` = suma elementelor de detaliu",
"nota": "Verificat pe toată proiecţia: 1.156 din 1.156 — dar numai din 2008 încoace, fiindcă înainte sursa nu publică detaliile. Suma se calculează din bază, cu setul de elemente valabil în fiecare an.",
"verificari": 1156,
"inchise": 1156
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — ponderea cheltuielilor directe şi indirecte ale costului forţei de muncă (TEMPO, matricea FOM112C).",
"acoperire": {
"de_la": 2000,
"pana_la": 2024
},
"serii_returnate": 68,
"nota_procente": "Valorile sunt procente din costul total, nu sume de bani: `total` e exact 100.",
"nota_valabilitate": "Fiecare element îşi poartă `valabil_de_la`/`valabil_pana_la`: componenţa se schimbă în 2008, 2018 şi 2020. Lista completă e la /financiar/v1/cost-forta-munca/elemente.",
"nota_indice": "Indicele trimestrial al costului forţei de muncă: /financiar/v1/cost-forta-munca."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.indici is not in the current plan. |
| 404 | caen_nepublicat | Neither the code nor its parents are published in the series; detalii.disponibile lists the keys. grupare_nepublicata — the grouping is not in the series; the response lists them. |
| 422 | caen_inexistent | The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. A component, level, code or year outside the expected shape. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped. |
| 429 | cota_depasita | The plan's monthly quota has been exceeded (see Retry-After). |
All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.
{
"eroare": {
"cod": "caen_inexistent",
"mesaj": "The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. A component, level, code or year outside the expected shape. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}