Skill: leooooooow/profit-calculator (version 1.1.0)

--- name: Profit Calculator version: 1.1.0 description: Calculate true per-unit profit margins across channels by factoring in COGS, platform fees, shipping costs, ad spend allocation, returns, and overhead to identify which products and channels actually make money. author: LeroyCreates tags: [ecommerce, profitability, unit-economics, margin-analysis, cogs, channel-profitability] --- # Profit Calculator Many ecommerce brands think they are profitable because revenue is growing, only to discover at year-end that certain SKUs or channels have been losing money on every order. Profit Calculator walks you through a full per-unit profit waterfall for each SKU on each channel so you can see exactly which products and channels deserve more budget and which should be repriced, rebundled, or killed. ## Use when > The operator says "my TikTok Shop sales look great but the bank account isn't growing — can we figure out what's actually making money?" > A Shopify seller asks "if I raise the price by $2, will that offset my new 3PL rate and higher Meta CPMs, or am I still underwater?" > An Amazon FBA brand wants to compare a single SKU's contribution margin between FBA, FBM, and their own DTC store side by side before reallocating inventory. > A founder is preparing a board update and needs a clean per-SKU contribution margin waterfall that rolls up to a blended gross margin with and without advertising. ## Quick Reference | Decision | Strong | Acceptable | Weak | |----------|--------|------------|------| | COGS calculation | Landed cost including freight, duty, inspection, and packaging per unit | Factory cost plus estimated freight | Factory cost only, no landed adjustments | | Platform fee mapping | Every fee line itemized per channel (commission, referral, payment processing, storage, subscription amortized) | Major fees captured, minor fees estimated as percentage | Single blended "platform fee" percentage across channels | | Shipping cost model | Actual weight/zone-based rate per SKU per channel from 3PL rate card | Average shipping cost per order applied uniformly | Free shipping absorbed with no per-unit allocation | | Ad spend allocation | Channel-specific ROAS or blended MER applied per SKU with clear attribution window | Blended MER applied uniformly across all SKUs | Ad spend not included in unit economics | | Return cost modeling | Return rate per category with full loaded cost (reverse logistics + product loss + restocking labor) | Average return rate applied with estimated cost per return | Returns ignored or treated as top-line revenue reduction only | | Overhead allocation | Fixed overhead allocated per unit using activity-based costing or revenue-weighted method | Overhead allocated as flat percentage of revenue | Overhead excluded from unit economics entirely | | Contribution margin target | Channel-specific targets with minimum floor (e.g., 20% DTC, 12% Amazon, 8% TikTok) | Single blended target across all channels | No target defined, just reporting current margins | | Price sensitivity analysis | Scenario modeling at multiple price points showing margin impact per channel | Single price change scenario modeled | No price sensitivity analysis included | | SKU rationalization | Clear kill/reprice/rebundle recommendations with P&L impact quantified | Flagging negative-margin SKUs without action plan | No SKU-level recommendations | | Reporting cadence | Monthly P&L waterfall with automated data pull and variance tracking | Quarterly manual calculation | One-time snapshot with no refresh plan | ## Solves ### Revenue-profit disconnect The brand is growing 40% YoY but cash flow is flat. Revenue metrics mask that 30% of SKUs lose money after platform fees and returns. The waterfall exposes per-unit contribution margin so the operator knows exactly where the margin leak is. ### Channel margin blindness DTC looks profitable at 60% gross margin, but after Meta ad spend at 4x ROAS, shipping, and returns, contribution margin is 12%. Meanwhile Amazon FBA at 35% gross margin nets 18% contribution because ad spend is lower and returns are handled by Amazon. Without per-channel unit economics, budget allocation is backwards. ### Hidden fee accumulation Platform fees compound in ways that are not obvious. Amazon's referral fee + FBA fee + storage fee + payment processing can exceed 40% on low-ASP items. TikTok Shop's commission + shipping subsidy clawback + affiliate commission stack differently. Each channel's fee waterfall must be mapped individually. ### Return cost underestimation Brands treat returns as a revenue reversal, but the true cost includes reverse logistics ($4–8 per unit), product loss (30–60% of returned apparel is unsellable at full price), restocking labor, and the original outbound shipping cost that was never recovered. A 25% return rate can eliminate all margin on a $30 product. ### Ad spend misattribution Using blended MER across all SKUs treats a hero product driving 80% of ad-attributed revenue the same as a tail SKU with zero ad spend. Per-SKU or per-category ROAS allocation reveals which products can afford advertising and which cannot. ### Overhead allocation avoidance Brands exclude warehouse rent, software subscriptions, and team salaries from unit economics because they are "fixed costs." But a product that shows 15% contribution margin before overhead and 2% after overhead is one supply chain disruption away from losing money. ### Price optimization paralysis Without a margin model, price changes are gut decisions. The waterfall lets you simulate raising price by $3 on Amazon and see exactly how contribution margin changes after the referral fee percentage adjusts and estimated conversion rate shifts. ## Workflow ### Step 1 — Gather SKU-Level Cost Data Collect the landed cost per unit for every SKU. Landed cost means the total cost to get one unit to your warehouse ready to sell. This includes factory cost, inbound freight (ocean/air), duty and tariffs, inspection fees, packaging materials, and any prep costs (labeling, poly-bagging). **What to ask for:** - Most recent purchase order with per-unit costs broken out - Freight invoices for the most recent shipment (divide total by units shipped) - Customs/duty documentation or estimated duty rate by HTS code - Packaging cost per unit (branded box, poly bag, inserts, labels) - Any prep or kitting costs (FBA prep service, bundle assembly) **Common mistakes:** - Using factory FOB price instead of true landed cost (can understate COGS by 15–25%) - Forgetting to include duty, which on many consumer goods is 5–15% of declared value - Not updating COGS when suppliers raise prices mid-year - Ignoring packaging cost differences between channels (Amazon requires specific prep that DTC does not) **Output:** A table with each SKU, its landed cost per unit, and a breakdown of what is included. ### Step 2 — Map Channel Fee Structures For each sales channel, document every fee that applies to a transaction. This must be done per channel because fee structures vary dramatically. **Amazon FBA fee components:** - Referral fee (category-dependent, typically 8–15%) - FBA fulfillment fee (size and weight tiered) - Monthly storage fee (standard vs. Q4 peak rates) - Long-term storage fee (if applicable, for inventory over 181 days) - Payment processing (included in referral fee for Amazon) - Subscription fee amortized per unit (Professional seller plan $39.99/month ÷ units sold) **Shopify DTC fee components:** - Shopify subscription amortized per unit - Payment processing (Shopify Payments: 2.4–2.9% + $0.30) - App fees amortized per unit (Klaviyo, reviews app, etc.) - Theme or development costs amortized (optional, for accuracy) **TikTok Shop fee components:** - Platform commission (category-dependent, typically 5–8%) - Payment processing fee (typically included in commission) - Affiliate commission (if using affiliate program, typically 10–20% of sale price) - Shipping subsidy participation (if enrolled, can be clawed back) - Sample costs for affiliate seeding (amortized per attributed sale) **Walmart Marketplace fee components:** - Referral fee (category-dependent, typically 6–15%) - WFS fulfillment fee (if using Walmart Fulfillment Services) - Storage fees (if using WFS) - Payment processing (included in referral fee) **Output:** A fee schedule table for each channel showing every line item as both percentage and estimated dollar amount per unit at current ASP. ### Step 3 — Calculate Shipping and Fulfillment Costs Determine the outbound shipping and fulfillment cost per unit per channel. This is the cost to get the product from your warehouse (or 3PL or FBA) to the customer. **For FBA:** The FBA fulfillment fee from Step 2 covers this. No additional shipping cost calculation needed for FBA orders. **For 3PL-fulfilled channels (DTC, TikTok Shop self-fulfilled, Walmart self-fulfilled):** - Pick-and-pack fee per order from 3PL rate card - Outbound shipping rate based on weight and zone mix - Packaging materials cost (box, dunnage, tape, label) - If multi-item orders are common, calculate per-unit cost as total fulfillment cost ÷ average units per order **For self-fulfilled:** - Labor cost per order (time to pick, pack, label ÷ hourly rate) - Shipping carrier rate (use average zone and weight) - Materials cost **Key nuance:** Free shipping is not free. If you offer free shipping on DTC, the shipping cost still hits your margin. Capture the actual cost here. **Output:** Per-unit shipping and fulfillment cost for each channel. ### Step 4 — Allocate Advertising Cost Per Unit Decide how to attribute ad spend to unit economics. There are two approaches: **Approach A — Blended MER (simpler):** Total monthly ad spend across all channels ÷ total revenue = ad cost as % of revenue. Apply this percentage to each unit's revenue. This is simpler but treats all SKUs equally, which is rarely accurate. **Approach B — Channel-specific ROAS (more accurate):** For each channel, take the channel's ad spend ÷ channel's attributed revenue = channel ad cost percentage. Apply per channel. Within a channel, if you can break ROAS down by product category or hero SKU vs. tail, do so. **What to document:** - Which approach you are using and why - Ad spend by channel for the most recent representative month - Revenue by channel for the same period - Any known ROAS differences by product category - Attribution window used (1-day click, 7-day click, etc.) **Common mistake:** Excluding ad spend from unit economics entirely. This makes contribution margins look artificially high and leads to bad pricing and channel allocation decisions. **Output:** Ad cost per unit or ad cost as percentage of revenue, documented per channel. ### Step 5 — Model Returns and Refund Costs Returns are one of the most underestimated margin killers. Model the full cost of a return per unit. **Return cost components:** - Reverse logistics (cost to ship the product back or cost of prepaid return label): typically $4–8 per unit - Product disposition: what percentage of returns are resellable at full price vs. discounted vs. unsellable - Apparel: 30–50% full price resellable, 20–30% liquidation, 20–40% write-off - Electronics: 60–70% full price after refurbishment, 20–30% liquidation - Beauty/consumables: 90%+ write-off (cannot resell opened products) - Restocking labor: time to inspect, repackage, relabel (typically $1–3 per unit) - Original outbound shipping cost: already paid and not recoverable - Refund processing: payment processor does not always refund the transaction fee **Calculate per-unit return cost:** (Return rate for category) × (reverse logistics + product loss cost + restocking labor + original shipping) = return cost per unit sold **Example:** A $35 apparel item with 28% return rate, $6 reverse logistics, 40% product loss ($14), $2 restocking, $5 original shipping: 0.28 × ($6 + $14 + $2 + $5) = $7.56 return cost per unit sold **Output:** Return cost per unit per channel, broken out by component. ### Step 6 — Allocate Fixed Overhead Per Unit Fixed costs do not change with volume in the short term, but they must be covered by contribution margin over time. Decide how to allocate them. **Fixed overhead categories:** - Warehouse or office rent - Full-time team salaries (non-variable) - Software subscriptions (Shopify, ERP, analytics tools, email platform) - Insurance - Professional services (accounting, legal) - Equipment depreciation **Allocation methods:** *Revenue-weighted:* Allocate total monthly overhead proportional to each SKU's share of total revenue. Simple but penalizes high-ASP items. *Unit-weighted:* Allocate total monthly overhead equally per unit sold. Simple but ignores that some SKUs consume more resources. *Activity-based:* Allocate based on actual resource consumption (e.g., SKUs requiring custom packaging get more warehouse labor allocation). Most accurate but most time-consuming. **Recommendation:** Start with revenue-weighted allocation. It is good enough for most brands under $10M in revenue. Switch to activity-based once you have SKUs with dramatically different handling requirements. **Output:** Overhead cost per unit per channel, with the allocation method documented. ### Step 7 — Build the Profit Waterfall and Make Decisions Assemble all components into a per-unit profit waterfall for each SKU on each channel. **Waterfall structure:** 1. Retail price (channel-specific) 2. − Platform fees = Net revenue after fees 3. − COGS (landed cost) = Gross profit 4. − Shipping and fulfillment = Gross profit after fulfillment 5. − Ad spend allocation = Contribution margin before returns 6. − Return costs = Contribution margin after returns 7. − Overhead allocation = Net contribution margin **Decision framework based on net contribution margin:** | Margin Range | Action | |-------------|--------| | > 20% | Scale — increase inventory depth, expand advertising, consider new channels | | 10–20% | Maintain — healthy margin, optimize where possible but no urgent action | | 5–10% | Optimize — look for cost reduction (negotiate COGS, reduce return rate, adjust price) | | 0–5% | Reprice or restructure — raise price, cut ad spend, renegotiate fees, or rebundle | | < 0% | Kill or dramatically restructure — exit channel, discontinue SKU, or complete repositioning | **Additional analyses to include:** - Sensitivity table: how does margin change if price moves ±$2, ±$5 - Break-even volume: how many units must sell to cover fixed costs at current margin - Channel comparison: same SKU side-by-side across all channels - Top 10 and bottom 10 SKUs by contribution margin - Margin trend: compare current margins to 3 and 6 months ago **Output:** Complete profit waterfall table per SKU per channel, decision flags, and recommended actions. ## Worked Examples ### Example 1 — DTC Skincare Brand, 15 SKUs, Shopify + Amazon FBA **Context:** A skincare brand selling 15 SKUs through their Shopify DTC store and Amazon FBA. Monthly revenue is $180K ($120K DTC, $60K Amazon). The founder believes DTC is more profitable because gross margins are higher, but cash flow does not reflect this. **Step 1 — COGS:** Landed cost ranges from $4.20 (30ml serum) to $11.80 (full skincare kit). The brand sources from South Korea with 6.5% duty on cosmetics. Average landed cost is $7.40 per unit including freight at $0.85/unit by ocean and duty at $0.48/unit. **Step 2 — Fees:** DTC: Shopify Basic ($39/mo ÷ 4,000 units = $0.01) + Shopify Payments (2.9% + $0.30) = $1.17 average. Amazon: 8% referral ($2.40) + FBA fee ($3.86 average) + storage ($0.18/unit/month) = $6.44 average. **Step 3 — Shipping:** DTC: 3PL pick-pack ($2.50) + USPS Priority ($6.20 average) + materials ($0.45) = $9.15. Amazon FBA: included in FBA fee above. **Step 4 — Ad spend:** DTC runs Meta ads at 4.2x ROAS. $28,600/month ÷ $120K revenue = 23.8% of DTC revenue = $7.14 per unit at $30 ASP. Amazon runs Sponsored Products at 6.8x ROAS. $8,800/month ÷ $60K = 14.7% = $4.41 per unit at $30 ASP. **Step 5 — Returns:** DTC return rate: 8% (skincare returns are low). Cost per return: $6 reverse logistics + $12 product loss (opened, unsellable) + $1 restocking = $19. Per-unit return cost: 0.08 × $19 = $1.52. Amazon return rate: 5%. Amazon handles returns, but charges per return. Per-unit return cost: 0.05 × $15 = $0.75. **Step 6 — Overhead:** $22,000/month total overhead. Revenue-weighted: DTC gets $14,667 (66.7%), Amazon gets $7,333 (33.3%). Per unit: DTC $3.67/unit (4,000 units), Amazon $3.67/unit (2,000 units). **Step 7 — Waterfall:** | Line Item | DTC ($30 ASP) | Amazon ($30 ASP) | |-----------|--------------|-----------------| | Retail price | $30.00 | $30.00 | | − Platform fees | −$1.17 | −$6.44 | | = Net after fees | $28.83 | $23.56 | | − COGS | −$7.40 | −$7.40 | | = Gross profit | $21.43 | $16.16 | | − Shipping/fulfillment | −$9.15 | $0.00 | | = After fulfillment | $12.28 | $16.16 | | − Ad spend | −$7.14 | −$4.41 | | = Contribution pre-returns | $5.14 | $11.75 | | − Returns | −$1.52 | −$0.75 | | = Contribution post-returns | $3.62 | $11.00 | | − Overhead | −$3.67 | −$3.67 | | = Net contribution | −$0.05 | $7.33 | | Net margin | −0.2% | 24.4% | **Insight:** DTC is actually break-even to slightly unprofitable at the per-unit level despite higher gross margins. The combination of expensive 3PL shipping ($9.15 vs. $0 for FBA) and higher ad cost (23.8% vs. 14.7%) wipes out the fee advantage. Recommendations: negotiate 3PL rates, test higher DTC pricing ($33–35), reduce Meta ad spend on low-converting SKUs, and shift inventory allocation toward Amazon. ### Example 2 — Apparel Brand, 40 SKUs, DTC + TikTok Shop + Amazon **Context:** An apparel brand doing $350K/month across Shopify DTC ($200K), TikTok Shop ($90K), and Amazon ($60K). High return rates are suspected of eroding margins but the founder has never quantified the impact. **Step 1 — COGS:** Average landed cost $12.50 per unit. Includes $8.00 factory, $1.80 freight (air for replenishment), $1.00 duty (12.5% on apparel), $1.20 packaging, $0.50 quality inspection. **Step 7 — Waterfall Summary (hero product: $45 hoodie):** | Line Item | DTC | TikTok Shop | Amazon FBA | |-----------|-----|-------------|------------| | Retail price | $45.00 | $42.00 | $45.00 | | − Platform fees | −$1.61 | −$5.88 | −$8.10 | | − COGS | −$12.50 | −$12.50 | −$12.50 | | − Shipping | −$8.40 | −$7.20 | $0.00 | | − Ad spend (channel ROAS) | −$11.25 | −$6.30 | −$5.40 | | − Returns (28% DTC, 18% TT, 22% AMZ) | −$7.56 | −$4.86 | −$5.94 | | − Overhead | −$2.80 | −$2.80 | −$2.80 | | = Net contribution | $0.88 | $2.46 | $10.26 | | Net margin | 2.0% | 5.9% | 22.8% | **Insight:** The $45 hoodie barely breaks even on DTC and TikTok Shop. Returns are the primary margin killer — at 28% return rate with $27 fully-loaded cost per return, DTC loses $7.56 per unit sold to returns alone. Recommendations: implement fit quiz to reduce returns by 5–8 points, raise DTC price to $49, audit TikTok affiliate commission structure, and prioritize Amazon inventory allocation for this SKU. ## Common Mistakes 1. **Using gross margin as the decision metric.** Gross margin (revenue minus COGS) ignores the majority of per-unit costs. A SKU can have 70% gross margin and negative contribution margin. Always use the full waterfall. 2. **Treating shipping as a single line item.** Outbound shipping on DTC is fundamentally different from FBA fulfillment fees. One is variable by zone and weight; the other is tiered by product size. Lumping them together misses optimization opportunities. 3. **Ignoring returns in unit economics.** Returns are not just a revenue reversal. They carry real costs — reverse logistics, product loss, restocking — that can add $5–20 per unit sold depending on category and return rate. 4. **Applying blended ad spend across all SKUs.** Hero products and tail SKUs have dramatically different relationships with advertising. A hero driving most of the ad-attributed revenue subsidizes tail SKUs that would show negative margin if ad spend were properly allocated. 5. **Forgetting platform-specific fees.** Amazon alone has 6+ distinct fee types. TikTok Shop has affiliate commissions that do not exist on other platforms. Every channel must be mapped individually. 6. **Using stale COGS data.** Suppliers raise prices, freight rates fluctuate, and duty rates change. COGS should be updated at minimum quarterly or with every new PO. 7. **Excluding overhead entirely.** Fixed costs feel disconnected from unit economics, but contribution margin must cover overhead. Showing the overhead line separately is better than ignoring it. 8. **Not modeling the return cost per unit sold.** The correct formula is: return rate × cost per return = cost per unit SOLD (not per unit returned). This amortizes return costs across all units, including those that are never returned. 9. **Confusing channel revenue with channel profit.** A channel doing $100K/month in revenue and 5% margin contributes $5K. A channel doing $40K/month at 25% margin contributes $10K. Budget and inventory allocation should follow contribution dollars, not revenue. 10. **Building the model once and never updating it.** Costs change constantly. A profit waterfall is only useful if it is recalculated monthly with fresh data. Build the model to be easily refreshable. ## Resources - **Output template:** See `references/output-template.md` for the full profit waterfall template with all 7 sections. - **Fee schedule reference:** See `references/fee-schedule-reference.md` for current platform fee structures across Amazon, Shopify, TikTok Shop, and Walmart. - **Sensitivity analysis guide:** See `references/sensitivity-analysis-guide.md` for price and cost scenario modeling methodology. - **Quality checklist:** See `assets/quality-checklist.md` for the 55-item quality checklist to validate your analysis before presenting.

path: references/output-template.md
content: # Profit Calculator — Output Template

Use this template to structure the per-unit profit waterfall analysis. Fill in each section with data gathered during the workflow steps.

---

## 1. SKU & COGS Summary

| SKU ID | Product Name | Factory Cost | Freight/Unit | Duty/Unit | Packaging | Prep/Other | **Landed Cost** |
|--------|-------------|-------------|-------------|-----------|-----------|------------|----------------|
| | | $ | $ | $ | $ | $ | **$** |
| | | $ | $ | $ | $ | $ | **$** |
| | | $ | $ | $ | $ | $ | **$** |

**COGS notes:**
- Date of most recent PO: ___
- Freight method: ocean / air / mixed
- Duty rate source: HTS code ___ at ____%
- Next expected cost change: ___

---

## 2. Channel Fee Schedule

### Channel: _______________

| Fee Type | Rate / Amount | Per-Unit Cost at Current ASP |
|----------|--------------|------------------------------|
| Commission / Referral | % | $ |
| Fulfillment fee | flat / tiered | $ |
| Payment processing | % + flat | $ |
| Storage (monthly) | $/unit/month | $ |
| Subscription (amortized) | $/month ÷ units | $ |
| Other: ___ | | $ |
| **Total channel fees** | | **$** |

*(Duplicate this table for each channel)*

---

## 3. Shipping & Fulfillment Costs

| Channel | Pick & Pack | Outbound Shipping | Materials | Multi-Item Adjustment | **Total per Unit** |
|---------|-----------|-------------------|-----------|----------------------|-------------------|
| DTC | $ | $ | $ | ÷ ___ units/order | **$** |
| Amazon FBA | Included in FBA fee | — | — | — | **$0.00** |
| TikTok Shop | $ | $ | $ | | **$** |
| Walmart | $ | $ | $ | | **$** |

**Shipping notes:**
- 3PL provider: ___
- Average shipping zone: ___
- Average package weight: ___ lbs
- Free shipping threshold: $___

---

## 4. Ad Spend Allocation

| Channel | Monthly Ad Spend | Monthly Revenue | Ad Cost % | Attribution Model | Per-Unit Ad Cost |
|---------|-----------------|----------------|-----------|-------------------|-----------------|
| DTC (Meta) | $ | $ | % | ___-day click | $ |
| DTC (Google) | $ | $ | % | | $ |
| Amazon (SP + SB) | $ | $ | % | | $ |
| TikTok Shop | $ | $ | % | | $ |
| **Total** | **$** | **$** | **%** | | |

**Allocation method used:** Blended MER / Channel-specific ROAS / SKU-level ROAS

**Blended MER (for reference):** Total ad spend $____ ÷ Total revenue $____ = ____%

---

## 5. Return Cost Model

| Channel | Return Rate | Reverse Logistics | Product Loss | Restocking Labor | Orig. Shipping Lost | **Cost per Return** | **Cost per Unit Sold** |
|---------|------------|-------------------|-------------|-----------------|--------------------|--------------------|----------------------|
| DTC | % | $ | $ | $ | $ | **$** | **$** |
| Amazon | % | $ | $ | $ | $ | **$** | **$** |
| TikTok | % | $ | $ | $ | $ | **$** | **$** |

**Product disposition rates:**
- Full price resellable: ___%
- Liquidation / discount: ___%
- Write-off / unsellable: ___%

**Product loss calculation:** (Liquidation % × discount amount) + (Write-off % × full COGS) = $____ average product loss per return

---

## 6. Overhead Allocation

| Overhead Category | Monthly Cost |
|-------------------|-------------|
| Warehouse / office rent | $ |
| Team salaries (non-variable) | $ |
| Software subscriptions | $ |
| Insurance | $ |
| Professional services | $ |
| Equipment / depreciation | $ |
| **Total monthly overhead** | **$** |

**Allocation method:** Revenue-weighted / Unit-weighted / Activity-based

| Channel | Revenue Share | Overhead Allocated | Units Sold | **Overhead per Unit** |
|---------|-------------|-------------------|-----------|----------------------|
| DTC | % | $ | | **$** |
| Amazon | % | $ | | **$** |
| TikTok | % | $ | | **$** |

---

## 7. Profit Waterfall — Per SKU Per Channel

### SKU: _______________ | ASP varies by channel

| Waterfall Line | DTC | Amazon | TikTok | Walmart |
|---------------|-----|--------|--------|---------|
| Retail price | $ | $ | $ | $ |
| − Platform fees | −$ | −$ | −$ | −$ |
| = Net after fees | $ | $ | $ | $ |
| − COGS (landed) | −$ | −$ | −$ | −$ |
| = Gross profit | $ | $ | $ | $ |
| − Shipping/fulfillment | −$ | −$ | −$ | −$ |
| = After fulfillment | $ | $ | $ | $ |
| − Ad spend allocation | −$ | −$ | −$ | −$ |
| = Contribution pre-returns | $ | $ | $ | $ |
| − Return costs | −$ | −$ | −$ | −$ |
| = Contribution post-returns | $ | $ | $ | $ |
| − Overhead allocation | −$ | −$ | −$ | −$ |
| = **Net contribution** | **$** | **$** | **$** | **$** |
| **Net margin** | **%** | **%** | **%** | **%** |

*(Duplicate this table for each SKU)*

---

## 8. Decision Summary

### SKU Rankings by Net Contribution Margin

| Rank | SKU | Best Channel | Margin | Worst Channel | Margin | Action |
|------|-----|-------------|--------|--------------|--------|--------|
| 1 | | | % | | % | Scale |
| 2 | | | % | | % | Maintain |
| ... | | | % | | % | |
| Last | | | % | | % | Kill / Reprice |

### Action Items

| SKU | Channel | Current Margin | Issue | Recommended Action | Expected Impact |
|-----|---------|---------------|-------|-------------------|----------------|
| | | % | | | +$___ /unit |
| | | % | | | +$___ /unit |

### Sensitivity Analysis Summary

| Scenario | Impact on Blended Margin |
|----------|------------------------|
| Price +$2 all channels | +___% |
| Price −$2 all channels | −___% |
| COGS +10% | −___% |
| Return rate −5 points | +___% |
| Ad spend −20% | +___% |

### Refresh Schedule

| Data Point | Refresh Frequency | Owner | Next Due |
|-----------|-------------------|-------|----------|
| COGS / landed cost | Per PO or quarterly | | |
| Platform fees | Quarterly or on fee change | | |
| Shipping rates | Quarterly or on contract renewal | | |
| Ad spend / ROAS | Monthly | | |
| Return rates | Monthly | | |
| Overhead | Quarterly | | |


path: references/fee-schedule-reference.md
content: # Platform Fee Schedule Reference

Current as of Q2 2025. Fee structures change frequently — always verify against the platform's current seller documentation before finalizing your analysis.

---

## Amazon

### Referral Fees (Commission)
Referral fees are a percentage of the total sale price (item price + shipping + gift wrap).

| Category | Referral Fee |
|----------|-------------|
| Beauty & Personal Care | 8% (15% for items >$10) |
| Clothing & Accessories | 17% |
| Consumer Electronics | 8% |
| Home & Kitchen | 15% |
| Health & Household | 8% (15% for items >$10) |
| Sports & Outdoors | 15% |
| Toys & Games | 15% |
| Grocery & Gourmet | 8% (15% for items >$15) |
| Pet Supplies | 15% (22% for items ≤$10) |

*Note: Amazon applies a minimum referral fee of $0.30 per unit in most categories.*

### FBA Fulfillment Fees (2025 rates)
Based on product size tier and shipping weight.

| Size Tier | Weight Range | Fee |
|-----------|-------------|-----|
| Small standard | ≤ 6 oz | $3.06 |
| Small standard | 6–12 oz | $3.15 |
| Small standard | 12 oz–16 oz | $3.47 |
| Large standard | ≤ 4 oz | $3.68 |
| Large standard | 4–8 oz | $3.98 |
| Large standard | 8–12 oz | $4.25 |
| Large standard | 12 oz–1 lb | $4.55 |
| Large standard | 1–1.5 lb | $5.14 |
| Large standard | 1.5–2 lb | $5.40 |
| Large standard | 2–2.5 lb | $5.69 |
| Large standard | 2.u–3 lb | $5.97 |
| Large standard | 3+ lb | $6.04 + $0.16/half-lb above 3 lb |

### Storage Fees
| Period | Standard-Size | Oversize |
|--------|--------------|----------|
| Jan–Sep | $0.78/cubic ft/month | $0.56/cubic ft/month |
| Oct–Dec | $2.40/cubic ft/month | $1.40/cubic ft/month |

### Other Amazon Fees
- **Professional seller plan:** $39.99/month (amortize across units sold)
- **Aged inventory surcharge:** Applies to inventory over 181 days — $0.50–$6.90/cubic ft depending on age
- **Return processing fee:** Charged in categories with high return rates (apparel, shoes, etc.)
- **Inbound placement service fee:** $0.21–$0.68/unit depending on number of inbound locations

---

## Shopify (DTC)

### Subscription Plans
| Plan | Monthly Cost | Transaction Fee (Shopify Payments) |
|------|-------------|-----------------------------------|
| Basic | $39/month | 2.9% + $0.30 |
| Shopify | $105/month | 2.7% + $0.30 |
| Advanced | $399/month | 2.5% + $0.30 |
| Plus | $2,300/month | 2.15% + $0.30 |

*Non-Shopify Payments processors add an additional 0.5–2.0% transaction fee on top.*

### Common App Costs to Amortize
| App Type | Typical Monthly Cost |
|----------|---------------------|
| Email/SMS (Klaviyo) | $45–$350 (based on contacts) |
| Reviews (Judge.me, Yotpo) | $0–$299 |
| Subscriptions (Recharge) | $99–$499 |
| Upsell/cross-sell | $30–$150 |
| Returns management | $50–$350 |
| Analytics | $0–$299 |

**Amortization:** Sum all monthly app costs and divide by monthly units sold to get per-unit app cost.

### Shopify-Specific Considerations
- No commission or referral fee (unlike marketplaces)
- Payment processing is the primary platform cost
- High-volume merchants can negotiate payment processing rates
- Shopify Capital repayments (if used) should be tracked separately as financing cost, not COGS

---

## TikTok Shop

### Commission Rates
| Category | Commission |
|----------|-----------|
| Fashion | 8% |
| Beauty & Personal Care | 8% |
| Food & Beverage | 5% |
| Health | 8% |
| Home & Garden | 8% |
| Sports & Outdoors | 8% |
| Electronics | 5% |
| Baby & Maternity | 5% |

*New sellers may receive a 90-day commission reduction to 1.8%.*

### Affiliate Program Costs
| Component | Typical Rate |
|-----------|-------------|
| Open collaboration commission | 10–20% of sale price |
| Targeted collaboration commission | 15–30% (negotiated with creator) |
| Sample product cost | Full COGS per sample |
| TikTok Shop affiliate platform fee | 1% of affiliate-driven sales |

**Important:** Affiliate commissions are ON TOP of platform commission. A product with 8% platform commission and 15% affiliate commission loses 23% of the sale price before any other costs.

### Shipping Considerations
- TikTok Shop subsidized shipping programs periodically offer reduced rates
- Shipping subsidies can be clawed back if service level targets are not met
- Self-fulfilled orders require merchant-paid shipping
- Fulfilled by TikTok (FBT) available in limited regions with separate fee structure

---

## Walmart Marketplace

### Referral Fees
| Category | Referral Fee |
|----------|-------------|
| Apparel & Accessories | 15% |
| Beauty | 8% |
| Consumer Electronics | 8% |
| Food & Gourmet | 15% |
| Health & Personal Care | 10% |
| Home & Garden | 15% |
| Sports & Outdoors | 15% |

### Walmart Fulfillment Services (WFS)
| Weight | Fulfillment Fee |
|--------|----------------|
| ≤ 1 lb | $3.45 |
| 1–2 lb | $4.95 |
| 2–3 lb | $5.45 |
| 3+ lb | $5.45 + $0.40/lb above 3 lb |

**Storage:** $0.75/cubic ft/month

### Walmart-Specific Considerations
- No monthly subscription fee (unlike Amazon Professional)
- Payment processing included in referral fee
- Walmart+ customers drive higher conversion but same fee structure
- WFS items get a "2-Day Delivery" badge, similar to Prime
- Lower competition than Amazon in most categories but also lower traffic volume

---

## Cross-Platform Fee Comparison

### Quick Reference at $30 ASP (Home & Kitchen category)

| Fee Component | Amazon FBA | Shopify DTC | TikTok Shop | Walmart WFS |
|--------------|-----------|-------------|-------------|-------------|
| Commission/referral | $4.50 (15%) | $0.00 | $2.40 (8%) | $4.50 (15%) |
| Payment processing | Included | $1.17 (2.9%+$0.30) | Included | Included |
| Fulfillment | $4.25 (8oz) | 3PL variable | Self/FBT | $3.45 (≤1lb) |
| Storage | $0.18/mo est. | N/A | N/A | $0.10/mo est. |
| Subscription amortized | $0.01–0.10 | $0.01–0.10 | $0.00 | $0.00 |
| **Total platform cost** | **$8.94–9.03** | **$1.18–1.27** | **$2.40** | **$7.95–8.05** |
| **As % of ASP** | **29.8–30.1%** | **3.9–4.2%** | **8.0%** | **26.5–26.8%** |

*DTC has the lowest platform fees but requires merchant-paid shipping and advertising that other channels partially absorb.*

---

## Fee Update Checklist

- [ ] Check Amazon fee announcements (typically January and June each year)
- [ ] Verify Shopify payment processing rates match current plan
- [ ] Review TikTok Shop commission schedule (changes frequently during growth phase)
- [ ] Confirm Walmart referral fee rates (updated periodically)
- [ ] Update 3PL rate card (typically renegotiated annually or at volume thresholds)
- [ ] Recalculate amortized subscription and app costs based on current unit volume


path: references/sensitivity-analysis-guide.md
content: # Sensitivity Analysis Guide

How to model the impact of price changes, cost fluctuations, and operational improvements on per-unit profit margins.

---

## Why Sensitivity Analysis Matters

A single profit waterfall shows current state. Sensitivity analysis answers "what if" questions that drive real decisions:
- "If I raise the price by $3, do I lose enough volume to offset the margin gain?"
- "If my supplier raises COGS by 10%, which SKUs go negative?"
- "If I can reduce my return rate by 5 points, how much margin do I recover?"

Without these models, pricing and cost decisions are gut calls.

---

## Method 1 — Single Variable Sensitivity

Change one input at a time while holding everything else constant. This isolates the impact of each variable.

### Price Sensitivity Table

For each SKU on each channel, model margin at multiple price points:

| Price Point | Revenue | Platform Fees | COGS | Shipping | Ad Cost | Returns | Overhead | **Net Margin** | **Change** |
|------------|---------|--------------|------|----------|---------|---------|----------|---------------|-----------|
| Current −$5 | $ | $ | $ | $ | $ | $ | $ | % | −___ pts |
| Current −$2 | $ | $ | $ | $ | $ | $ | $ | % | −___ pts |
| **Current** | **$** | **$** | **$** | **$** | **$** | **$** | **$** | **%** | **baseline** |
| Current +$2 | $ | $ | $ | $ | $ | $ | $ | % | +___ pts |
| Current +$5 | $ | $ | $ | $ | $ | $ | $ | % | +___ pts |
| Current +$10 | $ | $ | $ | $ | $ | $ | $ | % | +___ pts |

**Important nuances when modeling price changes:**
- Platform fees that are percentage-based (referral fees, payment processing) change in dollar terms when price changes
- Ad cost as a percentage of revenue stays the same, but ad cost per unit changes if you assume constant ROAS
- Volume may decrease at higher prices — model with and without volume impact
- Competitor pricing constrains how much you can raise on marketplaces

### COGS Sensitivity Table

| COGS Scenario | Landed Cost | Gross Margin | Net Margin | **Margin Change** |
|--------------|------------|-------------|-----------|-------------------|
| −15% (renegotiated) | $ | % | % | +___ pts |
| −10% | $ | % | % | +___ pts |
| **Current** | **$** | **%** | **%** | **baseline** |
| +10% (supplier increase) | $ | % | % | −___ pts |
| +20% (tariff impact) | $ | % | % | −___ pts |
| +30% (supply disruption) | $ | % | % | −___ pts |

### Return Rate Sensitivity

| Return Rate | Cost/Unit Sold | Net Margin | **Margin Change** |
|------------|---------------|-----------|-------------------|
| Current −10 pts | $ | % | +___ pts |
| Current −5 pts | $ | % | +___ pts |
| **Current** | **$** | **%** | **baseline** |
| Current +5 pts | $ | % | −___ pts |
| Current +10 pts | $ | % | −___ pts |

### Ad Spend Sensitivity

| ROAS Scenario | Ad Cost/Unit | Net Margin | **Margin Change** |
|--------------|-------------|-----------|-------------------|
| ROAS improves 50% | $ | % | +___ pts |
| ROAS improves 25% | $ | % | +___ pts |
| **Current ROAS** | **$** | **%** | **baseline** |
| ROAS declines 25% | $ | % | −___ pts |
| ROAS declines 50% | $ | % | −___ pts |
| No ad spend | $ | % | +___ pts |

---

## Method 2 — Multi-Variable Scenario Modeling

Combine multiple changes into realistic scenarios.

### Scenario Template

| Scenario Name | Price Change | COGS Change | Return Rate Change | Ad Spend Change | Net Margin | vs. Current |
|--------------|-------------|-------------|-------------------|----------------|-----------|-------------|
| **Optimistic** | +$3 | −5% | −3 pts | ROAS +20% | % | +___ pts |
| **Base case** | $0 | $0 | 0 pts | 0% | % | baseline |
| **Pessimistic** | −$2 | +10% | +2 pts | ROAS −15% | % | −___ pts |
| **Tariff impact** | $0 | +25% | 0 pts | 0% | % | −___ pts |
| **Growth push** | −$3 | $0 | +2 pts | Spend +50% | % | −___ pts |

### Common Realistic Scenarios to Model

**1. Supplier price increase**
Suppliers typically raise prices 5–15% annually. Model what happens if COGS increases and you cannot raise retail price (competitive pressure on marketplaces).

**2. Peak season (Q4)**
Amazon storage fees triple in Q4. Ad CPMs increase 30–80% across Meta and Google. Return rates spike in January. Model the Q4 margin separately from the annual average.

**3. New channel launch**
When launching on a new channel, initial ROAS is typically 30–50% worse than established channels. Model the expected margin during the ramp period (usually 3–6 months).

**4. Free shipping threshold change**
If you lower or remove the free shipping threshold, average shipping cost per order changes. Model the impact on per-unit margins and the expected lift in conversion rate.

**5. 3PL rate renegotiation**
3PL contracts are typically renegotiated annually or at volume thresholds. Model the margin impact of a 10–20% reduction in fulfillment costs.

---

## Method 3 — Break-Even Analysis

Determine the minimum volume, price, or ROAS needed to maintain profitability.

### Break-Even Volume

At current margins, how many units must you sell to cover all fixed costs?

**Formula:**
Break-even units = Total monthly fixed costs ÷ Contribution margin per unit (before overhead)

**Example:**
- Monthly overhead: $25,000
- Contribution margin per unit (before overhead): $8.50
- Break-even: 25,000 ÷ 8.50 = 2,941 units/month

### Break-Even Price

Given current cost structure, what is the minimum price to achieve target margin?

**Formula:**
Minimum price = (COGS + shipping + return cost/unit + overhead/unit + target profit/unit) ÷ (1 − platform fee % − ad cost %)

**Example:**
- Total costs: $7.40 + $9.15 + $1.52 + $3.67 + $1.50 target = $23.24
- Fee drain: 3.9% platform + 23.8% ad = 27.7%
- Minimum price: $23.24 ÷ (1 − 0.277) = $32.14

### Break-Even ROAS

What ROAS do you need to maintain positive margin?

**Formula:**
Break-even ROAS = Revenue ÷ Maximum affordable ad spend
Maximum affordable ad spend = Revenue − COGS − fees − shipping − returns − overhead − minimum acceptable profit

---

## Method 4 — Margin Tornado Chart

Rank variables by their impact on margin to prioritize optimization efforts.

### How to Build

1. For each variable, calculate margin at ±10% of current value
2. Record the margin swing (high minus low)
3. Rank variables by swing size
4. Present as a tornado chart (horizontal bar chart, widest at top)

### Typical Variable Ranking (ecommerce)

Variables usually ranked by margin impact, highest to lowest:

1. **Retail price** — highest leverage, small changes have outsized impact
2. **Return rate** — especially in apparel, can swing margin 5–10 points
3. **Ad spend / ROAS** — second-highest discretionary cost after COGS
4. **COGS / landed cost** — large absolute number but harder to change quickly
5. **Shipping cost** — significant for DTC, less for FBA
6. **Platform fees** — mostly fixed by platform, limited optimization
7. **Overhead allocation** — important at scale but low per-unit sensitivity

---

## Presenting Sensitivity Results

### Do
- Show the current baseline prominently so stakeholders have an anchor
- Highlight the 2–3 variables with the largest margin impact
- Include realistic scenario ranges, not just theoretical extremes
- Tie each scenario to a decision ("if we raise price $3, margin goes from 5% to 12%")
- Show break-even points for critical variables

### Don't
- Model more than 5–6 variables — it becomes noise
- Use unrealistic ranges (e.g., "what if COGS drops 50%")
- Present without action items — every scenario should map to a decision
- Forget to note assumptions (volume held constant, fees unchanged, etc.)
- Mix up margin percentage points and margin percentage change (a move from 10% to 15% is +5 points, not +50%)


path: assets/quality-checklist.md
content: # Profit Calculator — Quality Checklist

Validate every analysis against this checklist before presenting. Each item should be checked or explicitly marked N/A with reasoning.

---

## COGS & Landed Cost (8 items)

- [ ] Landed cost includes factory cost, not just purchase price
- [ ] Inbound freight cost calculated per unit (total freight ÷ units in shipment)
- [ ] Duty/tariff rate verified against current HTS code schedule
- [ ] Packaging cost per unit included (branded box, poly bag, inserts, labels)
- [ ] Any prep or kitting costs included (FBA prep, bundle assembly)
- [ ] Inspection or quality control fees amortized per unit
- [ ] COGS updated to reflect most recent purchase order pricing
- [ ] Currency conversion applied if sourcing internationally (with date of rate noted)

## Platform Fees (9 items)

- [ ] Every fee type mapped per channel (not a single blended percentage)
- [ ] Referral/commission fees verified against current platform schedule
- [ ] Payment processing fees captured (percentage + fixed per-transaction)
- [ ] Fulfillment fees matched to correct product size tier and weight
- [ ] Storage fees included with seasonal variation noted (Q4 vs. standard)
- [ ] Subscription costs amortized per unit based on current monthly volume
- [ ] App and software costs amortized per unit (for DTC channels)
- [ ] Affiliate commissions captured separately from platform commission (TikTok Shop)
- [ ] Fee schedule verified against platform's current published rates

## Shipping & Fulfillment (7 items)

- [ ] Pick-and-pack cost sourced from actual 3PL rate card or internal labor calculation
- [ ] Outbound shipping cost based on actual weight and average zone mix
- [ ] Packaging materials cost included (box, dunnage, tape, shipping label)
- [ ] Multi-item order adjustment applied (total fulfillment ÷ avg units per order)
- [ ] FBA fulfillment correctly treated as inclusive of shipping (no double-counting)
- [ ] Free shipping cost captured as merchant expense, not ignored
- [ ] Shipping cost differences between channels documented (DTC vs. marketplace)

## Ad Spend Allocation (7 items)

- [ ] Allocation method explicitly stated (blended MER vs. channel ROAS vs. SKU ROAS)
- [ ] Ad spend and revenue figures from the same time period
- [ ] Attribution window documented per channel
- [ ] If using blended MER, acknowledged that it treats all SKUs equally
- [ ] If using channel ROAS, each channel has its own ad cost calculation
- [ ] Ad spend includes all paid media (Meta, Google, TikTok, Amazon Ads, affiliates)
- [ ] Organic revenue separated from paid-attributed revenue if possible

## Return Cost Modeling (8 items)

- [ ] Return rate sourced per channel (not a single blended rate)
- [ ] Reverse logistics cost included (return shipping label or restocking fee)
- [ ] Product disposition rates estimated (full-price resellable, liquidation, write-off)
- [ ] Product loss dollar amount calculated from disposition rates and COGS
- [ ] Restocking labor cost included (inspect, repackage, relabel)
- [ ] Original outbound shipping cost noted as unrecoverable
- [ ] Return cost calculated per unit SOLD (rate × cost per return), not per return
- [ ] Category-specific return rates used (apparel vs. beauty vs. electronics)

## Overhead Allocation (5 items)

- [ ] All fixed cost categories listed (rent, salaries, software, insurance, professional services, depreciation)
- [ ] Allocation method stated (revenue-weighted, unit-weighted, or activity-based)
- [ ] Overhead allocated per channel based on chosen method
- [ ] Per-unit overhead calculated using current monthly volume
- [ ] Overhead shown as a separate waterfall line (not mixed into other costs)

## Profit Waterfall (6 items)

- [ ] Waterfall follows standard 7-line structure (price → fees → COGS → shipping → ads → returns → overhead)
- [ ] All dollar amounts are per-unit, not monthly totals
- [ ] Each line item clearly shows subtraction (running total visible at each step)
- [ ] Net contribution margin calculated both as dollars and as percentage of retail price
- [ ] Waterfall built for each SKU on each channel (not just blended)
- [ ] Decision flag assigned based on margin range (scale / maintain / optimize / reprice / kill)

## Decision & Recommendations (5 items)

- [ ] Top and bottom SKUs ranked by net contribution margin
- [ ] Channel comparison for same SKU presented side-by-side
- [ ] Sensitivity analysis included for at least price and COGS variables
- [ ] Break-even volume or break-even price calculated
- [ ] Specific action items listed with expected margin impact quantified

---

**Total: 55 items**

Pass threshold: all items checked or explicitly marked N/A with documented reasoning.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)