oneapi
Autentificare
Financiar v1 / Calcul

Dobânda reală (ex-post)

Cât a valorat efectiv o dobândă, după ce se scade inflaţia.

Formula exactă, nu scăderea: (1 + nominal) / (1 + inflaţie) − 1. Diferenţa nu e neglijabilă
când inflaţia e mare, adică fix când cifra contează: în decembrie 2022, la ROBOR 3M de 7,66% şi
inflaţie de 16,37%, scăderea dă −8,71% iar formula −7,49% — 1,23 puncte exagerare a pierderii.
Răspunsul conţine şi cifra prin scădere, cu diferenţa alături: e cea pe care o calculează toată
lumea, iar ascunsă ar circula mai departe.

Numai EX-POST. Se compară cu inflaţia care S-A ÎNTÂMPLAT, nu cu una aşteptată — pentru aceea ar
trebui prognoze, pe care nu le avem. O rată reală calculată cu o inflaţie inventată ar arăta
identic şi ar fi altceva.

Perechea e pe acelaşi orizont: rata nominală a lunii cerute faţă de inflaţia pe cele douăsprezece
luni care se încheie în aceeaşi lună. O dobândă anuală se pune faţă în faţă cu o inflaţie anuală.

IPC se publică cu aproximativ două luni întârziere, deci luna curentă n-are cu ce fi comparată —
răspunsul e 404 cu ultima lună acoperită, nu o extrapolare.

GET
https://oneapi.ro/api/financiar/v1/calcul/dobanda-reala

Parametri de interogare

NumeTipDescriereValori acceptate
lunaobligatoriu string Obligatorie, YYYY-MM. Luna ratei nominale şi capătul intervalului de inflaţie. ex. 2024-06
rataopțional string | null O serie: ircc, politica, robor1m, robor3m, robor6m, robor12m. Exclude nominala. irccpoliticarobor1mrobor3mrobor6mrobor12m
nominalaopțional string | null Rata ta, procente pe an. Exclude rata. ex. 7
categorieopțional string | null total (implicit), alimentare, nealimentare sau servicii. totalalimentarenealimentareservicii

Cum se comportă

  • Cât a valorat efectiv o dobândă, după ce se scade inflaţia.
  • Formula exactă, nu scăderea: (1 + nominal) / (1 + inflaţie) − 1. Diferenţa nu e neglijabilă când inflaţia e mare, adică fix când cifra contează. În decembrie 2022, la ROBOR 3M de 7,57% şi inflaţie de 16,37%, scăderea dă −8,80% iar formula −7,56%: 1,24 puncte exagerare a pierderii. Faţă de inflaţia alimentară a aceleiaşi luni (22,05%), diferenţa urcă la 2,62 puncte.
  • prin_scadere conţine aproximarea uzuală, cu diferenţa alături. E cifra pe care o calculează toată lumea — ascunsă, ar circula mai departe; la vedere, cu abaterea scrisă, nu.
  • Numai EX-POST. Se compară cu inflaţia care S-A ÎNTÂMPLAT, nu cu una aşteptată. Varianta ex-ante cere prognoze de inflaţie, pe care nu le avem; calculată cu o cifră inventată, ar arăta identic şi ar fi altceva. meta.fel o declară la fiecare răspuns.
  • Perechea e pe acelaşi orizont: rata nominală a lunii cerute faţă de inflaţia pe cele DOUĂSPREZECE luni care se încheie în aceeaşi lună. O dobândă anuală se pune faţă în faţă cu o inflaţie anuală; alt orizont ar compara lucruri diferite.
  • Rata nominală vine dintr-o serie a noastră (robor1m…robor12m, ircc, politica) sau de la client (nominala) — a doua e cazul unui depozit propriu, unde rata e pe contract, nu în seriile publice. Când vine dintr-o serie, nominala.sursa spune exact din ce zi sau din ce trimestru.
  • IPC se publică cu circa două luni întârziere, deci luna curentă n-are cu ce fi comparată: răspunsul e 404 cu numărul de luni găsite şi ultima lună acoperită, nu o extrapolare.
  • Categoria de inflaţie se poate schimba (alimentare, nealimentare, servicii) când contractul sau întrebarea o cere. Implicit e coşul complet.
  • Nu se oferă HICP ca alternativă la IPC. Sunt coşuri şi metodologii diferite, iar un comutator între ele ar invita comparaţia care nu se poate face — acelaşi motiv pentru care /ipc şi /hicp sunt rute separate.

La ce folosește

  • Cât a pierdut efectiv un depozit în anii cu inflaţie mare.
  • Compararea unei dobânzi primite cu inflaţia reală a perioadei.
  • Verificarea unui calcul făcut prin scădere simplă.

Structura răspunsului

CâmpTipDescriere
data.luna string Luna la care se referă datele.
data.nominala.valoare string Rata nominală folosită, procente pe an.
data.nominala.sursa object De unde vine: ziua cotaţiei la ROBOR, trimestrul la IRCC, sau data_de_client.
data.nominala.sursa.index string
data.nominala.sursa.trimestru string Trimestrul la care se referă valoarea.
data.inflatie.procent string Inflaţia pe cele 12 luni încheiate în luna cerută.
data.inflatie.orizont string
data.inflatie.de_la string Începutul intervalului acoperit.
data.inflatie.pana_la string Sfârşitul intervalului acoperit, inclusiv.
data.inflatie.categorie string Categoria din clasificarea sursei.
data.inflatie.luni_folosite integer Câţi indici lunari au intrat în produs. Sub 12 înseamnă că cererea e refuzată.
data.reala string Rata reală, formula exactă, două zecimale.
data.reala_exacta string Aceeaşi valoare nerotunjită, pentru calcule în lanţ.
data.prin_scadere.valoare string Aproximarea nominala − inflatie.
data.prin_scadere.diferenta_fata_de_exact string Cu cât greşeşte aproximarea. Creşte odată cu inflaţia.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.formula string
meta.fel string
meta.nota_scadere string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_orizont string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.fara_date data e null, iar aici stă motivul: ori nu avem cele 12 luni de IPC care se încheie în luna cerută (motivul dă ultima lună publicată), ori seria de rată cerută n-are valori în luna aceea. Nu se întoarce un procent calculat pe mai puţin de 12 luni — ar fi plauzibil şi greşit.
meta.fara_date_cod Cuvântul scurt şi STABIL al motivului, pentru clienţii care comută pe el în cod: fara_date e proză şi se poate reformula, ăsta nu.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/calcul/dobanda-reala?luna=2024-06&rata=ircc
{
    "data": {
        "luna": "2024-06",
        "nominala": {
            "valoare": "5.90",
            "sursa": {
                "index": "ircc",
                "trimestru": "2024-T2"
            }
        },
        "inflatie": {
            "procent": "4.94",
            "orizont": "12 luni",
            "de_la": "2023-06",
            "pana_la": "2024-06",
            "categorie": "total",
            "luni_folosite": 12
        },
        "reala": "0.91",
        "reala_exacta": "0.9138107339",
        "prin_scadere": {
            "valoare": "0.96",
            "diferenta_fata_de_exact": "-0.05"
        }
    },
    "meta": {
        "sursa": "BNR (rate nominale) + INS prin modulul Ins (IPC).",
        "formula": "reala = (1 + nominala/100) / (1 + inflatie/100) − 1, exprimată în procente.",
        "fel": "ex_post — se compară cu inflaţia care s-a întâmplat, nu cu una aşteptată. Pentru ex-ante ar trebui prognoze, pe care nu le avem.",
        "nota_scadere": "`prin_scadere` e aproximarea uzuală `nominala − inflatie`. E dată tocmai ca diferenţa să se vadă: creşte odată cu inflaţia şi trece de un punct peste 15%.",
        "nota_orizont": "Inflaţia e pe 12 luni încheiate în luna cerută — acelaşi orizont ca o rată anuală. Alt orizont ar compara lucruri diferite."
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
422validareLună malformată; rată lipsă, dublă sau necunoscută; categorie inexistentă.
429cota_depasitaCota lunară a planului a fost depăşită (vezi Retry-After).

Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "Lună malformată; rată lipsă, dublă sau necunoscută; categorie inexistentă.",
        "detalii": {
            "luna": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}