Fundamentals

Point-in-time quarterly fundamentals (derived analytics + SEC-sourced raw)

Quarterly fundamentals for a single ticker, point-in-time filtered: a row is visible if and only if its filed_date is on or before as_of (never "latest"). filed_date_source is exact (vendor filing date) or approx (period_end + 45 days, the 10-Q deadline, when the vendor date is missing).

Derived analytics + per-cell raw SEC exposure. Rows carry TTM profitability ratios (roe_ttm, roa_ttm, fcf_margin), capital-return ratios (payout_ratio, retention_ratio, buyback_ratio, total_payout_ratio, sustainable_growth), leverage_ratio, long-window ERM3 valuation betas with provenance, the cost-of-capital layer (cost_of_equity, strict cost_of_debt / wacc, parallel cost_of_debt_imputed / wacc_imputed, and economic_profit), and the equity-bridge residual + inputs mask. sec_facts carries RAW line items for the cells whose serving value is SEC XBRL (public); vendor-sourced cells are not included there.

Numeric line items are stored at ~7 significant figures (float32) — suitable for analysis, not cent-level reconciliation. gross_margin and operating_margin are currently always null (inputs not yet in the store). market_cap is a current snapshot, not point-in-time per quarter.

Disclosures (also returned in every response body):

  • Realized historical data only. No forecasts, no analyst targets, no buy/sell signals.

  • Coverage starts ~2009 for most filers; pre-2009 and small-cap or recently-IPO'd names are thin. Missing fields are null.

  • beta_market is the long-window valuation beta used by the CAPM layer, not the short-half-life hedging beta on the daily risk surface. For defensive names cost_of_equity can still fall below the risk-free rate.

  • WACC uses BOOK-value weights. Market-value weights are the textbook convention; compute them yourself if you have market-cap access.

  • Strict cost_of_debt and wacc are never silently filled. When trusted SEC debt is positive but TTM interest expense cannot form a strict debt cost, the separate imputed fields may use a PIT-lagged high-quality-market proxy. Its spread is the monthly Treasury HQM 10-year spot yield minus the same-month GS10 monthly average; that stored spread is then added to the separate period-end point-in-time 10-year Treasury rate. HQM month M becomes eligible on day 10 of M+1. The proxy covers the A/AA/AAA market; it is not issuer-specific.

  • TTM sums flows over the trailing 4 reported quarters; stock quantities are point-in-time (ROE denominator uses trailing-4-quarter average equity). Ratios need 4 finite quarters or they are null.

  • erp (default 0.05) and tax_rate (default 0.21) are request parameters echoed in the response. The documented defaults are used when omitted; no equity-risk-premium opinion is stored in the data.

  • rf_rate is the Treasury constant-maturity yield at the selected rf_tenor (3m|1y|2y|5y|10y|30y, default 10y — the valuation convention), sampled at the last observation on or before each quarter's period end. A short tenor should be paired with a bill-basis ERP or cost of capital is understated.

Authentication: Required (API Key or OAuth2) Billing: $0.02 per request (deducted from account balance) Rate Limit: 60 requests/minute (default)

Per-symbol, per-call only: no batch variant, no CSV/bulk export (JSON only).

get/fundamentals/{ticker}

Request

  • Base URL: https://riskmodels.app/api
  • URL: https://riskmodels.app/api/fundamentals/{ticker}
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL https://riskmodels.app/oauth/authorize, token URL https://riskmodels.app/api/oauth/token, scopes: mcp:read)

Path parameters

tickerstring required

Ticker symbol (case-insensitive).

Query parameters

as_ofstring date

Point-in-time date. Rows are visible iff filed_date <= as_of. Default: today.

periodsinteger

Number of quarterly rows returned (most recent last). Max 40.

erpnumber

Equity-risk-premium request parameter for the cost-of-capital layer; default 0.05 when omitted, with no ERP opinion stored in the data.

tax_ratenumber

Tax rate applied to the WACC debt shield.

rf_tenor'3m' | '1y' | '2y' | '5y' | '10y' | '30y'

Treasury constant-maturity tenor backing rf_rate. Default 10y (valuation convention). Pair a short tenor with a bill-basis ERP or cost of capital is understated.

gridboolean

When true, the 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 (not a time series — a "what if my assumptions were different today" table). Same billing as the base call; no extra cost.

erp_gridstring

Comma-separated ERP values for the sensitivity grid (1-10 values, each in [0, 0.5]), e.g. 0.03,0.04,0.05,0.06,0.07. Ignored unless grid=true. Default: 0.03,0.04,0.05,0.06,0.07.

rf_tenor_gridstring

Comma-separated subset of 3m,1y,2y,5y,10y,30y for the sensitivity grid. Ignored unless grid=true. Default: all six tenors.

Response

PIT quarterly fundamentals rows.

tickerstring required
as_ofstring date required
periods_returnedinteger
disclosuresobject required

Realized-historical-only statement, ~2009 coverage note, long-window valuation-beta cost-of-equity caveat, strict-versus-proxy book-weight WACC notes, TTM convention, and the request-parameter echo.

_metadataobject

Example response

{
  "ticker": "AAPL",
  "market_cap": {
    "basis": "current_snapshot"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.