Free shipping threshold test
Finds which free shipping threshold (50, 75, 99 dollars, or none) earns the most revenue per session, served as a server-side flag.
Authored by Sid Chaudhary
Founder & CEO at Intempt
Agentic workflow
Coming soon1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.
- 1
Set up the threshold test
Coming soonBlu builds a step
About this recipe
When to use it
A threshold set too low gives away margin for free; set too high and nobody reaches it. This tests $50, $75, $99, and no free shipping at all to find the number that maximizes revenue per session, not just orders.
What it delivers
Runs a server-side experiment testing multiple free-shipping thresholds - $50, $75, $99, or none - to find the one that maximizes revenue per session.
How you prompt this
Describe the outcome in your own words and Blu Agent maps it to this recipe, or run it by name. It drafts a plan first and nothing runs until you approve it.
Tell Blu Agent what you want
“Finds which free shipping threshold (50, 75, 99 dollars, or none) earns the most revenue per session, served as a server-side flag.”
recipe.md preview
Built from the published catalog. Blu Agent's full step prompts load in your workspace when you run it.
Inputs & outputs
What the recipe needs before it runs, and what it leaves in your workspace.
Inputs
- Nothing declared beyond an Intempt workspace. Blu asks for anything else it needs as it goes.
Outputs
How the recipe runs
Blu follows the steps in order and shows you each one before anything goes live.
- 01Set up the threshold testCreate a SERVER EXPERIMENT on /experiences titled "Free Shipping Threshold". ═══ PATH 1: Top-level configuration (Setup tab) ═══ Experience type: server_experiment (Flag Key + JSON payload, no per-variant targeting) Flag Key: free_shipping_threshold Variants: - Control (25%): free shipping at $75 - Variant B (25%): free shipping at $50 - Variant C (25%): free shipping at $99 - Variant D (25%): no free shipping (flat $5.99) Targeting: - Pages: any page where the free-shipping threshold logic applies: typically cart, checkout, and shipping-info banners on PDPs (whatever pages call getFlag for this experiment) - Devices: any (server experiments are device-agnostic; the cart logic runs the same regardless of client device) - Audience: all visitors except wholesale accounts (segment exclusion: account_type = "wholesale") - Display frequency: always (sticky assignment: every cart calculation for a given userId uses the same variant for the experiment's duration) Primary metric: goal_completed_in_experience where experience_id = <this> AND value > 0 (revenue per session: sum of Placed order.total_price attributed via exposed_to_experience) Secondary metrics: - Placed order.total_price (AOV per variant) - Placed order count per session (conversion rate) - items_count on Placed order (units per order: does free shipping inflate cart size?) Guardrail: Abandoned cart rate must not increase >5% in lower-threshold variants (some shoppers may abandon when realizing they don't qualify) Schedule: 21 days. Track new vs. returning visitors separately (returning visitors may have shipping expectations from prior orders). ═══ PATH 2: Variant JSON payload (loaded as code via SDK) ═══ For SERVER experiments, each variant ships a JSON payload that the application loads via getFlag() and renders accordingly. The application code reads the payload and applies the threshold dynamically. Variant: Control (75) JSON payload: { "threshold_cents": 7500, "threshold_display": "$75", "fallback_shipping_cents": 599, "fallback_shipping_display": "$5.99", "messaging": "Free shipping on orders over $75!" } Variant: B (50) { "threshold_cents": 5000, "threshold_display": "$50", "fallback_shipping_cents": 599, "fallback_shipping_display": "$5.99", "messaging": "Free shipping on orders over $50!" } Variant: C (99) { "threshold_cents": 9900, "threshold_display": "$99", "fallback_shipping_cents": 599, "fallback_shipping_display": "$5.99", "messaging": "Free shipping on orders over $99!" } Variant: D (no free shipping) { "threshold_cents": null, "threshold_display": null, "fallback_shipping_cents": 599, "fallback_shipping_display": "$5.99", "messaging": "Standard shipping: $5.99" } SDK integration example (JavaScript): const config = await intempt.getFlag('free_shipping_threshold', userId); // config.threshold_cents to number or null // applies in cart logic, displays in shipping banner Taxonomy notes: - Placed order.total_price is the canonical order value. items_count derives from Placed order.items length. - exposed_to_experience fires when getFlag() is first called for the user; goal_completed_in_experience fires when the configured goal (Placed order within session) is reached. - Server experiments do not have a Visual Editor: there is no DOM change. The variant's effect is purely via the JSON payload's effect on application logic. - "Display frequency: always" for server experiments means the same variant returns on every getFlag call for a given userId (sticky assignment): this is what makes the experiment statistically valid. A user assigned to Variant B sees the $50 threshold consistently across sessions.
Install Intempt and run it
- 1
Sign up
Create a free Intempt workspace.
- 2
Connect your data
Add the sources this recipe reads from.
- 3
Ask Blu
Type /free-shipping-threshold-test in Blu once this recipe is live there.
- 4
Review and approve
Blu builds each step and waits for your OK before anything goes live.
