Skip to main content
Glama

SNHP — free negotiation math + agent memory

Clearance price & markdown schedule

clearance_price
Read-only

Best price plus markdown schedule to clear stock by a deadline — free, no account or key needed.

USE THIS WHEN: you must sell a FIXED number of units before a cutoff and demand arrives over time — event tickets, perishable inventory, end-of-life stock. NOT for 1:1 haggling (negotiate) or auctions (auction_bid/reserve).

Provide: inventory (units to sell); horizon_seconds (selling window in SECONDS — 14 days = 14243600 = 1209600); arrival_rate_per_second (expected shoppers per second = expected total shoppers / horizon_seconds); and buyer_arrival_prior — a rough model of willingness-to-pay, e.g. {"family":"uniform","params":{"low":40,"high":150}}. Returns {static_price (one good fixed price), static_expected_revenue, dynamic_schedule (list of {t_seconds, recommended_price} markdown waypoints), sellthrough_rate, rationale} — all prices in the SAME $ as your prior.

Example: 200 tickets, 14-day window, ~600 shoppers willing to pay $40-$150 -> clearance_price(inventory=200, horizon_seconds=1209600, arrival_rate_per_second=600/1209600, buyer_arrival_prior={"family":"uniform","params":{"low":40,"high":150}}) -> static_price ~$112, schedule marks down $114 -> ~$76 as the deadline nears.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
seedNoRNG seed for reproducibility (default 42).
inventoryYesNumber of units you must sell before the cutoff.
n_simulationsNoMonte-Carlo sample count for the estimate (default 2000).
horizon_secondsYesSelling window in SECONDS (14 days = 14*24*3600 = 1209600).
buyer_arrival_priorYesRough model of buyer willingness-to-pay, e.g. {family:'uniform', params:{low:40, high:150}}.
arrival_rate_per_secondYesExpected shoppers per SECOND (= expected total shoppers / horizon_seconds).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
rationaleNo
static_priceNo
dynamic_scheduleNo
sellthrough_rateNo
dynamic_value_estimateNo
static_expected_revenueNo
static_simulated_revenueNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true and openWorldHint=false. The description adds that the tool is 'free, no account or key needed' and explains the output structure (static_price, dynamic_schedule, etc.). No contradictions. It adds behavioral context beyond 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 well-structured with a purpose line, usage section, parameter guide, and example. It is front-loaded with key info. Slightly lengthy but each part earns its place; minor redundancy in the example block.

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 6 parameters, 4 required, 100% schema coverage, and an output schema, the description fully explains tool purpose, when to use, parameters with examples, and return values. The example call makes it immediately actionable.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds substantial meaning: explains horizon_seconds conversion via example, buyer_arrival_prior structure ('family', 'params'), and provides a full example call. This goes well beyond the schema descriptions.

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 the tool generates a 'Best price plus markdown schedule to clear stock by a deadline'. It explicitly distinguishes from siblings by stating 'NOT for 1:1 haggling (negotiate) or auctions (auction_bid/reserve).' The verb 'clear' and resource 'price & schedule' are specific.

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 description provides a dedicated 'USE THIS WHEN:' section: 'you must sell a FIXED number of units before a cutoff and demand arrives over time'. It also gives explicit exclusions: 'NOT for 1:1 haggling (negotiate) or auctions (auction_bid/reserve).' This clearly separates it from alternatives.

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.

TDQS

A4/5.0
Disambiguation4/5

Most tools have distinct purposes (e.g., auctions, negotiation, pricing, matching, memory). However, negotiate/session_advise and negotiate_bundle/session_bundle overlap in functionality, differing only in payment tier, which could cause confusion.

Naming Consistency4/5

Tool names generally follow a verb_noun pattern in snake_case. 'negotiate' is a lone verb without a noun, but overall the convention is consistent and predictable.

Tool Count4/5

15 tools cover a broad domain of negotiation, auctions, pricing, matching, and memory. While slightly on the higher side, each tool serves a clear purpose and the count is reasonable for the scope.

Completeness4/5

The tool surface covers key negotiation scenarios (single/multi-issue, free/paid, auctions, clearance pricing, stable matching) and adds memory persistence. Minor gap: no explicit tool for managing user preferences or profiles.