Skip to content
2 minute readNewAgent-ready

Pricing models that learn from your own request data

Buyer-aware pricing can now learn from the fields you send in metadata, nested objects and lists included. A feature contract names each field by its path in the request and says how it becomes a label; each quote keeps only those labels, never your raw metadata.

The Feature Contract section of the documentation in dark mode, with its field table and an example contract

Buyer-aware pricing learned how different buyers react to price from a few flat fields, such as the buyer type and channel. Your requests often say much more than that, in metadata: the kind of device, the items in the basket, the plan. A feature contract lets the models learn from it.

  • Named by path: each field is named by where it sits in the request, such as metadata.device.type. One name per meaning, the API's own; the older model names segment and product now read as customer_segment and product_id.
  • Lists reduced, not spread: metadata.items[]:count, metadata.items[].price:sum or metadata.items[].kind:has=hdmi, never item_1, item_2 columns.
  • Discriminators are categories: a type field that decides what else is present is learned like any other category.
  • Only labels are kept: a quote keeps the contract's labels (a known value, a numeric bin, or yes or no), never the metadata itself. Values that look personal are refused.
  • Proposed for you: infer_feature_contract reads sample requests and proposes a contract, leaving out fields that identify someone and saying why.
  • Portable models: an exported ONNX model names its columns by the same paths and carries the contract, so it can be served without Last Price.