{
  "slug": "shipping-zone-rate",
  "title": "Shipping Cost per Order Calculator",
  "heading": "Shipping Cost per Order Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/shipping-zone-rate",
  "summary": "Blended shipping cost across zones, plus free-shipping threshold impact.",
  "description": "Ecommerce shipping cost is a weighted average across zones. Blend your zone mix with packaging and handling, then see what a free-shipping threshold does to contribution per order.",
  "formula": "Blended = Σ(zone share × zone rate) + packaging + handling; net = revenue − COGS − shipping.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=shipping-zone-rate",
  "inputs": [
    {
      "id": "nearRate",
      "label": "Zone 1-4 rate",
      "kind": "number",
      "hint": null,
      "default": 8.4,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "nearShare",
      "label": "Zone 1-4 share of orders",
      "kind": "number",
      "hint": null,
      "default": 55,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "midRate",
      "label": "Zone 5-6 rate",
      "kind": "number",
      "hint": null,
      "default": 12.1,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "midShare",
      "label": "Zone 5-6 share",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "farRate",
      "label": "Zone 7-8 rate",
      "kind": "number",
      "hint": null,
      "default": 16.8,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "packaging",
      "label": "Packaging per order",
      "kind": "number",
      "hint": null,
      "default": 1.2,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "handling",
      "label": "Pick + pack labor",
      "kind": "number",
      "hint": null,
      "default": 2.1,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "aov",
      "label": "Average order value",
      "kind": "number",
      "hint": null,
      "default": 62,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "cogsPct",
      "label": "COGS",
      "kind": "number",
      "hint": null,
      "default": 38,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "customerPays",
      "label": "Shipping charged to customer",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "blended",
      "label": "Blended fulfillment cost per order",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "carrier",
      "label": "Weighted carrier rate",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "netShip",
      "label": "Net shipping cost after customer charge",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "contribution",
      "label": "Contribution per order",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "shipPct",
      "label": "Shipping as share of AOV",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Zone 1-4 rate: 8.4 $",
      "Zone 1-4 share of orders: 55 %",
      "Zone 5-6 rate: 12.1 $",
      "Zone 5-6 share: 30 %",
      "Zone 7-8 rate: 16.8 $",
      "Packaging per order: 1.2 $",
      "Pick + pack labor: 2.1 $",
      "Average order value: 62 $",
      "COGS: 38 %",
      "Shipping charged to customer: 0 $"
    ],
    "outputs": [
      "Blended fulfillment cost per order: $14.07",
      "Weighted carrier rate: $10.77",
      "Net shipping cost after customer charge: $14.07",
      "Contribution per order: $24.37",
      "Shipping as share of AOV: 22.7%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter zone 1-4 rate ($).",
      "Enter zone 1-4 share of orders (%).",
      "Enter zone 5-6 rate ($).",
      "Enter zone 5-6 share (%).",
      "Enter zone 7-8 rate ($).",
      "Enter packaging per order ($).",
      "Enter pick + pack labor ($).",
      "Enter average order value ($).",
      "Enter cogs (%).",
      "Enter shipping charged to customer ($).",
      "Read your blended fulfillment cost per order on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "nearRate": 5.04,
        "nearShare": 33,
        "midRate": 7.26,
        "midShare": 18,
        "farRate": 10.08,
        "packaging": 0.72,
        "handling": 1.26,
        "aov": 37,
        "cogsPct": 23,
        "customerPays": 0
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "nearRate": 8.4,
        "nearShare": 55,
        "midRate": 12.1,
        "midShare": 30,
        "farRate": 16.8,
        "packaging": 1.2,
        "handling": 2.1,
        "aov": 62,
        "cogsPct": 38,
        "customerPays": 0
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "nearRate": 13.440000000000001,
        "nearShare": 88,
        "midRate": 19.36,
        "midShare": 48,
        "farRate": 26.880000000000003,
        "packaging": 1.92,
        "handling": 3.3600000000000003,
        "aov": 99,
        "cogsPct": 61,
        "customerPays": 0
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Where should I set a free-shipping threshold?",
      "a": "A common rule is 1.4 to 1.8× your current AOV, high enough that the added margin from a larger basket covers the shipping you absorb."
    },
    {
      "q": "Why include pick and pack labor?",
      "a": "Because it scales per order, not per month. Leaving it out consistently understates fulfillment cost by two to four dollars an order."
    }
  ],
  "related": [],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Shipping Cost per Order Calculator (https://www.revenuelab.fyi/toolbox/shipping-zone-rate)"
}