Skip to main content
Glama

SEC Fundamentals API

Buffett Quality Scan

buffett_scan
Read-onlyIdempotent

Rank US public companies by Quality Score (0-100) over a 10-year window from five components: return on invested capital (30 points, blended 60/40 with the company's industry percentile), durability through the cycle (20), cash conversion (20), balance-sheet strength (15) and capital discipline (15). Every component is explainable from the returned row (roic_median, fcf_conversion, net_debt_to_ebit, ...); a component with no usable data is dropped and the rest renormalized. Companies that stopped filing (4,313), have fewer than five fiscal years on file (1,702), lack the tags to measure returns on capital in enough of those years -- missing EBIT tags, or an unclassified balance sheet, common among homebuilders and industrials with captive finance arms (1,612) -- or are balance-sheet financials (banks, insurers, REITs; 1,539) are not scored and do not appear: 2,885 of 12,051 companies (roughly a quarter of all filers, ~37% of active ones) are scored today. Use it for price-independent quality; use buffett_value to add valuation. Methodology v3; heuristic screen, not investment advice. Cost: $0.25 per call; unpaid calls return a payment-required error.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fyNoFiscal year of the published Quality Scores; omit for the latest. A year that isn't published returns an error listing the published years.
limitNoMaximum companies to return, 1-200.
industryNo2-digit SIC industry group, e.g. 73 (business services, including software); omit for every industry.
min_scoreNoMinimum Quality Score, 0-100.
min_revenueNoMinimum annual revenue in USD, e.g. 1e9.
exclude_foreignNoExclude foreign private issuers (20-F filers); set false to include them.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / exclude_foreign / description
      Added value: +"Exclude foreign private issuers (20-F filers); set false to include them."
    • addedInput schema / properties / fy / description
      Added value: +"Fiscal year of the published Quality Scores; omit for the latest. A year that isn't published returns an error listing the published years."
    • addedInput schema / properties / industry / description
      Added value: +"2-digit SIC industry group, e.g. 73 (business services, including software); omit for every industry."
    • addedInput schema / properties / limit / description
      Added value: +"Maximum companies to return, 1-200."
    • addedInput schema / properties / min_revenue / description
      Added value: +"Minimum annual revenue in USD, e.g. 1e9."
    • addedInput schema / properties / min_score / description
      Added value: +"Minimum Quality Score, 0-100."
  2. Changed3 schema fields changed
    • addedInput schema / properties / fy / anyOf
      Added value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / fy / default
      Previous value: -2025New value: +null
    • removedInput schema / properties / fy / type
      Removed value: -"integer"
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description discloses the scoring methodology, exclusions of certain company types, the renormalization of components, the cost per call, and the payment-required error. It also notes the heuristic nature and methodology version, adding substantial behavioral context without contradicting the annotations.

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 long but information-dense, front-loading the core purpose and methodology before covering exclusions and usage. Every sentence adds value, though some details could be trimmed without losing meaning, keeping it slightly above average but not top-tier conciseness.

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?

Given the tool's complexity (6 parameters, no required, high schema coverage, and an output schema), the description covers purpose, methodology, exclusions, usage guidance, cost, and output explainability. With the output schema present, it doesn't need to detail return values, making it complete for an agent to use 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?

All six parameters are documented in the schema with clear descriptions (e.g., fy, limit, industry, min_score, min_revenue, exclude_foreign). The tool description adds little parameter-specific detail beyond what the schema already provides, so the baseline of 3 is appropriate.

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 clearly states the tool ranks US public companies by a Quality Score with a specific 10-year window and five weighted components. It explicitly distinguishes itself from the sibling buffett_value by noting the difference between price-independent quality and valuation, leaving no ambiguity about its purpose.

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?

It gives explicit guidance on when to use this tool ('Use it for price-independent quality') and directs to an alternative for valuation ('use buffett_value to add valuation'). It also mentions exclusions (companies not scored) and cost implications, providing comprehensive context for selection.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources