Deflating an amount
The inverse of indexation: what an amount of TODAY was worth THEN. 1,000 lei of December 2025 are worth 635.53 lei in January 2020 money, 581.20 in January 2015 money, 360.20 in January 2005 money.
It is not /calcul/indexare with the arguments swapped. There, a request with de_la after pana_la correctly returns 422 — direction is part of the contract. Here you divide rather than multiply; the amount given lives at the other end of the interval, it is money from pana_la, not from de_la; and the result answers a different question.
With suma_de_referinta it answers directly the question „how much of a pay rise was just inflation". 3,000 lei in January 2020 becoming 5,000 in December 2025 is a nominal rise of +66.67%, but a real one of only +5.92%: inflation over the period was 57.35%.
The denomination trap is sharper here than in indexation. There, the amount goes in and comes out in the same era. Here it goes in as new lei and comes out in a month when old lei circulated: 1,000 lei of today deflated to January 1991 give 0.22 — correct as purchasing power, but a number that looks like an error. The result stays in the unit of the amount given, and when the eras differ in_moneda_epocii appears as well, with the factor beside it.
The coefficient is the same object as in indexation: the product of the monthly indices, with the starting month excluded. putere_de_cumparare is its inverse — how much of a leu of today remains in the target month's money.
Query parameters
pana_la. Without it, only the coefficient is returned.
e.g. 1000e.g. 5000
de_la. Requires suma; yields the real increase, not just the nominal one.
e.g. 1200.00
YYYY-MM. The month whose money the amount is brought into. It does not enter the product. A full date is accepted too.
e.g. 2024-06-15e.g. 2024e.g. 2015-01
total. Others: alimentare, nealimentare, servicii.
totalalimentarenealimentareservicii
How it behaves
- The inverse of indexation: what an amount of TODAY was worth BACK THEN. 1,000 lei of December 2025 are worth 635.53 lei in January 2020 money, 581.20 in January 2015 money, and 360.20 in January 2005 money.
- This is not
/calcul/indexarewith the arguments swapped. There, a request withde_laafterpana_lacorrectly returns 422 — direction is part of that contract. Here you divide rather than multiply; the amount lives at the other end of the interval, it is money frompana_la, not fromde_la; and the result answers a different question. - With
suma_de_referintait answers directly the question "how much of a pay rise was just inflation". 3,000 lei in January 2020 becoming 5,000 in December 2025 is a nominal rise of +66.67%, but a real one of just +5.92%: inflation over the period was 57.35%. - The denomination trap bites harder here than in indexation. There, the amount goes in and comes out in the same monetary era. Here it goes in as new lei and comes out in a month when old lei circulated: 1,000 lei of today deflated to January 1991 give 0.22 — correct as purchasing power, but a number that looks like an error.
suma_deflatatastays in the unit of the amount given, andin_moneda_epociigives the same value in the money that actually circulated then: 2,239.35 old lei. - The coefficient is the same object as in indexation: the product of the monthly indices divided by 100, with the starting month excluded — its index describes a change that happened before the reference point.
putere_de_cumparareis its inverse: how much of today's leu survives in the target month's money. - Category
totalis the full basket;alimentare,nealimentareandserviciideflate by a specific component. - INS publishes the index with roughly a two-month lag, so
pana_lacannot go past the last covered month —meta.acoperiresays so on every request. - If months are missing from the interval, the coefficient is computed over fewer of them and this is reported:
luniagainstluni_asteptate. Otherwise it would look like a complete deflation. - The whole computation runs in exact decimal arithmetic: a product of several hundred factors in floating point accumulates error precisely where the result is a sum of money.
What it is for
- How much of a pay rise or a pension increase was just inflation.
- Comparing two prices from different years at the same purchasing power.
- Expressing a present-day amount in the money of a reference year named in a contract or study.
Response structure
de_la money, in the unit of the amount given.
suma − suma_deflatata: how much melted away between the two months.
data is null and this says why. No CPI data in the database. A month falls outside the CPI series; the response gives the coverage. The interval has no indices.
fara_date is prose and may be rephrased, this is not.
Response examples
{
"data": {
"de_la": "2024-06",
"pana_la": "2026-07",
"categorie": "total",
"luni": 25,
"luni_asteptate": 25,
"coeficient": "1.173609",
"coeficient_exact": "1.17360901213229",
"inflatie_perioadei_procent": "17.36",
"putere_de_cumparare": "0.852073"
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicele preţurilor de consum, serie lunară.",
"formula": "Suma se ÎMPARTE la coeficientul de indexare al perioadei, care e produsul indicilor lunari împărţiţi la 100, pentru lunile de după `de_la` până la `pana_la` inclusiv.",
"acoperire": "1991-01 → 2026-07",
"nota_sens": "`suma` e bani de la `pana_la`, aduşi în banii lui `de_la` — invers faţă de /financiar/v1/calcul/indexare, unde suma e de la `de_la`.",
"inversul": "/financiar/v1/calcul/indexare"
}
}
{
"data": {
"de_la": "2024-01",
"pana_la": "2026-07",
"categorie": "total",
"luni": 30,
"luni_asteptate": 30,
"coeficient": "1.190577",
"coeficient_exact": "1.19057740280719",
"inflatie_perioadei_procent": "19.06",
"putere_de_cumparare": "0.839929"
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicele preţurilor de consum, serie lunară.",
"formula": "Suma se ÎMPARTE la coeficientul de indexare al perioadei, care e produsul indicilor lunari împărţiţi la 100, pentru lunile de după `de_la` până la `pana_la` inclusiv.",
"acoperire": "1991-01 → 2026-07",
"nota_sens": "`suma` e bani de la `pana_la`, aduşi în banii lui `de_la` — invers faţă de /financiar/v1/calcul/indexare, unde suma e de la `de_la`.",
"inversul": "/financiar/v1/calcul/indexare"
}
}
{
"data": {
"de_la": "2015-01",
"pana_la": "2026-07",
"categorie": "servicii",
"luni": 138,
"luni_asteptate": 138,
"coeficient": "1.792702",
"coeficient_exact": "1.79270170445044",
"inflatie_perioadei_procent": "79.27",
"putere_de_cumparare": "0.557817",
"suma": "1000.00",
"suma_deflatata": "557.82",
"suma_deflatata_exacta": "557.81728634354931",
"pierdere": "442.18"
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicele preţurilor de consum, serie lunară.",
"formula": "Suma se ÎMPARTE la coeficientul de indexare al perioadei, care e produsul indicilor lunari împărţiţi la 100, pentru lunile de după `de_la` până la `pana_la` inclusiv.",
"acoperire": "1991-01 → 2026-07",
"nota_sens": "`suma` e bani de la `pana_la`, aduşi în banii lui `de_la` — invers faţă de /financiar/v1/calcul/indexare, unde suma e de la `de_la`.",
"inversul": "/financiar/v1/calcul/indexare"
}
}
{
"data": {
"de_la": "2010-01",
"pana_la": "2024-01",
"categorie": "alimentare",
"luni": 168,
"luni_asteptate": 168,
"coeficient": "1.706209",
"coeficient_exact": "1.70620865510132",
"inflatie_perioadei_procent": "70.62",
"putere_de_cumparare": "0.586095",
"suma": "5000.00",
"suma_deflatata": "2930.47",
"suma_deflatata_exacta": "2930.47394001355852",
"pierdere": "2069.53"
},
"meta": {
"sursa": "Institutul Naţional de Statistică — indicele preţurilor de consum, serie lunară.",
"formula": "Suma se ÎMPARTE la coeficientul de indexare al perioadei, care e produsul indicilor lunari împărţiţi la 100, pentru lunile de după `de_la` până la `pana_la` inclusiv.",
"acoperire": "1991-01 → 2026-07",
"nota_sens": "`suma` e bani de la `pana_la`, aduşi în banii lui `de_la` — invers faţă de /financiar/v1/calcul/indexare, unde suma e de la `de_la`.",
"inversul": "/financiar/v1/calcul/indexare"
}
}
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 | interval_gol | The target month is not before the month the amount comes from. Or suma_de_referinta without suma. |
| 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": "interval_gol",
"mesaj": "The target month is not before the month the amount comes from. Or suma_de_referinta without suma.",
"detalii": {
"suma": [
"The value sent does not satisfy the parameter rule."
]
}
}
}