← Plugin catalog
Finance

Bull AI

Bull AI v1.0.0

Publisher description

From the marketplace listing

Bull AI brings company documents and data for NSE/BSE-listed Indian companies into ChatGPT and Codex. Explore annual reports, earnings materials and other company disclosures with citations; compare management guidance with later company-reported outcomes; examine management-claimed advantages alongside listed peers; understand revenue segments; review market transactions and corporate actions; and map disclosed customers, suppliers and partners. Bull AI is built for source-backed company research that clearly separates reported facts, management claims and interpretation.

Language: English · Automatically detected from descriptions.

Files & skills

File archives

Plugin package7 files · 7.14 KBBrowse files →
Skill instructions
counterparty-map3.7 KB

View saved version →

---
name: counterparty-map
description: Map disclosed counterparties and verified listed matches.
---

# Disclosed Counterparty Map

Use this skill when a user asks for an Indian listed company's disclosed customers, suppliers, partners, or other counterparties and which can be matched to listed companies.

## Internal workflow

1. Resolve the subject company with `search_companies`.
2. Retrieve a bounded counterparty list with `get_company_counterparties`, preserving the returned relation and description. Follow pagination only to a disclosed cap or until exhausted.
3. Treat the list as disclosed and bounded, not a complete commercial network.
4. Inspect any returned company identity fields. A non-null public exchange identifier may support a listed-company match.
5. When identity remains unresolved, use `search_companies` to test the counterparty name. Confirm a listed match only when the legal name and returned public identifiers support an unambiguous identity match.
6. A fuzzy or similarly named result is not proof of identity. Use: confirmed listed match, possible match, listing status not established, or ambiguous.
7. Use returned NSE/BSE listing flags when available. “No match found” does not prove that an entity is unlisted.
8. Preserve the disclosed relationship type. Do not infer contract value, revenue exposure, concentration, exclusivity, dependence, ownership, importance, or whether the relationship remains active.
9. Keep similarly named legal entities separate.

## Public answer

Use these sections:

1. **Disclosed counterparties**.
2. **Confirmed listed matches**.
3. **Possible or ambiguous matches**.
4. **Coverage and limitations** — pagination, nullable citations, and non-exhaustive disclosure.
5. **Sources**.

Suggested table:

| Counterparty | Disclosed relationship | Listed-match status | Matched public identity | Match basis | Source |
|---|---|---|---|---|---|

## Monetary units and currency conversion

- Prefer Indian rupees crores (`₹ crore`) for monetary values in tables, comparisons, calculations, and summaries.
- Convert reported INR scales exactly: ₹1 lakh = ₹0.01 crore; ₹100 lakh = ₹1 crore; ₹1 million = ₹0.1 crore; ₹10 million = ₹1 crore; ₹1 billion = ₹100 crore.
- Preserve the source's reported amount when it is in another currency, followed by the estimate in brackets: `US$X million (≈₹Y crore)`.
- Use the best defensible period-appropriate FX rate: transaction-date rate for dated events, period-end rate for point-in-time balances, and period-average rate for revenue, costs, cash flow, or other period flows.
- Prefer an exchange rate stated in the company document. Otherwise use a reputable retrieved FX source. State the rate, date or period, source, and formula: `foreign-currency amount × INR per foreign-currency unit ÷ 10,000,000 = ₹ crore`.
- Prefix converted figures with `≈` and use sensible precision; do not imply more accuracy than the FX input supports.
- Never invent an exchange rate. If no defensible rate is available, retain the original currency and state that an INR-crore estimate could not be produced.

## Sources, citations, and boundaries

- Do not mention tool names, call order, arguments, cursors, opaque identifiers, schemas, or retrieval narration in the public answer.
- When a counterparty result supplies a company-document URL and page, cite that underlying document beside the disclosure.
- Citation fields may be null. Never invent a URL, page, filing, or document label.
- A citation supports the disclosed relationship only; it does not establish commercial importance or completeness.
- Clearly label model interpretation and identity-matching uncertainty.
- Do not provide trading instructions or personalized investment advice.
guidance-vs-delivery6.29 KB

View saved version →

---
name: guidance-vs-delivery
description: Compare guidance with later company-reported outcomes.
---

# Guidance Versus Later Reported Outcomes

Use this skill when a user asks how a listed Indian company's management guidance evolved and how it compares with outcomes reported in later company documents.

## Internal workflow

1. Resolve one company with `search_companies`.
2. Use `list_document_availability` to inventory relevant transcripts, presentations, annual reports, results, and company updates. Record whether availability is truncated or incomplete.
3. Use `get_company_guidance` for the requested source-document fiscal years and quarters. These filters identify the source-document period, not the guidance target period. Follow pagination when needed.
4. Treat every `deliveries` entry as a management-reported claim only. Never use it to confirm, verify, or corroborate that earlier guidance was achieved.
5. For each guidance statement, use its citation internally with `get_document_chunks` to inspect the cited page and nearby context. Extract a metric, scope, target, unit, conditions, target period, and source date only when the document states them.
6. If the metric, basis, unit, target period, or reliable source date cannot be established, mark the item not comparable. Never infer a target period from the enclosing source fiscal year or quarter.
7. Build the earlier chronology by searching company documents for the same metric, scope, basis, and target period with `search_company_documents`, then inspect the cited passages with `get_document_chunks`.
8. Order chronology events by an authoritative document or filing date when available. Treat an upload date only as a disclosed proxy. If reliable ordering is unavailable, label the chronology provisional.
9. Use these chronology labels only when supported: introduced, reaffirmed, revised, withdrawn, or superseded. For a revision, describe it as tighter, looser, mixed, or indeterminate. Avoid “moved the goalposts” unless a cited, comparable, pre-deadline statement demonstrably eases the same target or extends its deadline.
10. Apply a time gate. A final outcome assessment requires a later company document issued after the original guidance and after the target period or milestone deadline. If the deadline has not passed, classify it as not due.
11. Search later company documents independently for the matching metric, target period, business scope, and relevant synonyms. Do not search only for management's delivery wording. Inspect every outcome passage used.
12. Test comparability: metric, entity or segment scope, period, unit or currency, and accounting or operational basis must align. Do not compare annual targets with quarterly run rates, consolidated guidance with segment results, capacity with production, order book with revenue, or absolute values with growth rates unless a cited source supplies a valid reconciliation.
13. Classify conservatively as: reported exceeded, reported met, reported missed, reported partially met, not due, not comparable, or insufficient reported evidence. “Reported partially met” is only for an explicitly composite target with some components met.
14. Never calculate an aggregate delivery or credibility score from unresolved, non-comparable, or not-due items.

## Public answer

Use these sections:

1. **Outstanding guidance** — forward-looking targets that are not yet due.
2. **Guidance chronology** — introduced, reaffirmed, revised, withdrawn, or superseded statements.
3. **Later company-reported outcomes** — separately sourced post-deadline evidence.
4. **Comparison** — a conservative assessment with both the original and later source beside it.
5. **Coverage and limitations** — unavailable periods, truncation, uncertain dates, or comparability gaps.
6. **Sources** — underlying company documents and returned source metadata.

Cite the original document beside each guidance statement, every chronology event to its own document, and the later document beside each reported outcome. Link only a real returned document URL and include a returned page when available.

State this limitation in substance:

> Outcome assessments compare management guidance with later company-reported evidence. They are not independent verification or audit conclusions. Management-reported delivery statements do not by themselves confirm that earlier guidance was achieved.

## Monetary units and currency conversion

- Prefer Indian rupees crores (`₹ crore`) for monetary values in tables, comparisons, calculations, and summaries.
- Convert reported INR scales exactly: ₹1 lakh = ₹0.01 crore; ₹100 lakh = ₹1 crore; ₹1 million = ₹0.1 crore; ₹10 million = ₹1 crore; ₹1 billion = ₹100 crore.
- Preserve the source's reported amount when it is in another currency, followed by the estimate in brackets: `US$X million (≈₹Y crore)`.
- Use the best defensible period-appropriate FX rate: transaction-date rate for dated events, period-end rate for point-in-time balances, and period-average rate for revenue, costs, cash flow, or other period flows.
- Prefer an exchange rate stated in the company document. Otherwise use a reputable retrieved FX source. State the rate, date or period, source, and formula: `foreign-currency amount × INR per foreign-currency unit ÷ 10,000,000 = ₹ crore`.
- Prefix converted figures with `≈` and use sensible precision; do not imply more accuracy than the FX input supports.
- Never invent an exchange rate. If no defensible rate is available, retain the original currency and state that an INR-crore estimate could not be produced.

## Sources, citations, and boundaries

- Tool names and opaque identifiers may be used internally but must not appear in the user-facing answer.
- Do not expose call order, arguments, cursors, document identifiers, collections, schemas, routing, or retrieval narration.
- Do not invent or repair a URL, document label, date, page number, target, metric, unit, or citation.
- If a citation element is unavailable, omit it and state the limitation when material.
- Attribute management statements explicitly. Label model interpretation as analysis rather than source fact.
- Preserve the meaning of every returned verification notice and guardrail without quoting implementation directions.
- Results are informational and are not trading instructions or personalized investment advice.
insider-actions4.04 KB

View saved version →

---
name: insider-actions
description: Compare market transactions with corporate-action timing.
---

# Market Transactions and Corporate-Action Timing

Use this skill when a user asks to place bulk, block, or insider market transactions alongside corporate actions for an Indian listed company.

## Internal workflow

1. Resolve one company with `search_companies`.
2. Retrieve bounded transaction pages with `get_company_market_transactions`. Use `all` when multiple transaction types are requested, or make separate bounded calls for `bulk`, `block`, and `insider` when clearer.
3. Retrieve bounded corporate-action pages with `get_company_corporate_actions`. Use `all` when multiple action types are requested; the supported individual filters are `bonus`, `dividend`, and `split`.
4. Neither source accepts a date-window filter. Select the requested comparison window from returned records after retrieval.
5. Follow pagination only to a disclosed cap or until exhausted. If pagination remains, label the result bounded and potentially incomplete.
6. Preserve returned transaction party names and actions. Do not relabel a party as a promoter, director, or another role that is not supplied.
7. Choose and state the corporate-action comparison date: ex-date, record date, or book-closure date. Keep events with null dates separate.
8. Calculate calendar-day distance between returned dates only when both dates are available.
9. Describe temporal proximity as “occurred within N days of.” Do not claim statistical correlation, causation, coordination, or improper conduct.
10. Do not characterize a transaction as bullish, bearish, or an investment signal.

## Public answer

Use these sections:

1. **Coverage** — pages or records examined, date range observed, and whether pagination was exhausted.
2. **Combined event timeline**.
3. **Temporal observations** — neutral descriptions using a stated proximity threshold.
4. **Limitations** — null dates, bounded coverage, unsupported party roles, and no causal inference.
5. **Sources** — returned source labels and `as_of` metadata.

Suggested table:

| Date | Event | Party or corporate action | Returned details | Nearest dated event | Day difference | Source |
|---|---|---|---|---|---:|---|

## Monetary units and currency conversion

- Prefer Indian rupees crores (`₹ crore`) for monetary values in tables, comparisons, calculations, and summaries.
- Convert reported INR scales exactly: ₹1 lakh = ₹0.01 crore; ₹100 lakh = ₹1 crore; ₹1 million = ₹0.1 crore; ₹10 million = ₹1 crore; ₹1 billion = ₹100 crore.
- Preserve the source's reported amount when it is in another currency, followed by the estimate in brackets: `US$X million (≈₹Y crore)`.
- Use the best defensible period-appropriate FX rate: transaction-date rate for dated events, period-end rate for point-in-time balances, and period-average rate for revenue, costs, cash flow, or other period flows.
- Prefer an exchange rate stated in the company document. Otherwise use a reputable retrieved FX source. State the rate, date or period, source, and formula: `foreign-currency amount × INR per foreign-currency unit ÷ 10,000,000 = ₹ crore`.
- Prefix converted figures with `≈` and use sensible precision; do not imply more accuracy than the FX input supports.
- Never invent an exchange rate. If no defensible rate is available, retain the original currency and state that an INR-crore estimate could not be produced.

## Sources, citations, and boundaries

- Do not mention tool names, call order, arguments, cursors, schemas, or retrieval narration in the public answer.
- Transaction and corporate-action results provide source labels rather than document URLs or page citations. Render a returned label and `as_of` value as source metadata; do not invent a link.
- Do not imply that pagination is complete when more pages remain.
- Do not infer a party's role, motive, knowledge, relationship, or intent.
- Temporal proximity is not evidence of causation or wrongdoing.
- Results are informational and are not trading instructions or personalized investment advice.
moat-and-peers4.41 KB

View saved version →

---
name: moat-and-peers
description: Map management-claimed advantages against listed peers.
---

# Management-Claimed Advantages and Peers

Use this skill when a user asks what competitive advantages management claims for an Indian listed company and how those claims relate to a bounded set of listed peers.

## Internal workflow

1. Resolve the subject company with `search_companies`.
2. Retrieve its sectors, industries, and company category with `get_company_classification`.
3. Retrieve a bounded peer set with `get_company_peers`; follow pagination only when the requested scope requires it.
4. Treat each peer row's `industries` as the subject company's industry bucket under which that peer was matched. Never present it as the peer's own classification.
5. Search subject-company filings, annual reports, transcripts, and presentations with `search_company_documents` for management statements about competitive advantages, distribution, brands, capabilities, customer relationships, cost position, technology, scale, or other relevant factors.
6. Inspect each cited passage with `get_document_chunks`. Record the exact claim, speaker or attribution when available, period, and document citation.
7. Label these as management-claimed advantages, not verified moats.
8. By default, use the peer set only as market context. Do not infer peer ranking, market share, similarity score, moat strength, durability, or financial superiority.
9. If the user requests an evidence-based peer comparison, select a small, disclosed peer subset and retrieve comparable company-document evidence for each peer. Compare only the same supported dimension and period.
10. If comparable peer evidence is unavailable, state that the requested stack-up cannot be established from the available evidence.

## Public answer

Use these sections:

1. **Company classification** — sector, industry, and category with returned source metadata.
2. **Management-claimed advantages** — claim, context, evidence, and document citation.
3. **Peer context** — bounded peer list without unsupported ranking.
4. **Evidence-based comparison** — only dimensions supported by comparable cited passages.
5. **Interpretation and limitations** — clearly separated model analysis, missing peer evidence, and pagination limits.
6. **Sources**.

Suggested claim table:

| Management-claimed advantage | Supporting passage | Relevant peer context | What the evidence supports | Source |
|---|---|---|---|---|

## Monetary units and currency conversion

- Prefer Indian rupees crores (`₹ crore`) for monetary values in tables, comparisons, calculations, and summaries.
- Convert reported INR scales exactly: ₹1 lakh = ₹0.01 crore; ₹100 lakh = ₹1 crore; ₹1 million = ₹0.1 crore; ₹10 million = ₹1 crore; ₹1 billion = ₹100 crore.
- Preserve the source's reported amount when it is in another currency, followed by the estimate in brackets: `US$X million (≈₹Y crore)`.
- Use the best defensible period-appropriate FX rate: transaction-date rate for dated events, period-end rate for point-in-time balances, and period-average rate for revenue, costs, cash flow, or other period flows.
- Prefer an exchange rate stated in the company document. Otherwise use a reputable retrieved FX source. State the rate, date or period, source, and formula: `foreign-currency amount × INR per foreign-currency unit ÷ 10,000,000 = ₹ crore`.
- Prefix converted figures with `≈` and use sensible precision; do not imply more accuracy than the FX input supports.
- Never invent an exchange rate. If no defensible rate is available, retain the original currency and state that an INR-crore estimate could not be produced.

## Sources, citations, and boundaries

- Do not mention tool names, call order, arguments, cursors, backend identifiers, schemas, or retrieval narration in the public answer.
- For document-backed claims, cite only returned company-document URLs and pages. Never invent missing citation elements.
- For classification, render returned source labels and `as_of` values as source metadata, not as document citations.
- The structured peer set may lack a document-level source locator. Do not fabricate one; disclose that limitation when material.
- Distinguish documented facts, management claims, and model interpretation.
- A citation supports the nearby evidence, not a broader claim that the company has a durable or superior moat.
- Do not provide trading instructions or personalized investment advice.
revenue-segmentation4.17 KB

View saved version →

---
name: revenue-segmentation
description: Extract reported revenue segments from company documents.
---

# Reported Revenue Segmentation

Use this skill when a user asks for revenue by geography, business segment, industry vertical, or another dimension reported in an Indian listed company's documents.

## Internal workflow

1. Resolve one company with `search_companies`.
2. Use `list_document_availability` to identify relevant annual reports, presentations, results, transcripts, or company updates for the requested periods.
3. Inspect `complete_result`, `truncated`, and `truncation_policy`. Never treat a truncated inventory as exhaustive.
4. Search one bounded fiscal period and relevant document types at a time with `search_company_documents`.
5. Inspect cited segment-reporting passages and tables with `get_document_chunks`.
6. Extract only values explicitly present in the retrieved evidence. Preserve the company's exact segment names, period, currency, unit, consolidated or standalone scope, continuing or discontinued operations, and any restatement note.
7. Treat the resulting table as model-derived from cited company-document passages, not as a structured segmentation dataset.
8. Do not combine renamed, regrouped, or differently defined segments without explaining the mismatch.
9. Prefer company-reported percentages. Calculate a share or change only when every operand is present in cited evidence. Show the formula and label the result as calculated from reported figures.
10. Never interpolate missing periods, backfill unavailable values, derive an undisclosed residual, or calculate a mix shift from incomplete operands.
11. When periods are not comparable, present them separately and explain why.

## Public answer

Use these sections:

1. **Reported segmentation table**.
2. **Observed changes** — only source-stated or transparently calculated changes.
3. **Comparability notes** — definitions, units, basis, restatements, and missing periods.
4. **Coverage limitations** — unavailable or truncated document inventory.
5. **Sources**.

Suggested table:

| Period | Reported segment | Reported revenue | Share of total | Reporting basis | Source |
|---|---|---:|---:|---|---|

Do not require a document title when the returned evidence does not supply one. A citation may use the returned document type, fiscal period, page, and URL.

## Monetary units and currency conversion

- Prefer Indian rupees crores (`₹ crore`) for monetary values in tables, comparisons, calculations, and summaries.
- Convert reported INR scales exactly: ₹1 lakh = ₹0.01 crore; ₹100 lakh = ₹1 crore; ₹1 million = ₹0.1 crore; ₹10 million = ₹1 crore; ₹1 billion = ₹100 crore.
- Preserve the source's reported amount when it is in another currency, followed by the estimate in brackets: `US$X million (≈₹Y crore)`.
- Use the best defensible period-appropriate FX rate: transaction-date rate for dated events, period-end rate for point-in-time balances, and period-average rate for revenue, costs, cash flow, or other period flows.
- Prefer an exchange rate stated in the company document. Otherwise use a reputable retrieved FX source. State the rate, date or period, source, and formula: `foreign-currency amount × INR per foreign-currency unit ÷ 10,000,000 = ₹ crore`.
- Prefix converted figures with `≈` and use sensible precision; do not imply more accuracy than the FX input supports.
- Never invent an exchange rate. If no defensible rate is available, retain the original currency and state that an INR-crore estimate could not be produced.

## Sources, citations, and boundaries

- Do not mention tool names, call order, arguments, document identifiers, schemas, or retrieval narration in the public answer.
- Use only returned document URLs, fiscal periods, document types, and page numbers. Do not invent titles or repair missing links.
- Attach citations to each reported figure or tightly grouped set of figures from the same passage.
- Label calculations as model calculations; citations support their inputs, not the calculation itself.
- State when the available evidence does not support a requested total, trend, or comparison.
- Do not provide trading instructions or personalized investment advice.
Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package author
Bull AI

Package observed Sep 30, 2026.

Technical details
First seen
Sep 30, 2026 · 22:02 UTC
Last seen
Oct 1, 2026 · 18:00 UTC
Collection status
Collected

plugin_asdk_app_6a7762af20c881919eadbba72de11a09

Download plugin data (JSON)