Employees by age group and occupation
The number of employees, the gross basic wage and gross earnings realised, across 11 age groups × 9 ISCO-08 major groups × sexes, in the month of October, annually since 2013.
Age is a dimension that appears nowhere else in the module.
⚠️ A wrong total row at source, flagged rather than smoothed over: in 2016, the total by age is 849,821 instead of 4,120,907 — a fifth of the real value, even though all eleven groups are published.
⚠️ The occupational breakdown has gaps: in 2013 the ocupatii_elementare group is missing, and in 2018 all nine are missing on the total age slice. There the identity is skipped, not reported as a failure.
⚠️ The basic wage and earnings realised are averages and are not additive; the identities are run only on the number of employees.
Query parameters
numar_salariati, salariu_baza, venit_realizat.
numar_salariatisalariu_bazavenit_realizat
total, masculin, feminin.
totalmasculinfeminin
15_19 … 60_64, 65_plus, total.
e.g. 15_19
total.
totalconducatorispecialistitehnicienifunctionariserviciiagriculturamuncitori_calificatioperatoriocupatii_elementare
How it behaves
- The number of full-time employees paid for the whole month of October, the gross base wage and the gross earnings realised — by 11 age groups × 9 ISCO-08 major groups × sex, annually from 2013. 11,649 values, from TEMPO matrix
FOM121B. - Age is a dimension that appears nowhere else in the module. For the same ISCO-08 groups without age but with the earnings structure:
/financiar/v1/castiguri/structura. - ⚠️
salariu_bazaandvenit_realizatare averages and add up on no dimension. The identities run only onnumar_salariati; the money series carryeste_medie. - ✅
total=masculin+feminin, on the headcount: 1,292 of 1,292. - ⚠️ The identity bound is relative, 0.01%, not absolute: the source suppresses small cells for confidentiality, so the components sum slightly below the total. Measured, the actual maximum gap is 107 persons out of ~4.1 million — 0.0026%.
- ⚠️ One wrong total row at the source, in 2016: the age
totalis 849,821 instead of 4,120,907 — a fifth of the real value, even though all eleven age groups are published. We do not correct it; the identity surfaces it, with the year named inani_care_nu_se_inchid. - ⚠️ The occupation detail has gaps: in 2013 the
ocupatii_elementaregroup is missing entirely (hence a 531,851-person gap against the total), and in 2018 all nine are missing on thetotalage slice. There the identity is skipped rather than reported as a failure — it would be a false one. - ⚠️ The year 2014 is missing entirely from the published series.
What it is for
- The wage curve by age, within the same occupation.
- The earnings gap between women and men, at the same age and occupation.
- The age structure of an ISCO major group.
Response structure
1-9, or total.
data is null and this says why. The projection over the INS data is empty. As on the other series.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": 2013,
"pana_la": 2024,
"filtre": [],
"ani": [
2013,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"masura": "numar_salariati",
"unitate": "Numar persoane",
"sex": "feminin",
"varsta": "15_19",
"denumire_varsta": "15-19 ani",
"ocupatie": "agricultura",
"denumire_ocupatie": "Lucratori calificati in agricultura, silvicultura si pescuit",
"valori": {
"2013": null,
"2015": "10",
"2016": null,
"2017": null,
"2018": null,
"2019": "15",
"2020": null,
"2021": "10",
"2022": "11",
"2023": "10",
"2024": null
}
}
],
"identitati": {
"toleranta_relativa": "0.0001",
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"varsta": {
"identitate": "`total` = suma celor unsprezece grupe de vârstă",
"nota": "⚠️ În 2016 sursa publică un rând `total` vizibil greşit: 849.821 în loc de 4.120.907 — o cincime din valoarea reală, cu toate cele unsprezece grupe de vârstă prezente. Nu îl corectăm, îl semnalăm; în restul anilor identitatea se închide.",
"verificari": 290,
"inchise": 262,
"ani_care_nu_se_inchid": [
2016
],
"unde": {
"an": 2016,
"serie": "numar_salariati|agricultura|total",
"total": "3901",
"suma_componentelor": "14502.00"
}
},
"ocupatie": {
"identitate": "`total` = suma celor nouă grupe majore ISCO-08",
"nota": "⚠️ Identitatea se sare acolo unde sursa nu publică toate cele nouă grupe: în 2013 lipseşte `ocupatii_elementare` (de aici o diferenţă de 531.851 de persoane faţă de total), iar în 2018 lipsesc toate nouă pe felia cu vârsta `total`. Se sare, nu se raportează ca eşec.",
"verificari": 347,
"inchise": 347
},
"sex": {
"identitate": "`total` = `masculin` + `feminin`",
"nota": "Verificat pe toată proiecţia, doar pe numărul de salariaţi: 1.292 din 1.292.",
"verificari": 1292,
"inchise": 1292
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — salariaţii, salariul de bază şi venitul realizat pe vârste şi ocupaţii (TEMPO, matricea FOM121B).",
"acoperire": {
"de_la": 2013,
"pana_la": 2024
},
"serii_returnate": 1080,
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"nota_2014": "Anul 2014 lipseşte cu totul din seria publicată de sursă.",
"nota_anomalii": "Anul 2016 are un rând `total` pe vârstă vizibil greşit; anii 2013 şi 2018 au goluri în detalierea pe ocupaţii. Se văd în `identitati`.",
"nota_ocupatii": "Aceleaşi grupe ISCO-08, dar pe activităţi: /financiar/v1/salariati/ocupatii-activitati şi /financiar/v1/castiguri/structura."
}
}
{
"data": {
"de_la": 2024,
"pana_la": 2024,
"filtre": [],
"ani": [
2024
],
"serii": [
{
"masura": "numar_salariati",
"unitate": "Numar persoane",
"sex": "total",
"varsta": "15_19",
"denumire_varsta": "15-19 ani",
"ocupatie": "agricultura",
"denumire_ocupatie": "Lucratori calificati in agricultura, silvicultura si pescuit",
"valori": {
"2024": "50"
}
}
],
"identitati": {
"toleranta_relativa": "0.0001",
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"varsta": {
"identitate": "`total` = suma celor unsprezece grupe de vârstă",
"nota": "⚠️ În 2016 sursa publică un rând `total` vizibil greşit: 849.821 în loc de 4.120.907 — o cincime din valoarea reală, cu toate cele unsprezece grupe de vârstă prezente. Nu îl corectăm, îl semnalăm; în restul anilor identitatea se închide.",
"verificari": 28,
"inchise": 28
},
"ocupatie": {
"identitate": "`total` = suma celor nouă grupe majore ISCO-08",
"nota": "⚠️ Identitatea se sare acolo unde sursa nu publică toate cele nouă grupe: în 2013 lipseşte `ocupatii_elementare` (de aici o diferenţă de 531.851 de persoane faţă de total), iar în 2018 lipsesc toate nouă pe felia cu vârsta `total`. Se sare, nu se raportează ca eşec.",
"verificari": 34,
"inchise": 34
},
"sex": {
"identitate": "`total` = `masculin` + `feminin`",
"nota": "Verificat pe toată proiecţia, doar pe numărul de salariaţi: 1.292 din 1.292.",
"verificari": 119,
"inchise": 119
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — salariaţii, salariul de bază şi venitul realizat pe vârste şi ocupaţii (TEMPO, matricea FOM121B).",
"acoperire": {
"de_la": 2013,
"pana_la": 2024
},
"serii_returnate": 1074,
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"nota_2014": "Anul 2014 lipseşte cu totul din seria publicată de sursă.",
"nota_anomalii": "Anul 2016 are un rând `total` pe vârstă vizibil greşit; anii 2013 şi 2018 au goluri în detalierea pe ocupaţii. Se văd în `identitati`.",
"nota_ocupatii": "Aceleaşi grupe ISCO-08, dar pe activităţi: /financiar/v1/salariati/ocupatii-activitati şi /financiar/v1/castiguri/structura."
}
}
{
"data": {
"de_la": 2024,
"pana_la": 2024,
"filtre": {
"masura": [
"numar_salariati"
],
"sex": [
"total"
],
"ocupatie": [
"total"
]
},
"ani": [
2024
],
"serii": [
{
"masura": "numar_salariati",
"unitate": "Numar persoane",
"sex": "total",
"varsta": "15_19",
"denumire_varsta": "15-19 ani",
"ocupatie": "total",
"denumire_ocupatie": "Total",
"valori": {
"2024": "27964"
}
}
],
"identitati": {
"toleranta_relativa": "0.0001",
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"varsta": {
"identitate": "`total` = suma celor unsprezece grupe de vârstă",
"nota": "⚠️ În 2016 sursa publică un rând `total` vizibil greşit: 849.821 în loc de 4.120.907 — o cincime din valoarea reală, cu toate cele unsprezece grupe de vârstă prezente. Nu îl corectăm, îl semnalăm; în restul anilor identitatea se închide.",
"verificari": 1,
"inchise": 1
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — salariaţii, salariul de bază şi venitul realizat pe vârste şi ocupaţii (TEMPO, matricea FOM121B).",
"acoperire": {
"de_la": 2013,
"pana_la": 2024
},
"serii_returnate": 12,
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"nota_2014": "Anul 2014 lipseşte cu totul din seria publicată de sursă.",
"nota_anomalii": "Anul 2016 are un rând `total` pe vârstă vizibil greşit; anii 2013 şi 2018 au goluri în detalierea pe ocupaţii. Se văd în `identitati`.",
"nota_ocupatii": "Aceleaşi grupe ISCO-08, dar pe activităţi: /financiar/v1/salariati/ocupatii-activitati şi /financiar/v1/castiguri/structura."
}
}
{
"data": {
"de_la": 2013,
"pana_la": 2024,
"filtre": {
"masura": [
"numar_salariati"
]
},
"ani": [
2013,
2015,
2016,
2017,
2018,
2019,
2020,
2021,
2022,
2023,
2024
],
"serii": [
{
"masura": "numar_salariati",
"unitate": "Numar persoane",
"sex": "feminin",
"varsta": "15_19",
"denumire_varsta": "15-19 ani",
"ocupatie": "agricultura",
"denumire_ocupatie": "Lucratori calificati in agricultura, silvicultura si pescuit",
"valori": {
"2013": null,
"2015": "10",
"2016": null,
"2017": null,
"2018": null,
"2019": "15",
"2020": null,
"2021": "10",
"2022": "11",
"2023": "10",
"2024": null
}
}
],
"identitati": {
"toleranta_relativa": "0.0001",
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"varsta": {
"identitate": "`total` = suma celor unsprezece grupe de vârstă",
"nota": "⚠️ În 2016 sursa publică un rând `total` vizibil greşit: 849.821 în loc de 4.120.907 — o cincime din valoarea reală, cu toate cele unsprezece grupe de vârstă prezente. Nu îl corectăm, îl semnalăm; în restul anilor identitatea se închide.",
"verificari": 290,
"inchise": 262,
"ani_care_nu_se_inchid": [
2016
],
"unde": {
"an": 2016,
"serie": "numar_salariati|agricultura|total",
"total": "3901",
"suma_componentelor": "14502.00"
}
},
"ocupatie": {
"identitate": "`total` = suma celor nouă grupe majore ISCO-08",
"nota": "⚠️ Identitatea se sare acolo unde sursa nu publică toate cele nouă grupe: în 2013 lipseşte `ocupatii_elementare` (de aici o diferenţă de 531.851 de persoane faţă de total), iar în 2018 lipsesc toate nouă pe felia cu vârsta `total`. Se sare, nu se raportează ca eşec.",
"verificari": 347,
"inchise": 347
},
"sex": {
"identitate": "`total` = `masculin` + `feminin`",
"nota": "Verificat pe toată proiecţia, doar pe numărul de salariaţi: 1.292 din 1.292.",
"verificari": 1292,
"inchise": 1292
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — salariaţii, salariul de bază şi venitul realizat pe vârste şi ocupaţii (TEMPO, matricea FOM121B).",
"acoperire": {
"de_la": 2013,
"pana_la": 2024
},
"serii_returnate": 360,
"nota_toleranta": "Pragul e relativ (0,01%): sursa suprimă celulele mici din motive de confidenţialitate, aşa că suma componentelor iese cu puţin sub total. Abaterea reală maximă e 107 persoane din ~4,1 milioane.",
"nota_medii": "⚠️ `salariu_baza` şi `venit_realizat` sunt medii şi nu se adună pe nicio dimensiune; identităţile se rulează doar pe `numar_salariati`.",
"nota_2014": "Anul 2014 lipseşte cu totul din seria publicată de sursă.",
"nota_anomalii": "Anul 2016 are un rând `total` pe vârstă vizibil greşit; anii 2013 şi 2018 au goluri în detalierea pe ocupaţii. Se văd în `identitati`.",
"nota_ocupatii": "Aceleaşi grupe ISCO-08, dar pe activităţi: /financiar/v1/salariati/ocupatii-activitati şi /financiar/v1/castiguri/structura."
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Missing or invalid token. |
| 403 | feature_indisponibil | financiar.indici is not in the current plan. |
| 422 | validare | A measure, sex, age, occupation or year outside the expected shape. |
| 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": "validare",
"mesaj": "A measure, sex, age, occupation or year outside the expected shape.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}