Skip to main content
Glama

RiskModels PIT Quarterly Fundamentals

riskmodels_get_fundamentals
Read-only

Fetch point-in-time quarterly fundamentals and CAPM cost of capital for one US stock, including TTM ratios, leverage, betas, WACC, economic profit, and SEC line items.

Instructions

Use when you need point-in-time quarterly fundamentals or CAPM cost of capital for one stock. Not for risk or hedge numbers (use riskmodels_get_stock_snapshot). Returns, from GET /fundamentals/{ticker}: TTM profitability and capital-return ratios, leverage, ERM3 valuation betas, cost_of_debt and wacc from reported data, separately labelled cost_of_debt_imputed and wacc_imputed from a market proxy (10-year Treasury plus a high-quality corporate spread, not issuer-specific), economic profit, an equity-bridge decomposition and SEC line items (sec_facts). A quarter is included only if it was filed on or before as_of. grid=true adds an ERP x Treasury-tenor table of cost of equity, wacc, wacc_imputed and economic profit for the latest period. Realized history only, no forecasts; filings are picked up end-of-day. Price: $0.02 per call.

Input Schema

NameRequiredDescriptionDefault
erpNoEquity risk premium as a decimal, e.g. 0.055 for 5.5% (default 0.05)
gridNotrue adds sensitivity_grid (cost_of_equity, wacc, wacc_imputed, economic_profit) across erp_grid x rf_tenor_grid for the latest period, e.g. true (default false)
as_ofNoPoint-in-time date; only quarters filed on or before it are returned (default today), format YYYY-MM-DD, e.g. 2025-12-31
tickerYesUS stock ticker symbol, case-insensitive, e.g. AAPL
periodsNoQuarterly rows returned, most recent last, integer 1-40, e.g. 12 (default 8)
erp_gridNoComma-separated ERP decimals for the grid, e.g. "0.03,0.04,0.05,0.06,0.07"; used only when grid=true
rf_tenorNoTreasury constant-maturity tenor for the risk-free rate, e.g. 10y (default 10y); pair a short tenor with a bill-basis ERP
tax_rateNoTax rate for the WACC debt shield as a decimal, e.g. 0.25 (default 0.21)
rf_tenor_gridNoComma-separated tenors for the grid, e.g. "1y,10y,30y"; used only when grid=true

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.0.12
    • changedInput schema / properties / as_of / description
      Previous value: -"Point-in-time date YYYY-MM-DD (default: today)"New value: +"Point-in-time date; only quarters filed on or before it are returned (default today), format YYYY-MM-DD, e.g. 2025-12-31"
    • addedInput schema / properties / as_of / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • changedInput schema / properties / erp / description
      Previous value: -"Equity risk premium request parameter for cost-of-capital (default 0.05 when omitted)"New value: +"Equity risk premium as a decimal, e.g. 0.055 for 5.5% (default 0.05)"
    • changedInput schema / properties / erp_grid / description
      Previous value: -"Comma-separated ERP values for the grid, e.g. \"0.03,0.04,0.05,0.06,0.07\". Only used when grid=true"New value: +"Comma-separated ERP decimals for the grid, e.g. \"0.03,0.04,0.05,0.06,0.07\"; used only when grid=true"
    • changedInput schema / properties / grid / description
      Previous value: -"If true, response also carries sensitivity_grid: cost_of_equity, strict wacc, parallel wacc_imputed, and economic_profit across erp_grid x rf_tenor_grid for the latest PIT-visible period only"New value: +"true adds sensitivity_grid (cost_of_equity, wacc, wacc_imputed, economic_profit) across erp_grid x rf_tenor_grid for the latest period, e.g. true (default false)"
    • changedInput schema / properties / periods / description
      Previous value: -"Quarterly rows returned, most recent last (default 8, max 40)"New value: +"Quarterly rows returned, most recent last, integer 1-40, e.g. 12 (default 8)"
    • changedInput schema / properties / rf_tenor / description
      Previous value: -"Treasury CMT tenor backing rf_rate (default 10y — pair a short tenor with a bill-basis ERP)"New value: +"Treasury constant-maturity tenor for the risk-free rate, e.g. 10y (default 10y); pair a short tenor with a bill-basis ERP"
    • changedInput schema / properties / rf_tenor_grid / description
      Previous value: -"Comma-separated tenor subset for the grid, e.g. \"1y,10y,30y\". Only used when grid=true"New value: +"Comma-separated tenors for the grid, e.g. \"1y,10y,30y\"; used only when grid=true"
    • changedInput schema / properties / tax_rate / description
      Previous value: -"Tax rate applied to the WACC debt shield (default 0.21)"New value: +"Tax rate for the WACC debt shield as a decimal, e.g. 0.25 (default 0.21)"
    • changedInput schema / properties / ticker / description
      Previous value: -"Ticker symbol, e.g. AAPL"New value: +"US stock ticker symbol, case-insensitive, e.g. AAPL"
  2. First observedv1.0.11

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so safety is covered. The description adds useful context: it explains that reported versus imputed cost of debt/wacc use different sources, clarifies the as_of inclusion rule, states that only realized history is returned (no forecasts), notes that filings are picked up end-of-day, and gives a per-call price. However, it does not address key operational traits such as rate limits, authentication scope, or error behavior. With annotations carrying the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with usage guidance and then systematically details outputs, caveats, and cost. It is dense and somewhat long, but with 9 parameters and no output schema, nearly every sentence earns its place by explaining what is returned or how the tool behaves. Minor redundancies with schema descriptions (as_of, grid) are the only waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description carries the full burden of explaining return values, and it does so comprehensively—listing TTM ratios, leverage, betas, reported and imputed cost components, economic profit, equity-bridge decomposition, SEC line items, and grid behavior. It also covers caveats (realized only, no forecasts, end-of-day filings) and pricing, leaving the agent well equipped to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description repeats but does not meaningfully extend the schema's parameter documentation: its statements about as_of filtering and grid behavior restate what is already in the schema. It adds no new syntax, defaults, or constraints beyond the schema for any of the 9 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'point-in-time quarterly fundamentals or CAPM cost of capital for one stock'. It explicitly distinguishes itself from the sibling tool 'riskmodels_get_stock_snapshot' for risk/hedge numbers. An agent can identify the tool's unique scope without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening sentence specifies the exact condition for use ('when you need point-in-time quarterly fundamentals or CAPM cost of capital'), and the second sentence gives an explicit exclusion with the alternative tool to use instead. This covers when, when-not, and the alternative in a single compact routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.