Packaging Costs: From Label Bill to COGS
How the cost of labels, bottles, and boxes flows into your finished goods and lands in COGS when the product sells — in plain language.
The terms, in plain language
• Debit / credit — every accounting entry moves value between two buckets; by convention one side is the debit and the other the credit. For inventory accounting all you need is: debiting an asset account increases it, crediting an asset account decreases it. Every entry does both, for the same amount, so the books always balance.
• Journal entry (JE) — a bookkeeping record that does one of those transfers: "Dr X / Cr Y for $550" means move $550 into X, out of Y.
• Asset vs. expense — an asset is something you own that still has value (inventory in a warehouse). An expense hits your profit-and-loss statement now. Unsold inventory is an asset, not an expense.
• COGS (cost of goods sold) — the expense recognizing what the goods you sold cost you. The matching principle says a cost belongs on your P&L in the same period as the revenue it produced — a label's cost should hit when the bottle wearing it sells, not when you bought the roll.
• Cost layer — Ventorie's record of one batch at one price: "10,000 labels received June 3 at $0.05". A later order at $0.06 is a second layer.
• FIFO (first in, first out) — consuming from the oldest layer first, at that layer's price.
• Draw — one take from a layer ("500 units from the June layer at $0.05"). Ventorie records every draw so the math can be checked, recomputed, or exactly undone.
Stage 1 — you buy packaging
The vendor's bill pushes to QuickBooks coded to your Inventory Asset : Packaging Materials sub-account — an asset, not an expense: you own the labels, you haven't "spent" anything in P&L terms yet. In Ventorie, receiving the packaging PO creates a cost layer at the actual price paid.
Why a sub-account: its balance should always equal the value of unused packaging sitting at your manufacturer — a built-in reconciliation check.
Stage 2 — finished goods are received
When a finished-goods receipt lands and the product's BOM includes packaging, Ventorie consumes the packaging oldest-first (FIFO) and prices each slice at what that slice actually is:
1. Stock from before you tracked packaging in Ventorie — an initial count set at onboarding, say — is your oldest stock, so it consumes first, priced at the cost on the packaging product's card. Ventorie detects it as the on-hand quantity your cost layers don't account for.
2. Then the cost layers, oldest first, at their real purchase prices.
3. Anything beyond both prices at the product-card cost too; with no card cost it rolls in at $0 and logs a warning — nothing ever blocks receiving.
Example: 500 labels from an initial count (card cost $0.04) plus a 1,000-label PO at $0.05. Receiving 1,000 bottles consumes the 500 initial labels at $0.04 and 500 from the PO layer at $0.05 — and the remaining 500 PO labels keep their real $0.05 price for the next receipt, instead of being burned early.
Stage 3 — the monthly catch-up entry in QuickBooks
Ventorie's records now carry the label value inside finished goods — but QuickBooks still has it in Packaging Materials, where the bill posted. The Packaging → Inventory Asset card on Financials → Accounting posts one journal entry per month (numbered PKG-YYYY-MM): debit Inventory Asset, credit Packaging Materials. Total assets don't change; value moves from the "packaging" bucket to the "finished goods" bucket, mirroring what physically happened. Afterwards Packaging Materials again equals only your unused packaging.
Re-posting a month is always additive — new receipts get a follow-up entry, never a duplicate. Set the Packaging Materials account on the QuickBooks integration card first.
Stage 4 — the product sells
Your monthly COGS entry (debit COGS, credit Inventory Asset) relieves inventory at the carried cost — which now includes packaging. The label's nickel finally hits your P&L at the moment of sale, inside COGS, and your gross margin per unit is honest.
Without this flow, packaging value either sits in the Packaging Materials account forever (overstating assets and margins) or gets expensed at purchase (costs hitting the wrong month, margins jumping with your ordering schedule).
The backfill for older receipts
Receipts created before this feature existed consumed packaging quantities but never moved the dollars. A one-time backfill (run by Ventorie support) replays Stage 2 for them, oldest first: draw the layers that existed, apply the product-card fallback where they don't reach, and record everything exactly like a live receipt.
It runs as a dry run first and reports three things before anything is written: the per-receipt amounts, which components priced from the product card, and — loudly — any components with no cost anywhere. Fill in missing product-card costs and re-run the dry run before executing. The backfill never touches inventory quantities (those were always right) and never changes COGS entries already posted to QuickBooks; only unsold inventory carries the corrected costs forward.
What to keep accurate
Two habits make this whole flow self-maintaining:
1. Receive packaging POs in Ventorie — that's what creates the cost layers with real prices.
2. Keep a cost on each packaging product's card — it's the safety net when layers run out, and the planning pages use it too.
If you see a receiving warning about packaging with no cost, set the cost on the product card; future receipts pick it up automatically.