Calculating COGS for handmade products, with the actual math
Most makers price by feel: look at what similar products sell for, pick a number that seems fair, hope it works out. The number that turns pricing from hope into a decision is COGS, the cost of goods sold, meaning what one finished unit actually costs you in materials. This guide works through the full calculation for one product, a soy candle, with every step of the arithmetic shown. The same method applies to soap, jewelry, ceramics, and small-batch food.
The example candle
All the prices below are example numbers for the worked math. Substitute your own invoices.
One 8 ounce candle uses:
- 170 grams of soy wax
- 17 grams of fragrance oil (a 10 percent fragrance load on the wax)
- 1 wick
- 1 glass jar
And the materials were purchased like this:
- Soy wax: one 45 pound case for $85
- Fragrance oil: one 16 ounce bottle for $25
- Wicks: bag of 100 for $6
- Jars: case of 12 for $15
Notice the mismatch: the wax was bought in pounds and the recipe is in grams. That mismatch is where most COGS calculations go wrong, so we handle it first.
Step 1: convert every purchase to a cost per usage unit
The recipe consumes grams, so every material needs a price per gram (or per piece).
Wax. One pound is 453.6 grams, so a 45 pound case is 45 times 453.6, which is 20,412 grams. The case cost $85, so the wax costs 85 divided by 20,412, which is $0.00416 per gram.
Fragrance oil. The 16 ounce bottle, sold by weight, is 16 times 28.35 grams, which is 453.6 grams. At $25, that is 25 divided by 453.6, which is $0.0551 per gram.
Wicks. $6 divided by 100 is $0.06 per wick.
Jars. $15 divided by 12 is $1.25 per jar.
The conversion pitfalls to watch
- Fluid ounces versus weight ounces. Fragrance and carrier oils are sometimes listed by volume (fluid ounces) and sometimes by weight. They are different measurements, and oils do not weigh the same as water, so a per gram price computed from the wrong one is silently off. Check the label before dividing.
- Pounds versus kilograms. Overseas suppliers often quote kilograms. One kilogram is about 2.2 pounds, and confusing the two more than doubles or halves a cost.
- Rounding too early. Keep four or five decimal places on per gram prices. $0.004 and $0.00416 look similar and differ by 4 percent, which compounds across every unit you ever make.
Step 2: cost the recipe
Multiply each per unit price by the quantity the recipe consumes:
| Material | Quantity | Unit cost | Line cost |
|---|---|---|---|
| Soy wax | 170 g | $0.00416 per g | $0.71 |
| Fragrance oil | 17 g | $0.0551 per g | $0.94 |
| Wick | 1 | $0.06 | $0.06 |
| Jar | 1 | $1.25 | $1.25 |
| Total materials COGS | $2.96 |
One candle costs $2.96 in materials. Two observations fall out immediately. The jar is the biggest single cost, ahead of the wax itself, which surprises many candle makers and points at packaging as the first place to negotiate. And the fragrance costs more than the wax despite weighing a tenth as much, so fragrance load decisions have real money attached.
Step 3: margin, and what the words mean
Say the candle retails for $14. Gross profit per unit is 14 minus 2.96, which is $11.04.
Two ratios describe that, and mixing them up causes bad decisions:
- Margin is profit divided by price: 11.04 divided by 14 is about 79 percent.
- Markup is profit divided by cost: 11.04 divided by 2.96 is about 373 percent.
A "keystone" wholesale deal, common vocabulary in retail, doubles cost, which is 100 percent markup and only 50 percent margin. Know which ratio someone means before agreeing to anything.
Also be honest about what this figure excludes. Materials COGS is the floor. Payment processing, Shopify fees, shipping supplies, booth fees, failed batches, and above all your labor sit on top of it. A $2.96 materials cost with a $14 price does not mean $11.04 of profit; it means $11.04 to cover everything else before profit begins.
What the number lets you decide
Wholesale readiness. If a shop pays half of retail, $7 in this example, materials leave $4.04 per unit before labor and overhead. Whether that works is now a calculation rather than a guess.
Supplier price changes. If the wax case rises from $85 to $110, the per gram price becomes $0.00539, the wax line becomes $0.92, and total COGS moves to $3.17. Twenty one cents per candle is invisible on one sale and very visible across a thousand. You can decide to absorb it, reprice, or switch suppliers with the effect quantified.
Product mix. Costing every product the same way shows which ones actually earn. Makers routinely discover their best seller has the worst margin, and that knowledge changes what gets promoted.
Recipe changes. Dropping fragrance load from 10 to 8 percent saves about 19 cents per candle in this example. Worth it or a false economy? Now it is a number you can weigh against scent quality.
Keeping COGS current
The calculation is easy once. The hard part is that it goes stale: supplier prices move, recipes get tweaked, and last year's spreadsheet quietly misprices this year's products. Recalculate whenever you reorder a material, and date your cost records so you know what vintage a number is.
This is one of the jobs Madestock, which we are building, is designed to do automatically. It stores each material's purchase price and unit conversion once, rolls costs up live into a per unit COGS for every finished product, and shows the margin against your Shopify selling price with the full math visible rather than a mystery number. Updating one material price updates every recipe that uses it.
However you maintain it, do the worked calculation above for your top three products this week. Makers who do usually find at least one number that changes a decision, whether that is a price, a supplier, or which product deserves the front of the table at the next market. The costs also connect directly to your inventory counts, since the same recipe that prices a candle also determines what each batch consumes. That side of the system is covered in logging production runs.