gate	question	required_evidence	pass_condition	controlled_state	failure_action
product_identity	Do both arms show the exact sold SKU and selected variant?	approved source record; full-resolution overlay; variant render	identical product layer and correct selected variant	local pass; fictional product authority	stop; restore approved control; correct product mapping
change_isolation	Is the declared background field the only changed visual layer?	asset manifest; pixel-layer hash; contract	product file, size, coordinates, crop, and gallery order are identical	local pass	stop; rebuild treatment from the approved layer
eligibility	Is the same eligible population available to both arms?	eligibility query; exclusion log; market and consent rules	one predeclared rule is applied before assignment	planned; untested	stop; repair eligibility before relaunch
assignment	Is the randomization unit stable and approximately 50:50?	assignment log by anonymous visitor ID	one arm per unit; no unexplained sample-ratio mismatch	planned; untested	freeze analysis; diagnose assignment, loss, bots, and logging
persistence	Does a visitor retain the same arm across reload, navigation, and checkout path?	persistence test by supported browser and device	no arm switching inside the declared experiment lifetime	planned; untested	stop; repair persistence and clear invalid assignments
exposure	Is exposure logged only after the correct hero renders?	render callback; experiment ID; arm; SKU; asset version	one deduplicated exposure for the rendered arm	planned; untested	stop; repair render and exposure join
event_chain	Can exposure join to product view, add to cart, checkout, and completed purchase?	event dictionary; test order; join QA	stable visitor, product, variant, and experiment keys survive the chain	planned; untested	stop; repair instrumentation before reading outcomes
variant_selection	Does changing a Shopify option preserve the correct variant and experiment arm?	desktop and mobile option-selection QA	image, price, availability, cart line, and selected option agree	planned; untested	stop; restore control and correct variant behavior
accessibility	Does each arm communicate equivalent product meaning?	reviewed alt text; keyboard and screen-reader QA	accurate concise alt text; no meaning exists only in decoration	planned; untested	stop; correct semantics before launch
performance	Does the treatment preserve delivery quality?	LCP; CLS; image dimensions; responsive source; network trace	no material regression beyond the declared guardrail	planned; untested	stop or roll back; optimize delivery without changing the hypothesis
commerce_parity	Are price, offer, inventory, shipping, destination, and checkout identical?	rendered PDP, cart, checkout, order test	all locked commerce fields agree in both arms	planned; untested	stop; repair the commerce path
data_quality	Are bots, staff, QA, duplicates, missing assignments, and consent states handled?	quality query and exclusion counts	predeclared exclusions are complete and symmetric	planned; untested	freeze analysis; resolve missing or asymmetric data
reversibility	Can the approved control be restored without changing product or offer data?	versioned assets; rollback owner; tested switch	control restoration path is documented and exercised	planned; untested	do not launch until rollback works
decision_rule	Are keep, iterate, and rollback criteria signed before launch?	experiment contract; owner approval	primary, economics, guardrails, maturity, and stop rules are explicit	contracted fictional example	return the test to planning
