Figure 1: the Bond Dimension Group "Composition of Holdings in Malaysia" (the vector of holders by institutional type of Malaysia's local-currency-denominated sovereign bonds)

Bond Dimensions and Bond Dimension Groups

When you start thinking about supply (the amount of bonds outstanding) and demand (which types of investors hold those bonds), as we do at Trounceflow, then a natural object of interest that you want to show a stacked column chart of is the vector of holders of bonds at a point in time. It is a set (it's more than one) of quantity data, where each data point is the quantity held by a certain type of investor. The sum of these holdings - the sum of demand - equals the supply. The way that data is handled at Trounceflow arose from this starting point of wanting to chart the composition of the investor base.

We created "Bond Dimensions" and "Bond Dimension Groups". We have over 5,000 "Bond Dimensions" and over 400 "Bond Dimension Groups". A "Bond Dimension" is just a univariate time-series (a single value for each point in time), and a "Bond Dimension Group" is a multivariate time-series (a vector of values for each point in time).

For example, as shown in Figure 1, there are over MYR 400 billion ($100 bn) of Malaysian government bonds outstanding as of 30 September 2021. That is the supply. There are MYR 187 billion held by foreigners (40%), and the rest (60%) are held by residents of various types. The vector "holders of Malaysian government bonds by institutional type of the investor" is a Bond Dimension Group (BDG), and [Foreigners MYR 187 billion] is a Bond Dimension of that BDG, as is [Local Insurance Companies MYR 30 bn]. So a BDG is just a group of related time-series, and a BD is just an individual time-series.

Every Bond Dimension Group has its own priority score (1-5) that shows its importance for clients. Thus every Bond Dimension has same priority score as its Group. Check the video below for more explanation.

We have the 'Automations, Data and Django Admin' Google Spreadsheet that we populate by data about spiders, parsers, periodic tasks and also about Bond Dimension Groups specifically in the 'Bond Dimension Group Table' sheet.
According to its current data we have 45 Bond Dimension Groups with priority 5. For example: Central Government Debt by Either Domestic or Foreign Currency, Daily Portfolio Flows, Policy Bank Bonds, Local Government Bonds. And 18 Bond Dimension Groups for different countries are updated automatically.

Views of Bond Dimensions and their Groups

Trounceflow staff have access to an internal-only webpage on the App Bond Dimension Groups (Country Reports) which shows all these Bond Dimension Groups. We use the alternative name "Country Reports" because traditionally we were charting the bonds of a country like Malaysia. The code that creates that webpage lives in Github.

Staff also can go to Django Administration - Bond Dimension Groups and Django Administration - Bond Dimensions to administer these objects.

Some of the data in the database is imported manually. Staff have access to a webpage on the app called Import Bond Holding Data to view the recently imported data.The code that creates that webpage resides in Github.

Metadata on the sources of data

Because we started visualising our data in the form of charts almost sraight away at Trounceflow back in 2016, the idea of a chart as data has become embedded. So we have the idea of Chart Source Information, which is actually the source of information for data. The complete list of chart sources (data sources) can be seen here in Django Admin, and you can edit existing ones or add new chart source information by clicking 'ADD CHART SOURCE INFO' button.
Information about data and sources for Country Report
Information about Central Government Debt Spiders

Import Fund Allocation

We have coded a webpage in an application called 'Import Fund Allocation Tasks' so that the TrounceFlow Team can view the status of tasks, create new tasks for import Fund Allocations Data. This page cannot be edited in Django Admin.

Import Fund Allocation Tasks
Import from CSV File
View on Github