You open your Shopify dashboard on a Tuesday morning and see a 42% gross margin across your top three SKUs. The month is trending well. Revenue is up. You feel good. Then your accountant calls. After she accounts for the ingredient price increase your supplier sent in March, the yield loss your co-packer reported on the last two production runs, the new packaging spec you approved in February, and the toll fees that went up when you switched co-packers, your real margin is 19%. Shopify did not know about any of that. It was still calculating margin off the cost number you typed in eight months ago.
This is not a rare situation. It is the default situation for food brands that sell on Shopify and have not built a separate system to track true COGS. Shopify is excellent at what it does: processing orders, managing product listings, and reporting revenue. It is not a production cost system. It was not designed to be. The problem is that most food founders do not realize how wide the gap is until their accountant calls, or until they try to raise a round and someone asks for an audited margin breakdown.
What Shopify Tracks vs. What It Does Not
Shopify tracks orders, revenue, refunds, and product-level sales volume. It also has a field in the product settings called "Cost per item," which, if you fill it in, lets Shopify calculate a gross margin estimate on your analytics dashboard. That is the full extent of Shopify's cost tracking capability. It is a single static number per product variant, and Shopify has no mechanism to update it automatically based on what you actually paid for ingredients, what your production yield was, or what your co-packer charged you this month.
What Shopify does not track includes the bill of materials behind each SKU, meaning the individual ingredients and their quantities. It does not track lot-level ingredient costs, so if you bought oats at $0.62 per pound in January and $0.79 per pound in April, Shopify has no way to know which lot went into which production run. It does not track yield loss, which is the reduction in usable product that happens during processing. It does not track co-packer conversion fees, inbound freight, or any allocated overhead. And it does not track how any of those numbers change over time.
The result is that the margin number on your Shopify dashboard is a rough estimate at best, and a dangerously optimistic fiction at worst. For brands with stable, commodity-free ingredient lists and no production complexity, the gap might be small. For food brands with agricultural ingredients, multiple co-packers, or seasonal cost swings, the gap can be 15 to 25 margin points.
Shopify's "Cost per item" field is a manual input with no connection to your actual production costs. It does not update when supplier prices change, when yield loss occurs, or when co-packer fees are renegotiated. Treat it as a placeholder, not a financial source of truth.
Why the "Cost per Item" Field in Shopify Is Almost Always Wrong for Food Brands
The core problem with Shopify's cost field is that it is static. You enter a number once, and it stays there until you manually change it. For a software company selling a digital product, that is fine. For a food brand, it is a structural mismatch with how your costs actually work.
Food costs are dynamic by nature. Ingredient prices change with every purchase order. Commodity markets move. Supplier contracts get renegotiated. A drought in a growing region can push your primary ingredient cost up 30% in a single quarter. None of that is reflected in Shopify's cost field unless you manually update it every single time, which almost no one does consistently.
Beyond ingredient price changes, the cost field cannot represent the complexity of a real food COGS calculation. A single SKU might have eight to twelve ingredients, each purchased from a different supplier at a different price per lot. The cost of that SKU is not a single number. It is a weighted average that changes with every production run, depending on which lots of ingredients were consumed and what you paid for them. Shopify has no concept of a bill of materials, no concept of a production run, and no concept of lot-level cost tracking. Entering a single number into the cost field is a simplification that collapses all of that complexity into a figure that is almost certainly wrong.
There is also the issue of what gets left out entirely. Most founders who fill in the Shopify cost field enter something close to their raw ingredient cost per unit. They forget to include packaging, or they include packaging but forget that packaging costs changed when they redesigned their label. They rarely include an allocated share of co-packer fees, and almost never include any overhead allocation. The number they enter is incomplete from the start, and it drifts further from reality with every passing month.
The Shopify cost field cannot represent a real food COGS calculation because it is a single static number. Real food COGS is a dynamic calculation that changes with every purchase order, every production run, and every yield loss event. The two are structurally incompatible.
The 5 Cost Components Shopify Misses for Food Brands
Understanding exactly what Shopify cannot capture is the first step toward fixing it. There are five cost components that drive the gap between what Shopify reports and what your margins actually are.
The first is ingredient cost variance by lot. When you buy the same ingredient from the same supplier across multiple purchase orders, the price is rarely identical. Prices fluctuate based on market conditions, order volume, and contract terms. If you are using a weighted average cost method, your cost per unit changes every time you receive a new lot at a new price. Shopify has no way to track this. It does not know what you paid per lot, and it cannot recalculate your unit cost when a new lot arrives.
The second is yield loss. In food production, you almost never get out exactly what you put in. Moisture evaporates during cooking or drying. Trim waste occurs during cutting or portioning. Some product is lost to quality failures during inspection. If you start a production run with 600 pounds of raw ingredients and finish with 510 pounds of sellable product, your true cost per unit is based on 600 pounds of input spread across 510 pounds of output. That 15% yield loss increases your real cost per unit by roughly 18%. Shopify does not track production runs, so it cannot account for yield loss at all.
The third is co-packer fees. If you use a contract manufacturer, they charge a conversion fee, sometimes called a toll fee, for the labor and facility cost of producing your product. This fee is a direct cost of production and belongs in COGS. It may be charged per unit, per case, per hour, or per run. It changes when you renegotiate your contract or when your co-packer adjusts their rates. Shopify has no field for this and no way to associate a co-packer fee with a specific production run or SKU.
The fourth is packaging cost changes. Packaging is often the second or third largest cost component for a food brand, after ingredients. Packaging costs change when you redesign your label, switch suppliers, change your case pack configuration, or when raw material costs for film, paperboard, or glass shift. If you entered your packaging cost into Shopify's cost field six months ago and your packaging supplier raised prices since then, your reported margin is overstated by the full amount of that increase.
The fifth is allocated overhead. This is the most commonly omitted cost component. Overhead includes things like your share of warehouse rent, utilities, quality testing, insurance, and any fixed production costs that are not tied to a specific ingredient or co-packer fee. Overhead allocation is a standard part of COGS accounting under GAAP, and it can represent 3 to 8 percent of your true unit cost depending on your production model. Most Shopify brands never include it at all.
The five cost components Shopify cannot track are ingredient cost variance by lot, yield loss, co-packer fees, packaging cost changes, and allocated overhead. Any one of these can move your true margin by 5 to 10 points. Together, they explain why Shopify margin reports are almost always optimistic for food brands.
Three Approaches to Fix It
There is no single right answer for every brand. The right approach depends on your stage, your production complexity, and how much time you can invest in building and maintaining a system. Here are the three approaches most food brands use, in order of increasing sophistication.
Approach 1: Spreadsheet Layer on Top of Shopify
The most common approach for early-stage brands is to build a spreadsheet that calculates true COGS outside of Shopify, then manually update Shopify's cost field periodically. You maintain a bill of materials tab with ingredient costs per unit, a yield adjustment factor per SKU, a co-packer fee per unit, and a packaging cost per unit. When any of those inputs change, you recalculate and update Shopify.
This approach works when you have fewer than ten SKUs, a single co-packer, and a founder or ops person who is disciplined about updating the spreadsheet every time a supplier invoice comes in. It breaks down quickly as you scale. Spreadsheets do not have audit trails. They do not alert you when a cost changes. They do not connect to your purchase orders or your production records. And they rely entirely on someone remembering to update them, which means the margin data in Shopify is only as accurate as the last time someone had time to do the update.
Approach 2: Accounting Software Integration
The second approach is to connect Shopify to an accounting platform like QuickBooks Online or Xero and use the accounting software to record COGS journal entries. Shopify pushes revenue and order data to the accounting software, and you manually record COGS against each period based on your own calculations.
This is better than a pure spreadsheet approach because your COGS is now living in a proper accounting system with audit trails and financial statement integration. But it still requires you to calculate the correct COGS number before you record it. QuickBooks and Xero do not have bill of materials logic, yield tracking, or lot-level cost variance. They are the right place to record COGS, not the right tool to calculate it. You still need a separate system or process to produce the number you are recording.
Approach 3: Purpose-Built Food Operations Software
The third approach is to use software that is specifically designed for food brand operations, with a bill of materials engine, production run tracking, lot-level cost management, and a direct connection to both your purchase orders and your Shopify order data. This type of software calculates your true COGS automatically as purchase orders are received and production runs are completed, and it pushes accurate cost data to your accounting software for recording.
This approach requires more setup upfront, but it eliminates the manual update cycle that makes the first two approaches unreliable at scale. It also gives you real-time visibility into cost variances, which means you can act on a supplier price increase or a yield problem before it shows up as a surprise at month-end. For brands with more than ten SKUs, multiple co-packers, or significant ingredient cost volatility, this is the only approach that produces consistently accurate margin data.
See How Guidance Calculates True COGS for Shopify Brands
Guidance connects your bill of materials, purchase orders, and production runs to give you accurate, real-time COGS, without manual spreadsheet updates.
Book a 20-Minute DemoManual Workflow vs. Guidance Workflow: Recalculating COGS After a Supplier Price Change
To make the difference concrete, here is what happens at a typical Shopify food brand when a key ingredient supplier raises their price by 12%.
The supplier sends a new price list via email. Someone on the team notices it, or does not notice it for two to three weeks.
The ops person opens the COGS spreadsheet, finds the ingredient line, and updates the price. They recalculate the cost per unit for each affected SKU, remembering to adjust for yield loss if the formula is set up correctly.
They then log into Shopify, navigate to each affected product variant, and manually update the "Cost per item" field. If there are eight SKUs affected, this takes 30 to 45 minutes and introduces the risk of a typo or a missed variant.
The accounting software still has the old COGS recorded for any orders that shipped between when the price changed and when the spreadsheet was updated. Those entries are now wrong. Correcting them requires a manual journal entry adjustment, which may or may not happen depending on how busy the accountant is.
The margin report for the month reflects a blend of old and new costs with no clear audit trail of when the change was made or which orders were affected by which cost.
The supplier sends a new price list. The updated price is entered into Guidance when the new purchase order is created, or imported directly from the supplier invoice.
Guidance automatically recalculates the cost per unit for every SKU that uses that ingredient, applying the correct yield factor and co-packer fee for each SKU's bill of materials.
The updated COGS flows into the accounting integration automatically. Orders that shipped before the price change retain their original cost. Orders that shipped after the change reflect the new cost. The audit trail is complete and date-stamped.
The margin report for the month shows accurate, lot-level COGS with a clear variance report showing the impact of the price change. No manual Shopify updates required. No spreadsheet formulas to check. No journal entry corrections needed.
The manual workflow is not just slower. It is structurally unreliable because it depends on someone noticing the change, remembering to update every affected system, and doing so without errors. A purpose-built system removes the human dependency from the update cycle and keeps your COGS accurate continuously, not just when someone has time to check.
What to Look for When Evaluating COGS Tracking Software for a Shopify-First Brand
Not all food operations software is built the same way, and not all of it integrates cleanly with a Shopify-first business model. Here is what actually matters when you are evaluating options.
The first thing to look for is a true bill of materials engine. The software needs to support multi-level BOMs, meaning it can handle a finished product that is made from sub-assemblies or intermediate products, not just a flat list of raw ingredients. It also needs to support multiple BOMs per SKU if your formulation changes over time, and it needs to version those BOMs so you can see which formulation was used for which production run.
The second is lot-level cost tracking. The software needs to assign a specific cost to each lot of each ingredient you receive, and it needs to use that lot cost when calculating the COGS for production runs that consumed that lot. This is what enables accurate cost variance reporting and what makes your COGS defensible to an auditor or an investor.
The third is yield tracking at the production run level. The software needs to let you record actual output versus expected output for each production run, and it needs to use actual yield, not theoretical yield, when calculating your cost per unit. If your software assumes 100% yield by default, it is understating your COGS.
The fourth is a clean Shopify integration. The integration should sync order volume from Shopify so the software knows how many units were sold in each period. It does not need to push cost data back into Shopify's cost field. The cost data should flow to your accounting software directly, bypassing Shopify's limited cost infrastructure entirely.
The fifth is an accounting software connection. The software should push COGS journal entries to QuickBooks or Xero automatically, with enough detail to satisfy your accountant and your auditors. Entries should be tied to specific production runs and lot numbers, not just summarized monthly totals.
Finally, look for a system that was built for food brands specifically, not a generic inventory or manufacturing tool that has been adapted for food. Food-specific requirements like catch weight, variable yield, lot traceability, and co-packer management are edge cases in generic systems and core features in food-specific ones. The difference in usability and accuracy is significant.
When evaluating COGS tracking software for a Shopify food brand, prioritize a true BOM engine, lot-level cost tracking, actual yield recording, a clean Shopify integration for order volume, and a direct accounting software connection. Generic inventory tools rarely handle all five well. Food-specific platforms are built around them.
Frequently Asked Questions
Does Shopify automatically calculate COGS for food brands?
Shopify can display a gross margin estimate if you manually enter a cost per variant in the product settings. But it does not calculate COGS from a bill of materials, it does not adjust for yield loss, and it does not update when your supplier invoices change. For food brands with variable ingredient costs and production overhead, the number Shopify shows is almost always understated.
What is the biggest COGS mistake Shopify food brands make?
Entering a static cost per product in Shopify and never updating it. Ingredient prices change with every purchase order. Yield loss changes with every production run. Co-packer fees get renegotiated. If you set a cost number once and forget it, your margin reports are fiction within a few months. The second biggest mistake is entering only ingredient cost and forgetting packaging, co-packer fees, and overhead entirely.
Can QuickBooks or Xero fix the COGS gap for Shopify food brands?
Partially. Accounting software can pull Shopify revenue and let you record COGS journal entries, but it still requires you to calculate the correct COGS number before you enter it. QuickBooks and Xero do not have bill of materials logic, yield tracking, or lot-level cost variance. They are the right place to record COGS, not the right tool to calculate it. You need a separate production cost system to produce the number you are recording.
How should a food brand handle yield loss in COGS calculations?
Yield loss must be factored into your cost per unit before you record COGS. If you start a production run with 500 lbs of raw ingredients and finish with 420 lbs of sellable product, your true input cost is spread across 420 lbs, not 500. That 16% yield loss increases your real cost per unit significantly. Most Shopify brands ignore this entirely, which is why their reported margins are higher than their actual margins. The correct approach is to record actual output from each production run and let your cost system calculate the yield-adjusted cost per unit automatically.
What should I look for in COGS tracking software if I sell on Shopify?
Look for software that maintains a bill of materials per SKU, updates ingredient costs from purchase orders automatically, tracks yield loss at the production run level, and can push accurate COGS data to your accounting software. Shopify integration matters for syncing order volume, but the core COGS calculation has to happen in a system that understands food production, not just e-commerce. Generic inventory tools rarely handle food-specific requirements like lot traceability, variable yield, and co-packer fee allocation well.
Stop Running Your Brand on Shopify Margin Estimates
Guidance gives food brands a real COGS engine: bill of materials, lot-level costs, yield tracking, and accounting integration. Built by a food brand operator, for food brand operators.
Get a Demo of Guidance