Order cost desk
A $49 order shows $36 margin. Why is only $10.20 left?
Do not debate ads first. Read the order like a ledger: $49 revenue minus $13 COGS leaves $36, but shipping, payment fee, partial refund, and reshipment keep subtracting until only $10.20 post-refund contribution profit remains. The output is a reviewable true order cost sheet.
This May 2026 US Shopify 20oz tumbler after-sales exception is a separate stress test after the PetNest $79 pet-travel-mat model, not the same SKU. Once the refund window matures, the warehouse lead checks restock and reshipment, and the finance or operations lead matches payout and carrier bill to this row. If evidence is incomplete, $10.20 signals data work, not scale proof.
True order cost preview
One order: margin view vs cash reality
Product margin only
$36
Order revenue $49 - COGS $13, which can look like scaling room.
True order cost
$10.2
After $8 shipping, $1.8 payment fee, $10 partial refund, and $6 reshipment.
Order cost field guide
If these terms are fuzzy, the sheet will be wrong
This is not an accounting course, but every field must be reviewable by the next teammate. Define the blockers before touching the order line.
COGS
COGS means cost of goods sold. It is not selling price or ad spend; it is the product cost tied to the item sold.
A $49 20oz tumbler may have $13 COGS, usually from Shopify cost per item or a SKU cost sheet.
cost per item
This is the Shopify product or variant field for item cost. Profit reports can read it; missing or stale values distort margin.
If a variant has no cost per item, platform margin can look too high, so that order should not be used as a scaling sample.
Landed cost
Landed cost is not the supplier page price. It is the all-in cost before inventory reaches the warehouse, market, or fulfillment point, including item price, inbound freight, duty or customs, packaging, QA, FX, and receiving.
A tumbler quoted at $13 by a supplier may need inbound freight, receiving, and QA allocation before the order-cost sheet treats it as the real cost basis.
Inbound / outbound shipping
Inbound shipping is freight before inventory reaches the warehouse or market. Outbound shipping is delivery to the buyer. Customer-paid shipping is not the full cost.
A free-shipping order can still carry warehouse, carrier, packaging, and return-label costs.
Payment fee
Payment fees are processing charges from Shopify Payments, PayPal, Stripe, or another processor. Whether the original fee is returned after refund depends on the provider and market.
After a refund, revenue is returned, but the original processing fee may remain as cost and should be marked on the order line.
Gross margin
Gross margin is the room left after order revenue minus product cost. It often comes from a product cost sheet or profit report, but it does not automatically deduct shipping, payment fees, refunds, reshipments, or support credits.
A $49 order with $13 COGS appears to have $36 gross margin; after true order cost, post-refund contribution profit may be only $10.20.
Attribution
Attribution is the rule an ad platform, GA4, or email tool uses to assign order credit to a channel or touchpoint. It says where a system thinks the order came from, not whether it made money after refunds.
Ad-platform ROAS can start the diagnosis, but the true order cost sheet still needs Shopify orders, payment fees, refunds, reshipments, and support cost.
Post-refund contribution profit
This is what remains after refund, return handling, reshipment, and support credits. It is closer to operating judgment than margin at sale time.
If post-refund contribution profit is negative, the order cannot prove that ads, pages, or offers are healthy.
Reshipment
Reshipment means sending a replacement item or accessory, including product, shipping, and warehouse handling cost. It often lives in support records rather than profit reports.
If a SKU often needs damage reshipments, stable gross margin can hide rising true order cost.
Cost issue triage
Cost issue triage sends a cost issue to the team that can change it: merchandising, fulfillment, support, ads, finance, or operations.
A contribution-profit drop may come from shipping subsidy or refund rate; the responsible team and first check are different.
Follow the event first
Walk the after-sales exception before using the cost controls
The controls help inspect cost layers, but they cannot replace the operating story from a customer message to payout. First follow the responsibility and proof sequence in this case.
This is a May 2026 US Shopify after-sales exception for a 20oz tumbler, not the same SKU as the prior PetNest pet-travel-mat lesson. After the customer reports a leaking lid, support records the reason, photos, and remedy promise. Operations approves a $10 partial refund, and the warehouse sends a replacement lid with a $6 part-and-shipment record.
Finance or operations then brings the $1.80 payment fee from payout and $8 of outbound shipping and packaging from the carrier bill back to the same order row. Support, warehouse, and finance do not need to make one another’s judgment, but every field needs an owner and a source. When a ticket says only resolved, the row is not settled. It is waiting for proof.
The arithmetic should stay visible in the same event order: $49 - $13 = $36; $36 - $8 = $28; $28 - $1.80 = $26.20; $26.20 - $10 = $16.20; $16.20 - $6 = $10.20. Intermediate balances let the reviewer identify whether shipping, payment fee, refund, or reshipment changed the result instead of seeing only one attractive or alarming final number.
A partial refund and reshipment can coexist, but dissatisfaction alone does not make both costs valid. Here, $10 is an executed experience concession and $6 is the replacement lid and shipment already sent. If the team refunded but did not reship, the reshipment field is zero. If it reshipped but did not refund, the refund field is zero. Separating the remedies prevents the same after-sales loss from being counted twice.
Only when refund reason, reshipment record, payment-fee treatment, and sellable-return state trace back to evidence does $10.20 become a mature sample. Otherwise label it provisional, continue evidence completion, and keep this order type out of ad scaling. It is not final net profit. It is evidence of the room left on this order-cost path.
Put every cost back on the same order
True order cost reconciliation sheet
This sheet does not need to be perfect on day one, but every variable cost must sit on the same order line with its source, who completes the evidence, and the next action.
| Field | Source | Acceptance | Decision lead | Operating action |
|---|---|---|---|---|
| Order revenue | Shopify order | Do not replace actual order revenue with ad-attributed revenue. | Operations lead | Confirm whether the money actually happened. |
| COGS | cost per item / SKU cost sheet | Orders without cost records cannot be scaling samples. | Merchandising / finance | Lock the product margin floor. |
| Shipping | Inbound, outbound, carrier bill, shipping subsidy | Do not record only customer-paid shipping. | Fulfillment / operations | Judge whether free-shipping threshold and delivery promise are sustainable. |
| Payment fee | Shopify Payments / PayPal / Stripe payout | Mark whether the original processing fee is returned after refund. | Finance | Fix the net-revenue view. |
| Refund | Refund amount, timing, reason | Post-refund contribution profit must be visible. | Support / finance | Avoid treating problem orders as healthy orders. |
| Reshipment and return handling | Warehouse log, return label, support ticket | Support cost enters the order line. | Fulfillment / support | Judge whether quality, packaging, or promise needs change. |
| Country / channel | Markets, UTM, GA4, ad platform, email flow | Can explain whether the issue comes from market, channel, or SKU. | Business lead | Route the variance to the team that can change it. |
Cost version and allocation control line
Fix the cost basis before placing amounts on the order.
An order-cost sheet can show a complete formula and still mislead when it uses the wrong version, allocation, or recovery value. State where cost comes from, which orders it applies to, how it is allocated, and when it is reviewed first.
A cost sheet is not a subtraction exercise first. Write the cost version and effective date before calculating the order-level amount. Then, when a SKU, market, bundle, or return state changes, the team knows which row needs recalculation instead of overwriting every historical order with a new cost.
- SKU cost version: use the order-time basis
- After a supplier change, purchase-price move, packaging upgrade, or variant replacement, one static cost per item cannot explain every order. Separate the SKU or variant cost at order time from later updates.
- For each focus SKU, record cost version, source, currency, effective date, and applicable order scope. If any are missing, the row may be estimated but cannot pose as verified historical COGS.
- Allocation driver: separate direct cost from a cost pool first
- Charge labels, reshipments, refunds, and order-specific packaging directly to the order; product cost to the SKU or variant; allocate pools such as inbound freight or shared packaging by weight, volume, or units first. Without a physical driver, revenue share is only a review-pending proxy.
- Write allocation object, driver, period, total, and preparer in the same record. Different markets, bulky SKUs, or bundles cannot silently inherit another order group's average.
- Bundles and gifts: free does not mean zero cost
- Split every bundle into components, and retain gift SKU, unit cost, packaging, and added weight. Discounts reduce revenue while gifts and bundle components add cost; do not net them into one opaque number.
- Record component list, order quantity, offer rule, cost version, and applicable market. If actual components or gifts shipped cannot be confirmed, keep the order in the evidence-completion pool.
- Return recovery: separate refund, recoverable value, and write-off
- A refund amount does not mean product cost is recovered. Remove the matching COGS from final loss only after warehouse inspection confirms sellable restock; unsellable return, reshipment, and handling remain as recorded costs.
- Write refund reason, return label, receipt or QA state, sellable quantity or write-off reason, reshipment, and handling fee back to the same order. Do not use "returned" as a substitute for recovery value.
- Market, tax, and payment path: keep distinct bases
- Merchant-paid duty, customs, and inbound FX enter landed or market cost; payment or payout FX and processing charges stay in the payment layer. Sales tax or VAT, fee treatment after refund, and dispute handling must be checked against the actual provider, payment method, market, and settlement record.
- Record market, currency, payment method, provider, payout batch, and fee state. This locates the cost layer; it is not tax advice or a promise of current fee rates.
- Shared warehouse and company cost: put it in the right review layer
- At order level, retain direct variable costs or costs with a declared driver. Fixed warehouse rent, payroll, software, and other company-level shared costs enter weekly or monthly review under a declared period and accounting or operating rule; do not force them into one order or let them vanish from broader profit judgment.
- Mark the sheet as "order layer" or "shared-cost layer", then hand period, allocation rule, owner, and formal-ledger review point for shared cost to finance review.
Each cost pool needs one stated allocation driver. Without a physical driver, revenue-share allocation is a review-pending proxy, not a default truth.
Cost Breakdown
True cost is not only product cost
This is the lesson-specific move: not recalculating margin, but putting the missed after-order costs back into one sheet.
Product cost
Start with cost per item or the SKU cost sheet at the time of sale. Estimates are allowed, but must be marked.
Orders missing cost cannot prove a SKU deserves more budget.
Shipping and subsidy
Split inbound, outbound, packaging, handling, and return shipping; do not only read what the buyer paid.
Free shipping can lift conversion while consuming contribution profit.
Payment fees
Check processing fee and post-refund fee status in Shopify Payments, PayPal, Stripe, or another processor.
Refunded revenue does not mean the original processing fee is always returned.
Refunds and returns
Record refund amount, reason, return label, handling cost, resale chance, and support credit.
Negative post-refund contribution profit cannot be a scaling sample.
Reshipments and support credits
Replacement product, reshipment shipping, coupon, store credit, and partial refund all belong in true order cost.
These costs often live in support records and do not automatically enter product margin reports.
Post-Refund Contribution
Refunds, fees, and reshipments belong on one order line
At sale time the order can look healthy. After support costs are added back, you can decide whether it is a scaling sample.
One generic product order
The walkthrough uses one 20oz tumbler order so the fields, fees, and calculations can be inspected in one place.
Order revenue
Sale price for a 20oz tumbler.
COGS
cost per item.
Outbound shipping and packaging
Includes free-shipping subsidy.
Payment fee
Processing fee.
Partial refund
Support credit from size-description mismatch.
Reshipment cost
Replacement lid and shipping.
Post-refund contribution profit
49 - 13 - 8 - 1.8 - 10 - 6.
Gross margin erosion waterfall
Click each cost layer and watch $36 margin become $10.20.
This section explains how COGS, shipping, payment fees, refunds, and reshipment consume product margin. Read the left waterfall, then click each layer on the right to see its evidence, meaning, and weekly action.
Use the full case above to set the reading rule: $36 is product margin at sale, not budget available for ads. In the left sequence, shipping and packaging reduce it to $28, payment fee to $26.20, partial refund to $16.20, and reshipment to $10.20. Now select each layer not to find a prettier number, but to confirm whether it has a source, an owner, and a practical correction.
20oz tumbler cost waterfall
Current cost layer
Gross margin starting point
How it consumes margin
$49 order revenue - $13 COGS = $36. This only proves product room, not order profit.
Evidence to check
Shopify order, cost per item, SKU cost sheet.
This week action
Use it as the starting point, not the scaling conclusion.
After selecting a layer, first check whether it is verified, then whether it is isolated or concentrated in one SKU, channel, or promise. The control does not approve scaling by itself. If a critical layer is estimated, the refund window is still open, or the same exception repeats, take the result to evidence completion or root-cause repair instead of treating $10.20 as profit for every order.
Refund / restock check line
After a refund, first ask whether the item returned to sellable stock
A refund is not one single state. Pre-fulfillment cancellation, sellable return, unsellable return, reshipment, and dispute each hit profit differently. Use this check line before reading post-refund contribution profit.
Refund and restock state
Returned and restocked
Revenue treatment
Refund reverses revenue; return fee, restocking fee, or return shipping follows the actual return record.
Cost treatment
If the item is inspected and returned to sellable stock, COGS can leave the final loss, while label, handling, and payment fees remain.
First evidence
Return reason, return shipping, process return, Restock at, and warehouse inspection result.
Blocked move
Do not assume inventory returned before the item is inspected.
Order cost stack walkthrough
Stack purchase-to-refund costs onto one order line.
This is the practical gap: do not only say COGS, shipping, payment fees, and refunds matter. Pick a real order issue and watch each cost layer compress product margin into post-refund contribution profit. Allocate inbound freight by weight or volume when possible; when that data is missing, use order-value share as a conservative estimate and mark it for review.
The cost-stack result describes only the selected teaching scenario; it cannot replace supplier invoices, cost versions, actual payout, or warehouse receipt records.
Purchase-to-refund cost stack
20oz tumbler partial refund + reshipment
Review Action
Separate controllable cost before choosing the weekly move
Costs you cannot change quickly become guardrails; costs you can change next week enter the action sheet.
COGS
Low to medium short term
Negotiate supplier, change packaging, adjust SKU mix.
Shipping subsidy
High short term
Change free-shipping threshold, delivery rules, or campaign market.
Refunds
Medium to high
Fix page promise, specs, QA, and support routing.
Payment fees
Low to medium short term
Review payment method, dispute risk, and market fee rules.
Reshipment
Medium
Fix packaging, warehouse picking, QA, and accessory instructions.
Sampling Rhythm
Use a 20-order starter sample with a 6-SKU focus set
The 20 orders and 6 SKUs are a starter calibration, not a ritual. The sample should cover different cost pressures so the team knows which fields are reliable and which cannot support scaling yet.
Start with 20 recent orders instead of backfilling every historical order.
Deliberately include high-volume, high-discount, high-refund, and new-channel orders.
Then choose 6 focus SKUs and check whether cost fields support merchandising decisions.
Mark every field with one of three statuses: verified, estimated, or missing.
The sample must end in an action: continue, complete fields, change rules, or pause.
Practice drill
Turn the starter sample into reviewable cost records
Do not treat the 20-order / 6-SKU rule mechanically. The real check is whether the sample exposes cost gaps, refund states, fee differences, and SKU-level field-completion actions.
| Sample | What to pull | What to check | Output |
|---|---|---|---|
| 5 high-volume orders | Recent orders from core SKUs, preferably across markets and shipping methods. | Whether COGS, outbound shipping, payment fee, and refund window are verified. | Whether core SKUs can actually support scaling. |
| 5 high-discount orders | Orders using codes, free shipping, gifts, or sale prices. | Whether offer, shipping subsidy, and payment fee consumed contribution profit. | Whether the offer enters the guardrail or should pause. |
| 5 high-refund orders | Refund, return, reshipment, store-credit, or dispute orders. | How cancellation, sellable return, unsellable return, reshipment, and dispute hit cost. | Post-refund contribution profit and first fix. |
| 5 new-channel orders | Orders from a newly added ad, email, affiliate, or organic entry. | Whether the channel brings higher shipping, refund, dispute, or support cost. | Continue channel, limit budget, or return to page / product fix. |
| 6 priority SKUs | Represent high-volume, high-refund, high-margin, low-margin, new, and promoted SKUs. | Mark COGS, inbound allocation, outbound cost, refund rate, and reship rate as verified, estimated, or missing. | SKU cost evidence status and next missing fields. |
Evidence Trail
Keep four evidence layers together
The easiest mistake is to use one metric from one system as the full finance story.
Order facts
Shopify orders, sales reports, refund log
Prevents treating attributed revenue as real revenue.
Cost facts
SKU cost sheet, shipping bill, payment reports, support credits
Prevents mixing gross margin and post-refund contribution profit.
Channel facts
Ad platforms, GA4, UTM, email flow, organic entry
Shows whether channel, page, email, or product should change.
Action facts
Weekly business review action sheet
Prevents next week from explaining the same variance again.
The four evidence layers support one order-cost judgment only when order scope, cost version, market or currency, and observation window align; if any changes, mark the result estimated or missing again.
Research-backed true cost gaps
True order cost often misses these five gaps
Official docs and operating signals point to the same issue: platform reports are a starting point, but true order cost must separate refunds, restock, shipping, fees, and disputes.
Static COGS
Shopify cost per item
It records product or variant cost, but not real inbound shipping, last-mile cost, packaging, reshipments, support credits, or purchasing cost changes.
Keep dynamic costs as separate order-cost fields instead of overwriting base COGS.
Refund does not mean inventory returned
Refund log + restock status
If refunds reverse cost while the item is not restocked, margin can look too optimistic.
Remove COGS from the loss only when restock is confirmed or the order was canceled before fulfillment.
Shipping charged is not label cost
Checkout shipping charge + shipping label / carrier bill
Free or low shipping can leave product margin looking healthy while last-mile cost consumes order profit.
Calculate shipping margin separately: customer shipping paid minus real label and packaging cost. Allocate inbound freight by weight or volume; if unavailable, use order-value share as a conservative estimate and mark it for review.
Payment fees often do not return after refund
Shopify Payments / Stripe / PayPal
Revenue is reversed, but the original processing fee can remain as cost, making post-refund contribution lower than expected.
Keep a payment-fee field on refund rows; do not only reverse revenue.
Dispute is cost plus evidence work
Shopify / Stripe dispute record, PayPal Resolution Center
Disputes can hold balance, add dispute fees, evidence labor, lost-product risk, and response deadlines; order revenue alone understates risk.
Keep the minimum evidence packet: order, tracking delivered, billing/shipping match, support log, refund/reship offer, and photo proof.
Landed cost is not supplier price
Supplier invoice, inbound freight bill, customs/duty, QA, and receiving log
Reading only unit purchase price understates true order cost for cross-border, dropshipping, or supplier-change scenarios.
Separate item price, inbound freight, duty/customs, platform or agent fee, packaging, QA, FX, and receiving.
Tax, duty, and FX should not be forced into COGS
Markets, tax/VAT settings, import bill, payout currency, currency conversion fee
Sales tax / VAT is often a collection/remittance basis; merchant-paid duty / tariff belongs in landed or market cost; FX belongs in payment and payout cost.
This is not tax advice; it only places order-cost fields in the right bucket so margin and cash definitions do not blur.
Cost gap self-check
Check cost gaps before deciding whether the review is ready.
True order cost is not a static table. Use this checklist to identify whether the gap is cost fields, restock status, shipping definition, payment fee, or dispute evidence.
Cost review readiness
40%
Do not scale directly; complete true cost fields first.
Cost Issue Triage
Cost issues go to the team that can change them
The sheet is not for prettier accounting; it narrows the next action.
Signal
Shipping subsidy is too high
Route to
Fulfillment / operations lead
First check
Free-shipping threshold, market, packaging, carrier bill.
Signal
Refunds concentrate on one SKU
Route to
Merchandising / page / support lead
First check
Specs, image promise, quality feedback, refund reasons.
Signal
Payment fee variance
Route to
Finance / payment settings lead
First check
Payment method, market fee, post-refund fee status.
Signal
Too many reshipments
Route to
Warehouse / QA lead
First check
Damage, wrong item, missing item, packaging, pick log.
Signal
One channel has weak contribution profit
Route to
Ads / channel lead
First check
CPA, discount, refund rate, market, and SKU mix.
Quick Check
Can this order type scale?
Read the $1 in this question as an alarm, not a universal store rule. Here it means that a high-discount tumbler order carrying free-shipping subsidy, payment fee, partial refund, and reshipment has almost no room for another exception. Before choosing, recall the responsibility sequence and proof conditions above.
A 20oz tumbler has decent product margin, but high-discount orders include free-shipping subsidy, payment fee, partial refund, and reshipment cost. Post-refund contribution profit is only $1. What is the best next action?
A correct answer does not mean the root cause is known. Next, route this order type to fulfillment, support, and page owners to test whether shipping threshold, part quality, page promise, or remedy process is consuming the room. Do not raise budget for this order type until cost and evidence are complete within the same observation window.
Stop / Go
Turn the finding into an action, not a description
Cost fields are verified and post-refund contribution profit is above guardrail.
Continue or scale modestly.
Revenue is high, but shipping, fees, refunds, or reshipments consume profit.
Fix threshold, page promise, refund reason, or SKU mix first.
Critical cost fields are still estimated or missing.
Do not scale heavily; fill data and assign responsible teams first.
Post-refund contribution profit is near zero or negative.
Stop treating it as healthy; inspect product, page, and fulfillment.
Tool Loop
Use true cost to test price and margin guardrails
The tool does not decide for you. Bring true cost, shipping, payment fee, refund reserve, and minimum contribution profit to check whether price and offers still have room.
Official verification boundary
These official paths verify profit, payment, and refund definitions; your own shipping, support, reshipment, and return handling costs still need to enter the sheet.
Copyable lesson notes
Turn true order cost into review notes
Leave one clean version: sample, sources, gaps, post-refund contribution profit, routing, weekly action, blocked move, review window, and counter-signal.
The copied record must retain sample scope, cost version, allocation rule, and missing fields; it records what to verify this week, not proof that every SKU, market, or accounting period is profitable.