Skip to main content
Glama

Fair Value Calculator

Fair value verdict

get_stock_verdict
Read-onlyIdempotent

Full Fair Value Calculator verdict for one stock: the fair value per share with its currency (blended from up to 26 valuation models), valuation status, upside band, quality score, evidence level, size class and a link to the full analysis. Free accounts get 3 full verdicts per day (the response says how many are left), Pro accounts 50. For free accounts each different stock counts once a day; asking again about a stock already shown today is free. When the daily limit is used up the response has status "free_daily_limit_reached" and no valuation. For a signed-in user the stock also has on_watchlist (true or false) and email_alerts (on = Fair Value Calculator emails the user when one of their watchlist stocks changes from on track to review, off = these emails are off for this account (set_watchlist_alerts turns them on), pro_only = these emails are part of Pro); add_to_watchlist puts it on the free watchlist that the weekly email follows, if the user wants to keep track of it. Where available the verdict also carries fair_value_range (cautious and optimistic case of the fair value), reasons (the strengths and weak points behind the verdict, each with a tone), ai_conclusion (one sentence on the business quality), in_focus (what currently matters for the company) and main_risk (the biggest risk to the business), with ai_note_date. Fields: valuation_status (undervalued = price at least 10% below fair value, overvalued = price at least 10% above fair value, else near_fair_value; no_valuation = covered, but no fair value is shown right now, note says why), upside_band (distance from price to fair value in 10-point bands, e.g. "10_to_20", "above_30", "below_-30"), quality_score (0-100 business quality), evidence_level (how much audited data backs the value), price_as_of (date of the share price the valuation status refers to), calculated_at (date the valuation models last ran for this stock), requested_symbol with listing = other_listing_same_company (present when the answer is about another listing of the same company than the symbol asked for, the listing the website shows for it, e.g. 939.HK answered with the Shanghai listing 601939.SHG; fair value and currency refer to the listing in symbol), deep_link (full analysis page on fairvalue-calculator.com with the fair value history chart and the result of each valuation model with its bear, base and bull case), trend12 (uptrend: true when the price one month ago was higher than twelve months ago, false when not, null when not known), trend12_pct (that change in percent), trend_arrow (arrow on the site: up = rising, sideways = sideways down to -10 percent, down = falling), buy_rules (the three buy rules of the Fair Value Calculator strategy, each true, false or null: fair_value = fair value upside of at least fair_value_min_pct percent, quality = quality score of at least quality_min, measured as in the backtest without the AI Quality points, trend = uptrend, all = all three met; quality_rule = the quality score the rule decided on, present only when it decides differently from quality_score; upside_rule = the fair value upside in percent the rule decided on (fair value before the cycle and dilution adjustment), present only when it decides differently from the shown upside; the strategy only buys stocks with all three), fair_value_adjustment (present together with upside_rule: the shown fair value was adjusted after the model blend, the buy rule decides on the value before; reason = cyclical_peak_year (a record profit year of a cyclical business is not carried forward in full), cyclical_trough_year (a weak year of a cyclical business is not carried forward in full), dilution_new_shares (new shares lower the value per share) or adjusted; before and now = the fair value before the adjustment and the shown fair value, only where the fair value itself is shown), fair_value_last_change (only in the verdict, present when the shown fair value changed by 15 percent or more within the last 30 days: date, before and after (the shown fair value before and right after that change; the current value is fair_value) and reason = new_fiscal_year_figures (the figures of fiscal_year arrived and the value was recalculated from them), cyclical_peak_year, cyclical_trough_year or dilution_new_shares (that adjustment started to apply on this date), calculation_update (an updated calculation went live for all stocks on this date, nothing happened at the company itself) or not_recorded (no cause is on record)), fair_value_basis (present with the value estimate when none of the valuation models carries for the company, usually because of losses or heavy investment: the fair value is then an estimate drawn from revenue and assets compared with similar companies, less precise than a model-based fair value; valuation_status is then never undervalued and fair_value_last_change is not given). The values are calculated by Fair Value Calculator from its own models and cannot be derived from the other fields; deep_link opens the full analysis page with the fair value history chart and every valuation model. This is a valuation, not financial advice.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "symbol": "<symbol>"
    },
    "name": "get_stock_verdict"
  }
}

Input Schema

NameRequiredDescriptionDefault
symbolYesStock symbol in the form TICKER.EXCHANGE as returned by resolve_stock, e.g. AAPL.US, SAP.XETRA, NESN.SW. A bare ticker (AAPL) also works and is resolved like the website search.
request_idNoOptional: stable id for this call; a retry with the same id is not counted twice.
analysis_session_idNoOptional: reuse the same id for all tool calls that answer ONE user question, so they count once against the daily limit. Exception: for free accounts every different stock in get_stock_verdict counts once a day, whatever id is sent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / analysis_session_id / description
      Previous value: -"Optional: reuse the same id for all tool calls that answer ONE user question, so they count once against the daily limit."New value: +"Optional: reuse the same id for all tool calls that answer ONE user question, so they count once against the daily limit. Exception: for free accounts every different stock in get_stock_verdict counts once a day, whatever id is sent."
  2. First observed

TDQS

A3.8/5.0
Behavior5/5

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

Annotations only cover safety (read-only, idempotent, non-destructive), and the description adds substantial behavior: rate limits and their failure mode, the listing-substitution behavior (939.HK answered with 601939.SHG), depending fields like fair_value_basis and adjustment reasons, and the disclaimer that values cannot be derived from other fields. This is unusually rich disclosure beyond 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.

Conciseness2/5

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

The definition is a single run-on paragraph of several hundred words mixing quotas, watchlist fields, symbol substitution, and a dozen response-field glosses. Much of the field documentation earns its place given no output schema, but the lack of structure and front-loading makes it hard to scan and pushes well past appropriate size.

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?

With no output schema and a very large response surface, the description compensates by documenting nearly every returned field and enum-like value (valuation_status, upside_band, buy_rules, fair_value_adjustment, trend12, etc.). An agent has enough to interpret responses 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 coverage is 100%, so the three parameters are already documented, including retry-id and session-id semantics. The description reinforces the free-account counting rule but adds little that the schema does not already say, so the baseline 3 applies.

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

Purpose4/5

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

The opening states a specific verb and resource: the full Fair Value Calculator verdict for one stock, plus what it contains (fair value, status, quality, etc.). The word 'Full' implicitly distinguishes it from the 'preview' sibling, but no sibling is named, so differentiation is left to inference.

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

Usage Guidelines3/5

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

There is solid context on quota mechanics (3 free verdicts/day, repeat lookups free, free_daily_limit_reached result) and a pointer toward add_to_watchlist. However, it never states when to choose this tool over get_stock_preview or compare_stocks, so usage guidance is implied rather than explicit.

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.