rewards accepts a name, an object, or a list of either.
Fields
Types
The type is the statistical shape of the outcome and selects the model Curious fits. It is declared, never guessed from data.binary: did it happen.email_clicked,signed_up. The event’s value is ignored.count: how many times.added_seats,pages_viewed. Each event counts once regardless of its value.semicontinuous: did it happen, and how much.purchasedwith an amount. Zero when it did not happen, the amount when it did.continuous: a measured value every time.nps_submittedwith a score.
Where a semicontinuous amount comes from
value names the source, for semicontinuous rewards only. event.value (the default) reads the event’s value. event.properties.<key> reads a property, such as event.properties.amount_usd. arm.<field> reads a top-level field of the served arm’s content, which is how a price in the content becomes the amount; the format must then bound that field as a number with min and max.
Weights and costs
The composite issum(weight × expected reward). A negative weight turns an event into something Curious avoids: refunded at -0.5, unsubscribed at -1. Weight 0 is a 400, because a reward that counts for nothing should not be declared.
Windows
The window starts at the decision. An event inside it attributes to that decision; an event after it does not. A new decision for the same user and element ends the previous decision’s window early, so an event always lands in exactly one window. Give each reward the window its outcome needs: a day for a click, a month for a refund. See Events and attribution.Baseline rate
baseline_rate is optional prior information: the rate the control achieves today, in the reward’s own units. For binary and semicontinuous rewards it is an occurrence probability strictly between 0 and 1; for count a strictly positive expected count; for continuous any finite value. It sharpens Curious’s starting beliefs and is monitored against what the control actually does. It is never identity: changing it does not restart the experiment, and it is read once, when the experiment is created.