oneapi
Sign in
Financiar v1 / Inflatie

Survival of newly created enterprises

How many firms from a cohort are still alive after one, two… five years, across 19 NACE Rev. 2 sections and by size class — creation cohorts from 2003 onwards.

It is a cohort structure, not an ordinary series: every row has an observation year and a creation year, and ani_de_la_creare is the difference between them.

The survival rate is computed on the spot, against the number of firms created in the cohort — that figure comes from the nou_create event of the sister route. It appears only on numar_intreprinderi at the total class; on the others it would have no denominator.

GET
https://oneapi.ro/api/financiar/v1/intreprinderi/supravietuire

Query parameters

NameTypeDescriptionAccepted values
universoptional string | null Optional: toate (default) or cu_angajati, the latter only 2022-2023. toatecu_angajati
ani_de_la_creareoptional integer | null Optional, 1-5: how many years have passed since creation. 1 – 5
de_laoptional integer | null Optional, an observation year, from 2008. 2008 – 2100
pana_laoptional integer | null Optional, an observation year. 2008 – 2100
caen_versiuneoptional string | null Optional: the revision of the caen code — 1, 2 or 3 — when its form is ambiguous (4932 means different things in Rev.2 and Rev.3). Without it, the code is looked up in the series revision first. 123
an_crearelistoptional text Optional, cohorts comma-separated, from 2003. e.g. 2003e.g. 2019
clasa_marimelistoptional text Optional, size-class slugs comma-separated, plus total. e.g. de_la_10
indicatorlistoptional text Optional: numar_intreprinderi, persoane_ocupate_la_creare, persoane_ocupate_la_supravietuire. numar_intreprinderipersoane_ocupate_la_crearepersoane_ocupate_la_supravietuire
caenlistoptional text Optional, codes separated by commas: any CAEN code — section (C), division (62), group, class (6201) — from any revision. It is brought to its section (CAEN Rev.2); what was used is in meta.caen. e.g. F
gruparelistoptional text Optional, separated by commas: the source aggregates that are not CAEN codes — total. Not sent together with caen. e.g. total

How it behaves

  • Newly created firms that survived, tracked by the cohort of their birth year — 27,075 values, from TEMPO matrices INT112A and INT112B. 21 cohorts (2003-2023) × 19 NACE Rev.2 sections × size classes × three indicators: the number of firms, and persons employed in the year of creation and in the year of survival.
  • It is a cohort structure, not an ordinary series. Each row carries an observation year and a creation year; ani_de_la_creare is the difference. The source follows each cohort for at most five years.
  • The survival rate is computed on the spot, against the number of firms created in the cohort — that figure comes from the nou_create event of the sibling route, not from an assumption. It appears only on numar_intreprinderi at the total size class; on the others there would be no denominator, and the route says so rather than inventing one.
  • What the figures show: of the 112,403 firms created in 2018, 94,034 were still alive after one year (83.7%), 74,827 after three (66.6%) and 59,699 after five years — 53.1%. Recent cohorts look alike: 54.5% for 2017, 53.7% for 2019. The 2014 cohort is the weakest in the series, at 45.3%.
  • The differences across branches are large: from the 2018 cohort, agriculture reaches 71.4% at five years, health 62.2% and financial intermediation 59.5%.
  • ⚠️ The "with at least one employee" universe covers only 2022-2023 and has no denominator in nou_create, so no rate is computed there.
  • Activity is requested the same way across the platform. caen takes any CAEN code, at any level and from any revision, and the route brings it to what the series publishes — climbing to a parent or translating it through the official INS correspondence; meta.caen states the requested code, the one used and whether it was climbed or converted. grupare is for the source aggregates that are not CAEN codes.

What it is for

  • Survival rates at one, three and five years, by branch.
  • Comparing cohorts: whether firms founded in a crisis year fare worse.
  • How many people the surviving firms employ, against how many they had at birth.

Response structure

FieldTypeDescription
data.univers string The statistical universe the values refer to — the population measured.
data.unitate string The unit of the values. Read it before plotting or adding them up.
data.de_la integer Start of the interval the response covers.
data.pana_la integer End of the interval the response covers, inclusive.
data.filtre array The filters actually applied, as the route understood them — useful when a value was normalised.
data.ani array Years for which values exist.
data.serii[].univers string The statistical universe the values refer to — the population measured.
data.serii[].sectiune string Section of the classification — the broadest level.
data.serii[].denumire_sectiune string
data.serii[].an_creare integer The cohort: the year the tracked firms were founded.
data.serii[].ani_de_la_creare object For every year of the series, like valori: how many years passed between creation and that observation year (1-5; null where there is no value). Not a single number per series — the cohort ages with the year.
data.serii[].clasa_marime string Enterprise size class, by number of employees.
data.serii[].denumire_clasa string
data.serii[].indicator string The statistical indicator the value refers to.
data.serii[].unitate string Unit of measure of the values. Read it before plotting or summing them.
data.serii[].valori object The values of the series, by period.
data.nota_rata string
meta.sursa string The official source the data comes from, with its licence where one is required.
meta.acoperire.de_la integer The first period we have data for.
meta.acoperire.pana_la integer The last period we have data for.
meta.serii_returnate integer How many series were actually returned, after filters and the cell ceiling.
meta.nota_cohorta string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.nota_rata string A note on how to read the response: a caveat, a convention or a limit of the source.
meta.serii_cu_rata integer
meta.nota_demografie string A note on how to read the response: a caveat, a convention or a limit of the source.
data.serii[].nou_create_in_cohorta The rate's denominator, taken from the nou_create event.
data.serii[].rata_supravietuire_procent Computed on the spot; present only where a denominator exists.
meta.fara_date data is null and this says why. The projection over the INS data is empty for the requested universe. As on the other series.
meta.fara_date_cod The short, STABLE word for the reason, for clients that branch on it in code: fara_date is prose and may be rephrased, this is not.
meta.caen[] object[] How the caen parameter was understood: the requested code, the revision it was read in and the code the route used. For a list of codes, one object per code.
meta.caen[].cerut string The CAEN code sent, normalised (upper case, no dots).
meta.caen[].versiune_cerut string The revision the code sent was read in: the one in caen_versiune, otherwise the first it exists in.
meta.caen[].folosit string The code the series used: the requested one, its first published parent or the source aggregate that contains it (02-03).
meta.caen[].cod string The CAEN code the key used stands for, when the series names its activities differently (agricultura = 01) or the key is an aggregate (62-63).
meta.caen[].nivel string The level of the code used — on company routes, of the requested code: sectiune, subsectiune, diviziune, grupa, clasa or agregat.
meta.caen[].denumire string The name of the code, from the CAEN nomenclature.
meta.caen[].versiune_serie string The CAEN revision the series is published in.
meta.caen[].conversie boolean true when the code was translated from one revision to another through the official INS correspondence.
meta.caen[].urcat boolean true when the series does not publish the requested code and a higher level was used.

Response examples

GEThttps://oneapi.ro/api/financiar/v1/intreprinderi/supravietuire?per_pagina=3
{
    "data": {
        "univers": "toate",
        "unitate": "numar",
        "de_la": 2008,
        "pana_la": 2024,
        "filtre": [],
        "ani": [
            2008,
            2009,
            2010,
            2011,
            2012,
            2013,
            2014,
            2015,
            2016,
            2017,
            2018,
            2019,
            2020,
            2021,
            2022,
            2023,
            2024
        ],
        "serii": [
            {
                "univers": "toate",
                "sectiune": "a",
                "denumire_sectiune": "Agricultura, silvicultura si pescuit",
                "an_creare": 2003,
                "ani_de_la_creare": {
                    "2008": 5,
                    "2009": null,
                    "2010": null,
                    "2011": null,
                    "2012": null,
                    "2013": null,
                    "2014": null,
                    "2015": null,
                    "2016": null,
                    "2017": null,
                    "2018": null,
                    "2019": null,
                    "2020": null,
                    "2021": null,
                    "2022": null,
                    "2023": null,
                    "2024": null
                },
                "clasa_marime": "de_la_10",
                "denumire_clasa": "10 salariati si peste",
                "indicator": "numar_intreprinderi",
                "unitate": "numar",
                "valori": {
                    "2008": "47",
                    "2009": null,
                    "2010": null,
                    "2011": null,
                    "2012": null,
                    "2013": null,
                    "2014": null,
                    "2015": null,
                    "2016": null,
                    "2017": null,
                    "2018": null,
                    "2019": null,
                    "2020": null,
                    "2021": null,
                    "2022": null,
                    "2023": null,
                    "2024": null
                }
            }
        ],
        "nota_rata": "Rata de supravieţuire se calculează pe loc, faţă de numărul de firme create în cohortă (din evenimentul `nou_create`). Apare doar pe `numar_intreprinderi` la clasa `total` — pe celelalte n-ar avea numitor."
    },
    "meta": {
        "sursa": "Institutul Naţional de Statistică — întreprinderile nou create care au supravieţuit (TEMPO, matricile INT112A şi INT112B).",
        "acoperire": {
            "de_la": 2008,
            "pana_la": 2024
        },
        "serii_returnate": 5985,
        "nota_cohorta": "Fiecare serie are un an de observaţie şi un an de creare; `ani_de_la_creare` e diferenţa. Sursa urmăreşte fiecare cohortă cel mult cinci ani.",
        "nota_rata": "Rata de supravieţuire se calculează pe loc, faţă de numărul de firme create în cohortă (din evenimentul `nou_create`). Apare doar pe `numar_intreprinderi` la clasa `total` — pe celelalte n-ar avea numitor.",
        "serii_cu_rata": 304,
        "nota_demografie": "Naşterile şi decesele din care vine numitorul: /financiar/v1/intreprinderi/demografie."
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatMissing or invalid token.
403feature_indisponibilfinanciar.indici is not in the current plan.
404caen_nepublicatNeither the code nor its parents are published in the series; detalii.disponibile lists the keys. grupare_nepublicata — the grouping is not in the series; the response lists them.
422caen_inexistentThe code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. A universe, cohort, years-since-creation, size class, indicator, section or year outside the expected shape; the source follows at most five years. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.
429cota_depasitaThe 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": "caen_inexistent",
        "mesaj": "The code in caen exists in no CAEN revision; it is a bad FILTER value, hence 422, not 404. A universe, cohort, years-since-creation, size class, indicator, section or year outside the expected shape; the source follows at most five years. caen and grupare sent together, caen_versiune without caen, or a code that is not CAEN-shaped.",
        "detalii": {
            "univers": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}