Skip to main content
Glama

Value an aircraft at a point in time

value_aircraft

Machine-generated aircraft market value at a single point in time, from today back to 1960. Provide a tail number OR a full spec (make_model_id + aircraft_info). Optional as_of_date selects the contemporary model (>= 2020-01-01 or omitted) or the deep-history longitudinal model (before 2020). Set include=["explanation"] or ["uncertainty"] for richer output. The flagship valuation tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeNoOptional expansions.
as_of_dateNoValuation date (YYYY-MM-DD). Omit for today.
registrationNoTail number. Use this OR make_model_id+aircraft_info.
aircraft_infoNoAircraft specs when valuing without a tail (or overrides when a tail is given). Must include at least "year". Quality scores use a 1–10 scale (10 = like-new) — but see the per-field note: a literal 1 does NOT mean the worst grade. Unknown keys are ignored.
make_model_idNoFAA make/model id (from search_make_models) when no tail is known.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesPoint-in-time valuation result.
metaYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / data / properties / inputs
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Present only when some priced specs were filled with make/model cohort medians: stats_imputed names them (year_imputed for the year). Supply them in aircraft_info for an aircraft-specific value.",
      +  "type": [
      +    "object",
      +    "null"
      +  ]
      +}
  2. Changed6 schema fields changed
    • addedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / description
      Added value: +"The price range around predicted_price. When basis is \"calibrated\" the valuation model supplied the bounds: each level holds that share of asking prices, and the low and high bounds are different distances from predicted_price. With no basis key each level is predicted_price plus and minus a multiple of residual (50 = 0.674, 68 = 1, 90 = 1.645, 95 = 2), which holds fewer prices than its label says."
    • addedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / properties / basis
      Added value: +{
      +  "description": "\"calibrated\" when the ranges are the model's calibrated bounds. Absent otherwise.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / properties / inputs_known
      Added value: +{
      +  "description": "How many of the six main inputs the request supplied (0-6). Only with basis, and only when reported.",
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / properties / intervals / description
      Previous value: -"Keyed by confidence (\"50\",\"95\",…) → {lower, upper}."New value: +"Keyed by level (\"50\",\"68\",\"90\",\"95\") → {lower, upper}."
    • addedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / properties / method
      Added value: +{
      +  "description": "How the calibrated ranges were built: error_size or cohort. Only with basis.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / data / properties / valuation / properties / prediction_data / properties / uncertainty / properties / primary / description
      Added value: +"The 68% level: the Likely Range."
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, openWorldHint=true, destructiveHint=false) set a low bar, and the description adds real behavior: outputs are machine-generated, and the as_of_date value silently switches between a contemporary and a deep-history longitudinal model. The include expansions for richer output are also disclosed. It does not contradict 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.

Conciseness5/5

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

Four tight sentences, front-loaded with the core purpose and then the invocation rules and model-selection caveat. No filler, and the crucial as_of_date branch is stated up front rather than buried.

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?

An output schema exists, so return values need no explanation. Given the tool's complexity (5 params, nested object, two input paths, two models), the description supplies the routing, model-selection, and expansion guidance an agent needs to call it correctly.

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

Parameters4/5

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

Schema coverage is 100% (baseline 3), and the description adds semantics the schema does not: the >= 2020-01-01 threshold that selects the contemporary vs deep-history model, and the practical meaning of the include enum ('explanation'/'uncertainty'). It reinforces the tail-vs-spec routing that the schema only repeats.

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?

States a specific verb and resource ('Value an aircraft', 'aircraft market value') plus scope ('single point in time, from today back to 1960'). The closing line 'The flagship valuation tool' and the sibling set (estimate_cost_of_ownership, enrich_aircraft_for_underwriting) make its role easy to distinguish.

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

Usage Guidelines4/5

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

Explicitly tells the agent how to invoke it ('Provide a tail number OR a full spec (make_model_id + aircraft_info)') and the model-selection condition for as_of_date. It lacks any when-not or comparison against valuation-adjacent siblings, so it stops short of a full routing guide.

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.