
Dyes are calculated on the fabric, chemicals on the water. Here are the formulas, the liquor ratio and bath volume, owf to g/L conversion, lab-to-bulk scaling, additions and the mistakes that cost shades, with worked examples.
At a glance
kg × % × 10Grams of dye
g/L × litresGrams of chemical
kg × ratioBath volume in litres
(% × 10) ÷ ratio% owf to g/L
A dyeing recipe is a short list of names and numbers, but every number on it is the answer to a sum. Somebody had to work out how many grams of each dye go onto the fabric, how many kilograms of salt and soda go into the water, and how much stock solution goes into the lab beaker. If one of those sums is wrong, the shade is wrong, and no amount of skill at the machine will fix it afterwards.
This article shows how the sums work. It starts with the two units every recipe uses, explains liquor ratio and bath volume, gives the few formulas you need, and then works through real-size examples: a three-colour recipe, a lab dip scaled to bulk, a top-up addition and a check on scale accuracy. The arithmetic is simple. The skill is in knowing which number goes where.
Two ways to express a recipe: % owf and g/L
Look at any reactive dyeing recipe for cotton and you will see two kinds of unit side by side. The dyes are given as a percentage, for example 1.20%. The salt, soda ash and most auxiliaries are given in grams per litre, for example 50 g/L. This is not a habit. It follows from what each product does.
- % on weight of fabric (% owf). Used for dyes and for some auxiliaries that also go onto the fibre, such as certain softeners or fixing agents in some dye houses. 1% owf means 1 g of product for every 100 g of fabric, or 10 g for every kilogram. The amount depends only on how much fabric is in the machine.
- Grams per litre (g/L). Used for salt, alkali, acid, sequestering agents, levelling agents, anti-creasing agents and most other auxiliaries. 50 g/L means 50 g in every litre of bath. The amount depends on how much water is in the machine.
The reason is where the product ends up. A dye’s job is to leave the water and go into the fibre. The depth of the shade is decided by how much dye sits in each kilogram of fabric, so the dye is calculated on the fabric. Salt and soda do their work in the water. Salt shields the charge on the fibre and pushes dye out of solution; soda raises the pH of the whole bath. Their effect depends on their concentration in the water, so they are calculated on the litres. If you are not sure why salt and alkali act this way, the article on how reactive dyes work explains the chemistry.

A few auxiliaries can be found in either unit, depending on the supplier’s data sheet and the habits of the dye house. When the data sheet says % owf, calculate on the fabric; when it says g/L, calculate on the bath. Never change the unit without converting the number, as shown later.
Liquor ratio and bath volume
The liquor ratio, written M:L (material to liquor), tells you how many litres of water are in the machine for each kilogram of fabric. A ratio of 1:8 means 8 litres of bath for every 1 kg of fabric. Soft-flow and jet machines for knits commonly run somewhere around 1:5 to 1:10, while winch machines and lab beakers usually run longer. The right value depends on the machine design, the fabric type and how full the machine is loaded.
Once you know the fabric weight and the liquor ratio, the bath volume is a single multiplication:
- Bath volume (L) = fabric weight (kg) × liquor ratio (L per kg).

Worked example. A soft-flow machine is loaded with 300 kg of cotton single jersey and the machine card says 1:8. Bath volume = 300 × 8 = 2,400 L. If the same machine were run at 1:6 the bath would be 1,800 L, and at 1:10 it would be 3,000 L. The fabric weight did not change, but every chemical quantity in g/L will.
Fabric weight in the machine
The fabric weight is the starting point of every calculation, so it must be the real weight of what is loaded, not the planned weight from the order. Batches are often a little over or under plan because of roll weights, splits or rejected rolls. Use the weight from the batch card after weighing. If the machine is loaded in several chambers or tubes, add them all; the bath is shared, so the recipe is calculated on the total.
Also check that the load is reasonable for the machine. A machine that is badly under-loaded will run at a much longer liquor ratio than its card says, because the pump and pipes still need their minimum water. A machine that is over-loaded may tangle or run with poor circulation. Either way, the numbers on paper stop matching what happens inside.
The formulas you need
Almost every recipe calculation in a dye house uses only three formulas.
- Dye or % owf product (g) = fabric (kg) × shade % × 10. The 10 comes from the units: 1% of 1 kg is 10 g.
- Chemical (g) = concentration (g/L) × bath volume (L). Divide by 1,000 to get kilograms.
- Stock solution volume = grams needed ÷ stock concentration. If the stock is in g/L, the answer is in litres; multiply by 1,000 for millilitres.
Worked example. The 300 kg batch at 1:8 (2,400 L) needs a single dye at 1.20% owf, salt at 50 g/L and soda ash at 15 g/L. Dye = 300 × 1.20 × 10 = 3,600 g, or 3.6 kg. Salt = 50 × 2,400 = 120,000 g, or 120 kg. Soda ash = 15 × 2,400 = 36,000 g, or 36 kg.
Stock solutions matter most in the lab, where the quantities are so small that weighing powder directly would be inaccurate. The dye is dissolved once at a known strength, often 1 g/L, 2 g/L, 5 g/L or 10 g/L (that is, 0.1%, 0.2%, 0.5% or 1% solutions), and the right volume is pipetted into each beaker.
Worked example. A lab dip uses 5 g of fabric and needs 1% owf of a red dye. Dye = 0.005 kg × 1 × 10 = 0.05 g. With a 5 g/L stock solution, the volume needed is 0.05 ÷ 5 = 0.01 L, which is 10 mL. With a 1 g/L stock it would be 50 mL, which is the whole bath at 1:10, so a stronger stock is the better choice for this depth.
The dye recipe calculator does these sums for you, but it is worth doing them by hand a few times so you can recognise a wrong answer when you see one.
How to build a recipe, step by step
The same order works for every batch. Follow it and the numbers stay consistent with each other.

Two habits make this flow safer. First, write the fabric weight and bath volume at the top of the recipe sheet, so anyone checking can redo the sums. Second, write the unit beside every number: %, g/L, g or kg. Most expensive mistakes on the floor begin with a number that has no unit next to it.
Converting between % owf and g/L
Sometimes a value is given in one unit and you need it in the other. A data sheet may give an auxiliary in % owf when your recipe system uses g/L, or you may want to know how strong a dye bath really is. At a known liquor ratio the conversion is simple:
- g/L = (% owf × 10) ÷ liquor ratio.
- % owf = (g/L × liquor ratio) ÷ 10.
Here the liquor ratio is the number of litres per kilogram, so 8 for a ratio of 1:8. The textile unit converter handles the same conversion.
Worked example. A dye at 2% owf in a bath at 1:8: 2 × 10 = 20 g per kg of fabric, spread over 8 L, so the starting bath holds 20 ÷ 8 = 2.5 g/L of dye. Going the other way, salt at 60 g/L at 1:8 is 60 × 8 ÷ 10 = 48% owf. In other words, for every kilogram of fabric you are putting in 480 g of salt.
The conversion is only valid for one liquor ratio. If the ratio changes, the % owf value of a g/L chemical changes too, and the g/L value of a % owf dye changes too. This is the reason a recipe should always state which unit each line uses.
How the liquor ratio changes the result
Because dyes and chemicals use different units, changing the liquor ratio affects them in opposite ways.
- Dyes (% owf). The grams of dye stay the same for the same fabric weight. But at a shorter ratio they are dissolved in less water, so the dye concentration in the bath is higher. A higher bath concentration usually pushes more dye onto the fibre, so exhaustion tends to be better at short liquor ratios, and the dye also tends to strike faster, which can make levelling harder.
- Chemicals (g/L). The concentration stays the same, but the kilograms change with the litres. At a longer ratio you use more salt, more soda and more auxiliary for the same fabric, and you also send more of them to the effluent.

Worked example. 100 kg of fabric is dyed at 2% owf, so 2,000 g of dye in both cases. At 1:6 the bath is 600 L and the starting dye concentration is about 3.3 g/L. At 1:12 the bath is 1,200 L and the concentration is about 1.7 g/L, half as strong. With salt at 60 g/L, the 1:6 bath needs 36 kg of salt and the 1:12 bath needs 72 kg, double the salt for the same fabric and the same shade.
This is why a recipe that worked well on one machine cannot simply be copied to another machine that runs at a different ratio. The g/L chemicals will be right on paper but cost more or less, and the dye may exhaust differently, so the shade may move.
Shade depth and how salt and soda follow it
Dyers group shades by their total dye percentage. The limits are not fixed; each dye house and each dye maker draws them a little differently. A common way of describing them is: pale shades up to about 0.5% total dye, light shades around 0.5–1%, medium around 1–2%, dark around 2–4%, and very dark above about 4%. Blacks and navies are often well above that.
For reactive dyes on cotton, salt and soda are scaled with depth. A deeper shade needs more dye to leave the bath and enter the fibre, so it needs more salt to push it there and usually more alkali to fix it. The table below is an example only, to show the pattern. Real amounts depend on the dye range (some low-salt dyes need much less), the liquor ratio and the fibre, so always adjust to the dye maker’s recommendation.
| Shade depth (example limits) | Total dye, % owf | Salt, g/L (example) | Soda ash, g/L (example) |
|---|---|---|---|
| Pale | below 0.5 | 20–30 | 5–10 |
| Light | 0.5–1 | 30–40 | 10 |
| Medium | 1–2 | 40–60 | 10–15 |
| Dark | 2–4 | 60–80 | 15–20 |
| Very dark | above 4 | 80–100 | 20, sometimes plus a little caustic soda |

Notice that the table is in g/L. A dark shade at 1:6 and the same dark shade at 1:10 use the same g/L of salt, but very different kilograms, as the previous section showed.
Multi-dye recipes: a three-colour combination
Most shades are not made with one dye but with a combination, usually a yellow, a red and a blue, sometimes with a fourth component for brightness or for a dull or grey cast. Each dye is calculated separately with the same formula. The depth of the shade, for choosing salt and soda, is taken from the total of all the dye percentages.
Worked example. A beige-brown shade on 300 kg at 1:8 (2,400 L). Yellow 0.85%: 300 × 0.85 × 10 = 2,550 g. Red 0.42%: 300 × 0.42 × 10 = 1,260 g. Blue 0.12%: 300 × 0.12 × 10 = 360 g. Total dye = 1.39%, a medium shade. Using the example table, salt at 50 g/L = 120 kg and soda ash at 12 g/L = 28.8 kg. Each dye is weighed on its own, checked against the sheet, and then dissolved.
In a combination, small dyes matter as much as large ones. In the example above the blue is less than a tenth of the total dye, but an error of a few grams in it will change the cast of the shade far more visibly than the same error in the yellow. That is one reason the weighing accuracy section below matters.
The dyes in a combination should also be compatible: similar reactivity, similar exhaustion and similar response to temperature, so that they go onto the fabric together. If one dye exhausts much earlier than the others, the shade changes during dyeing and from batch to batch, even when every gram was weighed correctly.
Lab-to-bulk scaling
Shades are first matched in the lab on a small sample, the lab dip. Once the buyer approves the lab dip, its recipe is scaled up to the bulk batch. The percentages are carried across; the grams are recalculated for the bulk fabric weight and bath volume.

Worked example. The lab dip for the beige-brown shade above is made on 5 g of fabric at 1:10, so the beaker holds 50 mL. Using 5 g/L stock solutions: yellow 0.85% = 0.0425 g = 8.5 mL; red 0.42% = 0.021 g = 4.2 mL; blue 0.12% = 0.006 g = 1.2 mL. Salt at 50 g/L = 2.5 g. The 13.9 mL of dye stock counts as part of the 50 mL, so about 36 mL of water and chemical solution make up the rest. In bulk, 500 kg at 1:8 gives a 4,000 L bath: yellow 4,250 g, red 2,100 g, blue 600 g, salt 200 kg.
The percentages are identical, yet bulk often does not match the lab dip exactly. Look at what changed. The lab bath was at 1:10 and the bulk bath is at 1:8, so the bulk dye bath is stronger (1.39% owf is 1.39 g/L at 1:10 but about 1.74 g/L at 1:8), and exhaustion may be a little higher. The salt is the same 50 g/L, but that is 50% owf in the lab and 40% owf in bulk. The bulk machine heats, circulates and doses differently from a lab dyeing machine. The water may differ, the dye in the store may be from a different lot with slightly different strength, and the bulk fabric may not be exactly the lab fabric.
For these reasons many dye houses apply a bulk correction: a small adjustment to one or more dye percentages, learned from their own history of how each machine and dye range behaves compared with the lab. There is no universal figure for it. The best practice is to dye the lab dip at a liquor ratio as close to bulk as the lab equipment allows, use the bulk fabric and bulk water, and keep records of lab-to-bulk results so the correction is based on data, not guesswork.
Additions and top-ups
When a bulk batch is checked and found slightly off shade, the dyer makes an addition: a small extra amount of one or more dyes. The key point is that an addition is usually stated as a percentage of the dye already used, or as a small % owf, and the two are not the same thing.
Worked example. The 300 kg beige-brown batch is checked and is slightly too green; the shade needs 10% more red. The red in the recipe was 0.42% owf = 1,260 g. Ten percent more of that dye is 1,260 × 0.10 = 126 g, which is an addition of 0.042% owf. If someone misread it as “add 10% red” in owf terms, they would weigh 300 × 10 × 10 = 30,000 g, or 30 kg. The batch would be ruined.
Write additions in grams and in % owf on the batch card, so that the next recipe for the same shade can include them. With reactive dyes, an addition after the alkali has been added has less room to level, because fresh dye fixes quickly where it lands. Additions are therefore best made with care, slowly and fully dissolved, and some dye houses add a little extra salt or alkali along with deep additions according to their own procedure.
- On reactive dyeing the salt goes in three portions and the soda in steps.
- Every addition is mixed in the side tank and goes in fully dissolved.
Both habits affect the calculation as well as the dyeing. When salt goes in three portions, the three weights must add up to the full g/L quantity for the bath; when soda goes in steps, the same is true for the soda. A recipe sheet that shows each portion in kilograms, with the total, is easier to check than one that shows only the g/L.
Water, moisture regain and dead volume
Two kinds of hidden water can make a correct calculation give the wrong result.
Moisture in the fabric you weigh
Cotton absorbs moisture from the air. Its standard moisture regain under conditioned air is commonly given as about 8.5%, meaning conditioned cotton carries about 8.5 g of water per 100 g of dry fibre. The actual moisture in a roll depends on the humidity of the store and how long it has been there. If the lab weighs a conditioned sample and the bulk fabric is weighed in a very humid or very dry store, the “same” kilogram holds a little more or less fibre. Keep the basis consistent: weigh lab and bulk fabric in a similar condition, and never weigh fabric that is still damp from a previous wet process as if it were dry.
Water that is already in the machine
Every machine has some dead volume: water in the pump, pipes and heat exchanger that is part of the bath but not visible in the main vessel. Fabric that is loaded wet, for example after a pretreatment in another machine, also brings water with it. If the operator fills the full calculated volume on top of that, the real bath is bigger than the recipe assumed.
Worked example. The recipe assumes 2,400 L and calls for 120 kg of salt (50 g/L). The fabric is loaded wet and carries about 150 L of water, and the operator fills the full 2,400 L on top. The real bath is about 2,550 L, so the salt concentration is 120,000 ÷ 2,550 ≈ 47 g/L, not 50. Soda and auxiliaries are diluted by the same amount. Know whether your machine’s liquor ratio already counts dead volume and fabric water, and fill to the level that gives the intended total.
Rounding and scale accuracy
A calculation can give an answer to three decimal places, but a scale can only weigh to its own resolution. The error from rounding is small for large quantities and large for small ones. A useful guide is to choose a scale whose reading step is about one hundredth of the smallest quantity you weigh on it or finer; the rounding error then stays around half a percent or less.
Worked example. The blue in a pale shade on a small batch comes to 3.6 g. On a dye-store scale that reads to 1 g, it will be weighed as 3 g or 4 g, an error of up to about 14% on that dye, enough to change the cast of the shade. On a balance that reads to 0.01 g the rounding error is about 0.1%. At the other end, the salt for a 2,400 L bath at 50 g/L is 120 kg; if salt comes in 50 kg bags, that is two and a fifth bags, and rounding down to two bags (100 kg) would give only about 42 g/L.
The same thinking applies in the lab. Pipettes and burettes have their own accuracy, and very small volumes are hard to measure well. If a dye needs less than about 1 mL of stock, it is usually better to use a weaker stock solution so that the volume becomes larger and easier to measure accurately. Stock solutions should also be made fresh as the dye maker advises, because some dyes lose strength in solution over time.
Common mistakes
Almost every calculation error on the floor falls into one of a few patterns. Knowing them makes them easy to catch at the checking stage.
Common mistake: mixing up % owf and g/L. Calculating a dye on the bath volume or salt on the fabric weight gives numbers that look plausible but are wrong by the liquor ratio. For example, 50 g/L of salt on a 300 kg, 1:8 batch is 120 kg; read as 50% owf, it would be 150 kg; read as 50 g per kg of fabric, only 15 kg.
Common mistake: weighing salt by % instead of g/L. When salt is written as a percentage on a recipe sheet copied from another machine, it is tied to that machine’s liquor ratio. Moved to a machine with a longer ratio, the shade comes out lighter because the salt concentration in the bath is too low.
Common mistake: forgetting the water already in the fabric or the machine dead volume. The bath becomes larger than calculated, every g/L chemical is diluted, and the dye exhausts less. This often shows up as an unexplained light batch.
Common mistake: confusing milligrams and grams, or grams and kilograms. 0.006 g is 6 mg, not 6 g. A misplaced decimal point in a lab recipe or a “kg” written where “g” was meant on a bulk sheet multiplies the error by a thousand. Always write the unit next to the number, and have a second person check any line that looks unusually large or small.
Common mistake: using the planned fabric weight instead of the actual loaded weight. If 300 kg was planned but 285 kg was loaded, every dye is about 5% too strong for the fabric that is really in the machine.
A simple self-check catches many of these errors. Before the dyes are weighed, look at the total dye in kilograms and ask whether it makes sense for the shade: a pale shade on 300 kg should be a few hundred grams of dye at most, not several kilograms. Do the same for salt and soda. A number that is ten times bigger or smaller than usual is almost always a unit error.
Further reading
To see where these calculations sit in a full process, read the 100% cotton knit dyeing process. For why salt, alkali and liquor ratio affect dye uptake the way they do, see how reactive dyes work and how dyeing works: transport, adsorption, diffusion and fixation. For quick sums on the floor, use the dye recipe calculator and the textile unit converter.
Questions
How do I calculate dye quantity from shade %?
Multiply the fabric weight in kilograms by the shade percentage and by 10. For example, 300 kg at 1.2% needs 300 × 1.2 × 10 = 3,600 g of dye.
Why is salt given in g/L and dye in %?
Dye goes into the fibre, so its amount follows the fabric weight. Salt and soda act in the water, so their effect depends on their concentration in the bath, which is set in grams per litre.
How do I find the bath volume from the liquor ratio?
Multiply the fabric weight in kilograms by the litres in the ratio. At 1:8, a 300 kg batch needs 300 × 8 = 2,400 L of bath.
How do I convert % owf to g/L?
Multiply the % owf by 10 and divide by the liquor ratio. At 1:8, a dye at 2% owf gives 20 ÷ 8 = 2.5 g/L in the starting bath.
Why does bulk not always match the lab dip?
Bulk usually runs at a different liquor ratio and in a different machine, with different water, dye lots and fabric moisture. Many dye houses apply a small bulk correction based on their own lab-to-bulk records.
Textile engineer with 14+ years in dyeing and fabric development. He writes every guide on Dyeing Solution from real production work. Full profile