The supply and use balance by product
Where each product comes from and where it goes: how much is produced, how much imported, how much enters intermediate consumption, how much final consumption, how much investment, how much is exported — across 88 NACE Rev. 2 divisions, annually since 1995, in two price bases.
⚠️ Only rows with rol: componenta are additive. Those marked detaliu are breakdowns of a component, and taxe_vamale is memorandum: it is already inside impozite. Added separately, it breaks the identity.
⚠️ Comparable prices are the previous year's prices, not those of a base year: two years at comparable prices do not compare with each other. The ratio against the previous year at current prices is, however, the real growth.
Query parameters
curente (default) or comparabile. Comparable prices are the previous year's prices.
curentecomparabile
resurse or utilizari.
resurseutilizari
total, corectie_cif_fob, corectie_teritoriala. Without it, total is returned.
e.g. total
total, componenta, detaliu, memorandum. Only componenta adds up.
totalcomponentadetaliumemorandum
How it behaves
- The supply and use balance by product from the input-output table (ESA 2010, NACE Rev.2) — 155,610 values from TEMPO matrices
CON111AandCON111E. 91 product rows × 30 categories × two price bases: current prices from 1995 to 2023 (29 years) and comparable prices from 1996 (28). - It is the only place in the module that shows, product by product, where the goods come from and where they go: how much is produced, how much imported, how much goes into intermediate consumption, into final consumption, into investment, into exports. The accounts at
/financiar/v1/conturi-integratesay who receives the money; this route says what happens to the good or service. - The rows are 88 NACE Rev.2 divisions —
01agriculture,10food industry,35energy,68real estate — plus three special rows:corectie_cif_fob,corectie_teritorialaandtotal. Withoutprodus, the response stops attotal. - ⚠️ Only rows with
rol: componentaadd up. Those markeddetaliuare breakdowns of a component — VAT and other taxes withinimpozite, market/non-market/own-final-use output withinproductie, intra- and extra-EU imports and exports, the kinds of final consumption. Andtaxe_vamalecarriesrol: memorandum: it is already insideimpozite. Added separately, the resources identity falls from 2,639 to 1,855 closed cells. - ⚠️
marja_transport_comertadds up on every product but is zero ontotal. It is a redistribution between products — the margin paid for transporting and trading a good — which cancels out across the economy. For the food industry in 2023 the margin is 46,513 of the 221,483 million in resources. - ⚠️
subventiiis published with a NEGATIVE sign and is ADDED in the identity, not subtracted — as everywhere in the national accounts. Exactly one cell of 2,639 carries a positive subsidy. - Five identities are checked on every request.
total_resurse=total_utilizari, the fundamental balance: 2,639 of 2,639 cells at current prices and 2,548 of 2,548 at comparable prices. The composition of resources (seven components) and of uses (six).productie= market + non-market + own final use: 2,639 of 2,639. And thetotalrow = the sum of the 90 product rows: 870 of 870 — the two corrections belong in the sum, and without them the identity falls to 660. - ⚠️ The tolerance is not a chosen constant, it is derived from the year. The source publishes one decimal through 2017 and rounds to whole millions from 2018 (7,547 decimal values before, 780 after). Measured: the composition of resources and of uses close exactly, with ZERO deviation, in all 23 years through 2017; from 2018 the only remaining slack is the source's own rounding — at most 1 on resources and 2 on uses, against the 3.5-4 bound implied by the number of rounded terms. The bound is half a rounding step per term added, plus one for the total.
- ⚠️ Comparable prices are the previous year's prices, not those of a base year. Two years at comparable prices do NOT compare with each other. The ratio against the same year at current prices is, however, real growth: 2020 comparable / 2019 current = 0.957, that is −4.3% — the pandemic contraction; 2021 gives +7.6%.
What it is for
- A product's import dependence: how much of its supply comes from abroad.
- Where a branch's output goes — intermediate consumption, final consumption, investment or exports.
- The structure of the trade and transport margin across products.
- Real growth in a product's supply, from the ratio between comparable prices and the previous year at current prices.
Response structure
total, componenta, detaliu or memorandum. Only the components add up.
taxe_vamale: it is already inside impozite.
subventii, which is ADDED in the identity.
data is null and this says why. The projection over the INS data is empty for the requested base. The full nomenclature is at /intrari-iesiri/nomenclator. The span lies entirely outside the requested base; note that the comparable one starts only in 1996. It overlaps but holds no values.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"baza": "curente",
"descriere_baza": "Preţuri curente — valorile anului, aşa cum au fost",
"unitate": "milioane lei",
"de_la": 1995,
"pana_la": 2023,
"filtre": {
"produs": [
"total"
]
},
"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
],
"serii": [
{
"produs": "total",
"denumire_produs": "Total",
"nivel_produs": "special",
"categorie": "corectie_cif_fob",
"denumire_categorie": "Corectie CIF - FOB",
"latura": "resurse",
"rol": "componenta",
"unitate": "milioane lei",
"ani_publicati": 29,
"valori": {
"1995": "0",
"1996": "0",
"1997": "0",
"1998": "0",
"1999": "0",
"2000": "0",
"2001": "0",
"2002": "0",
"2003": "0",
"2004": "0",
"2005": "0",
"2006": "0",
"2007": "0",
"2008": "0",
"2009": "0",
"2010": "0",
"2011": "0",
"2012": "0",
"2013": "0",
"2014": "0",
"2015": "0",
"2016": "0",
"2017": "0",
"2018": "0",
"2019": "0",
"2020": "0",
"2021": "0",
"2022": "0",
"2023": "0"
}
}
],
"identitati": {
"nota_toleranta": "Toleranţa nu e o constantă: sursa publică o zecimală până în 2017 şi rotunjeşte la milionul întreg după, aşa că pragul e o jumătate de pas pentru fiecare termen adunat.",
"echilibru": {
"identitate": "`total_resurse` = `total_utilizari`",
"nota": "Echilibrul fundamental al tabelului: tot ce apare ca resursă a unui produs se regăseşte ca utilizare. Verificat pe toată proiecţia: 2.639 din 2.639 de celule la preţuri curente şi 2.548 din 2.548 la comparabile.",
"verificari": 29,
"inchise": 29
},
"resurse": {
"identitate": "`total_resurse` = `productie` + `import` + `impozite` + `subventii` + `marja_transport_comert` + `corectie_cif_fob` + `redistribuire_productie`",
"nota": "`taxe_vamale` nu intră în sumă: e deja cuprins în `impozite`. Cu el înăuntru, identitatea cade de la 2.639 la 1.855 de celule închise. `subventii` are semn negativ şi se ADUNĂ.",
"verificari": 29,
"inchise": 29
},
"utilizari": {
"identitate": "`total_utilizari` = `consum_intermediar` + `consum_final` + `formare_capital_fix` + `variatie_stoc` + `obiecte_de_valoare` + `export`",
"verificari": 29,
"inchise": 29
},
"productie": {
"identitate": "`productie` = `productie_piata` + `productie_nepiata` + `productie_consum_propriu`",
"verificari": 29,
"inchise": 29
},
"total": {
"identitate": "rândul `total` = suma celor 90 de rânduri de produs",
"nota": "Cele două corecţii — `corectie_cif_fob` şi `corectie_teritoriala` — intră în sumă. Fără ele, identitatea cade de la 870 la 660 de celule închise. Pragul e mai larg aici fiindcă se adună 90 de termeni rotunjiţi.",
"verificari": 870,
"inchise": 870
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — tabelul intrări-ieşiri, echilibrul resurse-utilizări pe produse (TEMPO, matricile CON111A şi CON111E).",
"acoperire": {
"de_la": 1995,
"pana_la": 2023
},
"serii_returnate": 30,
"nota_implicit": "Fără `produs`, răspunsul se opreşte la rândul `total`. Cele 88 de diviziuni sunt la /financiar/v1/intrari-iesiri/nomenclator.",
"nota_rol": "Se adună doar rândurile cu `rol: componenta`; `detaliu` sunt defalcări, iar `taxe_vamale` e memorandum, deja cuprins în `impozite`.",
"nota_marja": "`marja_transport_comert` se adună la fiecare produs, dar e zero pe `total`: e o redistribuire între produse.",
"nota_identitate": "Verificat pe acest răspuns: resursele sunt egale cu utilizările în 29 din 29 celule.",
"nota_conturi": "Pentru aceleaşi agregate pe sectoare instituţionale: /financiar/v1/conturi-integrate."
}
}
{
"data": {
"baza": "curente",
"descriere_baza": "Preţuri curente — valorile anului, aşa cum au fost",
"unitate": "milioane lei",
"de_la": 1995,
"pana_la": 2023,
"filtre": {
"produs": [
"total"
],
"latura": "resurse"
},
"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
],
"serii": [
{
"produs": "total",
"denumire_produs": "Total",
"nivel_produs": "special",
"categorie": "corectie_cif_fob",
"denumire_categorie": "Corectie CIF - FOB",
"latura": "resurse",
"rol": "componenta",
"unitate": "milioane lei",
"ani_publicati": 29,
"valori": {
"1995": "0",
"1996": "0",
"1997": "0",
"1998": "0",
"1999": "0",
"2000": "0",
"2001": "0",
"2002": "0",
"2003": "0",
"2004": "0",
"2005": "0",
"2006": "0",
"2007": "0",
"2008": "0",
"2009": "0",
"2010": "0",
"2011": "0",
"2012": "0",
"2013": "0",
"2014": "0",
"2015": "0",
"2016": "0",
"2017": "0",
"2018": "0",
"2019": "0",
"2020": "0",
"2021": "0",
"2022": "0",
"2023": "0"
}
}
],
"identitati": {
"nota_toleranta": "Toleranţa nu e o constantă: sursa publică o zecimală până în 2017 şi rotunjeşte la milionul întreg după, aşa că pragul e o jumătate de pas pentru fiecare termen adunat.",
"resurse": {
"identitate": "`total_resurse` = `productie` + `import` + `impozite` + `subventii` + `marja_transport_comert` + `corectie_cif_fob` + `redistribuire_productie`",
"nota": "`taxe_vamale` nu intră în sumă: e deja cuprins în `impozite`. Cu el înăuntru, identitatea cade de la 2.639 la 1.855 de celule închise. `subventii` are semn negativ şi se ADUNĂ.",
"verificari": 29,
"inchise": 29
},
"productie": {
"identitate": "`productie` = `productie_piata` + `productie_nepiata` + `productie_consum_propriu`",
"verificari": 29,
"inchise": 29
},
"total": {
"identitate": "rândul `total` = suma celor 90 de rânduri de produs",
"nota": "Cele două corecţii — `corectie_cif_fob` şi `corectie_teritoriala` — intră în sumă. Fără ele, identitatea cade de la 870 la 660 de celule închise. Pragul e mai larg aici fiindcă se adună 90 de termeni rotunjiţi.",
"verificari": 464,
"inchise": 464
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — tabelul intrări-ieşiri, echilibrul resurse-utilizări pe produse (TEMPO, matricile CON111A şi CON111E).",
"acoperire": {
"de_la": 1995,
"pana_la": 2023
},
"serii_returnate": 16,
"nota_implicit": "Fără `produs`, răspunsul se opreşte la rândul `total`. Cele 88 de diviziuni sunt la /financiar/v1/intrari-iesiri/nomenclator.",
"nota_rol": "Se adună doar rândurile cu `rol: componenta`; `detaliu` sunt defalcări, iar `taxe_vamale` e memorandum, deja cuprins în `impozite`.",
"nota_marja": "`marja_transport_comert` se adună la fiecare produs, dar e zero pe `total`: e o redistribuire între produse.",
"nota_conturi": "Pentru aceleaşi agregate pe sectoare instituţionale: /financiar/v1/conturi-integrate."
}
}
{
"data": null,
"meta": {
"de_la": 2024,
"pana_la": null,
"baza": "curente",
"acoperire": {
"de_la": 1995,
"pana_la": 2023
},
"fara_date": "Intervalul cerut e în întregime în afara acoperirii (1995 → 2023) pe baza [curente].",
"fara_date_cod": "in_afara_acoperirii"
}
}
{
"data": {
"baza": "curente",
"descriere_baza": "Preţuri curente — valorile anului, aşa cum au fost",
"unitate": "milioane lei",
"de_la": 1995,
"pana_la": 2023,
"filtre": {
"produs": [
"total"
],
"rol": [
"total"
]
},
"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
],
"serii": [
{
"produs": "total",
"denumire_produs": "Total",
"nivel_produs": "special",
"categorie": "total_resurse",
"denumire_categorie": "Total resurse pe produs",
"latura": "resurse",
"rol": "total",
"unitate": "milioane lei",
"ani_publicati": 29,
"valori": {
"1995": "18731",
"1996": "29812.6",
"1997": "64942.9",
"1998": "86386.4",
"1999": "131843.7",
"2000": "186559.5",
"2001": "274729.8",
"2002": "355411.3",
"2003": "458283.5",
"2004": "590129.1",
"2005": "676251.4",
"2006": "817773.8",
"2007": "997389.7",
"2008": "1266686.7",
"2009": "1212638",
"2010": "1331111.7",
"2011": "1486280.4",
"2012": "1573469.5",
"2013": "1612909.6",
"2014": "1700063.3",
"2015": "1778737.6",
"2016": "1852858.1",
"2017": "2077350.1",
"2018": "2327698",
"2019": "2560923",
"2020": "2493087",
"2021": "2901551",
"2022": "3564875",
"2023": "3838230"
}
}
],
"identitati": {
"nota_toleranta": "Toleranţa nu e o constantă: sursa publică o zecimală până în 2017 şi rotunjeşte la milionul întreg după, aşa că pragul e o jumătate de pas pentru fiecare termen adunat.",
"echilibru": {
"identitate": "`total_resurse` = `total_utilizari`",
"nota": "Echilibrul fundamental al tabelului: tot ce apare ca resursă a unui produs se regăseşte ca utilizare. Verificat pe toată proiecţia: 2.639 din 2.639 de celule la preţuri curente şi 2.548 din 2.548 la comparabile.",
"verificari": 29,
"inchise": 29
},
"total": {
"identitate": "rândul `total` = suma celor 90 de rânduri de produs",
"nota": "Cele două corecţii — `corectie_cif_fob` şi `corectie_teritoriala` — intră în sumă. Fără ele, identitatea cade de la 870 la 660 de celule închise. Pragul e mai larg aici fiindcă se adună 90 de termeni rotunjiţi.",
"verificari": 58,
"inchise": 58
}
}
},
"meta": {
"sursa": "Institutul Naţional de Statistică — tabelul intrări-ieşiri, echilibrul resurse-utilizări pe produse (TEMPO, matricile CON111A şi CON111E).",
"acoperire": {
"de_la": 1995,
"pana_la": 2023
},
"serii_returnate": 2,
"nota_implicit": "Fără `produs`, răspunsul se opreşte la rândul `total`. Cele 88 de diviziuni sunt la /financiar/v1/intrari-iesiri/nomenclator.",
"nota_rol": "Se adună doar rândurile cu `rol: componenta`; `detaliu` sunt defalcări, iar `taxe_vamale` e memorandum, deja cuprins în `impozite`.",
"nota_marja": "`marja_transport_comert` se adună la fiecare produs, dar e zero pe `total`: e o redistribuire între produse.",
"nota_identitate": "Verificat pe acest răspuns: resursele sunt egale cu utilizările în 29 din 29 celule.",
"nota_conturi": "Pentru aceleaşi agregate pe sectoare instituţionale: /financiar/v1/conturi-integrate."
}
}
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 | raspuns_prea_mare | The request would return more than 20,000 cells. Plus a base, product, category, role, side or year outside the expected form. |
| 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": "raspuns_prea_mare",
"mesaj": "The request would return more than 20,000 cells. Plus a base, product, category, role, side or year outside the expected form.",
"detalii": {
"baza": [
"The value sent does not satisfy the parameter rule."
]
}
}
}