Macrobond 1.26

Charting

Pie charts

There is a completely new chart type called Pie charts that is typically used after Cross-sampling analysis.

Macrobond users, access the chart here.

Mini-pie charts as Bar chart symbol

The small Pie charts within Bar charts illustrates the proportion of two series, or magnitude of one value on a scale 0-100. These Pie charts are part of the new ‘Symbol’ column type.

Macrobond users, access the chart here.

Custom logo

You can use an SVG image as a custom logo. This can be specified in the Style sheets as well as in each chart. See the previous image for an example.

We impose some limitations on the SVG images. For security reasons, any JavaScript and external references are ignored. Only vector graphics are supported and bitmaps in the image will be ignored. Embedded fonts will not work. You can use a tool such as https://boxy-svg.com to convert fonts to paths.

Logo + text at the same time

As seen in the previous example, you can have text and logo at the same time.

Value axis “Auto reverse”

Some series contain a hint that they are best presented using a reversed value axis. The setting of reverse scale on the value axes has a new option called ‘Auto’ that takes this hint into account.

Macrobond users, access the chart here.

New tabs in Analytics

You will find an overview of these new features below. There is more information on our Help site here.

New “Open documents” tab

There is tab in the Analytics activity called Open documents. This offers a vertical view of the open document tabs including a thumbnail. You can go to the tab by selecting a document in the list.

Documents can be closed by using the “X” in the corner which is displayed when the mouse is over an item or by using the context menu.

You can navigate to this tab using the keyboard shortcut Ctrl+Shift+o.

New “Documents” tab

The new tab called Documents in the Analytics activity is an alternative way to open documents instead of using the File Open/Save dialog.

This view offers the following benefits:

  • You do not need to bring up a dialog to browse among the documents
  • You can quickly switch between several different locations

It also integrates the list of Recently used documents and Notifications that can also be found in the Start activity.

This view contains one or more crumb bars at the top that can represent different locations in the folder structure. Having more than one crumb bar allows you to quickly switch between locations you commonly use. You can select how many crumb bars you want to have by pressing ⚙️button that can be seen in the upper right corner in the image below.

You can navigate the directory structure in several different ways:

  • By clicking on the “arrows” in the crumb bars
  • By using the “tree button” to the right of the crumb bar
  • By double clicking on subfolders displayed below the crumb bars
  • By typing on the keyboard in the crumb bar

Preview document

When you select a document by clicking on it in the Documents tab, the document will be opened in preview mode. This is indicated with the orange color of the document tab:

When you select another document, it will replace any document currently opened as a preview. In this way, you can browse through documents and preview them without collecting a lot of open documents.

The document will stop being in preview mode if:

  • You double click on the document in the Documents tab
  • You click on the Open symbol next to the X in the orange preview tab
  • You make any change in the document

Open containing folder

The command “Open containing folder” on the context menu of the document tabs, will navigate to the folder where this document is stored in the Documents tab.

Notifications of changed documents

Notifications for open documents

You will get a notification in the application if a document you have opened is modified.

The notification will be in the form of a yellow banner at the top of the document and in the Open documents tab:

Subscribe to document change notifications

You can subscribe to notifications of document changes by right clicking on a folder in the new Documents tab. This will refer to documents in that folder and all sub folders.

You have an option of receiving those notifications on the Start activity of the application or also as Windows notifications.

The notifications on the Start activity looks like this:

Application features

“Change region” for multiple documents

You can select more than one document in the File Open/Save dialog and then “Change region” on the context menu. You will then see a dialog where you can select a new region. The existing documents will be updated with series that matches the new region.

If you select “Change region and duplicate”, you can instead create new documents instead of the updating existing and select what location to save the new documents. It is also possible to select how the new documents should be named.

“Change region and duplicate” for Presentation documents

If you right click on a Presentation document in the File Open/Save dialog, you can select Change region and duplicate. This will work in a similar way as when you selected multiple documents as described in the previous section. You should pick a new folder for the changed documents and the new presentation document.

Time series info icon above Action bar + context menu

The blue “i” in the Action bar is a shortcut to display the Time series info report for the selected series.

This option is also on the context menu of series in the time series browser.

Columns First and Last revision date in the Data browser

From the context menu of the header in the time series browser you can select to include the timestamps of the first and last revision stored by Macrobond for series that have revision history.

Show local language description in series info tooltip

For series that have a description in a local language it is now included in the tooltip of the series in the time series browser.

Explicit selection of “primary presentation”

The primary presentation is the presentation that is used for thumbnails. It is the one that is activated when you open a document and is the default for previews and in the Viewer.

There is a star in front of the name of the primary presentation in the analysis tree. This can be seen for the Bar chart here:

You can select another primary by clicking on the corresponding position for another presentation in the tree or by selecting “Make chart primary presentation” from the context menu.

New Start activity style

The Start activity has been redesigned.

  • You can filter what types of news items to include
  • Most news items have images that will be displayed together with the title and a short summary
  • The notification pane has been moved to the lower left corner and now includes both new notifications subscriptions to changed documents plus the Watchlist notifications
  • You can change the proportions of the panes by dragging the splitter line

More options for Regions for in-house series

The list of possible regions when saving an in-house series now includes many more regions and not only the major countries.

Labels with time period in the Slice analysis for daily data when slice period is Yearly

When you have daily data, select “Match by date” and slice by year in the Slice analysis, there will be value labels containing the dates that can be shown on the x-axis of a chart.

Macrobond users, access the chart here.

This works best if the series have one observation for each day of the week. You can configure in the Series list that the series should be converted to Monday-Sunday if it is not already in that frequency.

Select a different presentation for embedded chart

If you double click in a chart embedded in an Office document, it will open for editing in the Macrobond application. Here you can now select another chart in the document to be the one that is visible in the Office document by marking it as the primary presentation.

Missing series input mode for lists in Series list

We have added an option to select how to treat series that are missing when using lists of series in the formula expressions.

Other

Vintage property on ISeriesExpression in desktop API

By setting the Vintage property of an ISeriesExpression object, you can use vintage versions of series that stores revision history in Unified requests. Unified requests allow you to convert a set of series to a common frequency and calendar. See our API documentation.

Support for Vintage in the Excel add-in All series

There is now support for time series vintages in the Excel add-in. You can select a vintage timestamp for the whole data set, or you can select a revision for specific series in the basket.

A new column called “Revision” will show what revision that will be downloaded for each series in the basket.

View the Macrobond chart library in the Viewer

The new crumb bars and list of open documents have been added to the Viewer product too. Another addition is that the Macrobond chart library can be accessed directly from the Viewer.

Installation

You can begin installation directly from within the application. Either by clicking on the yellow banner that appears in the application, or by going to Help|Check for update in the menu of the Macrobond application. If you have a version older than 1.24, the automatic update feature will ask you to update to 1.24.2 before it offers you to update to later versions.

If updating requires involvement from your IT department, please see the instructions provided here.

If you have asked us to contact your IT department directly for these upgrades, an email with information about upgrading to the latest version will be sent to your IT contact person. You are always welcome to contact the Macrobond team if you have any questions.

Changed requirements

  • This version of the Macrobond application requires .NET Framework 4.6.2 or later. Version 4.6.2 is the oldest version supported by Microsoft.
  • The application need access to communicate with three additional servers: sse.app1.macrobondfinancial.com, sse.app2.macrobondfinancial.com, sse.app3.macrobondfinancial.com. See Deploying the Macrobond application.

Web API Series Provider demo Virtual Machine

Introduction

You can test our Web API Series Provider functionality with a view of test database.

Requirements

You will need xml path file which you will receive from your Account Manager.

How to connect?

  1. Download xml file(s) you have received.
  2. Go to Configuration > Settings > My series (for MB pre-1.28: Edit > Settings > My series), new window will appear
    1. select 'Add' > 'Web API Series Provider'
    2. enter information as in the screenshot:
      Name: seriesprovider
      Prefix: sp
      Configuration file path: navigate to xml files you have received 
    3. Press 'OK'

Accessing data

You can access this data through Browse or Analytics. Please go to drop-down menu and select newly added database.

For more information see The Macrobond client Web API Series Provider.

SQL In-house – connection strings

Introduction

Macrobond SQL Database connector configuration file includes a section specifying data provider database connection string and connection string. It's unique to each database type. This page includes examples for most commonly used databases.

MySQL and MariaDB

Please install https://dev.mysql.com/downloads/connector/net/ and use:

<sql:DataProvider>
 <sql:Name>MySql.Data.MySqlClient</sql:Name>
 <sql:ConnectionString>
  Server=address.of.the.server;
  Database=dbname;
  Uid=user;Pwd=pass;​
 </sql:ConnectionString>  
 <!-- instead of  Uid=user;Pwd=pass;​ you can use  Uid={0};Pwd={1};​ and and let Macrobond 
  pass to the connection string credentials entered by the user from the in-house 
  configuration dialog -->
</sql:DataProvider>

MS SQL Server

There's no need to install the .NET Data Provider

<sql:DataProvider>
 <sql:Name>System.Data.SqlClient</sql:Name>
 <sql:ConnectionString>
  server=szcda41.m.domain.eu;
  database=nameofdb;
  User Id={0};Password={1}
 </sql:ConnectionString>
 <!-- login can be in form domain.name\some.login -->
 <!-- to use windows credentials replace Id=..;Password=.. with: security=SSPI -->
</sql:DataProvider>

PostgreSQL

Please install npgsql driver from the 4.0.x branch (4.0.7 is known to work) and enable GAC installation.  GAC installation is needed for the Macrobond application, newer versions of the npgsql do not provide such an option.

<sql:DataProvider>
 <sql:Name>Npgsql</sql:Name>
 <sql:ConnectionString>
  Database=nameofdb; Host=database.server.address; Port=5432;
  Username={0};Password={1};
 </sql:ConnectionString>
</sql:DataProvider>

Other databases

Please also see examples listed at https://www.dofactory.com/connection-strings 

Note, MS Access is not supported.

How to disable notification about availability of new versions of Macrobond?

Please use Windows Registry Editor - regedit.exe. In the windows registry add to either HKLM or HKCU, under \Software\Macrobond Financial\AutomaticUpdates\Macrobond the following keys:

DWORD NoUpdateOffer
if set to 1 : if a new version is detected, the user is informed that there is a new version, but is not given the option to upgrade

DWORD IsEnabled
if set to 0 : No checks are made at all

Please note that there’s no way to block Help > Check for update. Macrobond also does not provide a way to prevent user from going to https://redir.macrobond.com/go/installation and upgrade from there.

SQL demo Virtual Machine – instructions for managers

What you need to send to the client?

  1. A zipped file containing 3 xml configuration files, each for a different database view.
  2. Login and password to the database in a secret link, which you can generate from link: https://secret.macrobond.com/new

IMPORTANT

Client needs to install below .NET driver for MySQL/MariaDB, it will allow MB main-app to 'talk' to those databases:

https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.28.msi

How client can connect to our database?

! This is the link that you want to send to the client !

Here you will find instruction how to connect: https://help.macrobond.com/technical-information/the-macrobond-sql-database-connector/sql-demo/#connect 

SQL demo Virtual Machine

Introduction

You can test our SQL database connector functionality with three views of test SQL database.

Requirements

Our example utilizes the MySQL and requires .NET connector for MySQL. This will allow Macrobond to 'talk' to SQL database.

You will also need xml path file which you will receive from your Account Manager. We have prepared three different views of the database and there are three different xml files.

How to connect?

With these steps you will connect to our live SQL database.

  1. Download and install .NET connector from here: https://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-8.0.28.msi
  2. Download xml file(s) you have received.
  3. Go to Configuration > Settings > My series (for MB pre-1.28: Edit > Settings > My series), new window will appear
    1. select 'Add' > 'SQL database'
    2. enter information as in the screenshot:
      Name: database1
      Prefix: dba
      Configuration file path: navigate to one of the three xml files you have received 
      Username & password: paste in the one you have received Note that each xml contains path to a different view of database. To connect your Macrobond to all three please use 'Add' > 'SQL database' for each of them.
    3. Press 'OK'.

Accessing data

You can access this data through Browse or Analytics. Please go to drop-down menu and select newly added database.

Examples show both Static and Dynamic trees. The main difference between the two is that Dynamic uses specific columns or rows in your database to automatically generate nodes in the tree.

For more information see The Macrobond SQL Database Connector and SQL In-house – examples.

The Macrobond FTP/SFTP data feed

Introduction

The Macrobond FTP/SFTP data feed allows automated integration of our economic and financial data with your in-house backend systems. Below we describe basic feed concepts and the various types of feed service we offer.

The Macrobond FTP/SFTP data feed is a separately licensed solution.

Working with FTP data feed

Data Delivery

For maximum flexibility, updates are provided in XML format. This allows for easy integration with your data processing system(s). Updates are provided on Macrobond servers and are reachable via FTP, SFTP or HTTPS protocols. Update documents are generated every time new data is integrated into the Macrobond database, or when existing data is revised.

You will receive a dump of the full history once a week, covering the entire set of subscriptions.

You will receive list of all the subscribed series with information about their status every 24h.

Data Set Selection

Depending on your requirements, you can declare the name of the time series you wish to retrieve within the Macrobond’s data feed online portal.

Content

Content of the Data Feed Folder

All feed files are stored in the root folder of your FTP account.

Update documents

Update documents are generated every time new data is integrated into the Macrobond database and are named using the following standard: {number}.xml e.g.:

-rw-r--r-- 1 1000 1000 29488 Dec 16 11:06 1.xml
-rw-r--r-- 1 1000 1000 5145 Dec 20 17:01 10.xml
-rw-r--r-- 1 1000 1000 29508 Dec 21 11:04 11.xml
-rw-r--r-- 1 1000 1000 5159 Dec 21 17:00 12.xml
-rw-r--r-- 1 1000 1000 29514 Dec 22 11:05 13.xml
-rw-r--r-- 1 1000 1000 5173 Dec 22 13:58 14.xml
-rw-r--r-- 1 1000 1000 5173 Dec 22 17:00 15.xml
-rw-r--r-- 1 1000 1000 29521 Dec 23 11:04 16.xml
-rw-r--r-- 1 1000 1000 5187 Dec 23 17:00 17.xml
-rw-r--r-- 1 1000 1000 5201 Dec 24 08:01 18.xml
-rw-r--r-- 1 1000 1000 5201 Dec 24 17:00 19.xml
-rw-r--r-- 1 1000 1000 5118 Dec 16 17:00 2.xml
-rw-r--r-- 1 1000 1000 29529 Dec 27 11:07 20.xml
-rw-r--r-- 1 1000 1000 5215 Dec 27 17:00 21.xml
-rw-r--r-- 1 1000 1000 29536 Dec 28 11:05 22.xml
-rw-r--r-- 1 1000 1000 5229 Dec 28 17:01 23.xml
-rw-r--r-- 1 1000 1000 29543 Dec 29 11:06 24.xml
-rw-r--r-- 1 1000 1000 29495 Dec 17 11:07 3.xml
-rw-r--r-- 1 1000 1000 5131 Dec 17 17:01 4.xml
-rw-r--r-- 1 1000 1000 5145 Dec 20 10:32 5.xml
-rw-r--r-- 1 1000 1000 5145 Dec 20 10:47 6.xml
-rw-r--r-- 1 1000 1000 29502 Dec 20 11:07 7.xml
-rw-r--r-- 1 1000 1000 5145 Dec 20 11:21 8.xml
-rw-r--r-- 1 1000 1000 5145 Dec 20 17:00 9.xml

Data contained in these files should be integrated into your database systems following the natural order {number} – 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 etc.

Full data dump

A full dump of documents is generated once a week using the following naming convention: full_dump_{date}_{time}s_n_of_m.xml.gz. For instance:

-rw-r--r-- 1 feed feed 14564466 Dec 2 03:10 full_dump_20211202_031014s_1_of_8.xml.gz
-rw-r--r-- 1 feed feed 13835432 Dec 2 03:10 full_dump_20211202_031014s_2_of_8.xml.gz
-rw-r--r-- 1 feed feed 13669402 Dec 2 03:10 full_dump_20211202_031014s_3_of_8.xml.gz
-rw-r--r-- 1 feed feed 14003385 Dec 2 03:10 full_dump_20211202_031014s_4_of_8.xml.gz
-rw-r--r-- 1 feed feed 13446979 Dec 2 03:10 full_dump_20211202_031014s_5_of_8.xml.gz
-rw-r--r-- 1 feed feed 14194428 Dec 2 03:10 full_dump_20211202_031014s_6_of_8.xml.gz
-rw-r--r-- 1 feed feed 14071453 Dec 2 03:10 full_dump_20211202_031014s_7_of_8.xml.gz
-rw-r--r-- 1 feed feed 14222872 Dec 2 03:10 full_dump_20211202_031014s_8_of_8.xml.gz

Currently, as above, 8 files form a full dump. However, it is possible that in the future this number may change.

Files that are more than 6 days old are automatically removed from the client’s data feed folder.

Content of the Data Feed Files

Update documents are generated each time when series to which feed clients subscribe are revised or extended.

Full data dumps - generated weekly, even when the database has not been updated - use the same xml format as the update documents.

Format

The XSD file defining the xml format produced by the feed can be found at: http://www.macrobond.com/schemas/Feed.xsd

When an xml file contains series, they will be presented in the following format:

<result>
  <feed_entry document_type="full" primname="some_code0">
    <entity primname="some_code0" type="TimeSeries" state="0" changed_observations="1" changed_meta="0">
      <meta_data>
        <!-- meta-data part -->
      </meta_data>
      <observation_data>
        <!-- series observation part -->
      </observation_data >
  </entity>
</feed_entry>
<feed_entry document_type="full" primname="some_code1" changed_observations="1" changed_meta="1">
  <entity primname="some_code1" type="TimeSeries" state="0">
    <meta_data>
       <!-- meta-data part -->
    </meta_data>
    <observation_data>
       <!-- series observation part -->
    </observation_data>
   </entity>
 </feed_entry>
</result>

Each time series provided in the xml document is enclosed in the feed_entry tag and should be identified by primname attribute.

Each time series document, enclosed in an entity tag, contains two sections:

  • meta_data – metadata section containing attributes describing time series, information about start date, frequency and day-mask.
  • observation_data – containing values of the time series, separated by semicolon.

Series Metadata

Start date information is presented as: <attr dt="datetime" attr_id="9" name="StartDate" freetext="1">1971-01-04</attr>

· Frequency information is presented as: <attr dt="string" attr_id="4" name="Frequency" short_name="daily" value_id="4482">Daily</attr>

Possible values of the frequency field:

  • Annual
  • BiMonthly
  • Daily
  • Monthly
  • QuadMonthly
  • Quarterly
  • SemiAnnual
  • Weekly

Day Mask

Daily time series also contain day mask information indicating which day of the week is described by the given set of observations. The day mask is expressed as a decimal representation of binary numbers with the least significant bit – corresponding to Monday. The Monday-to-Friday working week is described as 31 [binary: 0001 1111 ].

Sample Day mask information: <attr dt="int32" attr_id="3" name="DayMask" freetext="1">31</attr>

Free-text attribute Scale tells order of magnitude for the values provided in the series observations section. For instance:

<attr freetext="1" name="Scale" attr_id="8" dt="int32">0</attr>: indicates that all values provided in the series observations should be multiplied by 100=1.

<attr freetext="1" name="Scale" attr_id="8" dt="int32">-3</attr>: observations should be multiplied by 10-3=0.001.

Please note that some of the attributes might have more than one value:

<attr dt="string" attr_id="66" name="Region" short_name="de" value_id="337">Germany</attr>

<attr dt="string" attr_id="66" name="Region" short_name="state_de_badwur" value_id="580833">Baden- Württemberg</attr>

Series Observations

Series observations are expressed as repeated xml tags containing date and observation value pairs. For instance:

<observation_data>
<observation date="1971-01-04">5.1643</observation>
<observation date="1971-01-05">5.1628</observation>
<observation date="1971-01-06">5.1614</observation>
<observation date="1971-01-07">5.1649</observation>
<observation date="1971-01-08">5.1631</observation>
</observation_data>

The Observations section contains only values for dates valid based on the StartDate/Frequency/DayMask combination.

Missing observations

It is possible that for some of the dates Macrobond will be missing observations. In this case the value of the observation tag will contain:

  • String NaN- if it is a missing value
  • The letter s- if it is known that there is no data for a given date (because of a holiday)

For instance:

<entity primname="sek" type="TimeSeries" state="0" changed_observations="1" changed_meta="0">
  <observation_data>
    <observation date="1971-01-04">5.1643</observation>
    <observation date="1971-01-05">s</observation> <!-- there was no data/trading available for this date -->
    <observation date="1971-01-06">5.1614</observation>
    <observation date="1971-01-07">NaN</observation> <!-- macrobond has missed data update for that date -->
    <observation date="1971-01-08">NaN</observation> <!-- macrobond has missed data update for that date -->
    <observation date="1971-01-11">5.1642</observation>
  </observation_data>
  <meta_data>
    <attr dt="string" attr_id="4" name="Frequency" short_name="daily" value_id="4482">Daily</attr>
    <attr dt="datetime" attr_id="9" name="StartDate" freetext="1">1971-01-04</attr>
    <!-- other attributes -->
  <meta_data>
</entity>

Replaced Series – Aliases

It is possible that some of the series you are subscribed to will be removed from the Macrobond database and replaced with another. The replacement series contain a list, separated by commas, of the substituted series codes in the attribute called Aliases.

For instance – when the series tovvg47swdaea19tu was removed from the Macrobond database, clients who subscribed to it automatically received an update for a new series called tovvg47scaea19tu.

The new series contained:

<entity primname="tovvg47scaea19tu" type="TimeSeries" state="0" changed_observations="1" changed_meta="0">
  <observation_data>
    …
  </observation_data>
  <meta_data>
    <attr dt="string" attr_id="5" name="Aliases" freetext="1">tovvg47swdaea19tu</attr>
    …
  <meta_data>
</entity>

Generated files

Subscription List files

Subscription List files are generated every 24h – under name subscription_list_{date}_{time}.csv. The same information can also be fetched via the web management interface https://feed.macrobond.com/customer/ > Subscriptions List > Download.

Files are in CSV format, with the following columns:

  • Subscribed_code - series code as subscribed,
  • Actual_code - actual series code in Macrobond database in case subscribed_code is an alias,
  • State - current state of the series in Macrobond database, has following values:
    • 0 - series is active, receives updates,
    • 1 - series has been disabled and is not available either via data feed or the Macrobond application,
    • 4 - series has been discontinued by the source and is unlikely to receive further updates,
    • -1 - series has been deleted. If the actual_code is not empty - it’ll be provided with that code,
  • available_for_feed:
    • 0 - Macrobond is not allowed to re-distribute this series via feed
    • 1 - series is available for the feed
  • last_update_time - date and time when given series was dumped the last time, empty if it has not been dumped yet,
  • last_dump_file_num - number of the file where this series was dumped most recently, 0 if it has not been dumped yet.

Feed Statistics files

Feed Statistics files are generated every 24h – under name feed_statistics_{date}_{time}.csv. They contain column header and single line with results. Columns:

  • max_allowed_subscription_size – current upper limit of the size of subscription list,
  • currently_subscription_size – total number of series, including not-available, that are currently in the subscription list

Macrobond 1.25

Revision history in app

If you have a Data+ license, you can now access revision history. We collect revision history for more than 30 million time series in the Macrobond database.

If you do not have a Data+ license, please reach out to your Macrobond contact to learn more.

Revision history allows you to retrieve older vintages of a series as well as series of the initial release, first revision, second revision, etc. The latter is called the “nth revision”.

Here are two examples of how this can be used:

In the chart below, we compared the initial and last release for the US Private Nonfarm payrolls. In the 2nd pane, we calculated the difference between the two, which indicates us how frequent are upward or downward revision of the series.

Macrobond users, access the chart here

This second chart uses specific vintages of a series. We took the DG ECFIN inflation forecasts for the Euro Area, and chose to display the past 8 vintages of the series for the year 2021 to see how – and at which pace – the CPI forecast has been revised upward throughout the year.

Macrobond users, access the chart here

You can see if a series has revision history in the Data browser by the symbol ≡. There is a tooltip that will give you the range of revisions available.

You can see an overview of all the revisions using the “View revisions…” command on the context menu of a series in the Data browser.

Vintages

There are a couple of different ways you can request vintages, historical version of time series.

Document setting

You can specify a timestamp in the Series list and the application will look for the vintages of all series in the document and attempt to use that data as it was known at the time specified. This will only be done for series where you have not explicitly specified a vintage already. See below for how you do that.

You will get a warning if there are series that either do not have revision history or if the history does not go as far back as requested. On the Series information tab, you can see details about what vintage that is actually used for each series in the document. Make sure that the Vintage column is included here (if it is not, right click on one of the existing columns and add the column Vintage in the dialog).

To illustrate this, we created a US GDP regression model. Using the timestamp in Series list allows us to view how the model looked like at the specific date. We chose 15 September 2020 as vintage to view if the model was accounting for the V-shape economic recovery back then. In the Series Information tab, you can check which vintage has been used for each series of the document.

Macrobond users, access the chart here

Series expression

You can pick a specific vintage for a series by specifying a timestamp as part of the series expression. This is done by using the format “series{yyyy-mm-dd HH:mm +/-tz}” or “series{yyyy-mm-dd +/-tz}”. When no time is specified, it will refer to midnight. “tz” here is a numerical value identifying the time zone offset. The easiest way to do this is to use the formula editor, and type “{“ after a series name. If this series has revision history, you will be presented with a list of existing vintages to pick from.

You can specify a vintage also for lists, and this will then be applied to all series in the list. There will be a warning if the specified vintage is not available for one or more series in the list.

A vintage can also be specified for ratios and calculated series. The vintage will then be requested for all series used in that calculation. For example, “#PerCapita(usgdp){2020-01-01+1}”.

Another way to add vintages is to select them from the context menu of the Data browser:

Nth revision

In the formula editor, you can enter “series{n}” where n is the nth revision or select it from the context menu of the Data browser. The number 0 will give you the initial release.

For example, the expression “usgdpcp{0}” will result in a series consisting of the initial releases, the unrevised values, of each observation for the US GDP series (in current prices). The series will go as far back as there are revision history for the series.

Please note that for observations where there are not as many revisions as requested, there will be a missing value in the series. This will often be the case for the last value. It is a good habit to turn off the automatic missing value method and select to not fill in missing values for revision series.

List improvements

Shared lists of series

In the previous version, 1.24, we introduced the concept of “lists of series” that can greatly simplify cases where you want to apply the same calculations on many series. What is new in 1.25 is that you can now share lists between documents and users. Shared lists are created and found in the new My lists tab:

In a document, you can find the lists in the tab called Lists in the Data browser where you can add them to your document:

Lists in documents can be moved or copied to a shared location with a new command on the context menu:

Derived lists

If you have a list with regions, you can use the Concepts in the Macrobond database to automatically find corresponding series. You can complement or override with other series.

In a document, you do this by creating a list by region, and the select a Concept:

You can create a child list of such a document and select another Concept. In this way you can easily create lists with corresponding series for a set of regions.

Another option is to use list of regions as a parent and then select a Concept. Lists of regions can be created in the My lists activity. There are also several lists provided by Macrobond. The lists of regions are the same lists you can use as filters when browsing and searching for series.

When you create a child list, you can select a list of regions as a parent in the dialog:

Transpose analysis

There is a new analysis called Transpose that works on category series. It will create series from the observations across a set of series. You can use this to switch columns and rows in a case like this:

Macrobond users, access the chart here

Grading on y-axis

For certain time series, you can match the values of the y-axis to grading labels.

Macrobond users, assess the chart here

Currently there is one scheme of grading labels used for data from Scope Ratings, but additional schemes may be added in the future. Data from this source will automatically use this setting, but you can change this in the settings for the y-axis.

Create Presentation document from selection in Watchlist

There is a new shortcut that makes it easy to create a Presentation document by selecting one or more items in the Watchlist activity. This can be used to quickly create a presentation with the charts that have recently been updated or which will soon be updated.

Excel add-in

Links to MB document in Excel datasets

A Macrobond Data set in Excel can now link to a Macrobond document instead of embedding it. This can be useful if you want to use the same data set in several Excel sheets and make changes only in one place, but please note that this also makes it more fragile. If the document is changed or even removed, it will affect your Excel models.

Cell reference for data range in Excel

It is now possible to enter a cell reference to a cell with a date, to be used for specifying the date range to import. This can be useful when you have several data sets that should use the same date range.

Smaller improvements

  • Notifications from the Watchlist now integrates with the Windows notification system on Win 8 and later. This means that you can interact with them in the same way as most other notifications.
  • When creating in-house time series, you can now pick from a more extensive set of regions.
  • Improved copy/paste of series and lists.
  • Shorter calculation time for some complex formula expressions.

Changed requirements

We no longer support 32-bit Windows.

This version requires 64-bit Windows, which almost all users of Macrobond are already running.

The Macrobond Chart Server

Introduction

The Macrobond Chart Server delivers images of Macrobond charts in either PNG or SVG format. The server uses the same components as the Macrobond client application and will render exactly the same image over http as you would see in the client application. The server runs as a Windows Service. 

The Macrobond Chart Server is a separately licensed solution.

This document refers to Macrobond Chart Server 1.28.101 or newer. 

Requirements

Minimum requirements: 64-bit versions of Windows 10, Windows Server 2016 or newer, .NET Framework 4.7.2. 

Installation

The Macrobond Chart Server is installed by running a Windows Installer script (MSI). Any previous version of the service will be replaced. The name of the Windows Service is 'Macrobond Chart Rendering Service'. 

The chart server communicates with the Macrobond servers at: https://app1.macrobondfinancial.com, https://app2.macrobondfinancial.com and https://app3.macrobondfinancial.com. 

The executables will be installed in:  

%ProgramFiles%\Macrobond Financial\Chart Server 

Working with Chart Server

Configuration

The file 'appsettings.Production.json' in the program directory contains settings for the service.

Anonymous access

To configure anonymous access set the username and password for the account that the service should use. Replace the value of these elements in the config file under ChartService:
"Username": "USERNAME GOES HERE",
"Password": "PASSWORD GOES HERE",

Anonymous requests are done to http://<server>:<port>/chartserver

Token authenticated access

This feature is currently not used by clients.

To configure token authenticated access set the token server uri by adding the following under ChartService:
"AuthenticationServer": "uri goes here",
Authenticated requests are done to http://<server>:<port>/chartserver2

To enable CORS add a list of uris by adding the following element under ChartService:
"Origins": [ "uri1", "uri2" ],

Host settings

You may want to change the port used for http communication. This is done in the file “hosting.json”. The default setting is:
"Urls": http://*:8088
The service must be restarted for the new settings to be used.

Addresses of Macrobond servers

Addresses of Macrobond backend servers to which the render service connects can be specified under ChartService:

"ChartService":{
 
 "ServerList" : [
  "https://app2.macrobondfinancial.com/app/",
  "https://app1.macrobondfinancial.com/app/",
  "https://app3.macrobondfinancial.com/app/"],

HTTP Proxy server

By default the Chart Server will communicate directly with Macrobond servers. To use explicitly configured server add this under ChartService:

"ChartService":{
 
 "Communication": {
    "ProxyUsage": 1,
    "ProxyServerAddress": "http://address.of.the.proxy:port",
 },

Cache policies

For best performance, series and documents are cached for up to three minutes. In some cases you might want to select a longer or shorter time. The time can be configured with these two settings in the appsettings.Production.json file. The time is specified in seconds. The value should never be set below 5 seconds, because the server will assume that data is cached at least.

Add the following to the ChartService section:

  "CachePolicy": {
    "entity.TimeSeries": 180,
    "Document": 180
  }

Additional series providers

Additional data providers can be configured for the Chart Server using a configuration file located here:
%ProgramData%\Macrobond Financial\Series Providers\config.xml
This is typically used to configure one or more SQL Providers. Here is a sample file that adds one SQL provider:

<?xml version="1.0" encoding="utf-8"?>
<spdc:SeriesProviderDescriptorConfiguration xmlns:spdc="http://schemas.mbnd.eu/2010/SeriesProviderDescriptorConfiguration">
<spdc:Descriptor spdc:Prefix="ppp" spdc:Description="My SQL Database" spdc:TypeName="SqlSeriesProvider" spdc:ConfigPath="c:\path\MySqlConfig.xml" />
</spdc:SeriesProviderDescriptorConfiguration>

The server will read this file when started.

This configuration file uses the same format as the configuration file for the Macrobond application. It can be a good idea to use the config file from a computer where the Macrobond application is configured as desired as a template. You can find the configuration file used by the application here: %LOCALAPPDATA%\Macrobond Financial\Series Providers\config.xml

Logging

Logging generated by Chart Server is controlled by file log4net.config in %programfiles%\Macrobond Financial\Chart Server. By default logs are written to  c:\Windows\ServiceProfiles\LocalService\appdata\local\temp\, which is accessible only from cmd with elevated privileges. Path to the log file can be changed by setting e.g.:

<file value="c:\temp\ChartServer.log" />

Please make sure that the destination folder exists and service account has permission to write to it, then restart the Chart Service.

To enabled debug-level logging please place this file in %programfiles%\Macrobond Financial\Chart Server. Such high level of logging verbosity has negative a impact on performance of the render service and should not be enabled permanently.

 

Operations 

renderpath

The 'renderpath' operation renders a Macrobond document, references by a path, as an image. The request has the following form: 

renderpath?path={path}&presentation={presentation}&width={width}&height={height}&format={format}&dpi={dpi}&bkgcolor={bkgcolor}&useAnimation={useAnimation}&useShowValuesOnHover={useShowValuesOnHover}&defaultAnimationDuration={defaultAnimationDuration}&defaultAnimationDelay={defaultAnimationDelay}
{path}  The path of the document in the Macrobond store. You can find this path by selecting a chart in the File Open/Save dialog of the Macrobond application and then select Copy. This will copy the path as text to the clipboard. 
{presentation}  If a document contains several presentations, this identifies which one that should be rendered. To use the default presentation, specify '00000000-0000-0000-0000-000000000000'.  You can find the presentation identifier by selecting 'Copy' on the context menu of a presentation in the Analysis tree in the Macrobond client application.

 

{width}  The width, in pixels, of the resulting image. This will not be used for Bar charts unless the Width mode is set to Fill for the chart in the Macrobond application. 
{height}  The height, in pixels, of the resulting image. This will not be used for Bar charts where the height is always determined by the chart layout and content. 
{format}  The image format to return. Can be either 'png' or 'svg'. 
{dpi}  The resolution of the image expressed as dots per inch. A value of '96' will result in a scale 1:1. A higher value, such as '120' will render text and line widths larger. 
{useAnimation} If set to true and animations are enabled in the document, line graphs will be animated in SVG images and data popup labels showing the date and value on mouse hover is enabled. Optional. Default is false. Available in version 1.28 and later.
{useShowValuesOnHover} If set to true and this feature is enabled in the document, the user will see a tooltip with the values when hovering over a graph. Please note that the SVG will contain a small JavaScript in this case.

Example:

In order to render the default chart of the following document 
remotepublicfilestore/common/filestore/Thomas O/Sweden/GDP.mbnd 
in the size 800x600, at 96 DPI, as a PNG and keeping any transparent areas, then the URL can look like this: 

http://localhost:8088/chartserver/renderpath?path=macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/GDP.mbnd&presentation=00000000-0000-0000-0000-000000000000&width=800&height=600&format=png&dpi=96

render

The 'render' operation renders a Macrobond document posted as XML. The XML format looks like this: 

<r:RenderSpecification xmlns:r="http://schemas.mbnd.eu/2010/renderspec"> 
  <r:ImageType>png</r:ImageType> <!-- Can be png or svg. The default is png. --> 
  <r:XPixels>200</r:XPixels> 
  <r:YPixels>125</r:YPixels> 
  <r:XHimetric>10583</r:XHimetric> 
  <r:YHimetric>6614</r:YHimetric> 
  <r:AbacusDocument> 
    <doc:CalculiDocument xmlns:doc="http://schemas.mbnd.eu/2009/calculidocument"> 
    <!-- The Macrobond document specification --> 
    </doc:CalculiDocument> 
  </r:AbacusDocument> 
</r:RenderSpecification> 

downloadpath

The 'downloadpath' downloads the Macrobond document specification referenced by a path. This specification is an XML document that be used in the 'render' operation. The request has the following form: 

downloadpath?path={path}
{path}  The path of the document in the Macrobond store. You can find this path by selecting a chart in the File Open/Save dialog of the Macrobond application and then select Copy. This will copy the path as text to the clipboard. 

listdirs

The 'listdirs' returns list of folders present in specified directory. This function, combined with the 'listfiles', can be used to implement a web-based chart selector. Returned output is in JSON format. 

listdirs?path={path}
{path}  The path within Macrobond storage. If the path is not specified, the root directories will be listed. 

Sub directories can be listed for directories where HasChildren is true by calling listdirs with the specified Path. 

If HasChildren is not true, then this directory can contain files and the path can be passed to listfiles in order to list the files. 

Example:

To get list of all folders located directly under Company Account call  

http://localhost:8088/chartserver/listdirs?path=macrobond://remotepublicfilestore/common/filestore/ 

Output:

[ 
  { 
    "Name": "Folder A", 
    "Path": "macrobond://remotepublicfilestore/common/filestore/Folder%20A/", 
    "HasChildren": true 
  }, 
  { 
    "Name": "FolderB", 
    "Path": "macrobond://remotepublicfilestore/common/filestore/FolderB/" 
  } 
] 

listfiles

The 'listfiles' returns files located in specified directory. Output is in JSON format. 

listfiles?path={path}&ext=.extension
{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 
{ext} 

 

Defines what file types should be returned. A list of comma separated values can be specified. This parameter is obligatory. 
{ skipThumbnails}  Defines weather the response should contain base64 encoded thumbnails of the documents. Possible values: true, false. Default: false. 

Both parameters must be specified. 

Example:

To get list of all files located directly under Company Account call  

http://localhost:8088/chartserver/listfiles?path=macrobond://remotepublicfilestore/common/filestore&ext=.mbnd 

Sample output: 

[ 
  { 
    "Name": "121 - Copy", 
    "Path": "macrobond://remotepublicfilestore/common/filestore/121%20-%20Copy.mbnd", 
    "Created": "2019-12-13T17:37:45Z", 
    "LastModified": "2020-11-02T13:26:24Z", 
    "LastSavedBy": "account name_of_person_who_last_modified_the_file", 
    "CreatedBy": "account name of person that created the file", 
    "ThumbnailPng": "base 64 encoded PNG with thumbnail of the chart" 
  }, 
  { 
    "Name": "121", 
    "Path": "macrobond://remotepublicfilestore/common/filestore/121.mbnd", 
    "Created": "2018-03-31T14:35:40Z", 
    "LastModified": "2020-11-05T07:36:31Z", 
    "LastSavedBy": "account name_of_person_who_last_modified_the_file", 
    "CreatedBy": "account name of person that created the file", 
    "Title": "Semiconduct export YoY", 
    "Comment": "Some comment added for the chart in the MB app", 
    "Keywords": "export,prices", 
    "ThumbnailPng": "base 64 encoded PNG with thumbnail of the chart" 
  } 
] 

filemeta

The 'filemeta' returns meta data about a file. Output is in JSON format. 

filemeta?path={path}
{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 

Example:

To get the file meta data for a file 'Document.mbnd' in the company store

http://localhost:8088/chartserver/filemeta?path=macrobond://macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/GDP.mbnd

Sample output: 

{
  "SeriesNames": [
    "usnaac0169",
    "pln"
  ],
  "SeriesPrimaryNames": [
    "usnaac0169",
    "pln"
  ],
  "LastSavedBy": "account name_of_person_who_last_modified_the_file",
  "CreatedBy": "account name of person that created the file",
  "Comment": "some comment",
  "Keywords": "export,prices", 
  "ThumbnailPng": "base 64 encoded PNG with thumbnail of the chart"
}

documentinfo

The 'documentinfo' returns information about the charts in a document. Output is in JSON format. 

documentinfo?path={path}
{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 

Example:

To get the document info for a file 'Document.mbnd' in the company store

http://localhost:8088/chartserver/documentinfo?path=macrobond://macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/GDP.mbnd

 

Sample output: 

{
  "PrimaryPresentationId": "d65755be-17bb-4c83-a261-bab073f65308",
  "Presentations": [
    {
      "Id": "24f01fe1-3a3b-4f54-874c-57b2385e08c9",
      "Name": "Time chart"
    },
    {
     "Id": "d65755be-17bb-4c83-a261-bab073f65308",
     "IsPrimary": true,
     "Name": "CPI"
    },
    {
      "Id": "e3fb5084-e1a5-4afc-91dc-910358973692",
     "Name": "Core CPI"
    }
  ]
}

searchfiles

The 'searchfiles' returns list of files containing given search-string, located in specified directory and its direct and indirect sub-folders. Output is in JSON format. 

searchfiles?path={path}&query={query}&ext={ext}&fields={fields}&skipThumbnails=true
{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 
{ext} 

 

Defines what file types should be returned. A list of comma separated values can be specified. This parameter is obligatory. 
{query} Text-search phrase. Only files containing it will be returned. Pass % symbol to match any files. This parameter is obligatory.
{fields} List of comma-separated fields to be matched. Allowed values: FileName, Title, Keywords, Regions, Comment, SeriesNames, SeriesPrimaryNames.
{ skipThumbnails}  Defines weather the response should contain base64 encoded thumbnails of the documents. Possible values: true, false. Default: false

the fields, skipThumbnails parameters are optional.

Example:

To get list of all files located directly under Company Account call  

http://localhost:8088/chartserver/searchfiles?path=macrobond://remotepublicfilestore/common/filestore/&skipThumbnails=true&ext=.mbnd&query=%

binderinfo

The 'binderinfo' returns list of presentation pages contained in a given presentation document. Output is in JSON format. 

binderinfo?path={path}

{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 

Example:

To get list of pages contained in given presentation document:

http://localhost:8088/chartserver/binderinfo?path=macrobond://macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/Sweden%20summary.mbndp

 

Sample output: 

{
  "Items": [
    {
      "ItemType": 1,
      "Id": "56d5a65c002c8a7ec9a4d7fd48fca6f2d4692c9386f5",
      "Name": "Macro",
      "Items": null
    },
    {
      "ItemType": 1,
      "Id": "56d5a89b0039aa1f83c2747447038931220f8196a7da",
      "Name": "Financial",
      "Items": null
    }
  ]
}

Please note that presentation documents might have items nested on multiple levels. More complex example:

http://localhost:8088/chartserver/binderinfo?path=macrobond://macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/Sweden%20summary%20with%20nesting.mbndp

{
  "Items": [
    {
      "ItemType": 0,
      "Id": "67f3c83c02b421d29e144236495781782cc460b4e1ec",
      "Name": "Folder",
      "Items": [
        {
          "ItemType": 1,
          "Id": "56d5a65c002c8a7ec9a4d7fd48fca6f2d4692c9386f5",
          "Name": "Macro I",
          "Items": null
        },
        {
          "ItemType": 1,
          "Id": "67f3c85202b5314435a9f82648d9bfa79489e235ec85",
          "Name": "Macro II",
          "Items": null
        }
      ]
    },
    {
      "ItemType": 0,
      "Id": "67f3c87302b65aa2d5c214a448cfb1211bc03c44ec35",
      "Name": "Financial",
      "Items": [
        {
          "ItemType": 1,
          "Id": "67f3c87802b727325d52e61e4d3aab6d55b6af7c63ab",
          "Name": "Page 1",
          "Items": null
        },
        {
          "ItemType": 1,
          "Id": "67f3c88202b95ad44f165b754fc88ed307498499141e",
          "Name": "Page 2",
          "Items": null
        },
        {
          "ItemType": 1,
          "Id": "67f3c87802b818463236c40a48f893c1ed0158baddd1",
          "Name": "Page 3",
          "Items": null
        }
      ]
    }
  ]
}

renderbinderpage

Returns rendering of a single page from presentation document in SVG or PNG format.

renderbinderpage?width={width}&height={height}&format={format}&dpi={dpi}&path={path}&pageId={pageId}

{path}  The path within Macrobond storage. This is typically obtained from a listdir call. This parameter is obligatory. 
{width}  The width, in pixels, of the resulting image. This will not be used for Bar charts unless the Width mode is set to Fill for the chart in the Macrobond application. Obligatory.
{height}  The height, in pixels, of the resulting image. This will not be used for Bar charts where the height is always determined by the chart layout and content. Obligatory.
{format}  The image format to return. Can be either 'png' or 'svg'.  Obligatory.
{dpi} The resolution of the image expressed as dots per inch. A value of '96' will result in a scale 1:1. A higher value, such as '120' will render text and line widths larger. Obligatory.
{pageId} Identifier of page to render, taken from the output of binderinfo. Obligatory.

Example:

 

http://localhost:8088/chartserver/renderbinderpage?width=887&height=502&format=svg&dpi=96&path=macrobond://macrobondfilestore/macrobond/filestore/What%27s%20new/1.16/Presentation/Sweden%20summary.mbndp&pageId=56d5a65c002c8a7ec9a4d7fd48fca6f2d4692c9386f5