CPI and HICP, compared
Romania's two price indices over the same interval, with both figures and the difference between them.
The difference is real and changes sign. Measured December against December: 2022 gives 16.37% on the CPI against 14.14% on the HICP — plus 2.23 points; 2023 gives 6.61% against 7.01% — minus 0.40; 2024 minus 0.32; 2025 plus 1.11. It is not a constant deviation someone could correct for out of habit, and that is precisely why the two figures must be seen side by side.
Only the TOTAL is compared. The CPI has four national categories — total, food, non-food, services — while the HICP has the ECOICOP tree. The INS „food goods" is not Eurostat's CP01: the baskets and the definitions differ, and pairing them would be an equivalence neither institution supports. That is why the route has no category parameter.
The two series are published in different forms, and bringing them onto the same footing is exactly this route's work: INS publishes a monthly change, Eurostat publishes a level. hicp is derived from levels, ipc is the published figure minus 100, and hicp_indice stays alongside so that the level can be checked.
The window is the common one. The two are published on different dates, so their last month often differs — on 15 Sep 2026 the HICP reached July and the CPI June — and a tail in which only one publishes would look like the other collapsing. meta.acoperire also gives each one's coverage separately.
cumulat gives inflation over the whole window, by each method. The CPI is cumulated by multiplying the monthly changes, not by adding them.
Query parameters
YYYY-MM.
e.g. 2024-06e.g. 2024e.g. 2024-06-15
YYYY-MM. Defaults to the last shared month. At most 360 months.
e.g. 2024-06-30
How it behaves
- Romania's two price indices over the same interval, with both figures and the gap between them. Today this would take two routes, a product on one and a ratio on the other — and only then would you find out they do not compare directly.
- The gap is real and CHANGES SIGN. Measured December on December: 2022 gives 16.37% on the CPI against 14.14% on the HICP (+2.23 points); 2023 gives 6.61% against 7.01% (−0.40); 2024 −0.32; 2025 +1.11. It is not a constant bias anyone could correct out of habit — which is why both figures have to be seen side by side, not one instead of the other.
- Only the TOTAL is compared. The CPI has four national categories — total, food, non-food, services — while the HICP has the ECOICOP tree. The INS "food goods" is not Eurostat's
CP01: the baskets and definitions differ, and pairing them would be an equivalence neither institute claims. That is why this route has no category parameter. - The two series are published in different forms, and putting them on the same footing is the work this route does: INS publishes a monthly rate of change (100.58 = +0.58%), Eurostat publishes a level on 2015 = 100.
ipcis the published figure minus 100,hicpis derived from the levels, andhicp_indicestays alongside so the derivation can be checked. - The window is the shared one. The two are published on different dates, so their last month often differs — on 15 Sep 2026 the HICP reached July and the CPI June — and a tail where only one publishes would look like the other collapsing.
meta.acoperirealso gives each series' own range, so the lag is visible. cumulatgives the inflation over the whole window under each method. The CPI compounds by MULTIPLYING the monthly changes, not by adding them — increases apply on top of one another. The HICP compounds through the ratio of the end levels: the same journey, measured in one step.- Both cumulative figures start from the close of the month before the window —
cumulat.fereastrasays so. When that month does not exist in the HICP series (the case for a window starting in January 1996 itself),cumulat.hicpis absent andcumulat.hicp_indisponibilexplains why, so it does not read as missing data.
What it is for
- What "Romanian inflation" is under each of the two official measures.
- Checking a quoted figure when you do not know which index it came from.
- Contracts or analyses that must state explicitly which index they use.
Response structure
total — the only honest pairing between the two nomenclatures.
procent.
ipc − hicp, in percentage points.
cumulat.hicp.
data is null and this says why. One of the two series is missing from the database. The interval falls outside the shared window; the response gives it.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": "2024-06",
"pana_la": "2026-07",
"categorie": "total",
"unitate": "procent",
"cumulat": {
"ipc": "17.64",
"hicp": "16.09",
"diferenta": "1.55",
"luni_ipc": 26,
"fereastra": {
"de_la": "2024-05",
"pana_la": "2026-07"
},
"reper_hicp": {
"luna": "2024-05",
"indice": "149.02"
}
},
"valori": [
{
"luna": "2024-06",
"ipc": "0.24",
"hicp": "0.06",
"hicp_indice": "149.11",
"diferenta": "0.18"
}
]
},
"meta": {
"surse": {
"ipc": "INS — indicele preţurilor de consum, publicat ca variaţie lunară.",
"hicp": "Eurostat — HICP, publicat ca nivel cu baza 2015 = 100."
},
"acoperire": {
"de_la": "1996-01",
"pana_la": "2026-07",
"ipc": {
"de_la": "1991-01",
"pana_la": "2026-07"
},
"hicp": {
"de_la": "1996-01",
"pana_la": "2026-08"
}
},
"puncte": 26,
"luni_interval": 26,
"nota_diferenta": "Diferenţa dintre cei doi indici e reală şi ÎŞI SCHIMBĂ SEMNUL. Dec/dec: 2022 +2,23 puncte (16,37% vs 14,14%), 2023 −0,40 (6,61% vs 7,01%), 2024 −0,32, 2025 +1,11. Nu e o abatere constantă, deci nu poate fi corectată din obişnuinţă.",
"nota_categorie": "Se compară doar TOTALUL. „Mărfuri alimentare\" al INS nu e `CP01` al Eurostat — coşurile şi definiţiile diferă — iar perechea ar fi o echivalenţă pe care n-o susţine niciuna dintre instituţii.",
"nota_derivare": "`ipc` e cifra publicată de INS minus 100. `hicp` e derivat din niveluri, ca raport faţă de luna precedentă; `hicp_indice` e nivelul publicat, ca derivarea să fie verificabilă.",
"nota_fereastra": "Fereastra e intersecţia celor două acoperiri. IPC-ul merge de obicei mai departe decât HICP-ul; o coadă în care doar una publică ar arăta ca o cădere a celeilalte.",
"nota_cumulat": "IPC-ul se cumulează prin ÎNMULŢIREA variaţiilor lunare, nu prin adunare. HICP-ul se cumulează prin raportul nivelurilor de la capete, pornind de la luna dinaintea ferestrei — acelaşi drum, măsurat într-un pas.",
"serie_ipc": "/financiar/v1/ipc",
"serie_hicp": "/financiar/v1/hicp/variatie"
}
}
{
"data": {
"de_la": "2024-01",
"pana_la": "2026-07",
"categorie": "total",
"unitate": "procent",
"cumulat": {
"ipc": "20.37",
"hicp": "19.27",
"diferenta": "1.10",
"luni_ipc": 31,
"fereastra": {
"de_la": "2023-12",
"pana_la": "2026-07"
},
"reper_hicp": {
"luna": "2023-12",
"indice": "145.05"
}
},
"valori": [
{
"luna": "2024-01",
"ipc": "1.10",
"hicp": "1.10",
"hicp_indice": "146.64",
"diferenta": "0.00"
}
]
},
"meta": {
"surse": {
"ipc": "INS — indicele preţurilor de consum, publicat ca variaţie lunară.",
"hicp": "Eurostat — HICP, publicat ca nivel cu baza 2015 = 100."
},
"acoperire": {
"de_la": "1996-01",
"pana_la": "2026-07",
"ipc": {
"de_la": "1991-01",
"pana_la": "2026-07"
},
"hicp": {
"de_la": "1996-01",
"pana_la": "2026-08"
}
},
"puncte": 31,
"luni_interval": 31,
"nota_diferenta": "Diferenţa dintre cei doi indici e reală şi ÎŞI SCHIMBĂ SEMNUL. Dec/dec: 2022 +2,23 puncte (16,37% vs 14,14%), 2023 −0,40 (6,61% vs 7,01%), 2024 −0,32, 2025 +1,11. Nu e o abatere constantă, deci nu poate fi corectată din obişnuinţă.",
"nota_categorie": "Se compară doar TOTALUL. „Mărfuri alimentare\" al INS nu e `CP01` al Eurostat — coşurile şi definiţiile diferă — iar perechea ar fi o echivalenţă pe care n-o susţine niciuna dintre instituţii.",
"nota_derivare": "`ipc` e cifra publicată de INS minus 100. `hicp` e derivat din niveluri, ca raport faţă de luna precedentă; `hicp_indice` e nivelul publicat, ca derivarea să fie verificabilă.",
"nota_fereastra": "Fereastra e intersecţia celor două acoperiri. IPC-ul merge de obicei mai departe decât HICP-ul; o coadă în care doar una publică ar arăta ca o cădere a celeilalte.",
"nota_cumulat": "IPC-ul se cumulează prin ÎNMULŢIREA variaţiilor lunare, nu prin adunare. HICP-ul se cumulează prin raportul nivelurilor de la capete, pornind de la luna dinaintea ferestrei — acelaşi drum, măsurat într-un pas.",
"serie_ipc": "/financiar/v1/ipc",
"serie_hicp": "/financiar/v1/hicp/variatie"
}
}
{
"data": {
"de_la": "2024-06",
"pana_la": "2024-06",
"categorie": "total",
"unitate": "procent",
"cumulat": {
"ipc": "0.24",
"hicp": "0.06",
"diferenta": "0.18",
"luni_ipc": 1,
"fereastra": {
"de_la": "2024-05",
"pana_la": "2024-06"
},
"reper_hicp": {
"luna": "2024-05",
"indice": "149.02"
}
},
"valori": [
{
"luna": "2024-06",
"ipc": "0.24",
"hicp": "0.06",
"hicp_indice": "149.11",
"diferenta": "0.18"
}
]
},
"meta": {
"surse": {
"ipc": "INS — indicele preţurilor de consum, publicat ca variaţie lunară.",
"hicp": "Eurostat — HICP, publicat ca nivel cu baza 2015 = 100."
},
"acoperire": {
"de_la": "1996-01",
"pana_la": "2026-07",
"ipc": {
"de_la": "1991-01",
"pana_la": "2026-07"
},
"hicp": {
"de_la": "1996-01",
"pana_la": "2026-08"
}
},
"puncte": 1,
"luni_interval": 1,
"nota_diferenta": "Diferenţa dintre cei doi indici e reală şi ÎŞI SCHIMBĂ SEMNUL. Dec/dec: 2022 +2,23 puncte (16,37% vs 14,14%), 2023 −0,40 (6,61% vs 7,01%), 2024 −0,32, 2025 +1,11. Nu e o abatere constantă, deci nu poate fi corectată din obişnuinţă.",
"nota_categorie": "Se compară doar TOTALUL. „Mărfuri alimentare\" al INS nu e `CP01` al Eurostat — coşurile şi definiţiile diferă — iar perechea ar fi o echivalenţă pe care n-o susţine niciuna dintre instituţii.",
"nota_derivare": "`ipc` e cifra publicată de INS minus 100. `hicp` e derivat din niveluri, ca raport faţă de luna precedentă; `hicp_indice` e nivelul publicat, ca derivarea să fie verificabilă.",
"nota_fereastra": "Fereastra e intersecţia celor două acoperiri. IPC-ul merge de obicei mai departe decât HICP-ul; o coadă în care doar una publică ar arăta ca o cădere a celeilalte.",
"nota_cumulat": "IPC-ul se cumulează prin ÎNMULŢIREA variaţiilor lunare, nu prin adunare. HICP-ul se cumulează prin raportul nivelurilor de la capete, pornind de la luna dinaintea ferestrei — acelaşi drum, măsurat într-un pas.",
"serie_ipc": "/financiar/v1/ipc",
"serie_hicp": "/financiar/v1/hicp/variatie"
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 422 | validare | interval_prea_lung beyond 360 months, or a malformed month. |
| 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": "interval_prea_lung beyond 360 months, or a malformed month.",
"detalii": {
"de_la": [
"The value sent does not satisfy the parameter rule."
]
}
}
}