To work out what a bar of soap costs, price every ingredient per ounce, multiply by the ounces in the recipe, and divide the batch by the bars you can sell. Then add the box, the label, your time and a share of overhead. In the example below, a 5 lb batch of cold process soap costs $25.54 in ingredients and makes 19 sellable bars, and each bar costs $4.10 all in. Labor is half of that, and three ounces of fragrance cost more than any oil but the olive.
The short version
- Price each ingredient per ounce: what you paid, delivered, divided by the ounces you got.
- Write the recipe with oils as a percentage of total oil weight, so it scales to any batch size.
- Divide by the bars you can sell, not the bars you cut. The ends and the testers are part of the cost.
- Price by cured weight. A bar loses water as it cures, and the label weight is the one that counts.
- Keep that cost current as oil prices move. TaroStack does it from every jug you buy; there's more on that below.
Step 1: price per ounce
Everything in soap is weighed, so ounces are the easiest unit. For each ingredient: the price paid, including shipping, divided by the ounces in the container.
| Ingredient | Bought as | Ounces | Paid | Per ounce |
|---|---|---|---|---|
| Olive oil | 35 lb jug | 560 | $112.00 | $0.20 |
| Coconut oil, 76° | 50 lb pail | 800 | $120.00 | $0.15 |
| Shea butter | 10 lb box | 160 | $48.00 | $0.30 |
| Castor oil | 8 lb jug | 128 | $32.00 | $0.25 |
| Sodium hydroxide (lye) | 2 lb jar | 32 | $6.40 | $0.20 |
| Distilled water | 1 gallon | 133 | $1.25 | $0.0094 |
| Fragrance oil | 16 oz bottle | 16 | $32.00 | $2.00 |
| Mica colorant | 1 oz bag | 1 | $5.00 | $5.00 |
These are example prices, not quotes. Put yours in, from your last invoice. A gallon of water weighs about 133 oz.
Step 2: the batch
The recipe: 80 oz of oils (5 lb), made up of 45% olive, 30% coconut, 20% shea and 5% castor. Writing it in percentages means the same recipe works for a 2 lb test batch or a 10 lb production run.
| Ingredient | % of oils | Ounces | Cost |
|---|---|---|---|
| Olive oil | 45% | 36 | $7.20 |
| Coconut oil, 76° | 30% | 24 | $3.60 |
| Shea butter | 20% | 16 | $4.80 |
| Castor oil | 5% | 4 | $1.00 |
| Sodium hydroxide (lye) | 11.18 | $2.24 | |
| Distilled water | 22 | $0.21 | |
| Fragrance oil | 3 | $6.00 | |
| Mica colorant | 0.1 | $0.50 | |
| Batch | 116.28 | $25.54 |
The lye figure comes from a lye calculator at 5% superfat, using SoapCalc's sodium hydroxide values for these oils (SoapCalc). Different calculators land a few hundredths of an ounce apart. The calculator on this page doesn't work out lye for you, on purpose: it costs a recipe, it doesn't make one. Always run your own recipe through a lye calculator before you make it.
Look at the fragrance. Three ounces of it cost $6.00, more than the shea butter and castor oil together, and 23% of the whole batch. If you're looking for a place to save money, it isn't the oils.
Step 3: one bar
The batch goes into a loaf mold and is cut into 20 bars of about 5.5 oz. One end bar is kept as a tester, so 19 can be sold. After curing, each bar weighs about 5 oz.
| Per sellable bar | |
|---|---|
| Ingredients ($25.54 ÷ 19) | $1.34 |
| Box | $0.32 |
| Label | $0.08 |
| Labor (2 hours at $20 ÷ 19) | $2.11 |
| Overhead | $0.25 |
| Full cost per bar | $4.10 |
| Cost per cured ounce ($4.10 ÷ 5) | $0.82 |
Labor is two hands-on hours: weighing, mixing, pouring, then cutting and wrapping later. The curing weeks are free, apart from the shelf space. Overhead is your monthly fixed costs (insurance, market fees, the website) divided by the bars you sell in a month; 25 cents is an example.
Your own time is the line people leave out, and here it's more than half the cost. If a shop offers $5.50 a bar, you keep $1.40, or 25%. Without the labor line it would look like $3.51 a bar of profit, and most of that is really your wages. How to get from this cost to a wholesale price is in how to price handmade items for wholesale.
The calculator
Download the soap cost calculator. It has the Ingredients tab (price per ounce fills itself in) and the Batch tab (set the total oil weight and the percentages, type lye and water from your lye calculator, and every cost and the per-bar numbers follow). It's a normal Excel file with no macros, and it works the same in Google Sheets, LibreOffice and Numbers.
The formulas are plain. Ounces of each oil are =B2*$H$2 (percent × total oils), and each cost looks up its price per
ounce with VLOOKUP:
=C2*VLOOKUP(A2,Ingredients!$A:$E,5,FALSE)
Type ingredient names exactly as they are on the Ingredients tab, or the lookup shows #N/A. That's the first thing to check when a number goes missing.
Keeping it right
Three things move the cost of a bar more than people expect:
- Oil prices move, and a pail of coconut oil can cost more than the last one. Update the Ingredients tab from each invoice, not once a year.
- Yield drifts: trim more, or keep more testers, and the bars you can sell drop, so every one costs more. Count what you actually sell from each batch for a few batches.
- Bars that lose more water than you think while curing mean you're selling less soap than the label says, and your cost per ounce is higher than the sheet shows. Weigh a few cured bars.
For the general method behind all of this, the same steps work for food: steps in recipe costing. And for what one real batch cost against what it should have, there's a batch costing example.
Where this stops working
The calculator costs a recipe at the prices you typed in. It doesn't know that this batch used the last of an old jug of olive oil and the first of a new one, or that the fragrance you bought in the spring cost less than the bottle you opened today. It knows nothing about stock either: whether you have enough shea for Saturday, or how many bars of lavender are left curing on the rack. So you end up with this sheet for costs, another for stock, and a notebook for batches, and keeping all three in step is its own job.
How TaroStack does it
TaroStack keeps the cost, the stock and the batches in one place, so the calculator above keeps itself up to date. Your recipe is written once, with unit conversion: buy olive oil by the 35 lb jug, weigh it by the ounce, and TaroStack does the math. When you record a batch, it takes the oils, lye and fragrance off from the lots you used, at what each one actually cost you, so the batch's real cost is worked out on the spot, next to what the recipe says it should cost. A price-creep report shows which supplier's oils are getting dearer.
Curing fits too. Put a batch on hold while it cures, and held stock is kept out of what you can sell, so nothing goes out a week early. Each batch records the fragrance lot that went into it, which matters the day a customer asks what was in their bar. And if you sell online, TaroStack connects to your Shopify store, and we set it up with you.
Recipes, batches and true cost are on Standard at $99 a month, with 30 days free first. Your ingredients and recipes import from a spreadsheet like this one. If you'd like a hand setting up, ask, and we'll do it with you.
