Bloomberg, My Contribution
More often that not, we're always associating receiving data from our market data vendors. But an interesting consideration is, where did it all come from in the first place. Bloomberg is a market data aggregator, collating, normalising and distributing data out to its clients. In terms of aggregating data, where can that be sourced? There's listed venues such as exchanges, MTFs, OTFs, there's Over the Counter (OTC) venues such as ALLQ, FXGO, there's pricing supplied by central banks, brokers, there's overnight rates being posted by banks, auction notices, etc. Essentially, there's data coming from all four corners of the financial landscape. Collecting this data is sometimes referred to as data acquisition, and whilst most of the time that's through standard venue data feeds, Bloomberg also provides the tools and feeds to allow financial entities to send content into Bloomberg.
Why contribute
If you're market making into the OTC market (eg, ALLQ) then it's a mechanism to get your pricing up into the venue. The pricing (at the headend) can be configured to be executable (hit by the counterparty) or indicative (give you a call). You can use pages to highlight the markets you operate in, the products you have available, and the pricing against those products. You can communicate updates/statuses, etc. You can control who and what sees the data, what firms see the data, or, just as a mechanism to supplement your organisation with additional data (eg, street pricing).
For more information around Custom Data (local contributions), please see this article.
Structured
So, where is this content going? There are essentially two types of repository, structured, and.. unstructured data. The structured data, invariably ends up in a tickerplant maintaining last value cache and many other services. On a simplistic level, you could almost imagine the tickerplant being one huge spreadsheet with many rows of instruments, and columns that represent fields, or, think something like redis as an implementation. Structured data means there is a data model, a taxonomy.
Accessing the data model through the Bloomberg (BLP) API is done by accessing the //blp/mktdata or //blp/refdata microservice.
One of the other benefits around structured contributions are that they are logged as time series/point-in-time and available through the tickerplant, and thus available for analytics (GP<GO>) and display on a Bloomberg Terminal. The concept of closing/end of day pricing also exists, so daily closing prices also available.
Unstructured
The unstructured data gets stored in a different repository, there's no way of caching the content or representing it in a data model. It could contain anything from date and times of the next T Bill auction, the auction results, to narrative around offerings from an institution. It's largely about presentation, branding and content.
Accessing the content through the Bloomberg (BLP) API is done by accessing the //blp/pagedata microservice
Because of its unstructured nature, there is no history. Once a change has been made, the previous data is gone. There is no looking back to point-in-time.
Source Identifiers
Structured data as well as the ticker identifier, also carries the source identifier. For Vodafone on the LSE it's VOD LN Equity, where the LN signifies the LSE as the source identifier. However, you're likely to see 3/4 lettered source identifiers beginning with "B" whenever the source data originates within Bloomberg, so the likes of "BGN", "BVAL", "BGNE", "BMRK", etc. Then, you'll sources from external bodies that might look like "BARC" for Barclays, "GOLD" for Goldmans, or "ICAP", etc.
Beware, when specifying OTC tickers and not specifying explicit sources, as waterfalling or other external forces (PCS<GO>) will select one for you. This may drive the quality of the price you retrieve, eg, speculative, to indicative to firm/tradeable. If that suits the business case, then great.
This means that whilst there is only one VODAFONE on LSE, for a corporate bond (VODAFONE 5.625% 4/12/2025) there could be any number of sources quoting OTC prices. Whilst ALLQ<GO> is a good place to go on the terminal to see what prices from what sources are being quoted, there's also a programmatic way of getting the same information.
B-PIPE comes with a BLP API microservice called "//blp/mktlist". This service is very powerful when it comes to both listed and unlisted tickers and venues. For something like a corporate bond, it will return the list of corporate bond tickers along with their embedded sources. You can then use this list to access the "//blp/mktdata" or "//blp/refdata" service to gain insight into the values of interest, eg BID/ASK.
You could use this service to iterate through the Vodafone equity and return the list of primary and secondary markets where it is traded.
Contribution Mechanisms
The act of submitting content to Bloomberg is sometimes referred to as external contributions (vs internal contributions or local contributions where data is only distributed local). There are several mechanisms available for this;
DCAP
This is a very capable Excel addin specifically to address the many nuances of contribution into Bloomberg. However, it is Excel based and is not classed as machine to machine so is considered only for low-quality indicative data. It's able to handle both structured and unstructured data.
Multi Product Feed (MPF)
Is a true datafeed that is predominately leveraged by Independent Software Vendors (ISVs) that include; MDX Technology Limited's Multi-Vendor Contributions offering, LSEG (London Stock Exchange Group)'s Contex, Arcontech Group PLC's CityVision MVCS. This feed is the reference feed in that it can handle any form of contribution. There is no SDK for MPF, if you're writing your own pricing engine then you need to study the vast guide and write to the STX/ETX protocol. MPF also a FIX variant called FIX-MPF, hence you could use many of the FIX Engines available; QuickFIX, FIX8, etc
B-PIPE/Contributions
You can request a custom microservice (eg, //xyz-bank/corp-contribs) whereby you can use the standard BLP API and use the Publish paradigm to push content (structured and unstructured). This is great if you've invested in the BLP API ecosystem/abstraction as it provides a programmatic mechanism that is not available with say MPF.
B-PIPE Excel Addin
The standard Excel addin supports a number of formulas to help with contributions. It has =BPUB() for structured data, and BPUP() for unstructured. This addin is great when you're in the BLP API ecosystem, but it's largely focused on indicative, OTC pricing.
B-PIPE Multi Vendor Contributions (MVC)
The ability to manage contributions to both Bloomberg and LSEG in an either/or/and configuration. It's managed with MVC<GO> and again serviced from the BLP API.
Summary
Contributions is very complex, and I've omitted talking about Multiple Option Pricing (MOP) levels, distribution controls, digital pages (GDCO<GO>), text pages (GPGX<GO>), indices (ALLX<GO>), custom built (with your own data model), MPF packet numbers, acknowledgements, reflection, fingerprinting, news headlines/stories, etc.
If you want to understand more, please don't hesitate in reaching out.