SDMX in EViews


SDMX in EViews is a webapp that allows you to retrieve datasets or series in EViews from different SDMX providers.

Currently, the app is supporting Insee, ECB, Eurostat, Worldbank and Norges Bank data natively.

Requests to Quandl, BLS, FRED, OECD and Deutsche Bundesbank are also supported.

The complete list of supported providers is available here.

Alternatively, SDMX requests to others providers can be made here.


Importing SDMX data in EViews becomes as easy as:


        %url = "http://sdmx.herokuapp.com/ecb/series/EXR.A.E2.USD.EN00.A"
        import(t=html) %url colhead=2 namepos=first
                    

You can even use the subroutine:


        include "./subsdmx.prg"
        call sdmx("ecb","EXR.A.E2.USD.EN00.A","","usdeer19")
                    


1. The concept

The app is transforming SDMX flows from providers website in an HTML table that can be read by EViews. The app provides you with a stable URL that you can use in your EViews code.

Downloading data to EViews is done in two steps:

  1. get the url of the HTML table containing the data.
  2. import the data into EViews with import(t=html) url


2. Get the url

a. The url

An url looks like:

http://sdmx.herokuapp.com/provider/resource/resource_id
Providers

For instance eurostat: for data from Eurostat. Complete list of providers is here.

resource
  • dataset: for retreiving a dataset.
  • series: for retreiving a timeseries.
resource_id is the id of either the dataset or the timeseries.

b. Get the id of the resource

There are two ways to get the id of your resource:

  • Get it on the provider website. It is the same for sdmx.herokuapp.com.
  • Get it on the app:
    • List of all datasets for a provider at: http://sdmx.herokuapp.com/provider/dataflow
    • List of all series for a dataset at: http://sdmx.herokuapp.com/provider/dataflow/dataset_id/

3. Filters

The app allows to apply the standard SDMX filters, namely:

  1. limit the number of observations retrieved. For example, retrieve data since 2014 or the last 10 observations.
  2. cut a dataset along its dimensions.

A filter is applied by adding at the end of the url: ?name_filter=value_filter
Multiple filters can be used by separating them by &


a. Limit the number of observations

There are four filters to limit the number of observations retrieved:

  • startPeriod: ?startPeriod=2004
  • endPeriod: ?endPeriod=2010Q3
  • firstNObservations: ?firstNObservations=12
  • lastNObservations: ?lastNObservations=24
Example
The code below retrieve data from 2000 to 2010 of annual average of the ECB Nominal effective exch. rate.

        %url = "http://sdmx.herokuapp.com/ecb/series/EXR.A.E2.USD.EN00.A?startPeriod=2000&endPeriod=2010"
        import(t=html) %url colhead=2 namepos=first
                        

b. Cut a dataset

"A dataset can be described as a container of ordered observations. Observations are classified by dimensions such as country, age, sex, and time period. Observations may be clustered into series, in particular, time series."

Subgroups of data can be retrieve by restricting dimensions (only monthly data for instance). It can be done by adding a filter at the end of the url.

http://sdmx.herokuapp.com/...?name_dimension=code_dimension

To apply the filter, you need:

  1. the name of the dimension. Get it at http://sdmx.herokuapp.com/provider/dataflow/dataset_id
  2. the dimension code. Get it by clicking on the name of the dimension.

Example
The code below retrieve monthly data of French HICP.

        %url = "http://sdmx.herokuapp.com/insee/dataset/ipch-2015-fr-coicop?freq=M"
        import(t=html) %url colhead=2 namepos=first
                        

4. Non-native providers

Data from others SDMX providers can be retrieved using:

http://sdmx.herokuapp.com/?req='sdmx_url'

The app also supports requests to Fred, Quandl, the Bureau of Labor Statistics, the OECD and the Deutsche Bundesbank.
The url to use is:

http://sdmx.herokuapp.com/provider(/api_key)/resource_id
Providers api_key: your api_key for the provider. (Required only for Fred, Quandl and the BLS)
resource_id: the id of the resource given by the provider.

Credits

The code is available on Github.
The app is written in nodeJS and use Express web framework.
The HTML table technique is borrowed from the wonderful Widukind project.