Install
openclaw skills install shipping-cost-calculator-ecommerceEstimate ecommerce shipping cost per order across weight, zones, carrier rules, and free-shipping policies so teams can make better pricing, margin, and offe...
openclaw skills install shipping-cost-calculator-ecommerceEstimate shipping as a margin and offer-design decision, not just a carrier quote lookup.
This skill goes beyond quoting a rate. It models total delivery cost per order (carrier + fulfillment + packaging + return drag), compares zones and policies, and translates the numbers into pricing, threshold, and offer decisions.
| Decision | Key Metric | Green | Yellow | Red |
|---|---|---|---|---|
| Free shipping viability | Shipping as % of CM | < 30% of CM | 30–50% of CM | > 50% of CM |
| Threshold effectiveness | Orders above threshold | > 60% of orders | 40–60% of orders | < 40% of orders |
| Zone profitability | Margin after shipping | > 15% net margin | 5–15% net margin | < 5% net margin |
| Carrier competitiveness | Cost vs benchmark | < 90% of benchmark | 90–110% of benchmark | > 110% of benchmark |
| Packaging efficiency | DIM weight vs actual | DIM �j$ actual | DIM up to 1.3× actual | DIM > 1.3× actual |
Ecommerce teams lose money on shipping not because rates are high, but because:
Goal: Give operators a complete, zone-aware shipping cost model that supports real pricing, threshold, and offer decisions — not just a rate card.
Gather these inputs — mark any assumptions explicitly:
Package profile:
Carrier / rate inputs:
Fulfillment costs:
Policy inputs:
Loss / return inputs:
See references/carrier-rates-guide.md for carrier-specific rate structures and surcharges.
Build the full cost stack, not just the carrier line item:
Carrier base rate (by zone/weight): $XX.XX
+ Residential surcharge: $XX.XX
+ Fuel surcharge (X.X%): $XX.XX
+ Peak surcharge (if applicable): $XX.XX
= Total carrier cost: $XX.XX
+ Pick-pack labor: $XX.XX
+ Packaging materials: $XX.XX
+ Label / handling: $XX.XX
+ Insurance (if applicable): $XX.XX
= Total delivery cost per order: $XX.XX
Critical: Check DIM weight
DIM weight = (L × W × H) / DIM factor
Billable weight = max(actual weight, DIM weight)
If DIM weight exceeds actual weight, you're paying for air. Flag this immediately.
Not all orders cost the same to ship. Break down by:
| Segment | % of Orders | Avg Shipping Cost | Margin After Shipping | Flag |
|---|---|---|---|---|
| Zone 1–2 (local) | XX% | $X.XX | XX% | — |
| Zone 3–4 (regional) | XX% | $X.XX | XX% | — |
| Zone 5–6 (cross-country) | XX% | $X.XX | XX% | ⚠️ if margin thin |
| Zone 7–8 (remote) | XX% | $X.XX | XX% | 🔴 if unprofitable |
| Oversized / heavy | XX% | $X.XX | XX% | Check DIM weight |
Test the margin impact of different shipping policies:
| Policy | Effective Shipping Revenue | Cost Absorbed | Impact on CM | AOV Change |
|---|---|---|---|---|
| Calculated (pass-through) | $X.XX/order | $0 | Baseline | Baseline |
| Flat $X.XX | $X.XX/order | $X.XX/order | -X.X% | Minimal |
| Free over $XX | $X.XX blended | $X.XX blended | -X.X% | +X.X% |
| Free on everything | $0 | $X.XX/order | -X.X% | +X.X% |
Threshold analysis:
Optimal threshold = point where incremental AOV lift > shipping cost absorbed
Test: $35 / $50 / $75 / $99 thresholds
For each: what % of orders qualify? What's the blended cost?
Returns cost more than the refund — the shipping round-trip adds cost:
Return shipping drag per order = return rate × return label cost
Reship drag per order = reship rate × full delivery cost
Damage drag per order = damage rate × (replacement cost + shipping - claim recovery)
─────────────────────────────────────────
Total loss drag per order: $XX.XX
Add this to the per-order delivery cost for true total cost.
Build a comparison table when evaluating options:
| Carrier / Option | Zone 2 | Zone 4 | Zone 6 | Zone 8 | Weighted Avg |
|---|---|---|---|---|---|
| Current (Carrier A) | $X.XX | $X.XX | $X.XX | $X.XX | $X.XX |
| Option B | $X.XX | $X.XX | $X.XX | $X.XX | $X.XX |
| Option C | $X.XX | $X.XX | $X.XX | $X.XX | $X.XX |
| Savings vs current | — | — | — | — | $X.XX/order |
Weight the average by actual order distribution across zones, not just rate card comparison.
Don't just output costs. Frame results as decisions:
| Result | Decision framing |
|---|---|
| Shipping < 30% of CM | Absorb: Free shipping is viable, use as conversion lever |
| Shipping 30–50% of CM | Threshold: Set free-shipping minimum to protect margin |
| Shipping > 50% of CM | Pass through: Charge shipping or raise price to offset |
| Far zones unprofitable | Zone-split: Different policy by region or restrict shipping |
| DIM weight inflating cost | Repackage: Redesign packaging to reduce dimensional waste |
| Returns destroying margin | Fix product/listing: Reduce return rate first |
| Carrier overpriced vs benchmark | Renegotiate or switch: Get competitive quotes |
Before presenting results, verify with assets/shipping-checklist.md:
Return a structured analysis package (see references/output-template.md):
Assumptions table
Per-order delivery cost breakdown
Policy impact analysis
Carrier / option comparison (if applicable)
Decision recommendation
Strong output should:
Better output does not stop at "shipping costs $X." It helps answer:
Inputs:
Calculation:
Inputs:
Calculation:
references/output-template.md — Structured output formatreferences/carrier-rates-guide.md — Carrier rate structures and surcharge referencereferences/free-shipping-playbook.md — Free-shipping threshold strategy frameworkassets/shipping-checklist.md — Pre-delivery quality checklist