← All guides
Soap & bath

How Much Profit Should You Make Per Bar of Soap?

Per-bar profit looks the same on two scents until you count the weeks each ties up your cure rack — here's the real math.

MadeKeeper · July 30, 2026

Every batch of goat milk soap gives you two numbers without being asked: what it cost, and what it sold for. Most makers stop there and call it margin. That's the mistake — not because the math is wrong, but because it's incomplete. The number that actually decides what to keep pouring isn't sitting in your recipe. It's sitting on your cure rack, measured in weeks.

What a bar really costs

You already weigh this out for SAP math, so the ingredient side isn't the hard part. Say you pour a 40-oz frozen-milk batch — oils blended for a gentle bar, milk slushed so the lye never scorches it, lye weighed to the gram, a light fragrance load:

IngredientCost
Oils (olive, coconut, shea), 40 oz blend$8.90
12 oz goat milk, attributed feed cost$1.05
5.6 oz lye$1.57
Fragrance, 1 oz$2.20
Colloidal oatmeal and honey drizzle$0.55
Batch total$14.27

That loaf cuts to 12 bars — $1.19 a bar. Sell at $9, the going rate goat milk earns at most farmers markets, and you've cleared $7.81 a bar before the booth fee and your hours. Every soapmaker who's done this math feels good about it. Here's why that feeling is only half-earned.

The milk isn't free just because the herd isn't a bill

That $1.05 for 12 oz of milk in the table above assumes you're attributing your own herd's feed and care across what you actually use in soap — not treating it as zero because no receipt changed hands. Both approaches are honest, but only one of them tells you the truth about the bar. If you run the herd as a separate line — hay, grain, vet bills, the time bottle-feeding a kid in spring — and divide that cost across the milk you pull for soap versus what goes to a herd share or just gets poured out, you get a real number. Call it zero instead, and you're not pricing goat milk soap. You're pricing regular soap with a marketing claim on the label, and the two shouldn't cost the same to make even if they sell for the same price.

Pick whichever method fits how you actually run the farm side, but pick it once and apply it to every batch. The number matters less than the consistency — a milk cost that changes methodology mid-season is worse than one that's slightly wrong every time in the same direction.

The batch that looks the same and isn't

Now pour a second recipe from the same shelf — a charcoal detox bar, same base oils and milk, with activated charcoal and a heavier fragrance load to cover the earthiness:

IngredientCost
Base (oils, milk, lye, fragrance)$13.72
Activated charcoal, 0.6 oz$0.90
Batch total$14.62

Twelve bars, $1.22 each. Priced at the same $9, that's $7.78 a bar in profit — four cents off the milk and honey bar. On paper, these are the same product. You'd pour both without a second thought.

Except one of them sells out in six weeks and the other doesn't. Charcoal soap has a smaller audience at a general farmers market than a soft milk-and-honey bar, and it usually takes longer on the table. Say the milk and honey bar clears all twelve bars across three markets — full price, no markdowns. The charcoal bar takes five markets to move, and by the last one, three bars have gone soft-edged and dusty enough that you drop them to a $6 seconds bin just to clear the shelf for the next pour.

Run that out: nine charcoal bars at $9 and three at $6 is $99 in revenue against $14.62 in materials — $84.38 profit for the batch, or $7.03 a bar once the seconds are counted in. Not $7.78. The sticker-price margin and the batch's real margin are two different numbers, and only one of them is true.

The number that actually matters: profit per week of rack space

Here's the part that gets skipped. A 4-6 week cure isn't a delay before the batch is "real" inventory — it's the batch occupying a physical slot on a rack that only holds so many loaves at once. Every week a batch sits there, curing or waiting to sell, is a week that slot can't hold your next pour. That's the actual scarce resource in a soap kitchen, and it isn't measured in dollars per bar. It's measured in dollars per week of shelf.

Milk and honey: 5 weeks curing, then 6 weeks to sell out clean. Eleven weeks total, $93.72 profit. That's $8.52 of profit for every week that batch held a rack slot.

Charcoal detox: 5 weeks curing, then 10 weeks to sell through — including the markdown week. Fifteen weeks total, $84.38 profit. That's $5.63 a week.

Put those side by side and the four-cent difference in per-bar margin turns into a 34 percent gap in what the rack slot is actually worth to you over its lifetime. If your rack has room for, say, six batches at a time across a market season, running charcoal in one of those slots instead of milk and honey costs you real money — not because the recipe is bad, but because it ties up space longer for less return.

This is the math a lot of soap pricing advice skips entirely, because it's built for products that don't have to sit and cure before they're sellable. Yours does. Treat the cure rack like the constraint it is, and the "which scent should I drop" question stops being a feeling about what you're tired of making and starts being a number.

What to do with the number

You don't have to drop the charcoal bar. Maybe it brings people to the table who buy other things, or it's the bar a regular customer specifically drives out for — that's a real reason to keep a slower mover, and it's worth writing down as a reason, not just a hunch. But if the only case for it is "it sells eventually," run the rack-week math before you pour the next batch. A slow seller earning $5.63 a week instead of $8.52 is giving up about $2.89 every single week it sits there — over one full 15-week charcoal cycle, that's roughly $43 you didn't have to leave on the rack. Multiply that across a whole season of choices and it's the difference between a rack that pays for itself and one that's just busy.

The fix isn't always dropping a scent — sometimes it's cutting the batch size in half so the slow mover ties up less rack real estate for the same total sales, or running it only for the market where it actually moves. Either way, the decision gets easier once you're looking at the real number instead of the one on the recipe card.

This is exactly the kind of tracking a spreadsheet resists — it wants one column for cost and one for price, not a batch that ages, gets marked down, and occupies a shelf slot with a shelf life of its own. It's what MadeKeeper tracks for goat milk soap makers: milk at its attributed cost, the cure rack counted as inventory that isn't sellable yet, seconds priced as their own tier, and a batch's true margin including what it actually took to sell through — not just what the recipe card says on pour day.

If you want to see it before you touch your own numbers, the live demo lets you pick your crafts and run sample batches through it — no signup, just the working numbers on a batch that isn't yours yet.

Your milk cost nine cents a bar and carried the whole premium on the label. It's worth knowing, just as honestly, what the rack costs.