FactSet AI-Ready Data
FactSet Model Context Protocol (MCP) is an open, API-based standard designed to seamlessly connect financial data, analytics models, and applications across different platforms. By enabling smooth interoperability, MCP empowers investment teams to easily share insights, streamline workflows, and enhance collaboration regardless of their tools or technology stacks. With MCP, firms can integrate new solutions efficiently, drive innovation, and maximize the value of their financial operations—ensuring consistent, context-rich decision-making throughout the investment process.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Institutional Financial Data & Equity Research Platforms
- Secondary Subcategories
- Institutional Financial Data & Equity Research Platforms
- Brand
- FactSet
- Access
- Account required
- First tracked
- 2026-06-10
- Tool count
- 20
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is visible.
ChatGPT Plugin Discoverability Score
ChatGPT organic discovery is not live yet
FactSet AI-Ready Data is tracked in the ChatGPT Plugin registry. Public organic-discovery measurement is not live for ChatGPT yet, so there is no score to publish today.
Get notified when your score goes live
Enter your work email and we’ll notify you when ChatGPT Plugin organic discovery scoring launches.
No spam. Unsubscribe any time.
Competing in ChatGPT Institutional Financial Data & Equity Research Platforms
View CategoryHow the Discoverability Score works
Organic discovery scoring for FactSet AI-Ready Data on ChatGPT is not live yet. The score will use measured agent conversations when it launches.
Organic discovery scoring is pending. Your Plugin score will appear on this scale when measurement goes live.
FoundDiagnostic
Whether Claude found your Plugin in connector search. It must be Found before it can reach the picker, but the score counts picker appearances—not search results.
PickedMain score
How often your Plugin appeared in the picker, or Claude invoked it directly, across contested conversations. This percentage is the Discoverability Score; the headline number is rounded.
PositionedDiagnostic
What position your Plugin appeared in when it was shown in the picker. This shows prominence, but it does not affect the score.
20 tools agents can invoke
FactSet Events Tool - Comprehensive corporate calendar event data. **CRITICAL**: MAXIMUM 365-DAY SPAN between startDateTime and endDateTime (calculated to the second, not calendar days). The API enforces: (endDateTime - startDateTime) <= exactly 365 days (31,536,000 seconds). The difference between start and end dates must not exceed 365 days. Make sure startDateTime and endDateTime are always set to 00:00:00 (midnight) instead of 23:59:59 to stay within limit. For future earnings release use ProjectedEarningsRelease. Examples: - startDateTime='2024-01-01T00:00:00Z', endDateTime='2024-12-31T00:00:00Z' PASS (exactly 365 days) - startDateTime='2024-01-01T00:00:00Z', endDateTime='2024-12-31T23:59:59Z' FAIL (365 days + 23:59:59 - FAILS) - startDateTime='2024-01-01T00:00:00Z', endDateTime='2025-12-31T23:59:59Z' FAIL (730 days - FAILS) **WHEN TO USE THIS TOOL:** - Earnings calls, investor meetings, conference schedules, corporate actions - "When is [company]'s earnings call?", "Upcoming events for [company]", "[Company] event calendar" - "Earnings schedule for [companies]", "Investor meetings this week/month", "Recent event changes" **CRITICAL: For queries like "When was [company]'s last earnings call?", use this tool BEFORE web search.** **DATA COVERAGE & SCOPE:** - Global corporate event calendar from November 1st, 2022 onwards - Earnings calls, investor meetings, conferences, corporate actions - Historical and future events (up to 365 days ahead) - Real-time schedule updates and modifications **EVENT TYPES:** Earnings, ConfirmedEarningsRelease, ProjectedEarningsRelease, SalesRevenueCall, SalesRevenueRelease, GuidanceCall, AnalystsInvestorsMeeting, ShareholdersMeeting, Conference, SpecialSituation, Split, Dividend **UNIVERSE TYPES:** - Tickers (recommended): Individual symbols, e.g. ['AAPL-US', 'MSFT-US'] - Index: Market index constituents, e.g. ['SP50'] - Etf: ETF holdings, e.g. ['SPY-US'] - AllCompanies: All available companies (use sparingly); symbols must also be 'AllCompanies' **DATE HANDLING — Two mutually exclusive approaches:** Option A (DateTime range): - startDateTime + endDateTime required together (ISO 8601 UTC, max 365 days) - Minimum: 2022-11-01T00:00:00Z | Format: YYYY-MM-DDTHH:MM:SSZ - Example: start='2024-01-01T00:00:00Z', end='2024-12-31T00:00:00Z' Option B (lastModifiedWithin): - SixHours/TwelveHours/Today/TwoDays/OneWeek/OneMonth - Returns events modified in period + scheduled within 45 days **LIMITATIONS:** - 365-day max date range per request; historical data from November 2022 only; future events max 365 days ahead - Contact info and webcast links may not be available for all events
Perform advanced financial screening on company data across multiple content sets (Factset Fundamentals, Factset Global Prices, Factset Entity, FactSet Estimates). Recommended workflow: Fields → Distinct Count (if needed) → Search. Operations: 1. **Fields** - Get available fields. Start here to discover all available fields for screening. 2. **Distinct Count** - Get enumeration values for a field to understand valid filter values. Supports pagination via limit (default 20, max 500) and offset (default 0). Use after Fields to explore enum field values before building filters. Call Fields endpoint to see the complete list of distinct-count supported fields. 3. **Search** - Search records matching filter criteria across content sets with sorting and pagination. Supports pagination via limit (default 20, max 500) and offset (default 0). Call Fields endpoint first, then optionally Distinct Count for enum fields, before building your search query. ## Date Specifications Use ONE of these three approaches per criterion: **Single Date (Point-in-Time Snapshot)** - Use `date` field: - Absolute: '2025-05-28', '5/2025', '2016/3F' (fiscal quarter), '2016' (fiscal year) - Relative: '-1AY' (1 year ago), '-1M' (1 month ago), '0M' (latest month-end) - When: Current snapshot, specific period, historical lookback **Date Range with Aggregation** - Use `dateRange` field with period + operation: - Periods: daily, weekly, monthly, quarterly, semi-annual, year-to-date, yearly, last-twelve-months - Operations: AVG, MAX, MIN, SUM - Example: {startDate: '-12M', endDate: '0M', period: 'monthly', operation: 'AVG'} - When: Trends, averages, rolling metrics across time windows **Estimate Period** - Use `estimatePeriod` field (Factset Estimates only): - Annual: '1' (current year), '2' (next year), '2025' (specific fiscal year) - Quarterly: '1'-'5' depending on the estimate type - When: Forward-looking estimates, consensus forecasts **ContentSet & Date Compatibility:** - Factset Fundamentals: Use `date` (single) or `dateRange` (time-series) - Factset Estimates: Use `estimatePeriod` for forecasts OR `date` for historical snapshots - Factset Entity: Typically no date needed (non-temporal data) **Common Mistakes to Avoid:** - Do NOT use both `date` and `dateRange` on the same criterion - Do NOT use `estimatePeriod` with `dateRange` (mutually exclusive) - Use relative dates ('-1AY') for rolling/periodic queries without hardcoding dates - Use aggregation (period + operation) when comparing metrics across different time buckets
FactSet Debt Capital Structure Tool - Analyze debt structure, instruments, and liquidity for public companies. **WHEN TO USE:** This is the authoritative source for a company's debt figures. Prefer this tool over the general fundamentalstool for any question about short-term debt, long-term debt, gross/total debt, net debt, revolvers, term loans, bonds, secured/unsecured or seniority breakdowns, rate type (fixed/floating), or facility liquidity. **ROUTING BY QUERY TYPE:** - 'summary' (/details-summary): For SNAPSHOT of debt totals at a specific date → "debt totals on 2024-12-31", "Q2 2024 short-term vs long-term debt", "annual debt summary" → Requires: ids + start_date + periodicity (ANN or QTR only) - 'details' (/details): For INDIVIDUAL DEBT INSTRUMENTS with seniority, coupon, maturity over time → "list all bonds", "show instruments by seniority", "get instrument details with history" → Requires: ids + periodicity (ANN or QTR) + date (YYYY-MM-DD) - 'totals' (/dcs-totals): For SPECIFIC METRICS OVER TIME with flexible frequency → "total debt trend 2022-2024", "monthly net debt", "quarterly short-term debt" → Requires: ids + start_date + metrics + frequency (D/W/AM/AQ/AY). end_date optional. - 'liquidity' (/liquidity): For REVOLVER/CREDIT FACILITY DETAILS AND AVAILABILITY → "available revolver capacity", "borrowing base limits", "short-term liquidity" → Requires: ids + start_date + metrics + term (SHORT_TERM or LONG_TERM) **DATE HANDLING (applies to start_date for summary/liquidity and date for details):** These are POINT-IN-TIME as-of dates. Map the user's phrasing to the reporting-period END date - do NOT use January 1st or a range start for a snapshot: - "year-end 2025" / "FY2025" / "fiscal year 2025" / "annual 2025" / "entering 2026" → 2025-12-31, periodicity ANN - "Q1 2025" → 2025-03-31, "Q2 2025" / "mid-2025" / "H1 2025" → 2025-06-30, "Q3 2025" → 2025-09-30, "Q4 2025" → 2025-12-31 (with periodicity QTR) - "as of <date>" → that exact date - "right now" / "current" / "currently" / "latest" / "available today" → today's date For 'totals' (a time series), start_date is the RANGE START; for "over the last N years" use N years before today as start_date and today as end_date. **PERIODICITY:** ANN for annual / year-end / full-year requests; QTR only for a named quarter or explicit quarter-end. ONLY ANN or QTR are accepted (never LTM, SEMI, etc.). For sub-annual series (daily/weekly/monthly) use 'totals' with frequency. **LIQUIDITY METRICS (important):** Use the generic total_revolver_amount_avail_debt for revolver availability and set the `term` parameter (SHORT_TERM or LONG_TERM) to select the short-term vs long-term view. Do NOT swap in total_st_revolver_amount_avail_debt / total_lt_revolver_amount_avail_debt just because the user says "short-term" or "long-term" - keep the generic metric and change `term` instead. Add total_st_borrowing_base_debt when borrowing base is requested. **METRIC SELECTION (totals):** - For convertible debt amounts use total_convertible_debt (not total_convertible_flag_debt). - total_perpetual_flag_debt / total_non_recourse_flag_debt / total_defaulted_flag_debt are the only metrics for those categories (perpetual, non-recourse/asset-backed/project, defaulted). - Do NOT call FactSet_Metrics to look up metric codes for calling this tool; the codes above are standardized. **BATCHING:** When comparing multiple companies, pass all identifiers in a single call (e.g. ids=['BA-US','LMT-US']) rather than making one call per company. **CURRENCY / FX:** This tool does not take a currency parameter and always returns values in each company's native reporting currency. If the user asks for figures in another currency (e.g. euros, pounds), retrieve the values here and separately call FactSet_ForeignExchangeRates for the appropriate pair (e.g. ids=['USDEUR'], data_type=spots) over the same dates, then convert. Do not attempt currency conversion within this tool. **DATA AVAILABILITY:** Historical back to 2006. No interim/most-recent endpoint: for the latest data use 'details' or a snapshot with the most recent date available (today's date for "current" requests).
FactSet Entity Tool - Comprehensive entity reference and relationship data. **WHEN TO USE THIS TOOL:** - Entity identification and reference information (supports both public and private identifiers) - Ultimate parent and credit parent relationships - Corporate structure and subsidiary analysis - Related securities (equity and debt instruments) **ENTITY REFERENCE (/entity-references):** Use Case: Entity profiles with parent relationships and business details Returns: Company name, Ultimate Parent ID & name, Credit Parent ID, parent equity ID, entity type flags, website, incorporation details, country/risk info, business description, contact info, headquarters address, investor relations info Best For: Entity identification, parent company research, corporate structure analysis Example: "What is Apple's ultimate parent?" → data_type='entity_reference', ids=['AAPL-US']
Fetch analyst estimates, consensus, segments, guidance, ratings, and surprise data. **CRITICAL PIT RULE:** For historical estimates, startDate AND endDate are ALWAYS required. Omitting both returns only the most recent snapshot — NOT Point-in-Time data. **WHEN TO USE THIS TOOL:** - Analyst estimates, forecasts, or consensus data - Forward-looking metrics (EPS, revenue, EBITDA forecasts) - Analyst ratings and buy/hold/sell recommendations - Earnings surprise (actual vs estimate beat/miss) - Segment-level estimates (product/business lines, geographic regions) — consensus across analysts - Company guidance and projections **DATA COVERAGE:** 16,000+ companies, 90+ countries. History from 1999 (Europe 1997). Consensus window: 100 days. **CRITICAL:** Estimates metrics are NOT prefixed with FF_ (use SALES, EPS, PRICE_TGT). Fundamentals use FF_ prefix. Call the metrics endpoint first if unsure. **ENDPOINTS (select via estimate_type):** 1. 'consensus_fixed' — Forecasts for specific fiscal periods. Use fiscalPeriodStart/End (YYYY or YYYY/FQ). CRITICAL: Cannot mix with relativeFiscal params. 2. 'consensus_rolling' — Forecasts for relative periods (FY1, next year). Use relativeFiscalStart/End. CRITICAL: relativeFiscalEnd must be >= relativeFiscalStart. 3. 'surprise' — Actual vs estimate comparison. startDate+endDate REQUIRED. Returns surpriseAmount, surprisePercent, before/after values. 4. 'ratings' — CONSENSUS buy/hold/sell counts. For rating trends add startDate/endDate. No metrics. Returns buyCount, holdCount, sellCount. 5. 'segments' — CONSENSUS segment estimates by product/geography. DEFAULT for "segment revenue", "operating segments", "business line/region" queries. Returns all segments automatically. segmentType=BUS/GEO. Use relativeFiscalStart/End or fiscalPeriodStart/End. 6. 'guidance' — Company-provided forward guidance. Specify periodicity (ANN=fiscal year, QTR=quarterly). Returns guidanceMidpoint, guidanceLow, guidanceHigh. **SPECIAL CASE — PRICE_TGT:** Use consensus_rolling with relativeFiscalStart=0, relativeFiscalEnd=0. For single-date snapshot, set startDate=endDate. Do NOT use frequency with single-date snapshots. **DATE HANDLING:** - consensus_fixed/rolling, segments, guidance, ratings: startDate+endDate optional (omit for latest; provide both for PIT history) - surprise: startDate+endDate REQUIRED. For most recent, set both to today's date. - CRITICAL: Never provide only one of startDate/endDate. - Literal year/period (e.g. "2025", "Q4 2024", "FY2025") → use fiscalPeriodStart/End. - Relative phrasing ("next fiscal year", "next N years", "FY1", "FY2", "this quarter") → use relativeFiscalStart/End. - CRITICAL: If a call errors, RETRY with the same startDate/endDate/frequency — do NOT drop them. Dropping dates returns only the latest snapshot. **ID LIMITS:** Max 3,000 identifiers. Accepts: ticker (AAPL-US), CUSIP, SEDOL, ISIN, FactSet ID. **METRIC LIMITS:** Max 1 metric per request. NOT USED for ratings. **PERIODICITY vs FREQUENCY:** periodicity is the forecast horizon (which fiscal period analysts estimate); frequency is the sampling density of historical snapshots — it NEVER changes which period is estimated, only how often it is sampled. Example: periodicity=ANN + frequency=AM returns 12 monthly snapshots of the same FY estimate evolving. Use NTMA/LTMA (rolling 12M, no fixed year-end) for valuation multiples; use ANN/QTR for specific-period tracking.
FactSet Fundamentals Tool - Comprehensive financial statements data. **MANDATORY WORKFLOW:** 1. ALWAYS call FactSet_Metrics FIRST before calling FactSet_Fundamentals - no exceptions, even for common metrics 2. Copy the EXACT metric code string(s) returned by FactSet_Metrics into the metrics parameter - do not paraphrase, abbreviate, or infer codes 3. Only after receiving a valid FactSet_Metrics response may you call FactSet_Fundamentals 4. Never call FactSet_Fundamentals with metric codes that were not explicitly returned in the current conversation's FactSet_Metrics response **DO NOT USE THIS TOOL FOR:** - Earnings comparisons to estimates ("beat", "miss", "surprise", "vs estimates") - Analyst forecast comparisons - use FactSet Estimates API instead **PERIODICITY — SET THIS BEFORE EVERY CALL, NO EXCEPTIONS:** - **User specifies a periodicity or fiscal dates** → use exactly that value, no fallback needed. - **User does NOT specify a periodicity or fiscal dates (i.e., "latest" / current data)** → you MUST execute this fallback sequence in order: 1. Call with `periodicity='QTR'` — always start here, no exceptions 2. If QTR returns empty → retry with `periodicity='SEMI'` 3. If SEMI returns empty → retry with `periodicity='ANN'` Return the first non-empty response. Do NOT skip straight to ANN. DO NOT use `periodicity=null`. The schema accepts null but null silently defaults to ANN and will miss quarterly/semi-annual reporters — always supply an explicit value. **DATES - CRITICAL:** - For queries with "last X" or temporal keywords: MUST include BOTH fiscalPeriodStart and fiscalPeriodEnd - Calculate: start = today - X period, end = today (e.g., "last 4 quarters" = 2025-02-26 to 2026-02-26) - For specific year: BOTH dates required (e.g., 2024 = 2024-01-01 to 2024-12-31) - Latest/current data ONLY: Omit both date parameters - Format: YYYY-MM-DD ONLY; never use '2024' or '2024/1F' **PERIODICITY:** - Options: ANN, ANN_R, QTR, QTR_R, SEMI, SEMI_R, LTM, LTM_R, LTMSG, LTM_SEMI, LTM_SEMI_R, YTD **METRICS:** Use FF_* codes (validate via FactSet_Metrics first); max 1,600 per request **EXAMPLES:** - Revenue (last 4 quarters): ids=['AAPL-US'], metrics=['FF_SALES'], periodicity='QTR', fiscalPeriodStart='2025-02-26', fiscalPeriodEnd='2026-02-26' - Balance sheet: ids=['IBM-US'], metrics=['FF_ASSETS', 'FF_LIAB', 'FF_SH_EQ'], periodicity='ANN' - Pre-calculated ratios: Check FactSet_Metrics for FF_DEBT_EQ, FF_ROE, FF_CURR_RATIO, etc. first **PRE-CALCULATED RATIOS (CHECK FIRST):** FF_DEBT_EQ, FF_CURR_RATIO, FF_QUICK_RATIO, FF_ROE, FF_ROE_DILUTED, FF_ROA, FF_EBIT_OPER_ROA, FF_ASSET_TURN, FF_PE, FF_ENTRPR_VAL_EBITDA_OPER, FF_EBIT_OPER_MGN, FF_EBITDA_OPER_MGN, FF_CCE_END **AUDIT CARD:** Each data item includes audit.card.link with verification URL. Display as: **[value](link)** - Make each number a clickable audit link. **RETURNS:** JSON with requestId, fsymId, metric, fiscalPeriod, fiscalYear, value, audit.card.link **ERROR HANDLING:** Invalid params/dates/metrics → Detailed error message with guidance
FactSet Funds and ETF Tool - Comprehensive mutual funds and ETF data analysis. **WHEN TO USE THIS TOOL:** - Fund performance, returns, pricing (NAV) - Fund composition, holdings, and portfolio analysis - Fund costs, fees, expense ratios, and tax information - Fund flows, AUM, yields, distributions, and risk metrics - ETF scoring, analytics, geographic/sector/asset allocation PREFER this tool over FactSet_GlobalPrices for fund/ETF queries (SPY, QQQ, VOO, VTI, etc.). Geographic revenue: use data_type='portfolio_analytics' with analyticsType='GEOGRAPHIC_REVENUE'. **DATA COVERAGE:** US-listed and international mutual funds and ETFs (SPY, VOO, QQQ, VTI, etc.). **ENDPOINTS (select via data_type):** 1. 'summary' — Basic reference data, country domicile, share class info. 2. 'prices' — Fund NAV data. startDate REQUIRED, endDate optional. 3. 'returns' — Time-series NAV returns. startDate+endDate REQUIRED. 4. 'returns_range' — Period return. startDate+endDate REQUIRED. 5. 'returns_snapshot' — Pre-defined horizons (YTD/1Y/3Y/5Y). date REQUIRED. 6. 'aum' — Assets under management. Dates optional. 7. 'flows' — Net inflows/outflows. Dates optional. 8. 'distributions' — Dividend/distribution history. Dates optional. 9. 'yields' — SEC yield (gross and net). 10. 'costs_fees' — Expense ratios, management fees, load fees. 11. 'taxes_and_risks' — Tax exposure, regulatory compliance. 12. 'risk_analytics' — Credit/rate risk analytics. riskType: CREDIT_RISK or RATE_RISK. 13. 'segments_and_structure' — Fund structure and classification. 14. 'portfolio_statistics' — Portfolio metrics. 15. 'portfolio_analytics' — Asset/sector/geographic/market cap breakdown. 16. 'financials_key_items' — Financial key items. 17. 'trading' — Trading and liquidity characteristics. 18. 'scoring' — ETF scores, grades, analyst recommendations. **DATE HANDLING:** - prices: startDate REQUIRED, endDate optional - returns/returns_range: startDate+endDate BOTH REQUIRED - returns_snapshot: date REQUIRED (not startDate/endDate) - aum/flows/distributions: dates optional - All others: NO date params **FIELD CATEGORIES — PICK CORRECTLY:** **AUM Fields** (fund size in $): fundLevelAUM, shareClassAUMReported, shareClassAUMActual → endpoint='/aum' Example: "How much AUM does VOO have?" **Performance/Return Fields** (price % gain): yearToDate, oneYear, oneMonth, return → endpoint='/returns/snapshot' (or '/returns' for single-date) Example: "What was the YTD return for SPY?" **Yield Fields** (annual income %): sec30DayYieldNet, sec30DayYieldGross → endpoint='/yields' Example: "What's the current SEC yield for HYG?" — NOT /returns **ID LIMITS:** Max 10 per request. Accepts: ticker (SPY, VOO), ISIN, CUSIP, FactSet ID. International: append -GB, -CA, -DE, etc. (e.g., XIU-CA). **CRITICAL PERCENTAGE INTERPRETATION:** Percent values are decimal fractions (0.05 = 5%). Multiply by 100 before displaying. Affected: costs_fees (medianTrackingDifferencePercent, maxUpsideDeviationPercent, maxDownSideDeviationPercent), trading (averageSpreadPercent, marketHoursOverlapPercent).
Perform advanced financial screening on funds and ETFs. Recommended workflow: Fields → Distinct Count (if needed) → Search. Operations: 1. **Fields** (data_type='fields') - Get available fields for specified content sets. IMPORTANT: contentSets (array) is required. Example: ['Factset Funds']. 2. **Distinct Count** (data_type='distinct_count') - Get enumeration values for a field to understand valid filter values. REQUIRED: contentSet (singular string), fieldName. Supports pagination via limit/offset. Example: contentSet='Factset Funds', fieldName='assetClass'. Use this to discover enum field values before building filters. 3. **Search** (data_type='search') - Search records matching filter criteria across content sets with sorting and pagination. REQUIRED: contentSets (array). Example: ['Factset Funds']. Optional: filters, sort, limit (default 20, max 500), offset (default 0). NOTE: Search results return identifiers only (ticker_region, instrument_name, fsym_id, fsymId). Numeric field values (expenseRatio, shareClassAUMReported, etc.) are NOT returned. To retrieve metric values for matched funds, use fsym_id with a separate data fetch API. IMPORTANT parameter distinctions: - data_type='fields' → use contentSets (array) - data_type='distinct_count' → use contentSet (singular string) + fieldName - data_type='search' → use contentSets (array) Filter criteria (search operations): Each criterion MUST include a contentSet field matching the content set the field belongs to (e.g., 'Factset Funds'). Example filter structure: [ { "criteria": [ {"contentSet": "Factset Funds", "fieldName": "assetClass", "operator": "EQ", "values": ["Fixed Income"]}, {"contentSet": "Factset Funds", "fieldName": "shareClassAUMReported", "operator": "GT", "values": ["10000000000"]} ] } ] Operators: EQ, NE, CT, NOT_CT, IN, NOT_IN, LT, LTE, GT, GTE. All values must be strings, including numeric comparisons. IMPORTANT: Use the 'fields' endpoint first to discover each field's unit type (basis points, percent, string, ISO codes, etc.). For enum fields, use distinct_count to discover valid values before filtering.
FactSet GeoRev Tool - Comprehensive geographic revenue exposure analysis. **WHEN TO USE THIS TOOL:** - Geographic revenue, revenue by region/country, or geographic exposure - "Where does [company] make its revenue?" or "geographic breakdown" - Revenue exposure analysis by region or country - Geographic risk assessment (geopolitical, macroeconomic impacts) - Portfolio-level geographic exposure aggregation - Comparing revenue footprints vs. country of domicile - Questions about revenue in specific countries or regions Do NOT use for PRODUCT/BUSINESS segment data - use FactSet Fundamentals Segments instead. **DATA COVERAGE:** 49,000+ companies, ETFs, mutual funds globally (Russell 3000 + MSCI ACWI). U.S. from 2003, Non-U.S. from 2007. ~300 countries. Fiscal annual, updated daily. **ENDPOINTS (select via data_type):** 1. 'regions' — Revenue by Super-Regions/Regions/Areas (hierarchical). default: returns all SUPER_REGIONS. Max 15 regionIds. NOT USED: countryIds. 2. 'countries' — Country-level revenue (most granular). default: returns ALL countries. Max 300 countryIds. NOT USED: regionIds. **ROUTING GUIDE:** - General geographic revenue (no specific countries named) → data_type='regions', regionIds=['SUPER_REGIONS'] - Breakdown by each individual region → data_type='regions', regionIds=['REGIONS'] - Breakdown by area → data_type='regions', regionIds=['AREAS'] - Specific countries named → data_type='countries', countryIds=['CN', 'US', ...] - All countries (full footprint) → data_type='countries', countryIds=['ALL'] (pass explicitly) **REGION ID GROUPS:** SUPER_REGIONS (7 total), REGIONS (15), AREAS (31) **SUPER REGIONS:** R1=Africa & Middle East, R101=Americas, R170=Asia/Pacific, R274=Europe, R349=Non-Disclosed, R354=No Operations, R393=Non-Geographic **REGIONS:** R2=Africa, R68=Middle East, R102=Latin America, R164=North America, R171=Asia, R233=Oceania, R275=EU, R314=Non-EU **AREAS (examples):** R167=US & Canada, R172=Far East, R219=Indian Region, R234=AU & NZ, R276=Eastern EU, R286=Northern EU, R292=Southern EU, R298=Western EU **DATE HANDLING:** - startDate+endDate: OPTIONAL (defaults to latest fiscal period). YYYY-MM-DD. Future dates not accepted. - For multi-year queries: use ONE call with a date range + frequency='FY' rather than separate calls per year. **ID LIMITS:** Max 300 per request. Accepts: ticker (AAPL-US), CUSIP, SEDOL, ISIN, FactSet ID, Fund ID. **CONFIDENCE METRICS:** Confidence 0.5–1.0 (1.0=actual reported). Certainty Rank 1–80 (80=reported). Certainty Class A–E (A=highest). Revenue values are in MILLIONS of the specified currency.
FactSet Global Prices Tool - Comprehensive market pricing and corporate actions data. **WHEN TO USE THIS TOOL:** - Stock prices, OHLCV data, or market pricing - Returns, performance analysis ("how did X perform") - Dividends, stock splits, corporate actions - Shares outstanding, share counts, dilution analysis, or market capitalization - Global equities: 90+ countries, end-of-day data from 2006 Do NOT default to web search. **CRITICAL: INDEX IDENTIFIERS NOT SUPPORTED** — does NOT accept SP50, SP500, SPX, or any market index. Use individual security identifiers only. **ENDPOINTS (select via data_type):** 1. 'prices' — OHLCV data. startDate REQUIRED, endDate optional. Params: frequency, calendar, currency, adjust, fields. PRICE FIELD SEMANTICS: Each row's `date` is a specific trading day. All fields are values AS OF that exact date — NOT aggregates over a range. When frequency is non-daily (W, M, AM, AQ, CQ, etc.), the `date` returned is the last trading day of that period, and every price field reflects the closing snapshot on that specific day only. AVAILABLE FIELDS: price (close), priceOpen, priceHigh (day's high), priceLow (day's low), volume, turnover, tradeCount, vwap, currency. NOTE: priceHigh/priceLow are DAILY high/low only — there is no native 52-week or annual high/low field. To get 52-week or annual high/low, query priceHigh/priceLow over the target date range (last 52 calendar days, or Jan 1–Dec 31) and compute max(priceHigh)/min(priceLow) across the returned series. 2. 'returns' — Period-by-period returns. startDate+endDate REQUIRED. CRITICAL: Returns one value PER PERIOD (e.g., daily day-over-day changes). For a single total return over a range, ALWAYS use 'returns_range'. frequency: match interval to question — actual (D/AM/AQ/AY) for exact date ranges, calendar (M/CQ/CY) for standard periods. Use for Performance analysis, portfolio returns, benchmark comparison 3. 'corporate_actions' — Dividends, splits, spinoffs, rights. Dates optional. Use eventCategory to filter. 4. 'annualized_dividends' — Current IAD only. No date params. Max 50 IDs. 5. 'shares_outstanding' — ALWAYS use for share count history, shares outstanding, periodic shares counts, and dilution analysis. NOT for market cap — use 'market_value' instead. 6. 'market_value' — Current market cap in USD millions. No date/frequency/currency params. Max 50 IDs. CRITICAL: Use this (NOT shares_outstanding) for ANY market cap or company size question. 7. 'returns_range' — Total return over a specific date range. startDate+endDate REQUIRED. CRITICAL: Returns ONE value per security. ALWAYS use for a single value over a specified date range. Use 'returns' for period-over-period breakdowns. **DATE HANDLING — Always calculate date ranges from today.** - prices: startDate REQUIRED, endDate optional - returns: startDate+endDate BOTH REQUIRED; anchored periods → D/AM/AQ/AY; calendar periods → M/CQ/CY; YTD → startDate=Jan 1 of current year - returns_range: startDate+endDate BOTH REQUIRED - corporate_actions: both optional (omit for all events) - annualized_dividends, market_value: NO date params - shares_outstanding: both optional **ID LIMITS:** 500 for single-day prices; 50 for all other/multi-day requests. Accepts: AAPL-US, MSFT-US (ticker-region), CUSIP, SEDOL, ISIN, FactSet Permanent IDs. **RESPONSE FIELDS BY data_type:** - **prices**: `fsymId` (string | null): FactSet Regional Security ID; `date` (string | null): Trade date (YYYY-MM-DD); `currency` (string | null): Price currency ISO code; `price` (number | null): Closing price; `priceOpen` (number | null): Opening price; `priceHigh` (number | null): Daily high price; `priceLow` (number | null): Daily low price; `volume` (number | null): Shares traded; `turnover` (number | null): Total trade value for the day; `tradeCount` (number | null): Number of trades; `vwap` (number | null): Volume-weighted average price. - **returns**: `fsymId` (string | null): FactSet Regional Security ID; `date` (string | null): Return observation date (YYYY-MM-DD); `currency` (string | null): Return currency ISO code; `totalReturn` (number | null): Calculated total return for the period; `requestId` (string | null): Echoed request identifier. - **returns_range**: `fsymId` (string | null): FactSet Regional Security ID; `startDate` (string | null): Start date of the return range; `endDate` (string | null): End date of the return range; `totalReturn` (number | null): Total return over the full date range (one value per security); `currency` (string | null): Return currency ISO code; `requestId` (string | null): Echoed request identifier. - **corporate_actions**: `fsymId` (string | null): FactSet Regional Security ID; `effectiveDate` (string | null): Ex-date of the event; `eventTypeCode` (string | null): Character code denoting the event type; `eventTypeDesc` (string | null): Description of the event type; `eventId` (string | null): Unique event identifier; `announcementDate` (string | null): Date the event was publicly announced; `recordDate` (string | null): Record date of the event; `payDate` (string | null): Payment date of the event; `requestId` (string | null): Echoed request identifier; `currency` (string | null): [Dividends] Currency of the distribution amount; `amtDefNetGrossIndicator` (string | null): [Dividends] Whether default amount is gross or net (G/N); `amtDefTradingAdj` (number | null): [Dividends] Split-adjusted default amount in trading currency; `amtGrossTradingAdj` (number | null): [Dividends] Split-adjusted gross amount in trading currency; `amtNetTradingAdj` (number | null): [Dividends] Split-adjusted net amount in trading currency; `dividendStatus` (string | null): [Dividends] Active, Cancelled, Postponed, or Partial Information; `dividendFrequencyCode` (string | null): [Dividends] Dividend frequency code; `taxRate` (number | null): [Dividends] Domestic withholding tax rate for a resident individual; `adjFactor` (number | null): [Distribution/Split] Price adjustment factor for the event; `adjFactorCombined` (number | null): [Distribution/Split] Combined adjustment factor for all events that day; `distPct` (number | null): [Distribution/Split] Distribution percentage; `distOldTerm` (number | null): [Distribution/Split] Shares held component of distribution ratio; `distNewTerm` (number | null): [Distribution/Split] Shares received component of distribution ratio; `shortDesc` (string | null): [Distribution/Split] Textual description of the event. - **annualized_dividends**: `fsymId` (string | null): FactSet Regional Security ID; `annualizedDividend` (number | null): Annualized value of the latest reported dividend (excludes cancelled dividends); `currency` (string | null): Dividend currency ISO code; `requestId` (string | null): Echoed request identifier. - **shares_outstanding**: `fsymId` (string | null): FactSet Regional Security ID; `date` (string | null): Observation date (YYYY-MM-DD); `sharesOutstanding` (number | null): Split-adjusted shares outstanding; `requestId` (string | null): Echoed request identifier. - **market_value**: `fsymId` (string | null): FactSet Regional Security ID; `marketValue` (number | null): Current market cap in USD millions; `currency` (string | null): Always USD; `requestId` (string | null): Echoed request identifier.
FactSet Mergers & Acquisitions Tool - M&A transaction data and deal analytics. **WHEN TO USE THIS TOOL:** - Mergers, acquisitions, or M&A transactions - Company acquisition history ("Who did [X] acquire?") - Deal values, premiums, and transaction terms - Public company takeover analysis - Market-wide deal screening by date range **DATA COVERAGE:** 60,000+ global M&A transactions; public targets; all values in USD. **ENDPOINTS (select via data_type):** 1. 'deals_by_company' — Deals involving specific companies (buyer/seller/target). ids+startDate+endDate REQUIRED. Max 500 company IDs. 2. 'public_targets' — Acquisitions of publicly traded companies. status+startDate+endDate REQUIRED. No IDs needed. 3. 'deal_details' — Deal terms, advisors, premiums, multiples. ids (deal IDs) REQUIRED. Max 100 deal IDs. NOTE: Obtain deal IDs from deals_by_company or public_targets first. **DATE HANDLING:** - deals_by_company: startDate+endDate REQUIRED. Max 1-year window per request. - public_targets: startDate+endDate REQUIRED. Max 1-year window per request. - deal_details: NO date params. For multi-year analysis, make sequential yearly requests (e.g., 2015-01-01→2015-12-31, then 2016-01-01→2016-12-31). **ID LIMITS:** deals_by_company: Max 500 company IDs. deal_details: Max 100 deal IDs. public_targets: No ID limit. Accepts: ticker (IBM-US), CUSIP, SEDOL, ISIN, FactSet ID; deal IDs (e.g., 4143886MM).
FactSet Metrics Tool - Semantic vector search for financial metric codes. **WHEN TO USE THIS TOOL:** - Find metric codes before calling Fundamentals or Estimates (when exact codes are unknown) - Search by natural language ("profitability ratios", "debt metrics", "EPS") - Explore ontology categories and subcategories - Batch discover multiple related metrics in one call **CRITICAL:** Call this tool BEFORE Fundamentals/Estimates when metric codes are unknown. Use exact codes returned — do not infer or abbreviate. **SEARCH TARGET (target param):** - 'metric' — individual metrics (FF_SALES, EPS, FF_EBITDA). Default. - 'category' — high-level groups (Income Statement, Balance Sheet). - 'subcategory' — mid-level groups (REVENUES, ASSETS, LIABILITIES). **DATA PRODUCTS (data_products param):** - 'fundamentals' — FF_* prefixed codes (FF_SALES, FF_NET_INC, FF_DEBT_EQ) - 'estimates' — unprefixed codes (SALES, EPS, EBITDA, PRICE_TGT) - 'private-companies' — FPC_*/FPE_*/FPD_* codes - Omit to search across all products. **BATCH QUERIES:** text=["revenue", "profitability", "debt"], target="metric", data_products=["fundamentals"], limit=5 **CRITICAL: No hyphens in text queries.** Use spaces: "short term debt" not "short-term debt". Hyphens cause "suspicious patterns" API errors. **RESPONSE KEY FIELD:** properties.metric — the exact code to use in Fundamentals/Estimates calls. Lower distance = better match. **DO NOT USE FOR:** actual financial data retrieval — use Fundamentals or Estimates instead.
FactSet Ownership Tool - Comprehensive holdings, holders, and transactions data. **WHEN TO USE THIS TOOL:** - Fund holdings, portfolio composition, or what funds own - Institutional ownership, insider ownership, or shareholder data - Insider trading activity, executive transactions, or Form 4 filings - Institutional position changes, 13F filings, or "smart money" tracking - Questions like "What does [fund] own?" or "Who owns [stock]?" NOTE: Use data_type='fund_holdings' to retrieve what a fund/ETF holds (its underlying securities). This is distinct from FactSet_FundsETF which covers fund performance, NAV, flows, and analytics — NOT holdings composition. **DATA COVERAGE:** 60,000+ fund portfolios, 50,000 institutions, 400,000 insider records, 110+ countries. From 2006+. **ENDPOINTS (select via data_type):** 1. 'fund_holdings' — Holdings for mutual funds, ETFs, closed-end funds. Max 10 IDs. Note: Security names/tickers reflect the CURRENT security master, not the snapshot date — surface this caveat when returning historical holdings. 2. 'security_holders' — Who owns a security (institutions, funds, insiders, beneficial owners). CRITICAL: Max 1 security per request. RANKING: The topn parameter ranks by position market value ONLY. To rank or sort by ANY other metric (e.g., portfolio weight / % Port, shares held, % outstanding), you MUST set topn='ALL' and sort the returned results client-side — otherwise the default market-value topn filter skews the set before your metric is applied. Use topn=N only when the user ranks by market value. Example: "top 5 institutional holders by Portfolio Weight (% Port)" → topn='ALL', then sort by % Port and take 5. 3. 'insider_transactions' — Executive/director trades from SEC Form 4/5. Max 10 IDs. CRITICAL: startDate+endDate REQUIRED. sharesOwned is per-filing only — NOT the insider's current position; use security_holders with holderType='S' for absolute position. 4. 'institutional_transactions' — Position changes from 13F filings. Max 10 IDs. CRITICAL: startDate+endDate REQUIRED. posChange is a delta, not absolute shares held; use security_holders with holderType='F'/'M' for absolute counts. Optional params: holderType, topNHolders, frequency (M/CQ/CY), periodOfMeasure (1M/3M/6M/12M), currency. DATE PATTERNS: - Regular date range (e.g., "in Q2 2024", "during H2 2020", "full year 2022"): startDate='2024-04-01', endDate='2024-06-30' — use actual range bounds - Rolling N-month window (e.g., "past 6 months", "last quarter position changes"): Set startDate AND endDate to the SAME reference date (today or date you're analyzing), use periodOfMeasure for the window (1M/3M/6M/12M) Set frequency to 'M' (monthly) Example: past 3 months → startDate='2025-03-31', endDate='2025-03-31', periodOfMeasure='3M', frequency='M' **DATE HANDLING:** - fund_holdings, security_holders: date optional (defaults to latest month-end) - insider_transactions, institutional_transactions: startDate+endDate BOTH REQUIRED **ID LIMITS:** Max 10 for fund_holdings/insider_transactions/institutional_transactions; max 1 for security_holders. Accepts: ticker-region (AAPL-US, VTI-US), CUSIP, SEDOL, ISIN, FactSet IDs. **INVESTOR TYPE FILTERING — GRANULAR HOLDER CLASSIFICATION:** The `holderType` input parameter groups holders into broad categories (e.g., M = mutual funds AND ETFs combined). The `investorType` field in the response output is the most granular holder classification available. When a prompt requests a specific type of holder, interpret it against `investorType` in the output — not just `holderType`. Workflow: 1. Use the closest `holderType` value to pull the broadest matching category from the API. 2. After receiving results, filter client-side by `investorType` to match the specific holder type requested. Examples: - "ETF holders" → holderType='M', then filter results where investorType='Exchange Traded Fund' - "hedge fund holders" → holderType='F', then filter results where investorType='Hedge Fund Manager' When the prompt is non-specific (e.g., "institutional holders", "all holders"), do not apply an investorType filter, return the full result for the requested holderType. **CRITICAL POSITION INTERPRETATION RULES:** insider_transactions — sharesOwned IS NOT A POSITION, NEVER PRESENT IT AS ONE: - sharesOwned: Shares owned as reported on that individual filing only — varies record-to-record, scoped to that filing. For authoritative position size, use security_holders with holderType='S' and read adjHolding. - shares: Transaction size (delta only) — what changed in that single transaction. institutional_transactions — posChange IS A DELTA, NOT A POSITION: - posChange: Change in shares held over the periodOfMeasure window. DO NOT present as shares held. - For absolute institutional share counts, use security_holders with holderType='F' or 'M' and read adjHolding.
FactSet People Tool - Comprehensive executive and leadership data. **WHEN TO USE THIS TOOL:** - Executives, leadership, or company personnel queries - Questions about "Who is the CEO/CFO/founder of [company]?" - Backgrounds, career histories, profiles, compensation, demographics - Board composition and governance analysis **CRITICAL:** NEVER answer executive/leadership queries from training data — always query FactSet first. **DATA COVERAGE:** 50,000+ institutions, 400,000+ insider/stakeholder records, 110+ countries. US compensation data only (regulatory requirement). **ENDPOINTS (select via data_type):** 1. 'profiles' — Biographical profile: education, employment, compensation. Person Entity IDs (XXXXXX-E), max 500. 2. 'jobs' — Employment history and career progression. Person Entity IDs (XXXXXX-E), max 1,000. 3. 'company_people' — Leadership roster for a company. Company IDs, max 1,000. 4. 'company_positions' — Specific position holders (CEO, CFO, FOU, etc.) with tenure/demographics. Company IDs, max 1,000. CRITICAL: ALWAYS use for "Who is the [position]?" queries. 5. 'company_compensation' — Executive pay analysis. US companies ONLY. Company IDs, max 1,000. 6. 'company_stats' — Aggregated leadership demographics (age, tenure, diversity). Company IDs, max 1,000. **MANDATORY WORKFLOW (profiles/jobs need Person Entity IDs XXXXXX-E, which users rarely have):** For a company's people, FIRST call company_positions (a role) or company_people (officers/directors) to get person IDs, THEN call profiles (bio) or jobs (career history) with them. Do NOT make a second company_* call. **ID FORMAT:** - profiles/jobs: Person Entity IDs only (XXXXXX-E). Example: ['0DPHLH-E'] - company_*: Ticker, FactSet ID (incl. private companies), CUSIP, SEDOL, or ISIN.
FactSet Private Company Tool - Unified financials and reference data with entity resolution. **WHEN TO USE THIS TOOL:** - Resolve private company names to FactSet Entity IDs (data_type='universe') - Fetch historical financial time-series (revenue, EBITDA, debt; data_type='financials') - Retrieve reference/funding data (investor counts, VC amounts, VC backing; data_type='non_periodic') **DATA COVERAGE:** 50,000+ private companies; financials from 2010-present; global coverage. **ENDPOINTS (select via data_type):** 1. 'universe' — Resolve company names to entity IDs. Required: company_names. Optional: country. 2. 'financials' — Time-series financial data (FPC_* metrics). Required: entity_ids, metrics, start_date. Optional: end_date. 3. 'non_periodic' — Reference data (FPE_*/FPD_* metrics). Required: entity_ids, metrics. Dates ignored. **DATE HANDLING:** - 'universe': Not used. - 'financials': start_date REQUIRED; end_date optional (defaults to latest). - 'non_periodic': Not used. **ID LIMITS:** - Max 25 company names per universe request; Max 3,000 entity IDs per financials/non_periodic request; Max 100 metrics per request. - Rate limit: 10 req/sec, 10 concurrent per user. - Accepts: Entity IDs in XXXXXX-E format (from universe), metric codes (FPC_*/FPE_*/FPD_*). **CRITICAL fpcIndicator (financial data quality):** Each financial value includes fpcIndicator: 0=Actual (filings/releases), 1=Estimated (China ranges), 3=Modeled (peer ML), 4=Computed (tax filings). Interpret values with indicator context. Always indicate this status when displaying metrics. **CRITICAL Entity Matching:** matchFlag may be false even for correct matches. Always verify returned entityName against your search query. **Use FactSet_Metrics tool to discover available metric codes before calling this tool.**
FactSet Private Equity & Venture Capital Tool - Comprehensive PE/VC data. **WHAT THIS TOOL COVERS:** Private equity and venture capital data including funds, general partners (GPs), limited partners (LPs), portfolio companies, transactions (VC rounds, PE deals), M&A activity, and IPO exits. **AUTOMATIC ENDPOINT ROUTING:** This tool routes to 14 different endpoints based on the `data_type` parameter: --- **UNIVERSE (Entity Lookup):** 1. `universe` — Resolve a firm, fund, or portfolio company name to a FactSet Entity ID. - REQUIRED: `name` (the firm/fund/company name to look up) - OPTIONAL: `country` (ISO2 country code to narrow results), `entityType` (filter by entity type) - Returns: List of candidate matches sorted by match quality (best matches first) with: * `entityId` (format 'XXXXXX-E') * `entityName` * `matchFlag` (boolean: true = direct match to query, false = candidate match) - Results are pre-sorted with exact/best matches appearing first — typically use the first result - USE FIRST: Always call this to get FactSet entity IDs before using other data_types - Entity type codes: PVT (Private Company), VEN (Venture Capital Fund), PVF (Private Equity Fund), FAF (Family of Funds), HOL (Holding Company), NPO (Non-Profit), SUB (Subsidiary), JVT (Joint Venture) --- **FUNDS:** 2. `funds` — Core profile and summary for one or more PE/VC funds. - REQUIRED: `ids` (fund entity IDs, format 'XXXXXX-E') - Returns: Fund status, strategy type, vintage year, financial info (amount raised, dry powder), investment criteria (min/max deal size, EBITDA, revenue), fund terms (management fee, carry), features (ESG, co-invest) 3. `funds_portfolio_companies` — List of portfolio companies held by specified funds. - REQUIRED: `ids` (fund entity IDs) - Returns: FactSet entity IDs and names of portfolio companies, investment date, sector 4. `funds_fundraising` — Complete fundraising history (closes) for specified funds. - REQUIRED: `ids` (fund entity IDs) - Returns: Each fundraising close (First, Second, Final, etc.) with close date, amount raised, target amounts, currency 5. `funds_cashflows` — Quarterly cash flow time-series (contributions and distributions) for funds. - REQUIRED: `ids` (fund entity IDs) - OPTIONAL: `startDate` (YYYY-MM-DD), `endDate` (YYYY-MM-DD), `cfType` ('CONTRIBUTION', 'DISTRIBUTION', or 'NAV') - Returns: Date, cash flow type, amount in reporting currency and USD --- **GENERAL & LIMITED PARTNERS:** 6. `general_partners` — Core profile for General Partner (GP) firms. - REQUIRED: `ids` (GP entity IDs, format 'XXXXXX-E') - OPTIONAL: `asOfDate` (YYYY-MM-DD, for AUM data) - Returns: GP name, AUM (with date), investment criteria, ESG focus, public company investment flag 7. `general_partners_funds` — All funds managed by specified GP firms. - REQUIRED: `ids` (GP entity IDs) - Returns: List of fund IDs, names, status (Raising/Investing/Divesting/Liquidated), launch date, amount raised 8. `limited_partners` — Limited partners and their capital commitments to specified funds (via `/limited-partners/funds`). - REQUIRED: `ids` (fund entity IDs, format 'XXXXXX-E') - Returns: LP name, LP entity ID, commit date, commit amount (local currency and USD), fundraising close code --- **TRANSACTIONS:** 9. `transactions` — Detailed data for specific PE/VC transactions by transaction ID. - REQUIRED: `ids` (transaction IDs — INTEGER values, e.g., [1000001, 1000002]) - Returns: Portfolio company, investment type, status, dates, deal size, pre/post-money valuation, funding round, stage, investors (with lead flag, fund used, amount invested), securities used 10. `transactions_search` — Search/filter the full transaction universe by company, stage, and date. - REQUIRED: `ids` (portfolio company entity IDs, format 'XXXXXX-E') - OPTIONAL: `status` ('Pending', 'Cancelled', 'Completed'), `stage` ('Seed', 'Early', 'Late', 'Recap'), `investmentType` ('Venture Capital', 'Growth', 'Corporate', 'Capitalization', 'Angel', 'Crowdfunding', 'Accelerator/Incubator', 'Secondary', 'Undisclosed Round'), `startDate`, `endDate` (YYYY-MM-DD announcement date range), `minAmount`, `maxAmount` (USD transaction amount filter) - Returns: Transaction IDs, portfolio company name, announcement/close dates, total amount (USD), stage, status 11. `transactions_ma_activity` — M&A advisory and investment details for specific transactions. - REQUIRED: `ids` (transaction IDs — INTEGER values) - Returns: Advisors (financial/legal, client type), investments (entry/exit type, deal ID, IPO ID, retaining stake) --- **IPOs:** 12. `ipos` — Detailed IPO data for portfolio company exits by deal ID. - REQUIRED: `ids` (deal IDs — INTEGER values, e.g., [410294, 730294]) - Returns: IPO ID, portfolio company name, ticker, trade date, offer price (local and USD), IPO size (millions), status, announcement/pricing dates 13. `ipos_search` — Search/filter the IPO universe by status, size, and date. - REQUIRED: None (all parameters optional) - OPTIONAL: `status` ('Closed', 'Announced', 'Postponed', 'Cancelled', 'Priced', 'Withdrawn', 'In Registration'), `startDate`, `endDate` (YYYY-MM-DD announcement date range), `minSizeUsd`, `maxSizeUsd` (IPO size filter in USD millions) - Returns: IPO ID, portfolio company name, ticker, trade date, offer price (USD), IPO size, status --- **STRATEGIES:** 14. `entity_strategies` — Detailed investment strategy mandate for a fund or GP. - REQUIRED: `ids` (fund or GP entity IDs, format 'XXXXXX-E') - Returns: Geographic focus (regions, countries, states), sector/industry focus, investment instruments, transaction strategies, control criteria, investor roles --- **TYPICAL WORKFLOWS:** **"What funds does [GP firm] manage?"** 1. Call data_type='universe' with name='[GP firm name]' to get GP entity ID 2. Call data_type='general_partners_funds' with ids=[gp_entity_id] **"Show me details on [fund name]"** 1. Call data_type='universe' with name='[fund name]', entityType=['VEN'] or ['PVF'] 2. Call data_type='funds' with ids=[fund_entity_id] **"Who are the LPs in [fund]?"** 1. Resolve fund entity ID via universe 2. Call data_type='limited_partners' with ids=[fund_entity_id] **"What VC rounds has [company] raised?"** 1. Call data_type='universe' with name='[company name]', entityType=['PVT'] 2. Call data_type='transactions_search' with ids=[company_entity_id] 3. Optionally call data_type='transactions' with the returned transaction IDs for full details **"What IPOs are coming up in biotech?"** → Call data_type='ipos_search' with status='Announced', filter by date range **ID TYPE REFERENCE:** - Fund/GP/Company entity IDs: String format 'XXXXXX-E' (e.g., '001JYM-E', '000BKX-E') → Used by: funds, funds_portfolio_companies, funds_fundraising, funds_cashflows, general_partners, general_partners_funds, limited_partners, transactions_search, entity_strategies - Transaction IDs: Integer values (e.g., 1000001) → Used by: transactions, transactions_ma_activity - Deal IDs: Integer values (e.g., 410294) → Used by: ipos **RETURNS:** - Structured JSON responses per the FactSet PEVC API schema - Entity IDs returned by one endpoint can be passed directly to related endpoints - Error details included per-item in the response data array
FactSet RBICS Tool — Industry classification, revenue breakdown, and tradeNames. **FIRST CHOICE for any industry/sector classification or revenue-by-industry query** — companies, ETFs, and Mutual Funds. Do not default to web search. **ENDPOINTS (select via data_type):** 1. 'entity_focus' — Primary RBICS classification (single sector >50% revenue). Returns L1–L6 IDs/names. Use for: "what industry is X in?", "what does X do?", "X's primary classification". ids REQUIRED; date, levels, includeNames optional. 2. 'entity_revenue' — RBICS industry-taxonomy revenue breakdown. Returns hierarchical percentages across all RBICS industries. Use for: "X's revenue breakdown by industry/sector/sub-sector", ETF/Mutual Fund industry breakdowns. ids REQUIRED; startDate, endDate, level optional (level=6 = full L1–L6). ETFs/Mutual Funds supported here (L1–L4 only); >1y queries may exceed 20s. 3. 'tradenames' — Company tradeNames and product lines mapped to RBICS sectors. Response already includes l6Id/l6Name per product, so do NOT call entity_focus alongside. ids REQUIRED; asOfDate optional. Max 500 IDs. **QUERY → ROUTING (use this tool, NOT the alternatives):** - ANY ETF / Mutual Fund (SPY, QQQ, VOO, ARKK, FXAIX, …) sector / sub-sector / industry / "compare … breakdown" query → entity_revenue HERE. NOT FactSet_FundsETF — its SECTOR_WEIGHTAGE returns portfolio-holding sector weights on a different taxonomy, NOT the RBICS industry breakdown. - Company industry/sector revenue breakdown (Salesforce, Pfizer, …) → entity_revenue here. NOT FactSet_FundamentalsSegments — that returns company-reported business segments, not RBICS. - "compare classifications of A and B" → entity_focus only — do NOT also call entity_revenue. - Geographic/country breakdown → FactSet_GeoRev (this tool is industry-only). **LEVEL (entity_revenue)** API default is L1; ETFs/Mutual Funds capped at L4. See level parameter for full taxonomy and language mapping. **DATA COVERAGE:** 48,000+ liquid public companies plus ETFs/Mutual Funds. Monthly updates. **DATES — YYYY-MM-DD. Future dates (T+1) rejected.** - entity_focus: date optional (omit → full history) - entity_revenue: startDate/endDate optional (omit → latest); supply endDate when query specifies a date - tradenames: asOfDate optional (omit → latest active) **IDS:** Max 2,500 (500 for tradenames). See ids parameter for accepted formats.
FactSet Supply Chain Tool - Business relationship data: competitors, customers, suppliers, and partners. **WHEN TO USE THIS TOOL:** - Competitors, competitive landscape, or "who competes with X" - Suppliers, customers, or strategic partners of a company - Supply chain mapping or business network analysis - Competitive intelligence from official company filings (10-K, annual reports) - Comparing relationships across multiple companies (suppliers, competitors, partners, customers) **DATA COVERAGE:** Global public and private companies; relationships sourced from official filings (10-K, annual reports); reverse-linked into a complete bidirectional network. **ENDPOINT:** /relationships — returns related entities with product-overlap metrics. Max 500 IDs. Accepts: ticker (AAPL-US), CUSIP, SEDOL, ISIN, FactSet ID (public + private). **RELATIONSHIP TYPES:** COMPETITORS=disclosed competitors. CUSTOMERS=buy from source. SUPPLIERS=sell to source. PARTNERS=JVs/equity/strategic alliances. **FILTERS:** - companyType: PUBLIC_COMPANIES_ONLY (API default), PRIVATE_COMPANIES_ONLY, ALL. - relationshipDirection: controls whose filings are the source — see CRITICAL block below. **CRITICAL — relationshipDirection:** - DIRECT: Source company (ids) named them in SOURCE's own filings. "Who did Apple list as competitors in their 10-K?" - REVERSE: Target companies named the source in THEIR filings (the "reverse-linked" disclosures). "Who considers Apple a competitor?" / "Who competes with Apple?" - ALL (default): Both directions. Complete bidirectional network. Omitting relationshipDirection defaults to ALL. For "what did [Company] disclose" queries, you MUST set relationshipDirection=DIRECT. **CRITICAL — overlap metrics:** overlappingProductCount and overlapPercentage measure product/service SIMILARITY ONLY. DO NOT use to rank "top", "biggest", "most important", or "primary" relationships. These are NOT measures of revenue, financial importance, or strategic significance.
FactSet Terms and Conditions API Tool - Fixed Income Securities Data. **WHEN TO USE THIS TOOL:** - Fixed Income security terms, conditions, or detailed attributes - Coupon schedules, redemption prices, or convertible features - Issue size, agent details, lead underwriters, use of proceeds - Covenant details for corporate, government & agency securities - NOTE: For bond price data (BID/MID/ASK), use the FactSet_BondPrices tool instead. **DATA COVERAGE:** Fixed Income Corporate, Government & Agency securities globally. Not available for equities. **ENDPOINTS (select via data_type):** 1. 'issue_size' — Amount outstanding, currency, changes, type. 2. 'coupon_history' — Historical coupon rates and effective dates. 3. 'coupon_schedules' — Scheduled coupon payment dates and rates. 4. 'covenant_details' — Covenant types and descriptions. 5. 'redemption_prices' — Call, Put, Sinking Fund prices. categories: ALL (default)/CALL/PUT/SF. 6. 'agents' — Agent names, entity IDs, types (trustees, paying agents). 7. 'lead_underwriters' — Lead underwriter entity IDs and details. 8. 'use_of_proceeds' — Use of proceeds descriptions. 9. 'convertible_details' — Convertible currency, dates, ratios, price methods. 10. 'convertible_history' — Historical convertible price and ratio changes. 11. 'convertible_triggers' — Trigger events, descriptions, and trigger IDs. **ID LIMITS:** Max 250 per request. Accepts: CUSIP, SEDOL, ISIN, FactSet Security Permanent Identifier (-S).
FactSet Unstructured Content Tool - Semantic search across financial documents. **WHEN TO USE THIS TOOL:** - ANY query requiring semantic/natural language search across financial documents - Questions like "What are companies saying about AI investment?" or "Find news about energy regulation" - Searching EDGAR filings, StreetAccount News, or FactSet CallStreet Transcripts by topic - Filtering financial documents by sentiment or form type - Finding relevant document excerpts with similarity scoring Do NOT use for structured financial data (prices, estimates, fundamentals) - use appropriate FactSet APIs instead. **DATA SOURCES:** - ALL_FILINGS - ALL_NEWS - ALL_TRANSCRIPTS **KEY CAPABILITIES:** - Natural language semantic search with similarity scoring (0-1 scale) - Filter by sentiment (Negative, Neutral, Positive, Very Negative, Very Positive) - Filter by EDGAR form types (10-K, 10-Q, 8-K, etc.) - Filter by company identifiers (FactSet IDs, tickers) - Control result count and sort order (by date or similarity) - Per-source result limits via resultsBySource **MANDATORY WORKFLOW:** 1. Formulate the query — TWO STRICT RULES: a. NATURAL LANGUAGE REQUIRED: Must be a complete sentence or question. Keyword phrases, comma-separated terms, or shorthand is not acceptable. b. NO EXPANSION: Include ONLY the exact topics the user literally stated. Never add related concepts, sub-themes, synonyms, or industry terms the user did not say. BAD → user said "tariffs": query='What are executives discussing about tariffs and supply chain disruptions?' GOOD → user said "tariffs": query='What are executives discussing about tariffs?' 2. Select at least one source: ALL_FILINGS, ALL_NEWS, ALL_TRANSCRIPTS (max 3) 3. Provide startDate and endDate in YYYY-MM-DD format 4. Optionally add sentiment, formTypes (ALL_FILINGS only), or ids filters 5. SET limit — MANDATORY RULE: ALWAYS pass limit=10. This is not optional. Only deviate if the user provides an explicit number (e.g., "give me 5 results", "show 20"). Vague requests like "find some", "search for", or "look up" do NOT override the default. GOOD → user said "get me a few results": limit=10 BAD → user said "get me a few results": limit=3 6. Results ranked by similarity score or date **COMMON USE CASES:** **"What are companies saying about AI infrastructure?"** → query='What are companies saying about AI infrastructure?', sources=['ALL_FILINGS', 'ALL_TRANSCRIPTS', 'ALL_NEWS'], startDate='2024-01-01', endDate='2024-12-31', limit=10 **"Find 10-K filings discussing energy consumption"** → query='How are companies addressing energy consumption in their operations?', sources=['ALL_FILINGS'], formTypes=['10-K'], startDate='2024-01-01', endDate='2024-12-31', limit=10 **"Positive news about Apple's data center strategy"** → query='What is Apple saying about its data center strategy?', sources=['ALL_NEWS', 'ALL_TRANSCRIPTS'], ids=['AAPL-US'], sentiment=['Positive'], startDate='2024-01-01', endDate='2024-12-31', limit=10 **"Tariff concerns in earnings calls"** → query='What are executives discussing about tariffs?', sources=['ALL_TRANSCRIPTS'], startDate='2024-01-01', endDate='2024-12-31', limit=10 **RESULT STRUCTURE:** - vectorId: Unique identifier for the document chunk - similarityScore: Relevance score (0-1, higher = more relevant) - content: Text excerpt from the document - headline: Document headline - viewUrl: Link to the full source document - REQUIRED for citation rendering - themes: Themes associated with the document - sentiment: Sentiment of the document - source: ALL_FILINGS, ALL_NEWS, or ALL_TRANSCRIPTS - ids: Related company identifiers - limit: Always explicitly passed — MUST be 10 unless the user stated a specific number - EDGAR-specific: formType, sectionName, sectionNumber, docType, tableText - Transcript-specific: speakerName, speakerTitle, speakerCompanyName, financialYear, financialQuarter **CITATION LINK RENDERING:** - Each result in the response includes: * viewUrl: Direct URL to the source document for this specific result * headline: Document headline used as the clickable link text - Example viewUrl: https://my.apps.factset.com/viewer-fusion/?_doc_sequence=18_doc_id=3188517-t&_doc_date=2025-02-26T20:42:21&_doc_product=FCST&_doc_docFn=UZFsdGVkX188ugKkIIsgIr76H4HbA+s6feJA0n0N/PhFIjd9LA **CRITICAL INSTRUCTION - SHOWING CITATION SOURCES:** Present each result with its citation link in Markdown format. AI Client will automatically render these as clickable hyperlinks. CRITICAL RULES: - Use Markdown link format with bold: **[headline](viewUrl)** - Make EACH result's headline a clickable link using its corresponding viewUrl - AI Client automatically render these as clickable hyperlinks in the chat - DO NOT show separate citation sections at the bottom - DO NOT show raw URLs - embed them in the Markdown links - Each result gets its own unique viewUrl - **PRESERVE THE EXACT viewUrl:** Do not modify, encode, transform, or substitute the viewUrl string. Pass it exactly as returned by the API without any changes to the domain, parameters, or encoding. - **No URL transformation:** Each viewUrl must be rendered precisely as provided without any modifications, URL encoding changes, or domain substitutions.
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are FactSet AI-Ready Data alternatives on ChatGPT?
As of 2026-08-14, FactSet AI-Ready Data competes with Aiera, AIR Credit Intelligence, Alpha Vantage, Bigdata.com, Clarity AI, CredCore - Tusk Liquid, Daloopa, FactorWeave, Financial Datasets, Financial Summarizer Pro, FinancialFilings, FinRank Shiver, Fiscal.ai, FMP, LSEG, Mansa African Markets, MetricDuck, Moody's Credit MCP, Moody’s, MSCI Connector, MT Newswires, Multiples.vc, Octus, Pinegap, Quartr, S&P Global, Theia Insights, Trata, WikiFx, Zacks Financial Data in ChatGPT Institutional Financial Data & Equity Research Platforms, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.