oneapi
Autentificare
Financiar v1 / Serii

Statisticile unei serii

Minim, maxim, medie, mediană, cuartile, deviaţie şi acoperire efectivă, pe un interval opţional.
Calculate în bază: pentru „cât de volatil a fost" nu-ţi trebuie şapte mii de observaţii descărcate.
*
* Media singură minte pe seriile lungi. ROBOR 3M pe tot istoricul are media 20,64% şi mediana
* 6,85% — media e trasă de anii '90, când dobânzile treceau de 200% (maximul seriei e 228,37%).
* Cine cere „media ROBOR" primeşte un număr care n-a descris niciodată piaţa. De aceea mediana şi
cuartilele vin alături, nu ca extra: pe o serie asimetrică ele sunt cifra utilă.

Deviaţia de eşantion nu există pe un singur punct, iar 145 de serii au exact unul: formula
împarte la n − 1. Rămâne null — un zero acolo ar spune „serie perfect stabilă", ceea ce e altceva
* decât „nu se poate calcula". Cea de populaţie vine alături şi e definită oricând.

Extremele vin cu ziua la care au fost atinse. Un maxim istoric din 1997 se citeşte altfel decât
unul de luna trecută, iar cifra singură nu spune care e care.

521 de serii (8,8%) n-au nicio valoare. Ele primesc stare: fara_valori şi statistici nule, nu
404: seria există în catalog, doar n-a publicat nimic. În catalog, numar_valori e null la ele,
nu 0.

acoperire.serie dă intervalul întregii serii, iar acoperire.in_interval pe cel efectiv atins —
ca un interval cerut mai larg decât seria să nu pară o serie cu goluri.

GET
https://oneapi.ro/api/financiar/v1/serii/{cod}/statistici

Parametri de cale

NumeTipDescriereExemplu
codobligatoriu string Codul seriei din baza de date interactivă a BNR (ex. AEDZ_DEN).

Parametri de interogare

NumeTipDescriereValori acceptate
de_laopțional string | null Opţional, YYYY-MM-DD. Implicit începutul seriei. ex. 2020-01-01
pana_laopțional string | null Opţional, YYYY-MM-DD. Implicit sfârşitul seriei. ex. 2023-12-31

Cum se comportă

  • Minim, maxim, medie, mediană, cuartile, deviaţie şi acoperire efectivă, pe un interval opţional. Calculate în bază: pentru „cât de volatil a fost" nu-ţi trebuie şapte mii de observaţii descărcate.
  • Media singură minte pe seriile lungi. ROBOR 3M pe tot istoricul are media 20,64% şi mediana 6,85% — media e trasă de anii '90, când dobânzile treceau de 200% (maximul seriei e 228,37%, atins în martie 1997). Cine cere „media ROBOR" primeşte un număr care n-a descris niciodată piaţa. De aceea mediana şi cuartilele vin alături, nu ca extra: pe o serie asimetrică ele sunt cifra utilă.
  • Deviaţia de eşantion nu există pe un singur punct, iar 145 de serii au exact unul: formula împarte la n − 1. Rămâne null — un zero acolo ar spune „serie perfect stabilă", ceea ce e altceva decât „nu se poate calcula". deviatie_populatie vine alături şi e definită oricând.
  • Extremele vin cu ziua la care au fost atinse. Un maxim istoric din 1997 se citeşte altfel decât unul de luna trecută, iar cifra singură nu spune care e care. Când o valoare se repetă, se dă prima dată la care a apărut.
  • Două goluri diferite, numite diferit. fara_valori înseamnă că seria n-a publicat NICIODATĂ nimic — sunt 521 aşa, 8,8% din catalog, iar la ele numar_valori e null, nu 0. fara_valori_in_interval înseamnă că seria are valori, dar nu în intervalul cerut. Un singur nume pentru amândouă ar trimite pe cineva cu un interval greşit să creadă că datele nu există.
  • Nimic nu presupune semn pozitiv: 582 de serii au cel puţin o valoare negativă. Şi nimic nu presupune ordin de mărime: CIPL_SRBO merge de la 6,5 la 2.587.357.
  • acoperire.serie dă intervalul întregii serii, acoperire.in_interval pe cel efectiv atins — ca un interval cerut mai larg decât seria să nu pară o serie cu goluri.
  • O serie inexistentă primeşte acelaşi 404 ca la /serii/{cod}, cu distincţia dintre „nu există" şi „e un registru, nu o serie temporală".

La ce folosește

  • Cât de volatilă a fost o serie, fără să o descarci.
  • Minimul şi maximul istoric, cu datele la care au fost atinse.
  • Un rezumat rapid înainte de a decide ce interval merită cerut în întregime.

Structura răspunsului

CâmpTipDescriere
data.cod string Codul din nomenclatorul sursei — cheia pe care se filtrează.
data.nume string Numele, aşa cum îl publică sursa.
data.clasa string Clasa din clasificare — nivelul cel mai detaliat.
data.unitate string Unitatea de măsură a valorilor. Citeşte-o înainte de a le pune pe un grafic sau de a le aduna.
data.periodicitate string
data.de_la null Începutul intervalului acoperit de răspuns.
data.pana_la null Sfârşitul intervalului acoperit de răspuns, inclusiv.
data.acoperire.serie object Intervalul întregii serii.
data.acoperire.serie.de_la null Începutul intervalului acoperit.
data.acoperire.serie.pana_la null Sfârşitul intervalului acoperit, inclusiv.
data.acoperire.in_interval null Intervalul efectiv atins în fereastra cerută.
data.puncte integer Câte observaţii au intrat în calcul.
data.stare string are_valori, fara_valori (niciodată nimic) sau fara_valori_in_interval.
data.minim null Valoarea minimă, cu data la care a fost atinsă.
data.maxim null Valoarea maximă, cu data.
data.medie null Media aritmetică. Pe serii asimetrice, de citit împreună cu mediana.
data.mediana null Valoarea de mijloc — rezistentă la extremele istorice.
data.p25 null Cuartila inferioară.
data.p75 null Cuartila superioară.
data.deviatie_populatie null Deviaţia standard pe toată populaţia. Definită şi la un singur punct (0).
data.deviatie_esantion null Deviaţia de eşantion. null sub două puncte — nu 0.
data.prima null Prima observaţie din interval, cronologic.
data.ultima null Ultima observaţie din interval.
meta.sursa string Sursa oficială din care vin datele, cu licenţa ei acolo unde e cerută.
meta.nota_fara_valori string Precizare despre cum se citeşte răspunsul: o capcană, o convenţie sau o limită a sursei.
meta.nota_acoperire string De ce totalul e o limită de jos, în proză. meta.total_e_limita_de_jos e cuvântul pe care comuţi în cod.
meta.valori string Valorile seriei, pe perioade.

Exemple de răspuns

GEThttps://oneapi.ro/api/financiar/v1/serii/AEDZ_DEN/statistici
{
    "data": {
        "cod": "AEDZ_DEN",
        "nume": "Monedă",
        "clasa": "Operaţiuni de piaţă monetară ale BNR - Active eligibile - diferenţe",
        "unitate": "(txt)",
        "periodicitate": "necunoscut",
        "de_la": null,
        "pana_la": null,
        "acoperire": {
            "serie": {
                "de_la": null,
                "pana_la": null
            },
            "in_interval": null
        },
        "puncte": 0,
        "stare": "fara_valori",
        "minim": null,
        "maxim": null,
        "medie": null,
        "mediana": null,
        "p25": null,
        "p75": null,
        "deviatie_populatie": null,
        "deviatie_esantion": null,
        "prima": null,
        "ultima": null
    },
    "meta": {
        "sursa": "Banca Naţională a României — baza de date interactivă.",
        "nota_fara_valori": "Seria există în catalog, dar n-a publicat NICIODATĂ vreo valoare. Sunt 521 aşa, 8,8% din catalog.",
        "nota_acoperire": "Un interval cerut mai larg decât seria nu înseamnă goluri: `acoperire.serie` spune cât acoperă seria în general.",
        "valori": "/financiar/v1/serii/AEDZ_DEN/valori"
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404negasitCodul nu e în catalog. nu_e_serie_temporala — codul aparţine unei clase de tip registru. serie_retrasa — clasa lui e retrasă din API fiindcă valorile publicate de sursă nu sunt observaţii.
422validareCod malformat, dată malformată, sau pana_la înainte de de_la.
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": "Cod malformat, dată malformată, sau pana_la înainte de de_la.",
        "detalii": {
            "cod": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}