Skip to main content
Intempt
Coming soon

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 soon

1 step Blu runs end to end. It drafts a plan and nothing runs until you approve it.

  1. 1

    Set up the threshold test

    Coming soon

    Blu 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.

Sign up to read the full recipe.md and run it with Blu Agent.

Sign up to see the full recipe

Inputs & outputs

What the recipe needs before it runs, and what it leaves in your workspace.

Inputs

  1. 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.

    1. 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. 1

      Sign up

      Create a free Intempt workspace.

    2. 2

      Connect your data

      Add the sources this recipe reads from.

    3. 3

      Ask Blu

      Type /free-shipping-threshold-test in Blu once this recipe is live there.

    4. 4

      Review and approve

      Blu builds each step and waits for your OK before anything goes live.

    More recipes by Sid Chaudhary

    Got a play worth sharing?

    Publish it to the Intempt Collective Marketplace and earn when other teams run it.

    Submit a recipe