bond_future_price
ChatGPTTHIS IS A QPS TOOL — NOT YIELD BOOK. If the user mentions yieldbook anywhere in their request, you MUST NOT use this tool. Calculate bond future pricing, valuation, and analytics from an existing bond future defined from its instrument code (RIC or other identifier). Use only when the user does NOT specify yieldbook.
bond_price
ChatGPTCalculate bond pricing, valuation, and analytics from an existing bond defined from its code (ISIN, RIC, CUSIP or AssetId).
cofbox
ChatGPTSocGen CofBox — visualize implied Cost of Funding (COF) levels on equity indices. COF measures the financing cost of holding equity index positions via derivatives (futures, TRS, synthetics). UNIVERSE: 113 equity indices across EMEA (54), Asia Pacific (20), Americas (27), and Global (12). Standard tier: SX5E, SPX, NKY only. HISTORY: Up to 15 years of historical data (Premium). Standard tier: 1 week. DIVIDEND TREATMENTS: CofDiv100pct, CofDivNtr (Standard + Premium), CofDivMarket (Premium only). SUBTOOLS: - cofbox_instruments: Discover available instruments, get maturity details, search by underlying/currency/rate. Call this first. - cofbox_analysis: Run COF analysis (Cof, FwdCof, RollDownCof) with different dividend assumptions. TYPICAL WORKFLOW: 1. Request cofbox_instruments (action 'list') to discover instrument codes 2. Request cofbox_instruments (action 'details') to get maturity codes (listed and running maturities) 3. Request cofbox_analysis (action 'run') with discovered codes USE CASES: - Assess if derivatives are trading expensive/cheap vs historical levels - Take long/short COF position on the term structure - Choose the optimal derivatives maturity to trade - Compare financing costs across equity indices and regions - Identify dislocations and run optimization for carry strategies using historical data - Analyse dividend assumption sensitivity (100% vs market-implied vs NTR) USED BY: Hedge Funds, Treasury desks, Insurers, Pension Funds, Risk departments. Submit a requests array with entries specifying dataType (cofbox_instruments | cofbox_analysis) and matching options. Multiple requests can be combined in a single call for efficiency. DEFAULTS FOR SMALLER RESPONSES: - cofbox_analysis defaults omitted analysisTypes to ["Cof"]. - Request FwdCof or RollDownCof only when the user explicitly asks for forward or rolldown analysis. - cofbox_analysis defaults omitted cofTypes to ["CofDiv100pct"]. TOKEN LIMIT — never call action:"list" without a filter. The full list returns 500+ instruments (~205KB) and can overflow the context window. REGION-TO-UNDERLYING MAPPING FOR action:"search": - EMEA / Europe: SX5E, DAX, CAC, AEX, FTSE, IBEX, FTSEMIB - Americas / US: SPX, INDU, NDX, RTY, IBOV - Asia Pacific: NKY, HSI, HSCEI, AS51, KOSPI2 - Global / World: MXEF, MXEA, NDDUWI When the user asks by region, ask: "There are 500+ instruments across EMEA, Americas, Asia Pacific and Global. Which region or index are you interested in?" Then call action:"search" with a representative underlyingCode instead of action:"list". CALL EXAMPLE — list all instruments: { "requests": [{ "dataType": "cofbox_instruments", "options": { "action": "list" } }] } CALL EXAMPLE — get maturity codes for SX5E (do this before running analysis): { "requests": [{ "dataType": "cofbox_instruments", "options": { "action": "details", "instrumentCodes": ["SX5E_EUR_EON"] } }] } CALL EXAMPLE — search instruments by underlying index: { "requests": [{ "dataType": "cofbox_instruments", "options": { "action": "search", "underlyingCode": "SPX" } }] } CALL EXAMPLE — list available analysis types and dividend treatments: { "requests": [{ "dataType": "cofbox_analysis", "options": { "action": "list_types" } }] } CALL EXAMPLE — run COF analysis for SX5E June maturity: { "requests": [{ "dataType": "cofbox_analysis", "options": { "action": "run", "instruments": [{ "instrumentCode": "SX5E_EUR_EON", "maturitiesCodes": ["Jun25"] }], "analysisTypes": ["Cof"], "cofTypes": ["CofDivNtr"] } }] } CALL EXAMPLE — discover instruments and run analysis in one call: { "requests": [{ "dataType": "cofbox_instruments", "options": { "action": "list" } }, { "dataType": "cofbox_analysis", "options": { "action": "run", "instruments": [{ "instrumentCode": "SX5E_EUR_EON", "maturitiesCodes": ["Jun25"] }], "analysisTypes": ["Cof"], "cofTypes": ["CofDivNtr"] } }] }
credit_curve
ChatGPTTwo-phase Credit Curve tool: (1) Call with country + issuerType (both are required) to list available curves, (2) Call with id + name to calculate curve points (both are required).
datastream_data
ChatGPTExecute Datastream DSWS GetData queries and return normalized tabular results. Request must include at least one entry in the requests array. It could be either a Snapshot or Timeseries request. Each entry specifies the instruments, fields, and other parameters for a Datastream data retrieval. INSTRUMENT IDENTIFIER RULES: - RICs (Reuters Instrument Codes) must be enclosed in angle brackets, e.g. "<SHEL.L>", "<MSFT.O>", "<IBM.N>". IMPORTANT: Only equity-style RICs with exchange suffixes (.L, .N, .O, .A) are supported in brackets. Currency RICs like <EUR=>, <GBP=>, <JPY=> are NOT supported. Use the 6-letter pair instead (e.g. EURUSD, GBPUSD). - Datastream mnemonics (e.g. 'MSFT', 'VOD', '@AAPL') are passed directly without brackets. - FX/Currency pairs: if you know the exact Datastream mnemonic (e.g. TEUSDSP for EUR/USD), use it directly. Otherwise, pass a 6-letter currency pair (e.g. EURUSD, GBPUSD, USDJPY) and it will be auto-resolved to the correct Datastream mnemonic via navigator/search. You can also use datastream_search with category="Fx" first to find the exact mnemonic yourself. - Economics mnemonics: pass as-is including dot notation (e.g. USGDP...B, USGDP...D). - Instruments that look like a mnemonic or RIC will be passed to the Datastream data endpoint as-is. - If the instrument does not look like a known mnemonic or RIC, it will be resolved using the navigator/search API endpoint automatically. - If the response contains an error or returns data for an incorrect mnemonic, use the datastream_search tool first to find the correct mnemonic code, then call this data endpoint again with the resolved mnemonic. FIELD/DATATYPE RULES: - X is the universal default datatype for ANY instrument category in Timeseries mode. If unsure which field to use for timeseries, use X. Note: X does NOT work for Snapshot requests. - For Snapshots, you MUST specify the correct category-specific field: Equities/Indices: P (price), MV (market value), PE (price-to-earnings) FX/Exchange Rates: ER (exchange rate) * Economics: ES (economic series value) - INVALID fields that will always return NA or error: BID, ASK, DS, VALUE, CLOSE. These are NOT valid Datastream datatypes for any category. - When in doubt about which field to use, call datastream_search with requestType='Fields' and the appropriate category. TWO KINDS AND HOW TO USE THEM: 1. Snapshot - Use for a single point-in-time value per instrument/field. - Best for current values or latest available observations. - Typical payload: instruments + fields + kind="Snapshot". - MUST use category-specific field (P, ER, ES). X does NOT work for Snapshots. 2. Timeseries - Use for values across a date range. - Best for trend analysis, charting, and period-over-period comparisons. - Typical payload: instruments + fields + kind="Timeseries" with optional start/end/frequency. - Can use X as universal default field for any category. EXAMPLE REQUEST PAYLOAD: { "requests": [ { "instruments": "MSFT, <SHEL.L>", "fields": "MV, PE", "start": "-1Y", "end": "0D", "frequency": "Monthly", "kind": "Timeseries" }, { "instruments": "@AAPL", "fields": "P", "kind": "Snapshot" }, { "instruments": "EURUSD", "fields": "X", "start": "-1M", "end": "0D", "frequency": "Daily", "kind": "Timeseries" }, { "instruments": "USGDP...B", "fields": "X", "start": "-3Y", "end": "0D", "frequency": "Quarterly", "kind": "Timeseries" } ] }
datastream_search
ChatGPTSearch Datastream Navigator/Search API to discover instruments or field/datatype codes before retrieving data. Each request entry must specify a requestType of either "Instruments" or "Fields" to indicate the type of search being performed. TIPS: - Use category filter to narrow results (e.g. "Fx" for exchange rates, "Economics" for GDP/CPI series). - Use requestType="Fields" to discover valid datatypes for a category before requesting data. - Common categories: Equities, Fx, Economics, Bonds, Commodities, EquityIndices, Funds, InterestRates. EXAMPLE REQUEST PAYLOAD: { "requests": [ { "requestType": "Instruments", "query": "Vodafone", "category": "Equities", "maxResults": 15 }, { "requestType": "Instruments", "query": "EURUSD", "category": "Fx", "maxResults": 5 }, { "requestType": "Instruments", "query": "United States GDP", "category": "Economics", "maxResults": 10 }, { "requestType": "Fields", "query": "price", "category": "Equities", "limit": 20, "offset": 0, "timeseriesOnly": false, "currencyEnabled": false } ] }
equity_vol_surface
ChatGPTGenerates the Equity Volatility surfaces for the definitions provided
fixed_income_actual_vs_projected
ChatGPTBEFORE CALLING: Count identifiers first. MAX 5 IDENTIFIERS PER CALL. If user has >5 bonds, split into multiple calls BEFORE executing (e.g., 12 bonds = 3 calls: 5 + 5 + 2). Retrieve actual vs projected prepayment data for mortgage-backed securities via YieldBook API. Compares historical actual prepayment speeds against model-projected speeds. This tool is only for backward looking historical analysis of actual vs projected prepayment. Do not use this tool for forward-looking analysis. If the user asks to run a PY, requests forward-looking/prepayment projections, use fixed_income_risk_analytics instead. REQUIRED PARAMETER: - identifiers: Array of up to 5 bond identifiers (CUSIP, ISIN, or YieldBook ID). FNMA or GNMA or similar IDENTIFIER FORMAT: If a user provides space-separated notation like FNMA11.100 F or FNMA20.100 BA, change it to FNMA11.100(F) or FNMA20.100(BA) by replacing the space with parenthesis automatically. If FNMA200.100 or similar id is provided without any letter, pass it as is (no parentheses needed). If ticket has like N25.1(#1), pass as is. OPTIONAL PARAMETER: - idType: type of identifier provided (e.g., "CUSIP", "ISIN", "SecurityIDEntry", etc.). Defaults to "SecurityIDEntry" if not specified. - prepayType: MBS prepayment model to use. Defaults to "Model" if not specified. Accepted values: - "Model" — current production model (default) - "ExpModel" - Model 99 - "NewModel" - "OldExpModel" - "OldModel" - "PreExpModel" — Model 97 Only one prepayType is accepted per call. RETURNED INFORMATION: - Identity fields: CUSIP, ISIN, ticker, description, security type, maturity date, current coupon - Monthly actual vs projected CPR vector (dataActVsProjVectorList): date, actualCPR, actualCDR, projectedCPR, projectedCDR, projectedVPR, projectedRefi, projectedCurtail, projectedTurnover - Period summaries (dataActVsProjSummaryList): 1-month, 3-month, 6-month, 12-month, 24-month, and Life aggregates USE CASES: 1. Historical prepayment analysis: View actual CPR/CDR history for MBS pools 2. Historical projected prepayment speed: Get model-projected CPR, VPR, refinancing, curtailment, and turnover rates that are returned alongside historical actual observations 3. Actual vs projected comparison: Compare realized prepayment speeds against YieldBook model projections to assess model accuracy SUPPORTED SECURITY TYPES: - Mortgage-backed securities (MBS, RMBS) - Collateralized mortgage obligations (CMO) - Agency pass-throughs (FNMA, GNMA, FHLMC) KEY FEATURES: - Batch support: Query up to 5 identifiers per request - Multiple identifier types: CUSIP, ISIN, generic YieldBook IDs. If user provides multiple identifiers of different types (e.g., one CUSIP and one ISIN), split into separate calls to the tool. - Decomposed projections: See refi, curtailment, and turnover components separately DEFAULT: If idType not specified, defaults to 'SecurityIDEntry'. If prepayType not specified, defaults to 'Model'. IDTYPE NOTE: If user provides multiple identifiers of different types (e.g., one CUSIP and one ISIN), split into separate calls to the tool since only one idType is accepted at a time. PREPAYTYPE NOTE: Only one prepayType is accepted per call. To compare models or use different models for different groups of identifiers, split into separate calls to the tool. ASYNC STATUS CHECK: If a previous request was still processing (returned jobRef and requestId), call this same tool with only { "jobRef": "...", "requestId": "..." } to check if results are ready. EXAMPLE - "Give me the past six months of historical prepayments on security <identifier>" {"identifiers": ["<identifier>"], "idType": "SecurityIDEntry", "prepayType": "Model"} EXAMPLE - "Show historical speeds on <identifier 1>, <identifier 2>, and <identifier 3>" {"identifiers": ["<identifier 1>", "<identifier 2>", "<identifier 3>"], "idType": "SecurityIDEntry", "prepayType": "Model"} EXAMPLE - "Give me the past six months of Yield Book projected CPRs on CUSIP <identifier>" {"identifiers": ["<identifier>"], "idType": "CUSIP", "prepayType": "Model"} EXAMPLE - "Compare historical speeds versus Yield Book Projected speeds on <identifier>" {"identifiers": ["<identifier>"], "idType": "SecurityIDEntry", "prepayType": "Model"} EXAMPLE - "Run Yield Book Actual vs Projected on <identifier 1>, <identifier 2>, <identifier 3>, and <identifier 4>" {"identifiers": ["<identifier 1>", "<identifier 2>", "<identifier 3>", "<identifier 4>"], "idType": "SecurityIDEntry", "prepayType": "Model"} EXAMPLE - "How did Yield Book projected CPRs compare to historical CPRs on <identifier>" {"identifiers": ["<identifier>"], "idType": "SecurityIDEntry", "prepayType": "Model"} EXAMPLE - "Run actual vs projected using Model 99 on <identifier>" {"identifiers": ["<identifier>"], "idType": "SecurityIDEntry", "prepayType": "ExpModel"} EXAMPLE - "Compare Model 97 projected speeds against actuals on <identifier>" {"identifiers": ["<identifier>"], "idType": "SecurityIDEntry", "prepayType": "PreExpModel"} EXAMPLE - "Run Yieldbook Actual vs Projected for jobRef <jobRef> and requestId <requestId>" {"jobRef": "<jobRef>", "requestId": "<requestId>"}
fixed_income_bond_reference
ChatGPTBEFORE CALLING: Count identifiers first. MAX 50 IDENTIFIERS PER CALL. If user has >50 bonds, split into multiple calls BEFORE executing (e.g., 75 bonds = 2 calls: 50 + 25). Do NOT attempt >50 identifiers - it will fail. Retrieve bond reference data via YieldBook Bond Indic API. Returns contractual and reference information about bonds without requiring calculations. RETURNED INFORMATION: - Security type and sector classification - Maturity date and coupon details - Credit ratings (S&P, Moody's, Fitch) - Issuer information and CUSIP/ISIN identifiers - Security-specific data (e.g., pool factor for MBS) - Payment frequency and day count conventions SUPPORTED SECURITY TYPES: - Government bonds (Treasury, Agency) - Corporate bonds - Mortgage-backed securities or similar ties(MBS, RMBS, CMBS) - Asset-backed securities (ABS) - Municipal bonds - Collateralized mortgage obligations (CMO) KEY FEATURES: - Batch support: Query up to 50 identifiers per request - Multiple identifier types: CUSIP, ISIN, generic YieldBook IDs - FNMA or GNMA or similar IDENTIFIER FORMAT: If a user provides space-separated notation like FNMA11.100 F or FNMA20.100 BA, change it to FNMA11.100(F) or FNMA20.100(BA) by replacing the space with parenthesis automatically. If FNMA200.100 or similar id is provided without any letter, pass it as is. If ticket has like N25.1(#1), pass as is. - Optional keyword filtering to retrieve specific fields only - No calculations required - pure reference data lookup USE CASES: - Bond identification and basic information lookup - Security screening and filtering - Portfolio composition analysis - Credit rating verification DEFAULT: If idType not specified, defaults to 'CUSIP'. ASYNC STATUS CHECK: If a previous request was still processing (returned jobRef and requestId), call this same tool with only { "jobRef": "...", "requestId": "..." } to check if results are ready. Do not include identifiers or other parameters when checking status.
fixed_income_cashflow_analytics
ChatGPTBEFORE CALLING: Count bonds first. MAX 10 BONDS PER CALL. If user has >10 bonds, split into multiple calls BEFORE executing (e.g., 25 bonds = 3 calls: 10 + 10 + 5). Do NOT attempt >10 bonds - it will fail. Calculate bond cashflow schedules via YieldBook Cashflow API. Returns payment dates, principal, interest, and prepayment projections for Fixed rate, MBS/RMBS/CMBS, CMO, FRN, Municipal, Agency securities. For MBS/ABS bonds, include the prepay type and rate used in the output (e.g., "Running with Model 100" or "Running with CPR 6"). This is not applicable to corporate or government bonds. MBS/TBA/CMO PREPAY DEFAULTS — ALWAYS INCLUDE for mortgage-backed securities: When requesting cashflows for MBS, TBA, CMO, or ABS bonds, you MUST include prepay settings with BOTH type AND rate: - Default: prepay: {"type": "Model", "rate": 100} — runs the YieldBook prepay model at 100% of projected speed. - Omitting rate causes a "PrepayRate not specified" error. Always include both type AND rate together. PREPAY MODEL VERSIONS (updated annually): Model/CurrentModel/NewModel=25.1, OldModel=24.1, PreExpModel=97, ExpModel=99. For rate types: CPR (e.g., 6=6% CPR), PSA (e.g., 150=150% PSA). REQUIRED PARAMETERS (per bond): - identifier: Bond ID (CUSIP, ISIN, or YieldBook ID). FNMA or GNMA or similarIDENTIFIER FORMAT: If a user provides space-separated notation like FNMA11.100 F or FNMA20.100 BA, change it to FNMA11.100(F) or FNMA20.100(BA) by replacing the space with parenthesis automatically. If FNMA200.100 or similar id is provided without any letter, pass it as is (no parentheses needed). If ticket has like N25.1(#1), pass as is. OPTIONAL PARAMETERS (per bond): - idType, parAmount, settlementType, settlementDate, curve {curveType, currency, retrieveCurve}, prepay {type, rate}, floaterSettings {useForwardIndex}, userTag GLOBAL SETTINGS - ALWAYS INCLUDE in every request: - globalSettings is REQUIRED. Always send globalSettings with a date option. If user does not specify, default to { usePreviousClose: true }. - keywords: Array of output fields to include (optional) DATE OPTIONS (mutually exclusive - only ONE allowed): - usePreviousClose=true: Use previous market close (DEFAULT - use this when user does not specify) - useLiveData=true: Use live intraday market data - pricingDate: Use specific historical date (YYYY-MM-DD) SETTLEMENT NOTE: Setting a custom settlementDate should NOT change the pricing date or globalSettings. Only set settlementType to 'CUSTOM' and provide settlementDate on the bond. FLOATER/FORWARDS NOTE: When user asks to "use forwards" or "run with forwards", apply floaterSettings: { useForwardIndex: true } to ALL bonds in the request, not just FRNs. KEYWORDS NOTE: Prefer omitting keywords entirely for cashflow queries to get all data. If keywords are used, the cashflow section keyword is "dataPaymentList" (NOT sub-field names like paymentDate or principal). ASYNC STATUS CHECK: If a previous calculation was still processing (returned jobRef and requestId), call this same tool with only { "jobRef": "...", "requestId": "..." } to check if results are ready. Do not include bonds or other parameters when checking status.
fixed_income_curves
ChatGPTRetrieve interest rate curves and related data via YieldBook Curves API. Returns par rates, spot rates, forward rates, and discount factors for specified curve types and currencies. USE THIS TOOL when the user wants to retrieve or view a yield curve. CURVE FORMAT: curves: Array of curve request objects, each with: - curveId: Curve identifier (REQUIRED). MUST be unique across all curves in the request. Use a descriptive label like "USD_GVT", "EUR_SWAP_RFR", etc. to distinguish each curve. Do NOT reuse the same curveId for different curves. - curveType: Type of curve (REQUIRED, e.g., "GVT", "SWAP", "SWAP_RFR", "GVT_MUNI") - currency: 3-letter ISO currency code (REQUIRED, e.g., "USD", "EUR", "GBP", "JPY") - expandCurve: Return full curve detail (optional, DEFAULT false) - pricingDate: Historical date for curve data in YYYY-MM-DD format (optional) - showSpotRate: Include spot rates (optional, DEFAULT false) - showForwardRate: Include forward rates (optional, DEFAULT false) - showDiscountFactor: Include discount factors (optional, DEFAULT false) - forwardPeriod: Forward period in months (optional, DEFAULT 0) - impliedForwardDelay: Implied forward delay in months (optional, DEFAULT 0) - index: Index name for the curve (optional) - useLiveCurve: Use live/real-time curve data (optional, DEFAULT false) EXAMPLE - Basic curve retrieval: { "curves": [ { "curveId": "USD_GVT", "curveType": "GVT", "currency": "USD" } ] } EXAMPLE - Full curve with all rate types: { "curves": [ { "curveId": "TEST", "curveType": "SWAP_RFR", "currency": "USD", "showSpotRate": false, "showForwardRate": false, "showDiscountFactor": false, "expandCurve": false } ] } EXAMPLE - Multiple curves (note unique curveIds): { "curves": [ { "curveId": "USD_GVT", "curveType": "GVT", "currency": "USD" }, { "curveId": "USD_SWAP_RFR", "curveType": "SWAP_RFR", "currency": "USD", "index": "SOFR" }, { "curveId": "EUR_GVT", "curveType": "GVT", "currency": "EUR" } ] } DEFAULTS: expandCurve=false, showSpotRate=false, showForwardRate=false, showDiscountFactor=false unless explicitly told to be true.
fixed_income_risk_analytics
ChatGPTIf the user specifies yieldbook or YB or yb, use THIS tool (fixed_income_risk_analytics). Do NOT use a QPS tool. If the user says run a PY / do a PY / run py on a bond, use THIS tool. If the user asks for projected speeds, forward-looking speeds, or prepayment projections on a bond or MBS without explicitly asking for actual-vs-projected history, use THIS tool. DO NOT USE THIS TOOL for yield curve retrieval (use fixed_income_curves) or rate shock/scenario analysis on bonds (use fixed_income_scenario_analytics). BEFORE CALLING: Count bonds first. MAX 50 BONDS PER CALL. If user has >50 bonds, split into multiple calls BEFORE executing. Do NOT attempt >50 bonds - it will fail. Calculate bond price/yield metrics via YieldBook PY API. Computes pricing, OAS, duration, convexity, DV01, spreads, and accrued interest. SUPPORTS: Government, Corporate, MBS/CMBS, ABS, Municipal, Callable/Putable, FRN, TIPS, Bond Future, Swap. REQUIRED PARAMETERS (per bond): - identifier: Bond ID (CUSIP, ISIN, or YieldBook ID). FNMA or GNMA or similar IDENTIFIER FORMAT: If a user provides space-separated notation like FNMA11.100 F or FNMA20.100 BA, change it to FNMA11.100(F) or FNMA20.100(BA) by replacing the space with parenthesis automatically. If FNMA200.100 or similar id is provided without any letter, pass it as is (no parentheses needed). If ticket has like N25.1(#1), pass as is. - level: Price/yield input like "100" (price), "100d" (dollars), "4.5y" (yield), "75/i" (spread) - curve: Must include curveType - use "SWAP_RFR" (SOFR, recommended) or "GVT" (government) MBS/TBA/CMO DEFAULTS — ALWAYS INCLUDE THESE for mortgage-backed securities: When pricing MBS, TBA, CMO, or ABS bonds (identifiers like FNMA, FHLMC, GNMA*, or CUSIPs for MBS pools), you MUST include ALL of the following in the FIRST call: 1. volatility: {"type": "Default"} — required for OAS/option-adjusted calculations on MBS. Omitting this causes a "Volatility model is not defined" error. 2. extraSettings: {"optionModel": "OASEDUR"} — required for spread-based analytics on mortgage bonds. These two are MANDATORY for MBS. Do NOT omit either of them. Example MBS bond: {"identifier": "FNMA6.5-TBA", "level": "100", "curve": {"curveType": "SWAP_RFR"}, "volatility": {"type": "Default"}, "extraSettings": {"optionModel": "OASEDUR"}} NOTE: Do NOT include prepaySettings unless the user explicitly requests a specific prepay model or rate. OPTIONAL PARAMETERS: - idType, settlementType, settlementDate, userTag - prepaySettings (MBS/ABS): ONLY if user requests a specific prepay model/rate. {type, rate}. Types: Model (25.1), OldModel (24.1), CPR (e.g., 6=6% CPR), PSA (e.g., 150=150% PSA). Omit entirely otherwise — API defaults are sufficient. - volatility: {type, rate}. Use "Default" for standard vol. Other types: LMMSOFR, LMMSkew, Single, Market, etc. The "rate" field is ONLY allowed when type is "Single". Pass the user's number exactly as given — do NOT divide by 100. - globalSettings: pricingDate (YYYY-MM-DD), useLiveData, usePreviousClose (only one date option allowed), retrievePPMProjection (boolean, default false — set to true to retrieve monthly prepayment projections) - keywords: Array of output fields to include - extraSettings.includePartials: Set to true to include partial (stub) period cashflows in analytics when user mentions "Calculate Partials", "with Partials on", "with Partial Durations", "Key Rate Durations", or any mention of "Partial", "Partials". Example: {"extraSettings": {"includePartials": true}}. NOTE: ONLY use partialVega if user explicitly says "Partial Vegas" (different from Partial Durations). - extraSettings.partialVega: Set to true to calculate partial vega outputs if user explicitly requests "Partial Vegas" (NOT Partial Durations). Example: {"extraSettings": {"partialVega": true}} - extraSettings.volatilityDuration: Set to true to calculate volatility duration. Example: {"extraSettings": {"volatilityDuration": true}} DATE OPTIONS (mutually exclusive): - usePreviousClose=true: Use previous market close (default, most stable) - useLiveData=true: Use live intraday market data - pricingDate: Use specific historical date ASYNC STATUS CHECK: If a previous calculation was still processing (returned jobRef and requestId), call this same tool with only { "jobRef": "...", "requestId": "..." } to check if results are ready. Do not include bonds or other parameters when checking status.
fixed_income_scenario_analytics
ChatGPTBEFORE CALLING: Count bonds first. MAX 50 BONDS PER CALL. If user has >50 bonds, split into multiple calls BEFORE executing (e.g., 75 bonds = 2 calls: 50 + 25). Do NOT attempt >50 bonds - it will fail. USE THIS TOOL when the user provides specific bonds (CUSIP, ISIN, or identifier) and asks for rate scenario analysis, rate shocks, parallel/non-parallel curve shifts, bear/bull steepeners, flatteners, or horizon analysis. Analyze bond performance under rate scenarios via YieldBook Scenario API. Supports parallel shifts, non-parallel curve twists (different shifts at 2s/5s/10s/30s), and credit spread scenarios. Calculates total return, OAS, duration/convexity across scenarios. Max 50 scenarios per call. IMPORTANT - SCENARIO COUNT: Only create the EXACT scenarios the user requests. Do NOT add extra scenarios (like base case, inverse, or intermediate) unless the user explicitly asks. If user similar to "100bp shock", create ONE scenario with parallelShift=100. If user similar to "compare -50, 0, +50", create THREE scenarios. Each additional scenario adds computation time and cost. BOND FORMAT: bonds: Array of bond objects, each MUST include: - identifier: CUSIP/ISIN (REQUIRED). FNMA OR GNMA or similar IDENTIFIER FORMAT: If a user provides space-separated notation like FNMA11.100 F or FNMA20.100 BA, change it to FNMA11.100(F) or FNMA20.100(BA) by replacing the space with parenthesis automatically. If FNMA200.100 or similar id is provided without any letter, pass it as is (no parentheses needed). If ticket has like N25.1(#1), pass as is. - settlementLevel: REQUIRED. Format: '{value}{suffix}' — no suffix = price, 'd' = dollars, 'y' = yield, '/i' = spread, 'o' = OAS. Use 100 (par) when user does not specify a price. Only use a specific value if the user provides one. Examples: "100" (price), "100d" (dollars), "4.5y" (4.5% yield), "75/i" (75bp spread), "75o" (OAS 75bp). When user says "at an OAS of 75", use "75o". When user says "at a yield of 4.5", use "4.5y". When user says "at a spread of 75", use "75/i". - horizonPricingMethod: ALWAYS set to "Default" unless the user explicitly requests a specific pricing method (e.g., "OAS Change", "Price Change"). "Default" lets the backend choose the optimal method per security type. - settlementType: defaults to 'MARKET' - volatility: defaults to {type: 'Default'} - curve: defaults to SWAP_RFR/USD SCENARIO FORMAT: scenarios: Array of scenario definitions, each with: - scenarioID: Unique identifier (e.g., "scenario-1") - scenarioTitle: Human-readable name - curveShifts: [{year: 2, value: -150}, {year: 5, value: -120}, ...] for non-parallel - OR parallelShift: 100 (bp) for simple parallel shift - shiftType: 'Par'|'Spot'|'Forward' - timing: 'Immediate'|'Gradual'|'AtHorizon' BOND HORIZON SETTINGS: bonds[].horizonInfo: [{scenarioID: "scenario-1", level: "-77", pricingMethod: "Default"}] - level: horizon price/spread (e.g., "-77" for credit spread) - pricingMethod: horizon pricing method for that scenario EXAMPLE - Simple scenario: { "bonds": [{"identifier": "81743EAA9", "settlementLevel": "100"}, {"identifier": "81743EAC5", "settlementLevel": "100"}], "scenarios": [{"scenarioID": "bear-steepener", "scenarioTitle": "Bear Steepener", "curveShifts": [{"year": 2, "value": 10}, {"year": 10, "value": 50}, {"year": 30, "value": 75}]}], "horizon": {"days": 0}, "globalSettings": {"calcHorizonEffectiveMeasures": true} } EXAMPLE - With OAS-based settlement (user says similar to "at OAS of 75 in a 100bp shock"): { "bonds": [{"identifier": "3136A1US2", "settlementLevel": "75o"}], "scenarios": [{"scenarioID": "scenario-1", "scenarioTitle": "+100bp Shock", "parallelShift": 100}], "horizon": {"days": 0}, "globalSettings": {"calcHorizonEffectiveMeasures": true} } EXAMPLE - With credit spread and explicit price: { "bonds": [{"identifier": "001055AF9", "settlementLevel": "109.2143", "horizonInfo": [{"scenarioID": "scenario-1", "level": "-77", "pricingMethod": "Default"}]}], "scenarios": [{"scenarioID": "scenario-1", "curveShifts": [{"year": 2, "value": -150}, {"year": 5, "value": -120}, {"year": 10, "value": -100}, {"year": 30, "value": -80}]}], "horizon": {"days": 0}, "globalSettings": {"calcHorizonEffectiveMeasures": true} } EXTRA SETTINGS (per bond, optional): - extraSettings.includePartials: Set to true to include partial durations in scenario analytics when user mentions "Calculate Partials", "with Partials on", "with Partial Durations", "Key Rate Durations", or any mention of "Partial", "Partials". Example: {"extraSettings": {"includePartials": true}} GLOBAL SETTINGS: - calcHorizonEffectiveMeasures: boolean (default true) — ALWAYS include this explicitly in globalSettings on every call, even if the user did not mention it. Default to true unless the user explicitly asks for false. Example: {"globalSettings": {"calcHorizonEffectiveMeasures": true}}. Do NOT put this in extraSettings or per-bond settings. - retrievePPMProjection: boolean (default false) — Set to true inside globalSettings to retrieve monthly prepayment projections. DEFAULTS: settlementLevel=100 (par), shiftType='Par', timing='Immediate', interpolationType='Years', pricingMethod='Default', curve='SWAP_RFR/USD', usePreviousClose=true ASYNC STATUS CHECK: If a previous calculation was still processing (returned jobRef and requestId), call this same tool with only { "jobRef": "...", "requestId": "..." } to check if results are ready. Do not include bonds or other parameters when checking status.
fx_event_tracker
ChatGPTSocGen FX Event Tracker — analyse historical overnight (O/N) implied volatility around FX market events (central bank meetings, elections, NFP, holidays). SUBTOOLS: - fx_event_currency_pairs: List available currency pairs. Call this first. - fx_event_market_events: Discover market events (dates & titles) for a currency pair. - fx_event_premiums: Compute event premiums (O/N vol difference between event and reference dates), or retrieve historical O/N volatility for single dates or date ranges. TYPICAL WORKFLOW: 1. Request fx_event_currency_pairs to discover available pairs (e.g., EUR/USD, GBP/USD) 2. Request fx_event_market_events with a currency pair to find upcoming events 3. Request fx_event_premiums (action 'compute') with event date, ref date, and history range USE CASES: - Quantify the volatility premium the market prices around scheduled events - Compare event premium evolution over time for a given currency pair - Assess if FX options around events are priced cheap/expensive vs history - Back-test event-driven FX options strategies using historical O/N vol data - Identify structural patterns in event premiums across different event types USED BY: FX Options desks, Macro Hedge Funds, Volatility traders, Risk managers. Submit a requests array with entries specifying dataType (fx_event_currency_pairs | fx_event_market_events | fx_event_premiums) and matching options. Multiple requests can be combined in a single call for efficiency. DEFAULTS FOR SMALLER RESPONSES: - fx_event_market_events defaults omitted pageSize to 25. - fx_event_premiums compute defaults omitted startDate/endDate to a 1-year lookback ending on eventDate. - Prefer a single compute request unless the user explicitly asks for multiple events or pairs. CALL EXAMPLE — list available currency pairs: { "requests": [{ "dataType": "fx_event_currency_pairs", "options": {} }] } CALL EXAMPLE — get ECB meeting events for EUR/USD: { "requests": [{ "dataType": "fx_event_market_events", "options": { "currencyPair": "EUR/USD", "eventTitle": "ECB", "pageSize": 10 } }] } CALL EXAMPLE — compute vol premium for a single event (startDate/endDate optional, default 1-year lookback): { "requests": [{ "dataType": "fx_event_premiums", "options": { "action": "compute", "requests": [{ "currencyPair": "EUR/USD", "eventDate": "2025-04-17", "refDate": "2025-04-16" }] } }] } CALL EXAMPLE — historical O/N vol for a date range (note: currencyPair is top-level, NOT inside requests[]): { "requests": [{ "dataType": "fx_event_premiums", "options": { "action": "volatility_overnight_range", "currencyPair": "EUR/USD", "volatilityOvernightStartDate": "2025-01-01", "volatilityOvernightEndDate": "2025-04-17" } }] } CALL EXAMPLE — discover events and compute premium in one call: { "requests": [{ "dataType": "fx_event_market_events", "options": { "currencyPair": "EUR/USD" } }, { "dataType": "fx_event_premiums", "options": { "action": "compute", "requests": [{ "currencyPair": "EUR/USD", "eventDate": "2025-04-17", "refDate": "2025-04-16" }] } }] }
fx_forward_curve
ChatGPTTwo-phase FX Forward Curve tool: (1) Call with listOnly=true to see available curves, (2) Call with reference to calculate curve points. Can also call directly with reference if already known.
fx_forward_price
ChatGPTCalculate FX forward pricing, valuation, and analytics using LSEG FX Forward API v2. For cross-currency pairs 'via' another currency (e.g., NOK/SEK via EUR), use crossCurrency=NOKSEK and set referenceCurrency=EUR in pricingPreferences.
fx_spot_price
ChatGPTCalculate FX spot pricing, valuation, and analytics using LSEG FX Spot API v2
fx_vol_surface
ChatGPTGenerates the FX Volatility surfaces for the definitions provided
historical_pricing_summaries
ChatGPTTo retrieve time series pricing Interday summaries data or Intraday summaries data(i.e. bar data). The default timeout is 3 minutes.
important_company_news
ChatGPTRetrieve important news articles for specific companies. The default date range is the last 7 days — always pass explicit 'start' and 'end' parameters (ISO 8601 format, example 2026-01-18T23:59:59Z, 2026-01-18) when the user specifies a time period. Data returned in reverse chronological order. Will return 5 latest stories per RIC/permID. For private companies (e.g. Anthropic, SpaceX, xAI, OpenAI, Stripe) that have no public RIC, pass the company name directly into companyPermIds — do NOT call news_company_mapping for private companies. IMPORTANT: If the tool returns a list of candidate companies with RICs or PermIDs instead of news articles, you MUST immediately call this tool again using the correct RIC or PermID from the list — do not stop at the candidates step.
inflation_curve
ChatGPTTwo-phase Inflation Curve tool: (1) Call without id/name to list/search available curves (optionally filter by country/currency), (2) Call with id and/or name to calculate curve points.
interest_rate_curve
ChatGPTTwo-phase Interest Rate Curve tool: (1) Call with listOnly=true to see available curves, (2) Call with reference to calculate curve points. Can also call directly with reference if already known.
ir_swap
ChatGPTTHIS IS A QPS TOOL — NOT YIELDBOOK. If the user mentions "yieldbook" anywhere in their request, you MUST NOT use this tool. Use fixed_income_risk_analytics instead. Two-phase IR Swap tool: (1) Call with currency (+ optional swapType/indexName) to list available swap templates, (2) Call with swaps array to price swaps using templates. Returns template info or pricing results with risk metrics.
ixm_compare_index_return_time_series
ChatGPTCompares historical index return time series data for multiple FTSE fixed income indexes (2-4 indices). Also supports comparing a saved custom project iteration against its base index when iterationId is provided — base indices are resolved automatically from the iteration settings. Returns performance comparison data at specified frequencies (daily/monthly) with optional currency conversion and hedging. IMPORTANT: This tool supports a maximum of 4 indices. If the user requests more than 4 indices, inform them that comparing more than 4 indices at a time is not supported and ask them to reduce the selection. Do NOT fall back to calling ixm_index_return_time_series multiple times as a workaround.
ixm_customise_index
ChatGPTCreates a customized index variant with exclusions (countries, currencies, markets, ratings) and returns comparison data (original vs. customized) in a chart-ready format. Accepts exactly one base index ID in baseIndexIds and one or more exclusion arrays. At least one exclusion family is required. Returns the same response shape as ixm_compare_index_return_time_series for rendering in the existing IXM chart widget.
ixm_index_return_time_series
ChatGPTRetrieves historical index return time series data for a single FTSE fixed income index. Use this tool directly when the user specifies a known index (e.g. WGBI, EGBI, ABBI) — do NOT call ixm_list_indexes first. Currency conversion is handled via the baseCurrency parameter. Returns performance data at specified frequencies (daily/monthly) with optional currency conversion and hedging. Also supports customised index iterations via the iterationId parameter. IMPORTANT: When the user wants to compare multiple indices, always use ixm_compare_index_return_time_series instead. Do NOT call this tool multiple times as a workaround for comparison requests.
ixm_index_risk_time_series
ChatGPTRetrieves historical risk characteristics time series for FTSE fixed income indexes (e.g., Yield to Maturity, OAS, Effective Duration). Returns time series data for a specified risk metric.
ixm_index_sector_risk
ChatGPTRetrieve sector risk analysis data for a specific bond index, showing risk metrics (duration, convexity, spread duration) broken down by weighted average life sectors. Returns a structured grid with sector names and corresponding risk values. Requires a base index ID (e.g., S-IX-WGBI) and pricing date.
ixm_index_turnover_time_series
ChatGPTRetrieves historical turnover time series for FTSE fixed income indexes. Returns time series data for a specified turnover metric.
ixm_list_customised_indexes
ChatGPTLists saved customised-index iterations for the authenticated user, paginated. Returns iteration name, project name, base indices, asset class, base currency, and last modified date. Results are paged: by default only the first page (up to 30 rows) is returned. Use the optional page and pageSize inputs together with the response paging metadata (totalPages, hasNextPage) to retrieve all iterations. Use this tool when the user wants to browse or find a previously saved custom index.
ixm_list_indexes
ChatGPTUse this tool ONLY to browse or discover available FTSE fixed income and equity indexes when the user does not already know which index to use. Do NOT call this tool if the user has already specified an index ID (e.g. WGBI, EGBI, ABBI, G7). Filters by asset class, region, quality, and weighting. Returns index tickers, descriptions, and classifications.
ixm_save_customised_index
ChatGPTSaves a previously previewed customised index iteration. Called directly by the chart widget — not intended for LLM invocation.
news_company_mapping
ChatGPTprovide a way to get list of companies with its common name, ric and permid. also do wild search if the query is not empty.
news_nl_search
ChatGPTTakes a natural language query and returns matching articles along with search metadata. The default date range is the last 7 days — always pass explicit 'start' and 'end' parameters (ISO 8601 format, example 2026-01-18T23:59:59Z, 2026-01-18) when the user specifies a time period. Data returned in reverse chronological order. The response returns up to maxCount = 5 items. For private companies (e.g. Anthropic, SpaceX, xAI, OpenAI, Stripe) that have no public RIC, pass the company name directly into companyPermIds — do NOT call news_company_mapping for private companies. IMPORTANT: If the tool returns a list of candidate companies with RICs or PermIDs instead of news articles, you MUST immediately call this tool again using the correct RIC or PermID from the list — do not stop at the candidates step.
news_rcs_mapping
ChatGPTprovide a way to list news topic and its short name. also do wild search if the query is not empty.
option_value
ChatGPTCalculate option valuation and analytics using LSEG Option API v1. Provides detailed risk metrics including Delta (price sensitivity), Gamma (delta sensitivity), Theta (time decay), Vega (volatility sensitivity), and Rho (interest rate sensitivity). Supports vanilla options (European, American, Bermudan), exotic barrier options (knock-in/knock-out with rebates), binary options for FX (OneTouch, NoTouch, Digital with fixed payouts), and Asian options (price/strike averaging with arithmetic/geometric calculation). Calculates market values, intrinsic values, time premiums, implied volatility, hedge ratios, leverage, moneyness ratios, premium over cash, and annualized yields.
qa_company_fundamentals
ChatGPTRetrieve reported QA company fundamentals (historical financial statements) and measure metadata via dedicated subtools. Do NOT use for forecast questions—forward-looking estimates belong to qa_ibes_consensus.
qa_ibes_consensus
ChatGPTPrimary source for forward-looking QA IBES analyst data. Use qa_ibes_consensus for future fiscal guidance (e.g., Rev FY25-27), qa_ibes_actuals for reported historical results, and qa_ibes_measures for metadata. Always submit a requests array with entries specifying dataType (qa_ibes_consensus | qa_ibes_actuals | qa_ibes_measures) and matching options.
qa_macroeconomic
ChatGPTAccess LSEG QA macroeconomic database for historical economic indicators worldwide. Provides time series data, metadata search, and latest observations. HISTORICAL DATA ONLY - No forecasts available. THREE-PHASE WORKFLOW: 1. DISCOVERY (list) → Search for indicators 2. VERIFICATION → Check units, frequency, date range 3. RETRIEVAL (latest/series) → Get the data REQUEST STRUCTURE: Submit array of requests with dataType and options: { "requests": [ {"dataType": "list|latest|series", "options": {...}} ] } DATATYPE: "list" (Search Indicators) Find indicators by description and/or country. Parameters: - mnemonic: Search code with wildcards (e.g., "USCPI") - description: Search description (e.g., "GDP", "unemployment") - marketDescription: Search country (e.g., "united states", "china") - frequency: Filter by "ANNL", "MONT", "QUAR", "WTH", "WMO", "WWE", "WFR", "WTU", "DWY" - limit: Max results (default 25, max 200) - offset: Skip records for pagination Returns: mnemonic, description, market, frequency, unit, source, startDate Present as: Markdown table with columns: Mnemonic | Description | Frequency | Unit | Start Date Example: {"dataType": "list", "options": {"description": "GDP", "marketDescription": "united states"}} DATATYPE: "latest" (Current Value) Get most recent observation for an indicator. Parameters: - mnemonic: Exact code from list search (required) Returns: period, value, unit, frequency, asOf date, revised status Example: {"dataType": "latest", "options": {"mnemonic": "USI64..XF"}} DATATYPE: "series" (Time Series) Retrieve historical data for an indicator. Parameters: - mnemonic: Exact code (required) - from: Start date YYYY-MM-DD (inclusive, optional) - to: End date YYYY-MM-DD (inclusive, optional) - limit: Max observations (use 200 for 10+ years) - order: "asc" (oldest first) or "desc" (newest first, default) - frequency: Override default - "M", "Q", "A", "W", "D" - includeRevisions: Include all revisions (default false) Returns: Array of {period, value, unit, revised, asOf} Present as: Markdown table with columns: Year/Period | Value (with unit in header) - Format numbers with thousand separators - Include currency/percentage in header or values - Sort chronologically Tips: - Use limit: 200 for long series (10+ years) - Default may return only recent data without date filters - Check resultCount for total observations Example: {"dataType": "series", "options": {"mnemonic": "USI64..XF", "from": "2014-11-01", "limit": 200}} COMMON INDICATORS: United States: - GDP (quarterly, billions): USGDP...B - CPI %YOY (monthly): USI64..XF - Unemployment % (monthly): USUN%TOTQ - Fed Funds % (monthly): USI60... - Non-Farm Payrolls (monthly, thousands): USEMPALLO - 10Y Treasury % (daily): FRTCM10 Country Codes: US=USA, CN=Canada, UK=UK, BD=Germany, FR=France, CH=China, JP=Japan, BR=Brazil, ES=Spain Frequency Codes: - ANNL/A: Annual - QUAR/Q: Quarterly - MONT/M: Monthly - WFR/W: Weekly - DWY: Daily GDP %YOY Patterns: - China: CHGDP..C - Euro Area: EKESNGD&Q - Germany: BDGDPDEY - France: FRGDP..D - Spain: ESGDP..B GDP PER CAPITA CALCULATION: NOT directly available - must calculate manually. Critical Steps: 1. Find both GDP and population indicators via list search 2. VERIFY UNITS before calculating (critical!) 3. Calculate with correct unit conversion Common Patterns: US (IMF): - GDP: USY99B.CB = millions USD (annual) - Population: USI99Z..O = thousands (annual) - Formula: (GDP_millions / Pop_thousands) × 1,000 - ⚠️ USI99Z..O has corrupt data 1948-1949 - use 1950+ US (BEA): - GDP: USGDP...B = billions USD (quarterly, annualized) - Population: USPOPTOTP = thousands (monthly) - Formula: (GDP_billions × 1,000) / Pop_thousands Other Countries: - IMF pattern: [CC]Y99B.CB (GDP), [CC]I99Z..O (Pop) - Units vary - always verify actual values - Cross-reference World Bank/IMF published figures Always validate result against published sources! DATE FORMATS IN RESULTS: - Monthly: "YYYY-MM" (e.g., "2024-01") - Quarterly: "YYYY-QN" (e.g., "2024-Q3") - Annual: "YYYY" - Daily: "YYYY-MM-DD" MULTIPLE REQUESTS: Combine requests in one call: { "requests": [ {"dataType": "list", "options": {"description": "inflation", "marketDescription": "spain"}}, {"dataType": "series", "options": {"mnemonic": "USI64..XF", "from": "2024-01-01"}}, {"dataType": "latest", "options": {"mnemonic": "USUN%TOTQ"}} ] } LIMITATIONS: ❌ No forecasts or consensus estimates ❌ No real-time data (indicator lag varies) ❌ No market prices (stocks, commodities) ❌ Coverage varies by country/indicator TROUBLESHOOTING: "No data available": - Check startDate - data may not exist for period - Recent data may not be published yet - Try broader date range Unexpected values: - Verify units (millions vs billions vs thousands) - Check if values are rates, indices, or absolute numbers - Validate against known published figures Limited results: - Use limit parameter for long series - May need pagination for very long histories DATA SOURCES: National agencies (BLS, BEA, Eurostat), central banks (Fed, ECB), international orgs (IMF, OECD, World Bank), and private providers.
bond_future_price
Claudebond_price
Claudecredit_curve
Claudeequity_vol_surface
Claudefixed_income_bond_reference
Claudefixed_income_risk_analytics
Claudefx_forward_curve
Claudefx_forward_price
Claudefx_spot_price
Claudefx_vol_surface
Claudeinflation_curve
Claudeinsight_headlines
Claudeinterest_rate_curve
Claudeir_swap
Claudeoption_value
Claudeqa_company_fundamentals
Claudeqa_ibes_consensus
Claudeqa_macroeconomic
Claudetscc_historical_pricing_summaries
Claudeyieldbook_scenario_calculation
Claude