What the numbers say
An order at $120.00 weighs about 2 lb packed, so its label costs $9.95 at USPS's Zone 5 commercial price. Charging the 1 lb label ($8.74) and shipping free differ by $6.80 per order.
Free shipping on every order keeps $39.71 per order against $46.51 when shipping is charged. To earn the same per visitor it has to bring 17.1% more buyers.
With no unit to top up with, a threshold would sit above the average order and only a share of orders would qualify. The free-shipping threshold calculator prices that with your own order values.
The cost structure, and where it comes from
| Price | $120.00, the average order. FIGS, fourth quarter and full year 2025 results, read September 23, 2026 |
|---|---|
| Unit cost | $40.20. From the reported gross margin: “Gross margin was 66.5% … average order value of $120” FIGS, fourth quarter and full year 2025 results, read September 23, 2026 |
| Pick and pack | $3.20 per order and $0.48 for each extra item. Fulfill.com, 3PL pricing benchmarks (The Fulfillment Advisor 2025 survey of 600+ warehouses), read September 23, 2026 |
| Shipping label | USPS Ground Advantage, commercial, Zone 5, by weight rounded up to the pound: 1 lb $8.74 · 2 lb $9.95 · 3 lb $11.57 · 4 lb $12.84 · 5 lb $13.48. Packed weight is an assumption: 2 lb per order. USPS Notice 123, USPS Ground Advantage Commercial, Zone 5 (effective July 12, 2026), read September 23, 2026 |
| Card fees | 2.9% + $0.30 per order, a common online card rate. Shopify doesn't publish one rate: it depends on your plan and the card. An assumption. |
| Refund reserve | 19.3%, NRF's estimate of online sales returned in 2025, across all categories. NRF and Happy Returns, 2025 Retail Returns Landscape (October 15, 2025), read September 23, 2026 |
| Gift | a pair of socks: unit cost $4.02, retail $12.00. A $12 pair of socks, costed at FIGS' reported gross margin. |
The offer document an agent would write
This is the offer as a document, the way an agent writes it for Offer Suite's API. It validates against the offer schema as it stands. Ids are placeholders; the discount is stated the way the offer states it, and Offer Suite checks with a real cart that checkout charges exactly the prices above.
Show the document offer.json · validates against the offer schema
{
"schema": "offer/1",
"recipe": null,
"identity": {
"code": "PB_APPAREL_FREE_SHIPPING",
"experience": "pb-apparel-free-shipping-v1",
"campaign": "cmp_playbook",
"presell": null,
"signature": null,
"carrier": {
"cartAttributes": [
"_oe_offer",
"_oe_version",
"_oe_code"
],
"lineProperties": [
"_oe_option",
"_oe_role"
],
"orderTags": [
"offer:PB_APPAREL_FREE_SHIPPING",
"option:{optionKey}",
"v:{version}"
],
"passthroughKeys": []
}
},
"shop": {
"domain": "your-store.myshopify.com",
"market": {
"country": "US",
"currency": "USD"
}
},
"campaignRef": null,
"rulesRef": null,
"selectionMode": "exclusive",
"axes": [],
"picks": [],
"options": [
{
"key": "order",
"label": "Free shipping",
"isDefault": true,
"surfaced": true,
"axisValues": {},
"unitCount": {
"value": 1,
"source": "declared"
},
"fallback": null,
"groupKey": "order",
"lines": [
{
"role": "main",
"quantity": 1,
"required": true,
"bind": {
"resolveBy": "fixed_variant",
"productId": "gid://shopify/Product/900000401",
"variantId": "gid://shopify/ProductVariant/900000401"
},
"purchase": {
"type": "one_time"
},
"priceSnapshot": {
"price": 120,
"compareAt": null,
"at": "2026-09-23T00:00:00Z"
},
"cogsRef": "cost:variant/900000401"
}
],
"pricing": {
"promisedFirstCharge": 120,
"promisedRenewal": null,
"compareAt": {
"value": 120,
"basis": "copy"
},
"shipping": {
"free": true,
"statedValue": null
},
"mechanisms": []
},
"gifts": {
"mode": "inherit"
},
"checkout": {
"mode": "checkout_direct"
},
"economics": {
"retentionRate": null
}
}
],
"valueStack": [],
"relatedOffers": [],
"terms": {
"renewalDays": null,
"guaranteeDays": null,
"trialDays": null,
"returnWindowDays": null,
"maxPerCustomer": null,
"subscriptionDiscountPersistence": "first_order_only"
},
"economicsDefaults": {
"retentionRate": 0.7,
"cacTarget": 0,
"minGmPct": 0,
"costProfile": "dtc-us"
}
}