Use case

Tracking competitor launches and partnerships at the source

A competitor's newsroom, feeds and site changes show what it launches and with whom, in its own words and dates. A watchlist method with the datasets, event types and queries.

Updated 5 October 20266 min read

A competitor announces a launch or a partnership in its own words, on its own newsroom or in a feed its site declares, and it shows other changes by altering its site. Those sources are public, dated by the company and linked to an original. This guide shows how to follow them for a watchlist of competitors, which event types and site changes mark a launch or a partnership, and how to read each channel.

Three channels at the source

  • The newsroom and feeds. Company News holds each announcement a company publishes on its newsroom, press page or declared feeds. Each item carries the date the company published it, the title, the link to the original and an excerpt of the company's own text. In a query the dataset is company_news, the date is at, and the link and excerpt are url and excerpt.
  • The regulatory disclosure. For a listed company, each regulatory disclosure is a row in Company News with its items and an event type mapped from them.
  • The site. What a company changes on its website without announcing it. Technology Changes (company_tech_events) records new key pages, apps, markets, languages and currencies as dated events.

The first two are the announcements and scale dataset. The third comes from the marketing stack, and the data dictionary defines every field named here.

Event types that mark a launch or a partnership

Each announcement carries zero or more of 13 event types in event_types. These are the ones that matter for a competitor watch.

ValueWhat it marksRead it with
product_launchA new product or releaseThe excerpt and the original at its link
partnershipAn alliance or agreementThe other party's name in the title or excerpt. For a disclosure, a material agreement is the closest item, and its excerpt names the counterparty
expansionA new market or presenceNew markets and languages in the site events, and new postings in the country
acquisition_made, acquired_or_mergedBuying, or being boughtThe disclosure items for completed acquisitions and changes of control
funding_roundMoney raisedThe names-an-amount flag
leadership_changeAn executive or board changeThe role, stored as a role and never the person

Every newsroom row also carries five flags: about this company, executive appointment, executive departure, names an amount and mentions hiring. An item that is not about the company itself carries no event type, so the typed rows are the company's own news, and filtering on a type returns launches. Look at the untyped rows now and then to see what a filter leaves out.

A disclosure row reads differently from a newsroom row. Its title is the form and its item labels, and its excerpt is the text under those items. Start with the items, which say what was filed, then read the excerpt for the detail. A material agreement is where to look for the other party. The link leads to the filing document and the accession number is its reference.

A watchlist query

List the competitors by company ID, including the brands that publish newsrooms of their own. This query returns the launches, partnerships and expansions since a date, newest first.

-- event_types is a JSON list in one cell; this matches it as text
select
  at, company, event_types, title, url
from company_news
where company_id in (:competitors)
  and at >= :since
  and (   event_types like '%"product_launch"%'
       or event_types like '%"partnership"%'
       or event_types like '%"expansion"%')
order by at desc;

Through the API the announcements arrive as a feed that runs oldest first from a time you set, so a daily job keeps the last cursor as its bookmark and asks only for what is new. The API reference describes the endpoints. Before you trust the watchlist, check which channels each competitor uses.

select
  company,
  source,
  count(*) as items,
  max(at)  as latest
from company_news
where company_id in (:competitors)
  and at >= :since
group by company, source
order by company, source;

The source column names the channel of each row: a feed, a newsroom page or a regulatory disclosure. A competitor with a high count in one channel is a company that announces there, and the mix tells you where to look first for the next announcement.

Key pages: where to look next

Website Profile (company_site_facts) holds the address of each key page a company's site links to, in key_pages, among them newsroom, blog, partners, api_docs, status and pricing. It is a map of where to read. The newsroom address is where a competitor's announcements start, the partners page is where it lists the partners it names, and the API docs and status pages mark a developer offer and an operational commitment. Each key page comes as an address you can open, so a partner list is read on the page itself with the date of its appearance beside it.

When a key page first appears in the links, Technology Changes records it as a dated page event, which gives you the day of the change.

Launches that never reach a newsroom

This query lists the changes a competitor made to its site without announcing them.

select
  observed_at, company, category, key, change
from company_tech_events
where company_id in (:competitors)
  and observed_at >= :since
  and change = 'added'
  and category in ('page', 'app', 'market', 'language', 'currency')
order by observed_at desc;

A free-trial page appearing, a mobile app (the key is ios: and an id, or android: and a package name), a new country, a language or a currency: each is a dated change observed between two readings of the site. Together they show a launch the competitor has not announced, or announced in a channel of its own. A website's first observation sets a baseline and writes none of these events, so a site shows changes from its next reading. The message in a site's announcement bar is recorded as a promo event when it changes. The guide to detecting go-to-market changes on websites goes further.

To ask whether a competitor ships first and announces later, set the observed_at of a site change beside the at of the announcement. The two are different kinds of date. at is the company's own, while observed_at is the time the change was observed, so the pair measures the gap between a visible change and its announcement, to the resolution of the site's refresh cadence.

Setting a sector baseline

Six launches in a quarter is a busy competitor in one sector and an ordinary one in another. The weekly Market Series include a news event family, with one subject for each event type, for example the funding round subject. It states how many companies announced an event of that type in the window, per 100 companies, by industry or country, so you can set a competitor beside its sector.

-- :event_type is one of the 13 event types, for example product_launch
-- :industry is the industry id the dashboard shows for the competitor
select as_of, count, cohort, rate
from market_series
where metric = 'news_event:' || :event_type
  and dimension_kind = 'industry'
  and dimension = :industry
  and window_days = 30
order by as_of;

The rate counts companies that announced, not announcements, so a competitor that publishes five launches in a month and one that publishes one both count once. Count its own rows in Company News for its volume, and use the series for the sector's share of companies that were active.

A weekly digest

A watchlist is only useful if someone reads it, so build the output as a digest.

  • One line per item: the date, the competitor, the type, and the title linked to the original.
  • Announcements and site changes in separate blocks, because the first are statements and the second are observations.
  • Leave out the other, financial_results and award_or_recognition types unless a rule asks for them.
  • The original opened before anyone acts. The type is a label and the document is the evidence.

The rows below are an illustrative digest for Acme Robotics, an invented competitor.

DayCompetitorSourceTypeItem
MonAcme RoboticsNewsroompartnershipA joint offer with a named partner
TueAcme RoboticsSitepageA free_trial page appears
WedAcme RoboticsDisclosurefunding_roundA disclosure of an unregistered equity sale

Read the three together. A partner, a trial and new money in one week suggests a push for new customers, and the trial page tells you how it intends to reach them.

How to read the channels

  • Own channels. Announcements come from a company's own newsroom, its declared feeds and, for listed companies, regulatory disclosures. They are the company's statements in its own words, which is what a competitor watch is for.
  • Dates. The announcement date is the company's. A newsroom page without dates gives the date an item was first seen, so read it as the latest date the announcement could have been made.
  • Labels. Event types on newsroom items are produced under a named, frozen version. Disclosure types follow the item labels, so they are as specific as the items.
  • One side of a partnership. A row is what one company said about itself. The other party appears where the title or excerpt names it, and you can pull the other side's row from its own newsroom when it is on your watchlist.

What a competitor announces and what it hires for are two views of one plan, and reading a competitor's strategy from its hiring covers the second. For the item-by-item mapping of disclosures, see event-driven research with regulatory disclosures and newsrooms.

Frequently asked questions

How do you track competitor product launches?

Follow the sources the competitor controls. Read its newsroom and declared feeds for items labelled as product launches, add its regulatory disclosures if it is listed, and watch its site for new pages, apps, markets and currencies. Put the competitors on a watchlist by company, pull new items daily, and open the original of each before you act on it.

Where do companies announce partnerships?

Mostly on their own newsroom or press page and in the feeds their site declares. A listed company discloses a material agreement in a regulatory filing. A partnership may be announced by one side only, so the other party can appear just by name in the title or text of the item you are reading, and a watchlist that holds both companies catches both statements.

What does a regulatory disclosure tell you about a competitor?

For a listed company it records an event by item: a material agreement, an acquisition, exit costs, an unregistered sale of equity, a change of control or an officer or director change. The item labels say what was filed and the text under them gives the details. Fokals classifies each disclosure into the same 13 event types as newsroom items, so one filter covers both.

How often should you check competitor news?

Daily for a short list of direct competitors if a launch would change your plans this week, and weekly for the rest. The data arrives daily to every three days, so a weekly digest loses little. Whatever the schedule, pull incrementally from the last cursor so that each run reads only what is new.

How do you follow a competitor that announces little?

Watch its site. Changes to a website are recorded as dated events, such as a new pricing page, app, market, language or currency, and a listed company's regulatory disclosures appear in the same feed as its newsroom. A competitor that launches quietly still leaves a dated trail on its site, and the digest shows it beside the announcements of the rest of your watchlist.

The queries and code on this page are examples to adapt. Test them in your own environment before you rely on them.