Skip to content

Document how to search earnings calls of companies listed in Switzerland - #123

Merged
rishsriv merged 1 commit into
mainfrom
swiss-earnings-calls
Sep 29, 2026
Merged

rishsriv merged 1 commit into
mainfrom
swiss-earnings-calls

Conversation

@rishsriv

Copy link
Copy Markdown
Member

The skill and the earnings guide now tell agents how to ask for the earnings calls of companies listed in Switzerland. These 47 companies (the SMI and SMI Mid) are stored under their SIX symbol with the .SW suffix, for example NESN.SW for Nestlé and ROP.SW for Roche. Before this change the docs named only US and Indian forms, so an agent had no way to know which form to send.

The problem: several Swiss symbols are also US tickers

An agent that follows the docs sends a plain symbol. For Roche that is ROP, which is also the US ticker of Roper Technologies. The plain symbol selects the US company, and the agent gets Roper's calls. CFR (Richemont and Cullen/Frost Bankers) has the same problem. The docs did not warn about this.

The fix: one paragraph in the earnings guide and one sentence in the skill

The new text says:

  • Use the .SW form: ticker="NESN.SW". A plain Swiss symbol (ticker="NESN") is also accepted and is reported in read_as_exchange_symbol, under the same rules as Indian NSE symbols.
  • A plain symbol that is also a US ticker selects the US company. Pass ROP.SW for Roche and CFR.SW for Richemont.
  • Most Swiss companies hold two calls a year. The half-year call is stored as Q2 and the full-year call as Q4, so FY2025Q2 is the January to June 2025 half year.
  • A Swiss company's fiscal year is named after the calendar year in which it ends. Logitech, Richemont and Sonova end theirs in March, and Barry Callebaut in August.

Example

search_earnings_transcripts(search_target="coverage", ticker="ROP") before the agent reads the new text selects Roper Technologies:

company_tickers: ["ROP"]
note: ticker 'ROP' selected the stored ticker ROP. The SIX Swiss Exchange company with the same symbol is stored as ROP.SW (Roche Holding AG); pass 'ROP.SW' to select it.

With the new text the agent sends ticker="ROP.SW" and gets Roche:

company_tickers: ["ROP.SW"]

Details

  • Files: skills/factiq/SKILL.md (the search_earnings_transcripts row) and references/report-patterns/earnings-intelligence.md (the coverage section).
  • New test test_swiss_companies_use_the_six_suffix in tests/test_earnings_docs.py keeps the .SW guidance in both files. All 79 tests pass.
  • Version 0.39.0 to 0.39.1 in both plugin files.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rishsriv
rishsriv merged commit b427ec5 into main Sep 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant