Archive

Archive for the ‘company information’ Category

Company Screening in ‘Capital IQ’

A request for information from an academic (or student) can appear straightforward, but may be challenging, when all the resources available are not known, or fully understood.

Consequently, on receiving a request for a list of Chinese companies, in particular industries/sectors, with an employee count of between 100 and 500, a number of potential options present themselves. Namely, Thomson ONE.com, Bloomberg Professional and Capital IQ. With the primary emphasis on publicly quoted companies for the first two databases, that leaves Capital IQ, which also covers private companies.

 

Clear Navigation

 

The drop down menus across the top of the search screen reveal options quickly and simply. The option for searching – or screening – companies, to create a list according to the criteria specified, can be accessed by hovering over ‘Screening’, towards the top left.

 

Company Searching

Capital IQ – Company Screening

 

Criteria Selections

 

Once ‘Screening – Companies’ is selected, a number of standard options are presented, within ‘Most Used’ and ‘Company Details’. Certain options would appear to cover broadly similar areas. For example, ‘Geographical Locations’ and ‘Country of Incorporation’. Also ‘Industry Classifications’ and ‘Business Descriptions’. These options can be inserted into separate searches to obtain different results, to gauge which most closely matches the requirements of a research project.

Geographical Locations.

 

Location Searching

Screening: Geographical Locations

 

Searching for the country required: in this case ‘China’, then select from the options presented and click on ‘Add Criteria’, to begin the search process. This produces 375,994 results.

 

Country Search and Select (China)

 

Next, Business Descriptions:  search for ‘Engineering’, then click on ‘Add Criteria’.

 

Engineering

Business Description (Engineering)

 

This greatly reduces the number of results as both criteria have to be true (the ADD operator in Boolean searching), giving 5,889 companies.

 

Country and Industry

Results (China and Engineering)

 

Where a required data item does not appear within the standard list, it is possible to search for possible alternatives. In this case, employees. Type ‘Employees’ in the search box, hover over the required selection (‘Total Employees’) and then move along the line to select ‘Open Criterion’.

 

 

Search for Employees

Employee Search

 

The specific details can then be entered. That is, a range of between 100 and 500 employees working for companies, in the Last Quarter. Click on ‘Add Criteria’ to search.

 

Number of Employees

Employee Search

 

This shows 42 results.

 

42 Companies

Results (42)

 

Results

 

The culmination of Geographic Locations (China), Business Descriptions (Engineering) and Total Employees (100 to 500) combine to give 42 results – companies.

 

List of Companies

Results List

 

Click on the ‘View Results’ button to list the companies. Clicking on the company name provides additional details. For export, click on the ‘Excel’ button and ‘Go’.

 

List to Excel

Export to Excel

 

The Excel export option is straightforward, providing tabs for search results (Screening).

 

Results screen in Excel

Excel – Screening tab

 

The criteria for the search are set out in the ‘Screen Criteria’ tab.

 

Search Criteria (Excel)

Excel – Screen Criteria

 

Summary

 

The Capital IQ Screening feature is easy to use and flexible. In terms of results, these are quick to display on screen or alternatively export to Excel.

 

Related posts for Company Screening include:

Advanced Company Screening in Bloomberg Professional   [31 March 2017]

Top 10 Companies   [16 December 2016]

 

S&P Capital IQ, Bloomberg Professional and Thomson ONE.com databases are available for use by current students and staff of The University of Manchester.

Company Financial Statements: Comparisons in Different Databases

Students are often confused when viewing company financial statements (Income Statement, Balance Sheet, Cash Flow Statement) in different databases. The reason being, that the values displayed, for the same company, often don’t match.

 

Commercial vs Educational Emphasis

This confusion is understandable. Surely values for the same company, for the same statement, should be identical? In explaining this apparent anomaly, the primary purpose of specialised financial databases needs to be appreciated. That is, to provide data/information to allow analysis of many types of securities – different classes of assets, such as Equities – or companies.

The key user groups are within business and commerce. However, there is sufficient useful content, to also be of value to educational establishments, and therefore students – but business users have priority.

For example, when seeking to gauge the relative performance of two or more companies, from different countries, with different accounting standards, there is a clear logic in being able to compare on a like-with-like basis. Therefore, when looking at a value in an Income Statement, for example, it would be clear which company had superior performance. To compare companies otherwise, the so-called apples with oranges analogy, lacks transparency and is ineffective.

Hence, the evolution of common methods for calculating accounting values in different databases, to ease comparisons between companies. Bloomberg Professional and Thomson ONE.com databases both reflect this need, but use different terminology. A look at a company example is instructive.

 

Bloomberg Professional – Financial Analysis [FA]

The Income Statement (‘I/S’) for Tesco PLC, a UK supermarket group, is set out below, using the Financial Analysis function, within Bloomberg Professional.

 

Income Statement - Adjusted

Bloomberg – Financial Analysis (Income Statement – Adjusted)

 

Note that the tab towards the top left: ‘Adjusted’, is highlighted in blue. This is the default view, meaning this is how data is normally displayed for financial statements in Bloomberg Professional. Therefore, companies from different countries can be compared on a like-with-like basis, when the same currency is selected (top right of screen). In the example above, this is set to GBP, or Great Britain Pounds.

Another option is also highlighted – the ‘As Reported’ tab. This selection would display values from the company’s official annual report and accounts.

 

Thomson ONE.com – Reuters Fundamentals

 

The Income Statement for Tesco PLC is displayed again, using Thomson ONE.com database: drop down menu selection:

Company Overviews – Fundamentals – Reuters Fundamentals

 

T1 Income Statement

Thomson ONE.com – Income Statement (Standardised)

 

The ‘Report Format’ option on the left, gives the choice of ‘Company Specific’ (official values – annual report and accounts) and ‘Standardised’.  When the ‘Standardised’ view has been selected and ‘Update View’ clicked on,  the drop down menu to choose a common currency become available, thus allowing like-with-like comparisons, between different companies.

 

Conclusions

The ability to quickly search for companies within databases such as Bloomberg Professional or Thomson ONE.com is an effective means to locate company financial statements and take advantage of like-with-like comparisons.

When viewing financial statements within databases, the realisation that a company’s annual report and accounts is the ultimate (official) source, represented by ‘As Reported’ in Bloomberg Professional and ‘Company Specific’ in Thomson ONE.com, can help to avoid confusion for students, in conducting company analysis.

 

Bloomberg Professional and Thomson ONE.com are databases available to current students and staff of The University of Manchester.

Bond ISIN to company ISIN — EDSC manuals, tips & tricks

9 November 2016 Leave a comment

Suppose you created a list with bonds and the accompanying ISIN codes. You can’t use these ISIN codes to download information from the issuer of this bond. But here is way to use the ISIN codes you collected so far to find the ISIN code of the issuer An example: the ISIN code US44044KAA97 belongs […]

via Bond ISIN to company ISIN — EDSC manuals, tips & tricks

Finding ESG data in Datastream using the ASSET4 template

25 October 2016 Leave a comment

A detailed source of environmental, social and governance (ESG) data can be found in Thomson Reuters Datastream.

Instead of choosing the appropriate datatypes in a regular Datastream time series request, you can download the ASSET4 template. This is hard to find in the InfoBase support platform (replacement for Extranet) so I suggest you get it from the Datastream Excel add-in toolbar, although this method is not quite as easy as you would like.

Open Datastream in Excel the usual way (remember the desktop icon “DSSetup – Shortcut”). Click on the Datastream ribbon tab, go to the Request Tables group and click Sample Sheets. Tick the button ‘Equities : ESG ASSET4 – Sector Industry  analysis’ then click the Download button.

ASSET4 - find the template

Find the ASSEST4 template with the ‘Sample Sheets’ button and download it.

The Download & Open button does the same as the Download button, it doesn’t open the file.

ASSET4 template location

ASSET4 template downloads to a hidden folder.

The template takes the form of a macro-enabled Excel workbook and is downloaded to a hidden folder. Click on Start > Computer, click in the address bar and type the following:
C:\ProgramData\datastream\datastream advance\User

Note that ‘ProgramData’ is not the same as ‘Program Files’ or ‘Program Files (x86)’, it is a hidden folder. As you type the rest of the path, Windows should suggest auto-completions, which you can accept.

ASSET4 file location

ASSET4 file location, in the hidden C:\ProgramData folder.

Find downloaded ASSET4 (animated)

ASSET4 file location (animated)

From here, open the file and accept any warnings about enabling content.

ASSET4 intro

ASSET4 introduction

There are many sheets (tabs), starting with Home. Click on ESG Filters to select your search criteria. Choose (1) a sector or industry such as Telecommunications Services and (2) criteria across the environmental, social and corporate governance categories such as Water Use Total, Women Managers and Size of Board. When ready, click the Go button.

ASSET4 search criteria

ASSET4 search criteria

Wait a few minutes while the data is downloaded to the Data Table sheet.

ASSET4 data table

ASSET4 data table

The tables and charts of the many other sheets are automatically updated to reflect your search (except the Data Fields definitions sheet). For example, the Bottom 5’s sheet.

ASSET4 example results

ASSET4 example results

If you find a datatype you would like to use in a regular time series request, make a note of its code.

See also earlier post Environmental, Social and Governance (ESG) Data from July 2013.

Advanced support for using the Bloomberg Excel add-in

4 August 2016 2 comments

Introduction

An example Bloomberg Excel template

This post is a collection of frequently and infrequently asked questions about the Bloomberg Professional API, most specifically the Bloomberg Excel Add-in. For the most part, it should be considered for experts, so please don’t be disheartened if it is too advanced for you; it’s effectively everything I know about the topic.

The questions are as follows.

  1. Where is the add-in? I don’t have it.
  2. Which ways can one use Bloomberg and Excel together?
  3. Where can I find the field codes?
  4. I don’t want to be restricted to Excel, can I use Java, C++, .NET, Python or R?
  5. Where can I get more help?

Where is the add-in? I don’t have it.

Install Bloomberg Excel add-in

  • If the ribbon tab labelled “Bloomberg” is not showing in Excel, close it then click on Start > All Programs > Bloomberg > Install Office Add-Ins. Follow the instructions, but be prepared to run the little install program a few times, perhaps opening and closing Excel and running it again.

Which ways can one use Bloomberg and Excel together?

Terminal copy or export

Bloomberg types of copy/export to Excel

Some of the ways to get data from Bloomberg to Excel (remember to work at the terminal though!). Top-left (FA): Red menu > Output > Excel > Current Template (data is live). Top-right (GP): Right-click on chart > Copy/Export Options > Copy Data to Clipboard (then paste in Excel). Bottom-left (MEMB): Red menu > Output > Excel (data is fixed). Bottom-right (CHNG): Not possible to export report data.

  • Various functions in the Bloomberg terminal let you get the on-screen data into Excel in different ways. Look for commands such as “Copy data to clipboard”, “Output > Excel” or similar, by clicking on the red menu bar (Actions) or right-clicking on charts or data.
  • Sometimes the action will download and open a new Excel document, either with the data written in directly or loading later via the Bloomberg API. Sometimes the data is copied to the clipboard for you to paste into a worksheet of your choice.
  • Remember that a sheet which contains Bloomberg formulas to load live data may not load on a PC without Bloomberg unless you save as CSV or copy/paste-as-values. (This is also true for all the Excel options below.)

Excel templates

Excel template library

Bloomberg template library, browsed in Excel. Could also use XLTP function in terminal.

  • Usually most useful if you are looking up one company, bond, exchange rate or commodity, a Bloomberg template will give you a detailed Excel workbook filled with data and visualisations that are updated live from Bloomberg via the Excel API. Amber coloured fields are editable, often to change the company, country, sector, date or other variable. (See the first image in the post.)
  • The templates can be found in the terminal with the XLTP<GO> function, and in Excel under Bloomberg > Explore > Template Library.

Excel import

Bloomberg Excel historical end of day

Use the Import Data menu in Excel to get historical end of data and other data.

  • A commonly used feature that is described in our Bloomberg Workbook (available in the Bloomberg Suite and at the Precinct Library) is the Historical End of Day wizard. In Excel, click Bloomberg > Import > Import Data > Real-Time / Historical > Historical End of Day.
  • The wizard will let you type security identifiers or select from a common index, then choose your data types and data range. It will then produce the results in the cell you selected.

Excel function builder

Bloomberg Excel function builder

Build a function from scratch. The formula in cell B1 is =BDP(“AAPL US EQUITY”, “INDUSTRY_SECTOR”) and the value is Technology.

  • If you want a little more control, use the function builder, found in Bloomberg > Create > Function Builder. This more advanced tool will expose the Bloomberg API to you, starting by asking you to choose one of three major Bloomberg Functions:
    • BDP: (Bloomberg Data Point) Import a single data point of current data.
    • BDH: (Bloomberg Data History) returns the historical data for a selected security.
    • BDS: (Bloomberg Data Series) imports a set of bulk data such as peers.
  • For your chosen function, you will be asked to type in a security (such as “AAPL US EQUITY”), a field (such as “INDUSTRY_SECTOR” or “PX_LAST”) , and dates (depending on the function).
  • The tool will suggest auto-completion if you don’t happen to know the exact security or field code. It will only suggest valid responses.
  • You can add optional extra parameters such as orientation=H|V, currency, or “array=True” which puts all the output data into one cell instead many rows/columns (requires array formulas afterwards). Note that row and column counts will be added as extra parameters automatically after the formula has called.
  • The security, field and dates can be written into the formula or referenced from other cells.
  • Notice that the security ID needs to end with what kind of entity it is, so equities end “EQUITY”, bonds end “CORP” etc.

Excel manual function creation

Bloomberg Excel function builder manual edits

In the formula in cell B1, by replacing the security ID with a cell reference A1, you can then copy the formula down or across.

  • Once you have used the function builder, you will have a working formula that you may wish to copy out for each of your many securities, fields or dates. If you use a cell reference for this variable, you may copy the formula across or down. For example, you can have a list of security identifiers in column A {AAPL US EQUITY, IBM US EQUITY, VOD LN EQUITY, …} and the formula in column B =BDP(A1, “INDUSTRY_SECTOR”) and copy down the formula in column B.
  • What if your formula produces data in two dimensions and you need to leave a gap between each call, for example with amendment history of bonds? I have addressed that problem by writing a Python script to prepare the formulas and spacing. Assuming noblanks.txt is a file with one security ID per line (without the “CORP” bit) and withblanks.txt is our output:
fin = open('noblanks.txt')
fout = open('withblanks.txt', 'w')
for line in fin:
    id = line.rstrip()
    fout.write(id + "\t=BDS(\"" + id + "Corp\",\"AMENDMENT_HISTORY\",\"cols=3;rows=100\")")
    fout.write('\t\n' * 100)
fin.close()
fout.close()

The generated file is tab-delimited and can be opened in Excel for Bloomberg to action. The first column is the security ID (without the “CORP” bit), the second column contains the formulas, and there are 100 blank rows between each Bloomberg call to ensure enough space. There is room to improve this approach!

Where can I find the field codes?

The mnemonic codes for each field are not the same as in the Bloomberg terminal but can be looked up using the FLDS<GO> function. The auto-complete feature of the function builder in Excel is a good alternative.

I don’t want to be restricted to Excel, can I use Java, C++, .NET, Python or R?

  • In theory, yes, that is possible, although you will need technical support and all the necessary development environment to be set up on a Bloomberg terminal. In summary, the APIv3 needs be installed (from the WAPI<GO> function) which provides the necessary libraries for Java, C, C++ and .NET.
  • To use R (or RStudio), you’ll need to connect via Java (with the standard rJava library and Rbbg library from the http://r.findata.org/ repository). Python connects via the C library.
  • This is too advanced to be part of the regular Business Data Service, sorry!

Last year, I worked with PhD candidate Ali Bayat, and we got the following R script working from RStudio with R 3.1.3 and Java 8u22. [Thank you, Ali.]

install.packages("rJava")
install.packages("Rbbg", repos = "http://r.findata.org/")
library("rJava")
library("Rbbg")
conn <- blpConnect()
bdp(conn, "AMZN US Equity", "NAME")

Where can I get more help?

  • As mentioned, our white binder Bloomberg Workbook (at the Bloomberg Suite and Precinct Library) describes how to use the historical end of day import from Excel.
  • There is help throughout the Excel add-in (look for white question mark in a blue circle icons). The templates all have a help sheet (coloured green tab). Remember to press the F1 key at any terminal function to get context-sensitive support.

 

Use pairs in one VLOOKUP with historical exchange rates from Datastream

20 July 2016 Leave a comment

One of the most useful Excel functions I help students with is VLOOKUP – extremely useful to automatically bring in data from one table to another. If you have company accounts data from Compustat Global (via WRDS) for multiple companies in multiple currencies, you will need to bring in the change rate for each currency to show every field in US Dollars.

A B C D E
1 Company Currency Total Assets Local Exchange rate Total Assets USD
2 Co. X AUD 100 =VLOOKUP(B2, currencies, 2, FALSE) =C2*D2
3 Co. Y PLN 400 =VLOOKUP(B3, currencies, 2, FALSE) =C3*D3

Where ‘currencies’ is a named range elsewhere in the workbook:

From Currency Rate
AUD 1.3158
PLN 3.95685
USD 1

The VLOOKUP command looks for the currency code in the first column and returns the rate from the second column (use ‘FALSE’ to ensure an exact match). The conversion is simply a multiplication. (Note that you can convert from USD to USD at a rate of 1.0.) But what about making sure that the exchange rate is correct for the date of the data, and what if you have data from multiple years?

Performing VLOOKUP when matching a pair of variables

Thanks to Professor Marie Dutordoir for suggesting this kind of technique!

Usually you will want to look at accounts data over several years and for several companies. If you are working with several currencies then you will need a more complicated solution to this VLOOKUP exchange rate table, considering a day/month/year for each rate-currency pair. You do not need a second lookup table or other Excel functions, you just need to have another variable of date and a variable of currency-date pairs.

Global company accounts data

Global company accounts data. Given column G (currency) and column H (year), create new column F (map = currency&year).

The new column F (mapping) is formed from currency and year, so F2 contains “=G2&H2” (see image above). The ‘currencies’ named range now begins with a different first column produced in the same way (see image below). A VLOOKUP always matches on the first column of its range, and now this one pulls the rate from the fourth column, so rate is “=VLOOKUP(F2, currencies, 4, FALSE)” for row 2.

In the ‘currencies’ named range, I have combined the exchange rate calculation and lookup into one formula (column K). Repeat this for each data type that you wish to convert the currency for. Remember to have an entry for USD at rate 1 for each year.

paired-vlookup-lookup

Stacked historical exchange rates in a named range ‘currencies’. Created column A (map) from B&C.

This example only has the average exchange rate for each year, you may wish to extend this approach for monthly or even daily rates. If you do this, you will need to take extra care with the format of the mapping cells, but this exceeds the scope of the post.

Where to find historical exchange rates?

Use the Datastream Navigator to find exchange rates

Use the Datastream Navigator to find exchange rates. Start by searching one category (Exchange Rates), limit it “To Currency: United States Dollar”, then use the search box for the source currency.

 

Company Identifiers in Datastream.

Identifiers can take many forms (e.g. Company Name, Ticker, CUSIP, SEDOL, Datastream Code, ISIN) and be national, such as CUSIP for US / Canadian companies or international, such as ISIN (International Security Identification Number). The ISIN code incorporates the national identifier. For example, for Tesco PLC: GB0008847096, which includes the SEDOL (UK company identifier) code: 0884709.

 

Company Lists and Datastream

 

In seeking to further their dissertation research, MSc students often make use of more than one research database. Consequently, a typical scenario involves a request to import a list of company identifiers into Datastream, then conducting further searches to secure data, prior to analysis. The ‘Create List (From Range)’ function is useful in this regard.

 

Create List (From Range)

 

This function within the Excel Add-In version of Datastream is extremely effective when working with lists (up to 5,000 Series [companies] per list). This enables Company Identifiers to be copied and pasted into Excel and saved as a List on the specific computer being used (Store List Locally) or saved to the Datastream mainframe computer (Upload List) – accessible from computers with Datastream installed.

The code generated to represent the list of companies can then be entered directly into a ‘Static‘ or ‘Time Series‘ request search screen in Excel. Hence, one or more Datatypes can be obtained for an entire list of companies and the results would be displayed in a single Excel sheet.

Company Identifiers which work with the ‘Create List (From Range)’ function include: ISIN, Ticker, Datastream Code. Both Company Name and CUSIP don’t work, even though CUSIP is meant to.

 

Example Search

 

Within Excel, with the Datastream tab selected, enter (paste in) the company identifiers. Next, Select the identifiers (ISINs below) and then click on ‘Create List (From Range)’. To illustrate the process, a short list of two US companies will be used (Apple, Microsoft) – this could of course be a list of many hundreds of companies.

 

Datastream - Create List (From Range)

Datastream – Create List (From Range)

 

From the ‘List Creation for Excel’ dialog box, the default option is ‘Store List Locally’ (on the computer being used at the time), with ‘Upload List’ as an option.

 

Create List - Store Locally

Create List – Store Locally

 

This generates a confirmation message – click ‘OK’.

 

Create List - Confirmation Message

Create List – Confirmation Message

 

The ‘List File Name’ [ New_0032.LLT ] is entered in the Series/Lists field in this Static Request (as at 03/06/2016) to locate: Company Name [NAME], CUSIP [WC06004], Ticker [WC05601], Datastream Code [DSCD] and Market Value [MV].

 

Datastream - Static Request

Datastream – Static Request

 

Results:  widen columns as necessary, to display data.

 

Results

Results

 

It would be possible to repeat the above process, to create lists with different identifiers         (e.g. Datastream Code, Ticker) and also select ‘Time Series’ request for historical data. For Ticker identifiers, it is advisable to format the cells in the Excel column to ‘Text’ (before identifiers are pasted in) where US companies can have an ‘@’ symbol as part of the identifier (e.g. @AAPL, for Apple). If the cells are not formatted as Text, the ‘@’ symbol will be interpreted by Excel as the start of a function.

 

Incompatible Datatypes

 

If a list contains both US and UK Ticker identifiers, this can cause a problem where an incompatible datatype is specified in a search request. For example, if CUSIP (datatype: WC06004) is included, this means the search will fail (i.e. it gives no results), as UK companies do not have CUSIP codes.

Converting from Ticker to Datastream Code identifiers is a way around this difficulty. The Datastream Code identifiers could then be used to create a new list: for Apple (992816), Microsoft (719643), Tesco (900803) and J Sainsbury (926002).

A Static Request (03/06/2016) search for datatypes:  Company Name,  CUSIP and Market Value is successful (i.e. it gives results) and merely has a blank cell under CUSIP for Tesco and J Sainsbury.

 

 

Datastream Code List - Static Request Results

Datastream Code List – Static Request Results