Quality Free Backlinks is live · Browse vetted free-submission opportunities with fit, submission steps, and risk notes.

1/2
Intermediate55 minStep 2

Order Costs: COGS, Shipping, Payment Fees, and Refunds

Use a May 2026 US Shopify $49 20oz tumbler after-sales exception order to see why $36 product margin becomes $10.20 post-refund contribution profit, then connect support, warehouse, payout, and carrier proof in one reviewable sheet.

2
Current Lesson
2/8 lessons

Published

Updated

Last reviewed

Review note: Established a verifiable publication, modification, and maintenance-review baseline.

Review scope Reviewed against Shopify, Google Search, ads, analytics, and ecommerce operating workflows.

Lesson Progress
Progress
2/8 lessons
Current lesson unlockedContinue in sequence
Loading interactive version
Text version of this lessonExpand

A $49 order can look like it has $36 margin after $13 COGS, but after $8 shipping and packaging, $1.80 payment fee, $10 partial refund, and $6 reshipment, only $10.20 post-refund contribution profit remains. This lesson puts product cost, inbound and outbound shipping, payment fees, refunds, return handling, reshipments, and support credits onto one order line so the team can produce a reviewable true order cost sheet.

Case boundary: this is a May 2026 US Shopify 20oz tumbler after-sales exception order, a cost stress test after the previous lesson's $79 PetNest pet-travel-mat profit model, not the same SKU. Once the refund window matures, the warehouse lead checks restock and reshipment records; the finance or operations lead then matches the payment payout and carrier bill to the same order row. Only when those three evidence sets are present can $10.20 enter weekly cost review. It is still neither final net profit nor proof to scale the next ad round.

Start by fixing the mistake: healthy product margin does not prove the order made money

Many new stores read profit from product margin only. A product sells for $49 and COGS is $13, so the team feels like there is $36 of room. That is too early. Keep reading it like a ledger: $8 outbound shipping and packaging, $1.80 payment fee, $10 partial refund, and $6 replacement lid plus shipping reduce the order to $10.20 post-refund contribution profit. If those costs do not return to the same order line, the team may treat problem orders as healthy orders and thin-margin SKUs as scalable SKUs.

This is not an accounting-rules lesson, and it does not replace professional finance advice. It solves one operating question: after the sale happens and the refund window matures, how much room does this order still leave for fixed cost, profit, and the next round of traffic? If the answer is unclear, that order is not proof that an ad channel, page, offer, or SKU can scale.

What this means: this lesson calculates true order cost, not just attractive product margin. Why: scaling ads, pages, and offers eventually depends on whether orders survive refunds, shipping, payment fees, and support exceptions. How to do it: use a 20-order starter sample and a 6-SKU focus set, put revenue, COGS, shipping, payment fees, refunds, restock state, reshipments, and support credits on one line, then mark each field as verified, estimated, or missing.

Lesson output: true order cost reconciliation sheet

The output is a reviewable sheet for real orders. Each row should show order revenue, COGS, shipping, payment fee, refund status, restock status, reshipment cost, support credit, channel, market, responsible lead, next action, and counter-signal. It does not need to be perfect on day one, but every field needs a source: Shopify order, cost per item, SKU cost sheet, carrier bill, payment payout, refund record, warehouse log, or support ticket.

The smallest useful version can have only eight columns: order ID, revenue, product cost, shipping and packaging, payment fee, refund or reshipment cost, post-refund contribution profit, and next action. The point is not having more columns. The point is putting the cost of the same order in the same row, so ads are not reading revenue, finance reading gross margin, support reading refunds, and operations reading shipping with no single responsible lead for the real result. For payment fees, refunds, and payout review, route back to payment gateway setup. For fulfillment, tracking, returns, and reshipment cost, route back to shipping and fulfillment setup.

Plain terms before the calculation

COGS means cost of goods sold. It is the product cost tied to the item sold, not the selling price and not ad spend.

Cost per item is the Shopify product or variant cost field. Profit reports can read it. If it is missing, stale, or filled for only some SKUs, margin can look better than it is.

Landed cost is not the supplier page price. It is the all-in cost before inventory reaches the warehouse, market, or fulfillment point. It can include item price, inbound freight, duty or customs, platform or agent fees, packaging, QA, FX, and receiving. Cross-border and dropshipping orders should not treat supplier unit price as the full COGS basis.

Inbound shipping is freight before inventory reaches the warehouse, market, or fulfillment point. Outbound shipping is delivery to the buyer. Customer-paid shipping is not the same as true delivery cost, and free shipping does not mean the order had no shipping cost.

Payment fee is the processing fee charged by Shopify Payments, PayPal, Stripe, or another provider. Whether the original fee returns after a refund depends on provider, market, and payment method, so do not assume the fee disappears when revenue is refunded.

Gross margin is the room left after order revenue minus product cost. You may see it in a product cost sheet or profit report. It is useful, but it does not automatically deduct shipping, payment fees, refunds, reshipments, or support credits, so it cannot prove order health alone.

Attribution is the rule an ad platform, GA4, or email tool uses to assign order credit to a channel or touchpoint. It answers where a system thinks the order came from; it does not answer whether the order made money after refunds.

Post-refund contribution profit is what remains after refund, return handling, payment fee, reshipment, and support credits. This is the number to read before using the order as scaling evidence.

True order cost formula: rough cut first, proof second

The working formula is: order revenue - COGS - inbound allocation - outbound shipping - packaging and warehouse handling - payment fee - discount and shipping subsidy - refund reserve - reshipment and support credit = post-refund contribution profit. Not every store has all fields on day one, but the missing fields must be visible. Mark inbound allocation missing, payment fee pending, return sellable status waiting for warehouse proof, or support credit not yet matched.

Do not allocate inbound freight by guesswork. When weight or volume is available, allocate by each SKU's weight or volume share. When it is not available yet, use order-value share as a conservative estimate and mark the field for review. That keeps cross-border, bulky, or supplier-change costs from hiding inside one static COGS number.

The rough cut stops the team from comforting itself with partial numbers. A 20oz tumbler order at $49 minus $13 COGS looks like $36 of product margin. Add $8 outbound shipping and packaging, $1.80 payment fee, $10 partial refund, and $6 replacement lid and reshipment cost. Post-refund contribution profit is only $10.20. The order may still be acceptable, but it no longer proves that the product, page, offer, or ad channel is ready to scale.

Use conservative defaults. If a field is missing, mark it as estimated instead of entering zero. If the refund window is not mature, do not treat the order as full profit. Do not hide reshipments and store credit in support notes. Do not ignore payment fees, dispute fees, and currency fees because they are not part of gross sales.

Follow one after-sales exception from person to evidence

Treat the 20oz tumbler as a sequence of events, not a string of numbers that can be subtracted in any order. The customer reports that the lid leaks. Support records the issue, photos, and remedy promise in the ticket. Operations approves a $10 partial refund and asks the warehouse to send a replacement lid. The warehouse must then show that the original order had shipped, that the replacement was picked and sent, and that the lid plus shipment cost $6. Finance or operations then brings the $1.80 payment fee and the $8 carrier and packaging charge from the payout and carrier bill back to that same order row. Each person owns a piece of proof, while the order row connects those pieces.

Start with support, not a report: why was money returned, what did the customer finally receive, was any store credit issued, and did the team replace a full item or just a part? A ticket that says only resolved cannot tell the sheet whether the $10 is a deliberate concession, a duplicate refund, or the loss from goods that never came back. The support lead should leave the order ID, issue reason, refund amount, remedy, and promised date in a reviewable record. Without those fields, finance should mark the row pending rather than pretend it is settled.

Write the arithmetic in event order: $49 - $13 = $36, the product margin at sale. $36 - $8 = $28 after outbound shipping and packaging. $28 - $1.80 = $26.20 after the payment fee. $26.20 - $10 = $16.20 after the approved partial refund. $16.20 - $6 = $10.20 after the replacement lid and its shipment. The intermediate balances are not decoration. They let the next reviewer see which layer lacks proof or was deducted twice.

A partial refund and a reshipment can both be legitimate, but they cannot both be added merely because the customer was unhappy. In this case, $10 recognizes the experience gap and $6 belongs to an actual replacement lid and shipment. Each needs its own refund record, support commitment, or warehouse reshipment record. If the team refunded but did not reship, the reshipment column is zero. If it reshipped a part but did not refund, the refund column is zero. Keeping the remedies separate prevents the review from charging the same after-sales loss twice.

Stop line: if the refund reason, reshipment proof, payment-fee treatment, or return sellable state is blank, label $10.20 as a provisional result and keep this order type out of the ad-scaling sample. The next allowed move is evidence completion at the next payout, warehouse receipt, or refund-window check. The blocked move is treating a $49 sale as $49 of cash or profit already earned.

Gross margin erosion waterfall: how COGS, shipping, payment fees, and refunds consume margin

If the team reads product margin only, this order looks like $36 of room after $49 revenue minus $13 COGS. True order cost does not stop at COGS. Outbound shipping, packaging, payment fee, partial refund, and reshipment keep subtracting from that room. The table below turns “margin got thinner” into five reviewable cost layers.

Cost layerLayer amountContribution leftEvidence to checkThis-week action
Gross margin starting point49 - 13 = 3636Shopify order, cost per item, SKU cost sheet.Use product margin as the start, not the scale conclusion.
Outbound shipping and packaging-828Shipping label, carrier bill, warehouse handling, packaging cost.Calculate shipping margin before changing threshold or campaign market.
Payment fee-1.826.2Shopify Payments, PayPal, Stripe payout and fee detail.Keep payment fee on refund rows; do not only reverse revenue.
Partial refund-1016.2Refund reason, support ticket, PDP specs, buyer message.Fix specs, images, and FAQ before using this order type as page-scale proof.
Reshipment cost-610.2Replacement order, warehouse log, support note, accessory cost.Write reship rate into SKU cost review and decide whether to fix packaging, QA, or page copy.

The reading rule is simple: if the team can explain the $36 product margin but cannot explain these five cost layers, do not hand this order type to ads for scaling yet. The useful review note is not “margin looks okay.” It is “shipping, payment fee, refund, and reshipment push this order down to $10.20, so fix specs, shipping margin, and reshipment reason first.”

Order cost stack walkthrough: from purchase to refund on one order line

The value of a true order cost sheet is not that it has more columns. It shows why product margin gets consumed by later costs. The four examples below use the same layer-by-layer order cost logic: start with order revenue and COGS to get gross margin, then add inbound allocation, outbound shipping, packaging, payment fee, discount or shipping subsidy, refund, return handling, reshipment, and support credit on the same row. The final number is post-refund contribution profit.

Order issueGross marginHidden cost gapPost-refund contribution profitAction
20oz tumbler partial refund + reshipment49 - 13 = 36Outbound, packaging, payment fee, partial refund, and reshipment consume 25.8.10.2Fix size copy and accessory images first; do not use these orders as page or ad scaling proof.
Skincare glass bottle damaged return72 - 24 = 48Packaging, discount, return handling, partial refund, and support credit consume 52.9.-4.9Pause deep-discount bundle scaling; upgrade packaging, capture damage evidence, and rewrite shipping-risk promises.
Bulky pet ramp remote-zone order118 - 48 = 70Remote-zone last-mile cost, bulky packaging, discount, return handling, and support credit consume 80.9.-10.9Do not keep one national free-shipping promise; adjust delivery promise, threshold, and traffic scope by region.
Desk organizer low-price free-shipping order29 - 8.5 = 20.5Inbound, outbound, packaging, payment fee, and free-shipping subsidy consume 11.6.8.9Do not scale single-item cold traffic; build add-ons, two-packs, or a higher free-shipping threshold first.

The point is the reading habit. Some orders do not have a COGS problem; they have a shipping-threshold problem. Some do not have an ads problem; the page promise creates refunds and reshipments. Some SKUs can sell, but a low-AOV single item cannot absorb last-mile shipping and payment fees. Once the stack separates the causes, the weekly action becomes narrower.

How to build the true order cost sheet

Do not start from a perfect template. Start with the latest 20 orders and split fields into three groups. The first group comes directly from systems: order ID, order revenue, discount, refund amount, market, channel, and SKU. The second group needs reconciliation: cost per item, inbound allocation, outbound label, packaging, payment fee, and payout. The third group often hides in operating records: reshipment, partial refund, support credit, store credit, return label, and warehouse QA.

Every field needs an evidence status: verified, estimated, or missing. Verified means the field points to an order, report, bill, payout, or ticket. Estimated means it can support a temporary decision but must be replaced later. Missing means the order cannot prove scaling yet. This lets the team keep moving without pretending that incomplete data is final.

Update the sheet weekly rather than chasing every order every day. A true order cost sheet is a business review tool, not real-time accounting theater. If the sample is small, field status is clear, and next actions are narrow, it can improve decisions quickly.

Refund / restock check line: a refund does not mean inventory came back

Do not treat every refund as the same finance event. A cancellation before fulfillment, a returned item that is restocked, a returned item that is not sellable, a reshipment instead of refund, and a dispute or chargeback all affect profit differently. First ask whether the item shipped, whether it returned, whether the warehouse inspected it, and whether it returned to sellable stock. Only then decide whether COGS can leave the final loss.

A cancellation before fulfillment usually has no last-mile shipping and no shipped COGS, but payment-fee status still needs checking. A returned and restocked item may remove COGS from the final loss, while return label, handling, and payment fee remain. A returned but unsellable item keeps COGS as loss. A reshipment may keep original revenue, but replacement product, shipping, warehouse handling, and support work raise true order cost. A dispute also adds fee, evidence work, response deadline, and cash timing.

Payment fees and payouts cannot be read from gross revenue

Payment fees are often underestimated because they do not live in the product table. Check processing fee, post-refund fee status, payout timing, and negative-balance risk in Shopify Payments, PayPal, Stripe, or another provider. When a refund happens, revenue may reverse while the original processing fee remains as cost. When a dispute happens, the order can also create a dispute fee, evidence work, and a temporary cash hold.

Do not record only order revenue. At minimum, record three numbers: gross sales, net sales, and payout received. Gross sales shows what was sold. Net sales is closer to revenue after discounts and refunds. Payout received shows when cash actually reaches the account. These numbers are not supposed to match perfectly. Differences tell you where payment fees, refunds, disputes, and timing gaps are hiding.

Separate the sale-time snapshot from settled cost before the weekly review

When the order first lands, the team can only make a sale-time snapshot: $49 of revenue, $13 of COGS, and known or estimated $8 outbound shipping and packaging. That snapshot helps answer whether the product had room at the moment of sale. It cannot answer how much cash or contribution profit the order finally produced. Refunds, reshipments, carrier surcharges, payment fees, and sellable-restock status can arrive later. Calling the snapshot final profit makes marketing, support, and finance argue from different dates.

Make each row carry an amount, state, and observation time. For example, payment fee: $1.80, matched to payout, recorded for the relevant May 2026 settlement batch. Reshipment: $6, warehouse confirmed sent, carrier bill still due. Return sellable state: waiting for warehouse quality check. A blank then becomes an honest assignment rather than a hidden gap: it tells the team who will turn the field into verified evidence, and after which event.

The operating cadence can stay simple. Support updates reason and amount when it refunds or compensates. Warehouse updates status and cost when it receives a return or sends a replacement. Finance or operations matches fees when the related payout and carrier bill can be reconciled. The weekly review reads only orders mature inside the same observation window and keeps the rest in a recheck queue. That is a case-specific working boundary, not a platform rule.

The proof limit matters. Even when this row settles at $10.20, it proves only what variable costs one US-market order in this time window and after-sales path absorbed. It does not establish profit for every tumbler, market, or channel. If the same reason appears across more orders, group the rows by SKU, channel, and refund reason before deciding whether the likely cause is page promise, part quality, shipping method, or offer structure.

Continue line: take the row into SKU review when revenue, product cost, shipping, payment fee, refund, reshipment, and inventory state can all be traced to a source, and the mature sample does not fall below the floor this store has set for that context. Pause line: freeze new scaling for the SKU, offer, or channel when payout matching is incomplete, refund state is still changing, or the same exception concentrates in the focus SKU. Repair the evidence or root cause first.

Review pathFields to copyHow to write it in the profit sheet
Shopify Orders -> Timeline / RefundOrder ID, refund amount, refund reason, refund time, and whether it was cancelled before fulfillment.Decide revenue reversal, refund reserve, and whether COGS remains.
Shopify Payments / PayPal / Stripe payoutProcessing fee, refund fee, payout date, negative balance, or hold status.Put payment fee and cash timing on the same order row.
Payment gateway dispute / chargebackDispute ID, dispute fee, response deadline, and evidence state.Do not treat chargebacks as normal refunds; record them as exception cost.

A chargeback is not a normal refund; keep cost and evidence separate

A dispute or chargeback is not just another refund. It can add a dispute fee, temporary cash hold, evidence labor, lost-product risk, and a response deadline. A normal refund can often be explained through support flow, restock state, and reshipment records. A chargeback needs the payment-provider dispute record and fulfillment evidence on its own cost line.

Chargeback cost rowMinimum evidence to keepWhy it is separate
Dispute feeProcessor dispute ID, fee amount, currency, and deduction time.It is not the refund amount, so do not bury it inside COGS or normal payment fee.
Evidence laborOrder, tracking delivered, billing/shipping match, and support conversation.Evidence work consumes operator and support time and affects whether funds can be recovered.
Temporary holdPayout hold, negative balance, and response deadline.Even if the order is later won back, cash can be tied up first.
Lost product riskFulfillment proof, delivery record, refund or reship offer, photo, or packaging proof.When the product already shipped but funds are disputed, the loss is harder to classify than a normal refund.

Mark tax, duty, and FX first; do not force them into COGS

This is not tax advice. It is field placement for the order-cost sheet. Sales tax / VAT is often a collection and remittance basis, not product profit. Duty / tariff / import fee, when paid by the merchant, belongs in landed cost or market cost. FX / currency conversion belongs in payment and payout cost and should not be ignored because it looks small.

A beginner-safe setup has three layers: item price and base COGS first; inbound freight, customs, duty, receiving, QA, and FX second as landed cost; payment fee, currency conversion fee, payout timing, and negative-balance risk third. That lets the review see whether the problem is product cost, cross-border cost, market cost, or payment cash basis.

Shipping cost has promise cost and exception cost

Shipping is not only one label. Inbound freight, warehouse handling, packaging, outbound delivery, free-shipping subsidy, remote-zone surcharge, return label, reshipment shipping, and lost-package compensation can all enter true order cost. A buyer paying shipping does not prove the store did not subsidize shipping. A buyer getting free shipping does not mean the order had no delivery cost.

Split shipping into promise cost and exception cost. Promise cost is the delivery promise you make on the product page, cart, checkout, and email. Exception cost is delay, damage, lost package, wrong item, heavy remote-zone order, return label, and reshipment. Promise cost can be changed through free-shipping threshold, market scope, delivery method, and product bundle. Exception cost goes back to packaging, QA, warehouse picking, carrier quality, and support process.

Shipping review locationFields to copyDecision it changes
Orders -> Fulfillment / TrackingTracking number, label cost, first scan time, and carrier service.Confirm whether last-mile cost matches the promise.
Shipping profiles / MarketsRate name, region, free-shipping threshold, and remote-zone rule.Decide whether flat nationwide free shipping is making remote orders unprofitable.
Return / Exchange / Warehouse recordReturn label, restock state, QA result, and reshipment SKU.Decide whether COGS can be recovered and whether reshipment consumed contribution profit.

Four common beginner miscalculations

Treating COGS as the only cost: this makes heavy, free-shipping, or high-return products look healthier than they are. Product cost is one layer of order cost, not the final answer.

Reversing revenue but keeping no after-refund cost: if return labels, payment fees, reshipments, and support credits are not kept, post-refund contribution profit will be overstated.

Reading customer-paid shipping as shipping profit: the buyer may pay $6 for shipping, but the real label, packaging, handling, and remote-zone surcharge can be higher than $6. Shipping revenue and shipping cost need separate fields.

Using platform ROAS instead of order profit: ad platforms see conversion value and attribution windows. They do not automatically know product cost, payment fee, restock status, reshipment, or support credit. ROAS can guide diagnosis, but it cannot replace the true order cost sheet.

Practice: 20-order starter sample and 6-SKU focus set

The numbers are not a ritual. Twenty orders help you cover different cost pressures quickly, and six SKUs show whether product-level cost fields can support the next lesson's contribution profit decision. If order volume is tiny, use all recent orders. If volume is high, start with this sample and expand only after you find a pattern.

  1. Pull five high-volume orders to check whether core products are truly healthy.
  2. Pull five high-discount orders to see whether offers, free shipping, or gifts consumed contribution profit.
  3. Pull five high-refund orders and group them as cancellation, restocked return, unsellable return, reshipment, or dispute.
  4. Pull five new-channel orders to see whether the channel brings higher shipping, refund, or payment risk.
  5. Choose six priority SKUs and mark COGS, inbound allocation, outbound cost, refund rate, and reshipment rate as verified, estimated, or missing.
  6. For every cost issue, write this-week action and counter-signal: fix page, fix packaging, change free-shipping rule, complete cost field, pause SKU, or limit traffic.

Cost issues should go to the team that can change them

The true order cost sheet is not meant to make review feel like an accounting meeting. It narrows action. High shipping subsidy goes first to fulfillment and operations. Refund concentration on one SKU goes first to merchandising, page, support, and QA. Payment fee variance goes to finance and payment settings. High reshipment rate points to packaging, warehouse picking, and accessory instructions. Rising disputes point to payment risk, fulfillment proof, and support response window.

If critical costs are still missing or estimated, do not scale heavily. Complete the fields before using orders as growth evidence. Scaling should not reward attractive revenue. It should reward order quality that can survive refunds, support issues, shipping exceptions, and fee reality.

How to write three common conclusions

Continue with observation: cost fields are mostly complete, post-refund contribution profit stays above the floor, and exception cost is not concentrated in one SKU, market, or channel. The action is small continued traffic with a refund-window and payout check next week.

Complete fields before deciding: order revenue and gross margin look good, but cost per item, payment fee, restock status, or reshipment cost is missing. The action is field completion, not immediate scaling.

Pause scaling and fix the issue: post-refund contribution profit is below the floor, or the same SKU keeps showing high refunds, reshipments, disputes, or remote-zone shipping cost. The action is to pause new budget for that SKU, channel, or offer and fix page promise, packaging, QA, free-shipping rule, or payment-risk process first.

Where this lesson connects next

After the order-cost sample is clean, do not stop at one order. Roll the same fields up to SKU level. The next lesson uses these costs to decide which products deserve budget, which products need pricing or fulfillment fixes, and which products should stay out of scaling pools until refund and reshipment risk is clearer.

Official verification boundary

Use official platform pages to verify definitions, not to replace your own order-cost sheet:

Copyable lesson notes for the next finance review

Leave one clean version: order sample, SKU sample, cost sources, missing fields, refund / restock state, post-refund contribution profit, cost issue triage, this-week action, blocked move, review window, and counter-signal. The next lesson uses this cost evidence to build SKU contribution profit analysis, turning order-level cost into SKU-level budget and merchandising decisions.

Real Search FAQ: cost is not just Shopify gross margin

Most cost mistakes are not formula mistakes. They happen because the field is placed in the wrong bucket. These questions decide whether to keep scaling, complete missing data, or pause a SKU or shipping promise.

Real question Lesson answer
If Shopify profit reports already show gross margin, do I still need a true order cost sheet? Yes. Shopify profit reports are a useful starting point, but they usually depend on cost per item and order-level setup. They do not automatically put inbound allocation, return labels, reshipments, support credits, dispute evidence work, and some payment-fee states back onto the same order line.
If the buyer paid a shipping fee, why do I still need to calculate shipping margin? The buyer-paid shipping fee may not cover real delivery cost. True shipping margin compares buyer-paid shipping, free-shipping subsidy, last-mile label cost, remote-zone surcharge, packaging, and reshipment shipping. Looking only at "shipping was paid" can hide loss on remote, bulky, or low-AOV orders.
Do payment fees come back after a refund? Do not assume they do. Rules vary by payment gateway, region, and card network. Some transaction fees, dispute fees, and currency conversion fees may not return. The true order cost sheet should separate refund amount from payment-fee status instead of only setting order revenue to zero.
If the refund rate is low, why can the store still lose money? Refund rate tells you how many orders refunded. It does not tell you which SKU refunded, whether it restocked as sellable, whether a return label was paid, whether a replacement was shipped, whether support credit was issued, or whether a dispute followed. A low refund rate can still destroy profit if the loss sits on expensive or heavy SKUs.

Post-lesson FAQ

After the lesson, resolve these common questions

When do I need to break down the real cost of one order?

Use this lesson when product margin looks fine but cash, refunds, reshipments, payment fees, or shipping cost make profit thin. It uses one $49 order: after $13 COGS it shows $36 product margin, but $8 shipping and packaging, $1.80 payment fee, $10 partial refund, and $6 reshipment leave only $10.20 post-refund contribution profit.

What should I check before I break down an order cost?

Check four evidence groups first: Shopify order revenue and discounts, cost per item or SKU cost sheet, carrier and packaging cost, and payment-provider payout / fee / refund details. If a field is still estimated, you can review a small sample, but it should not justify heavy scaling.

How should an order cost stack walkthrough break down one order cost?

Start with order revenue minus COGS to get product margin. Then subtract inbound allocation, last-mile shipping, packaging, payment fee, discount or free-shipping subsidy, refund, return handling, reshipment, and support credit. Allocate inbound freight by weight or volume when possible; if not, use order-value share as a conservative estimate and mark it for review. Read hidden cost gap and post-refund contribution profit instead of product margin alone.

What should I have after I break down an order cost?

Leave with a true order cost sheet: order sample, SKU sample, cost sources, missing fields, refund / restock state, post-refund contribution profit, cost issue triage, this-week action, blocked move, responsible lead, and next review time.

If Shopify profit reports already show gross margin, do I still need a true order cost sheet?

Yes. Shopify profit reports are a starting point and usually depend on cost per item and order setup. They do not automatically put inbound allocation, return labels, reshipments, support credits, dispute evidence work, currency conversion, and some payment-fee states back onto the same order line. Scaling decisions need the true order cost sheet.

If the buyer paid a shipping fee, why do I still need to calculate shipping margin?

Buyer-paid shipping may not cover real delivery cost. Shipping margin should compare buyer-paid shipping, free-shipping subsidy, last-mile label cost, remote-zone surcharge, packaging, warehouse handling, and reshipment shipping. Looking only at "shipping was paid" hides losses on remote, bulky, or low-AOV orders.

Do payment fees come back after a refund?

Do not assume they do. Rules vary by gateway, region, card network, and dispute type. Transaction fee, refund fee, dispute fee, and currency conversion fee may remain as cost. The order-cost sheet should separate refund amount from payment-fee status.

Why can a store lose money even when refund rate is low?

Refund rate tells you how many orders refunded, not which SKU refunded, whether the item restocked as sellable, whether a return label was paid, whether a replacement shipped, whether support credit was issued, or whether a dispute followed. One expensive or bulky SKU can erase profit even with a low refund rate.

Should chargebacks / disputes be separated from normal refunds?

Yes. A chargeback can add dispute fee, evidence labor, temporary cash hold, lost-product risk, and a response deadline. The minimum evidence packet should include order, tracking delivered, billing/shipping match, support log, refund or reship offer, and photo or packaging proof.

Lesson HowTo steps

Complete this lesson step by step

  1. 1

    Define the cost issue with one order

    Turn the lesson into one operating question: a $49 order shows $36 product margin after $13 COGS, but shipping, payment fee, refund, and reshipment leave only $10.20 post-refund contribution profit. Do not change ads first; confirm whether this order type truly makes money.

  2. 2

    Pull Shopify order, discount, refund, SKU, market, and channel fields

    Start from Shopify Orders: order revenue, discount, refund amount, SKU, market, sales channel, order ID, and transaction_id. Do not replace true order revenue with ad-attributed revenue.

  3. 3

    Check whether cost per item and SKU cost sheet are valid

    Confirm cost per item covers the sold variant and the SKU cost sheet reflects the cost in force when the item sold. Missing, stale, or partial SKU cost fields stay estimated and cannot justify scaling.

  4. 4

    Pull carrier, packaging, warehouse, inbound, and outbound evidence

    Collect carrier bills, shipping labels, packaging cost, warehouse handling, inbound allocation, return labels, and reshipment shipping. Separate buyer-paid shipping fee from true shipping margin.

  5. 5

    Pull payout, fee, refund, chargeback, and currency records

    From Shopify Payments / PayPal / Stripe, pull payout, processing fee, refund fee, currency conversion, negative balance, dispute / chargeback fee, and response deadline.

  6. 6

    Walk through the order cost stack

    Subtract revenue, COGS, landed cost, last-mile shipping, packaging, payment fee, discount or free-shipping subsidy, refund, return handling, reshipment, and support credit layer by layer. Allocate inbound freight by weight or volume when possible; if not, use order-value share as a conservative estimate and mark it for review. Read hidden cost gap and post-refund contribution profit.

  7. 7

    Classify refund state and restock state

    Split refunds into pre-fulfillment cancellation, returned and sellable, returned but unsellable, reshipment instead of refund, and dispute / chargeback. Remove COGS from final loss only when cancellation or sellable restock is confirmed.

  8. 8

    Expand with a 20-order starter sample and 6-SKU focus set

    Sample high-volume, high-discount, high-refund, and new-channel orders, then choose six priority SKUs and mark COGS, inbound, outbound, refund rate, reshipment rate, and payment-fee status.

  9. 9

    Route each cost issue to the team that can change it

    Send shipping subsidy to fulfillment / operations, refund concentration to product / page / support, payment-fee variance to finance / payment settings, reshipment rate to warehouse / QA, and rising disputes to payment risk and support response.

  10. 10

    Leave true order cost review notes

    Finish with order sample, SKU sample, cost sources, missing fields, landed cost, tax/duty/FX fields, refund / restock state, post-refund contribution profit, this-week action, blocked move, review window, and counter-signal.

Back to Course Outline
8
View All Tutorials

Share this lesson with your reviewer

Share it with the copyable lesson notes so everyone reviews the same evidence, decision line, and next action.