Skip to content
2 minute readImprovedAgent-ready

Learned pricing now learns from what buyers do

Learned pricing no longer needs you to report every quote. Quotes nobody reported on now count too, read from the orders that followed them, so an estimate is ready with far fewer reports and is less skewed by which outcomes buyers bother to report.

Settings, Learned pricing, showing for each estimate how many outcomes were reported and how many were inferred from orders

Learned pricing used to count only quotes with a reported outcome. Most quotes never get one, so most of what your buyers did was ignored, and the outcomes that were reported leaned toward rejections.

  • A quote nobody reported on now counts as accepted when an order for the product follows it within 7 days, and as rejected when the same buyer asks for a new quote within 24 hours or no order comes
  • To connect orders to quotes, put the product id in metadata.product_id on the order line, or the pricing call's request_id in metadata.quote_request_id. Send metadata.customer_id with the pricing call to match orders and repeat quotes to the same buyer
  • Only orders that are active or completed count, only your own workspace's orders are read, and for a product whose orders you do not record, a missing order is never read as a no
  • An inferred outcome counts half as much as a reported one, and a reported outcome always wins over an inferred one for the same quote
  • Settings, Learned pricing and GET /api/learned-elasticity show how many of each estimate's outcomes were reported and how many inferred (reported_count, inferred_count)
  • An estimate still needs at least 30 quotes' worth of outcomes before it is used. We checked that threshold against simulated markets: lower lets badly wrong estimates through, and higher holds back estimates that are already accurate