holdout_pct on the site record.
The setting
holdout_pct is a number between 0.05 and 0.5, default 0.10. Change it in the console or with PATCH /v1/sdk/{id} and { "holdout_pct": 0.2 }. It is stored to three decimals.
Until thirty of the site’s visitors have been held, the effective share is at least 0.20 whatever the setting. A new site would otherwise take months to reach a readable comparison at 5%. Once thirty are held, the setting applies. The count is of visitors held in the last 90 days, so a site that goes quiet for a season can re-enter the ramp.
How a visitor lands in the holdout
The arm is assigned once per visitor, at the first moment the engine would engage them, by a hash of the visitor id and the site. It is stored on the visitor’s durable record, so a returning visitor stays in the same arm across visits. A held visitor is treated exactly like a spoken-to one in every way except the sentence: the moment is recognised, the decision is made and recorded, the sentence is composed, and nothing is placed. Holding back is not watch mode. In watch mode nobody is spoken to. With a holdout, most stuck visitors are spoken to and a fixed random share is not, so the two groups differ only in the sentence. That is what makes the comparison fair.What the store view shows
GET /v1/sdk/{id}/store carries a proof block: for each arm, visitors, orders, revenue and the order rate, and min_arm, the count each arm needs before the comparison is called proven (30). Once both arms have thirty, money.lift_pct is the difference in order rate between the spoken-to arm and the held arm, and money.recovered_usd is the credited revenue scaled by the share the comparison says was incremental. Before that, recovered_usd equals the credited figure and recovered_basis says the holdout is still collecting.
The credited figure itself, money.credited_usd, is never scaled. It is the full revenue from visitors who were shown a sentence and bought within seven days, and on Shopify it is what the bill is based on. The holdout is the proof beside the price, not the price.
