Skip to main content
Glama

Dynamic Pricing, Booking Pace, Protection Levels & Overbooking

revenue_optimizer
Read-only

Yield management for perishable capacity (hotel rooms, seats, tickets, rentals, slots, covers). From products (capacity, sold, days to the date, price, floor/ceiling) and optional bookings (stay/event date, lead time or booking date, status, class, price, segment), price history (date, price, units), fare classes (fare, demand still to come) and show history it returns: booking pace vs comparable past dates and an additive-pickup forecast with range; the price now maximising expected contribution within a band (demand from pickup x price response); price elasticity by log-log regression with confidence interval, refusing flat-price or demand-driven histories, pooled across products; Littlewood / EMSR-a / EMSR-b protection levels and booking limits with the exact optimal levels and expected revenue vs first-come-first-served; overbooking limit (binomial shows) with the chance of turning anyone away, show rates by segment with Beta-Binomial shrinkage, never for critical clinic types. Recommendations only. Decision cards first. Up to 500 products / 20,000 bookings; larger: revenue_optimizer_get_engine.

Input Schema

NameRequiredDescriptionDefault
as_ofNoPlan date YYYY-MM-DD (default: latest booking date).
bookingsNoproduct, stay/event date, booking_date or lead_time, status, cancel date, class, price, segment, units.
capacityNoCapacity for fare classes without a product row.
currencyNoINR
industryNohotel
productsNoOne row per product and date: product, capacity, sold, days_out or stay/event date, price; optional price_floor, price_ceiling, unit_cost, segment, show_rate, denied_cost, no_show_fee, critical, elasticity, expected_remaining_demand.
denied_costNoCost of turning one customer away (walk / bump / compensation).
fare_classesNoproduct, class, fare, mean_demand, sd_demand (demand still to come); capacity on the row or via `capacity` when no product row.
show_historyNosegment, booked, showed.
price_historyNoproduct, date, price, units sold.
pace_alert_pctNo
currency_symbolNo
max_denied_probNo
max_overbook_pctNo
min_price_pointsNo
default_elasticityNoOnly an explicit user assumption; flagged as assumed.
count_cancellationsNoCount cancellations as no-shows (for limits set far ahead).
max_products_listedNo
allow_price_increaseNoDefault true; false for clinics.
max_price_change_pctNo

Output Schema

NameRequiredDescriptionDefault
alertsNo
statusYes1 = ok, 0 = nothing could be planned
messageNo
summaryNo
metadataYes
productsNo
decisionsYesPlain-language cards, priority order. Relay these first.
elasticityNo
protectionNo
show_ratesNo
assumptionsNo
data_quality_reportNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

With readOnlyHint and non-destructive annotations already present, the description adds substantial behavioral context: recommendations only, decision cards first, refusal on flat-price or demand-driven histories, pooled elasticity, and no overbooking for critical clinic types. These are meaningful constraints and caveats 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.

Conciseness4/5

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

The purpose is front-loaded, followed by input data, outputs, constraints, and the sibling alternative. The description is dense and includes long run-on clauses, but most of the density is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a 20-parameter tool with an output schema and read-only annotations, the description covers the analytical outputs, input data shapes, scale limits, and important refusal cases. It is not exhaustive on every tuning parameter, but the schema and output schema fill those gaps.

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?

The description explains the main data inputs (products, bookings, price history, fare classes, show history) and their key fields, which helps beyond the 55% schema coverage. However, many control parameters such as pace_alert_pct, max_denied_prob, min_price_points, count_cancellations, and max_price_change_pct are not explained in the description.

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 names a specific domain (yield management for perishable capacity) and enumerates the concrete outputs: pace forecasts, optimal price, elasticity, protection levels, and overbooking limits. It also distinguishes the sibling by directing larger datasets to revenue_optimizer_get_engine.

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?

It gives clear usage context across hotel, airline, event, rental, restaurant, clinic, and other perishable-capacity settings, plus an explicit alternative at the 500-product/20,000-booking threshold. It does not describe when not to use the tool beyond that scale cutoff and the clinic caveat.

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