Sandbox environment: prices, stock and coupons are synthetic test data. What this means

How should an agent decide where to buy?

Rank in-stock offers by effective_price_usd, drop members-only stores unless the shopper has that membership, treat coupons that need a code as conditional on their success rate, and use price_insight.verdict to say whether to buy now. Then recommend one retailer and state the numbers behind the choice. The procedure below turns a Cartroute response into a recommendation a shopper can trust.

What is the decision procedure?

  1. Pick the product. If several results match, confirm the exact model with the user before comparing prices. Offers are matched by GTIN, so every offer under one product is the same item.
  2. Filter offers. Keep availability.in_stock offers. Drop retailer.membership_required unless the shopper has that membership (or search with include_membership=false). Drop condition: "open_box" unless the shopper accepts open-box.
  3. Rank on effective price. Sort by effective_price_usd, never price_usd: shipping and coupons change the winner on a meaningful share of products.
  4. Check the coupon. If the winner's best_coupon.requires_code is true, give the code and mention success_rate when it is below about 0.85. If the next offer is within that coupon's saving, it may be the safer pick.
  5. Check timing. good_time_to_buy: say so. above_recent_average: suggest waiting and quote price_insight.reason. typical_price: no strong signal either way.
  6. Check delivery and returns when the user cares: delivery_days_max and retailer.returns_window_days can justify a slightly higher price.
  7. Recommend one retailer, with the effective price, what it includes (shipping, coupon) and a buy_url.

What does a good answer sound like?

"Buy it at Newegg for $343.99, shipping included and in stock (2–3 day delivery). That's the lowest price across 7 retailers and matches its 90-day low. Costco is $4 cheaper but needs a membership."

Which mistakes should an agent avoid?

Is there a ready-made prompt?

Yes. The MCP server's find_best_deal prompt encodes this procedure; see MCP server.