<hasInstrument
symbol="AAPL"
marketlabel="NYSE" />
Preview. Built from the published NewsML-G2 documents by tools/prosedoc. This layout is a harness for reviewing structure — it is not the published site.
22. Expressing company financial information
22.1. Background
Company financial information is a common feature of news distributed by many news providers; company information is typically indexed in news using a "ticker symbol", for example:
Apple Inc (NYSE:AAPL) today announced the…
However, this easy and widely-used "shorthand" for indexing company information has a number of traps for those creating machine-readable metadata, especially when dealing with global markets and diverse customer requirements.
Ticker symbols are NOT unambiguous identifiers for companies; they identify specific financial instruments belonging to companies, usually tied to specific markets or exchanges. For example, the ticker symbol for Rio Tinto is "RIO" in London, but "RTP" in New York; similarly NYSE:AAPL identifies shares of Apple Inc. traded on the New York Stock Exchange, not the company. Other issues include:
-
A company may have many different financial instruments, all identified by specific ticker symbols.
-
A company’s shares may be traded on many different markets; the ticker symbols may or may not be the same across markets. For example IBM has the same ticker symbol IBM on the New York, Amsterdam, Frankfurt, London and Mexico Exchanges; as mentioned above, Rio Tinto has the ticker symbol RIO in London, but RTP on the New York, Frankfurt and Mexico exchanges.
-
There are many different schemes for labelling financial markets, for example the London Stock Exchange is variously identified as "LON", "LSE" and "LN" to give only three examples.
The NewsML-G2 <hasInstrument> structure addresses these issues by enabling providers to use a globally unique identifier for companies, and linking each of the company ticker symbols to this identifier, while giving extensive and unambiguous information about each of the ticker symbol. It is a child of the Organisation Details wrapping element <organisationDetails>.
22.2. <hasInstrument> properties (as attributes)
| Definition | Name | Cardinality | Datatype | Example/Notes |
|---|---|---|---|---|
A symbol for the financial instrument |
symbol |
-1 |
String |
symbol="RIO" |
The source of the financial instrument symbol |
symbolsrc |
(0..1) |
QCodeType |
symbolsrc="ex-symsrc:MDNA" |
A venue in which this financial instrument is traded |
market |
(0..1) |
QCodeType |
market="mic:XLON" |
The scheme alias “mic” refers to the ISO-supported Market Identification Code scheme |
||||
The label used for the market |
marketlabel |
(0..1) |
String |
marketlabel="LSE" |
The source of the market label |
marketlabelsrc |
(0..1) |
QCodeType |
marketlabelsrc="ex-mlsrc:MDNA" |
The type(s) of the financial instrument |
type |
(0..1) |
QCodeListType |
type="ex-instrtype:share" |
The rank of the associated financial instrument symbol amongst other symbols |
rank |
(0..1) |
NonNegativeInteger |
rank=1 |
22.2.1. Examples
At its simplest, a symbol for the financial instrument and a label for the market on which it is traded may be sufficient:
It is recommended that the optional @symbolsrc should be used to identify the authority for the symbol. This will disambiguate similar symbols that identify different financial instruments.
<hasInstrument
symbol="AAPL"
symbolsrc="ex-symsrc:MDNA"
marketlabel="NYSE" />
Other share identifiers may be used. In this example the ISIN (International Stock Identification Number) is used, and the authority for the symbol is identified as the ISO. Note that the CV only identifies the authority, not the authority’s scheme; which may not be available to the end user. This example does not give a market label, but unambiguously identifies the market on which the instrument is traded using @market and a value from the Market Identification Codes (an ISO scheme) using the scheme alias "mic".
<hasInstrument
symbol="12345678"
symbolsrc="ex-symsrc:ISO"
market="mic:XLON" />
The @marketlabel enables the provider to denote the market on which the financial instrument is traded from their own or another’s scheme, and to identify the scheme using the @marketlabelsrc. For example the following identifies the Toronto Stock Exchange from Bloomberg’s CV of market labels:
<hasInstrument
symbol="12345678"
symbolsrc="ex-symsrc:ISO"
marketlabel="####@CN"
marketlabelsrc="_mlsrc:bbg"_ />
Financial instruments are identified on many platforms and it may be necessary to indicate the preferred symbol amongst a group of symbols given for a single financial instrument. For example, if the symbols used on a proprietary news platform (for example Reuters or Bloomberg) link to further platform functions, the platform provider will wish to indicate that the use of their symbol is preferred. Rank is used to indicate this preference; in the following example, only one instrument has a rank:
<hasInstrument
symbol="RTO.L"
symbolsrc="ex-symsrc:reuters"
marketlabel="LSE"
rank="1" />
<hasInstrument
symbol="12345678"
symbolsrc="ex-symsrc:ISO"
marketlabel="XLON" />
22.3. Adding <hasInstrument> to a NewsML-G2 item
The <hasInstrument> property can be used within a NewsML-G2 News Item in two ways: by reference in Content Metadata from a <subject> element, or from the Content itself via <inlineRef>, In both cases, one or more <hasInstrument> elements are conveyed within an <assert> wrapper element. For more details on the use of <assert> see The Assert wrapper: in a nutshell assertions such as these enable supplementary information about a concept to be carried locally within a NewsML-G2 Item. Into the <assert> wrapper we can place a further wrapping element <organisationDetails> which can contain the <hasInstrument> information:
<assert literal="Acme Widget">
<organisationDetails>
<contactInfo>
<phone>+1 (416) 922 5834</phone>
<email>info@acmewidgets.com</email>
</contactInfo>
<hasInstrument
symbol="AWG"
symbolsrc="ex-symsrc:MDNA"
market="mic:XTSE"
marketlabel="TSX"
marketlabelsrc="ex-mlsrc:MDNA"
type="ex-instrtype:share" />
</organisationDetails>
</assert>
The <assert> in this example is identified by a @literal, and is referenced by the same literal value in a <subject> element:
<contentMeta>
<contentCreated>2011-12-06T07:55:00+00:00</contentCreated>
<subject type="cpnat:organisation" literal="Acme Widget">
<name>Acme Widget Sales Inc</name>
</subject>
<headline>
Acme Widgets announces annual results
</headline>
<description role="ex-ANDescRole:abstract">
Acme Widgets (XTSE:AWG), a leader in the
production of quality metal widgets, announced a six per cent increase in profits....
</description>
<language tag="en-US" />
</contentMeta>
Note that either a @qcode or @uri could have been used as the identifier, instead of @literal.
Many companies may be mentioned in the content of the News Item; it would be limiting to have to place all of them into <subject> elements. Using <inlineRef>, the <hasInstrument> elements can be referenced from the content, but in order to do so, @idrefs must be added to the assert for each organisation that is referenced in the content:
<assert idrefs="w001" literal="Acme Widget">
<organisationDetails>
<contactInfo>
<phone>+1 (416) 922 5834</phone>
<email>info@acmewidgets.com</email>
</contactInfo>
<hasInstrument
symbol="AWG"
symbolsrc="ex-symsrc:MDNA"
market="mic:XTSE"
marketlabel="TSX"
marketlabelsrc="ex-mlsrc:MDNA"
type="ex-instrtype:share" />
</organisationDetails>
</assert>
The organisation is tagged with the corresponding @id in the content (in this case as an attribute of the HTML <span> element).
<h1>Acme Widgets announces annual results </h1>
<p>TORONTO (Agencies) – Leading widget manufacturer <spanid="w001"> Acme Widgets +
(XTSE:AWG)</span> today announced a six per cent jump in quarterly profits for +
Q3 2016 on the back of heavy demand for its latest widget technologyfrom +
automotive customers.</p>
All Scheme Aliases used in the listing below indicate IPTC NewsCodes vocabularies, except for the following alias values: ex-ANDescRole, ex-symsrc, ex-mlsrc and ex-instrtype.
<?xml version="1.0" encoding="UTF-8" ?>
<newsItem
xmlns="http://iptc.org/std/nar/2006-10-01/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://iptc.org/std/nar/2006-10-01/
./NewsML-G2_2.35-spec-All-Power.xsd"
guid="urn:newsml:acmenews.com:20161019:201003230594296001"
version="18"
standard="NewsML-G2"
standardversion="2.35"
conformance="power"
xml:lang="en-US">
<catalogRef
href="http://www.iptc.org/std/catalog/catalog.IPTC-G2-Standards_41.xml" />
<catalogRef
href="http://www.acmenews.com/NewsML/acmenews_NewsML-G2_Catalog_1.xml" />
<rightsInfo>
<copyrightHolder uri="http://www.acmenews.com" />
<copyrightNotice>Copyright 2025 - Acme Newswire</copyrightNotice>
<usageTerms>Not for distribution in the United
States</usageTerms>
</rightsInfo>
<itemMeta>
<itemClass qcode="ninat:text" />
<provider uri="http://www.acmenews.com" />
<versionCreated>2025-10-19T14:23:00Z</versionCreated>
<firstCreated>2016-10-19T13:15:00Z</firstCreated>
<pubStatus qcode="stat:usable" />
</itemMeta>
<contentMeta>
<contentCreated>2016-10-19T13:00:00Z</contentCreated>
<subject type="cpnat:organisation" literal="Acme Widget">
<name>Acme Widget Sales Inc</name>
</subject>
<headline>
Acme Widgets announces annual results
</headline>
<description role="ex-ANDescRole:abstract">
Acme Widgets (XTSE:AWG), a leader in the
production of quality metal widgets, announced a six per cent increase in
profits....
</description>
<language tag="en-US" />
</contentMeta>
<assert literal="Acme Widget">
<organisationDetails>
<contactInfo>
<phone>+1 (416) 922 5834</phone>
<email>info@acmewidgets.com</email>
</contactInfo>
<hasInstrument
symbol="AWG"
symbolsrc="ex-symsrc:MDNA"
market="mic:XTSE"
marketlabel="TSX"
marketlabelsrc="ex-mlsrc:MDNA"
type="ex-instrtype:share" />
</organisationDetails>
</assert>
<contentSet>
<inlineXML contenttype="application/xhtml+xml">
<!-- Story text -->
</inlineXML>
</contentSet>
</newsItem>