Getting oil and colour to disperse in bath water
Why a bath bomb marks the tub, what a solubiliser actually does, the starting amount Hi Ellie works out for your recipe, and how to tell at the bath whether it was too much or too little.

Oil and water don't mix. A bath bomb carrying carrier oil, fragrance oil, or a colorant that stays as solid particles releases all of it onto the surface of the tub, where it floats and then dries onto the enamel. A solubiliser is what carries it into the water instead.
Polysorbate 80 is the usual one. This article is about how much.
Which products this is about
Only the ones whose finished product is dispersed through a tub of standing water. In Hi Ellie that is bath bombs, and only bath bombs:
| Product | Dispersed in bath water? |
|---|---|
| Bath bomb | Yes — it's dropped into a full tub and has to spread through it |
| Soap bar (CP / HP / M&P) | No — a bar is lathered in the hand |
| Liquid soap | No — dispensed and lathered |
| Scrub | No — worked on the skin and rinsed off |
| Lotion | No — a leave-on emulsion; it never meets bath water |
Two separate reasons a bomb needs one
Hi Ellie treats them separately, because a maker can hit either one alone:
- A flagged colorant. Some colorants stay as solid particles in bath water rather than dissolving. Where the app has a record for a colorant, the recipe says so in the colorant's own words: "…is recorded as needing a solubiliser — polysorbate 80 is the usual one — to disperse in bath water; without one it floats on the surface and marks the tub."
- The oils. Carrier oil and fragrance oil both, regardless of colour: "The oils in this bomb will not disperse in bath water on their own — without a solubiliser (polysorbate 80 is the usual one) they float on the surface and mark the tub."
An uncoloured bomb with a binder oil gets the second sentence and nothing else. It is never told its colorant is the problem when it has no colorant.
Glitter is the exception that gets its own line. Glitter, flake, foil and leaf never dissolve in water and a solubiliser will not change that — nothing will; they are cut solids. What it does is keep them moving so they rinse away instead of clinging to the tub. The recipe says exactly that, rather than promising a dispersal it can't deliver.
Three states, and "not on record" is one of them
A colorant's row carries three possible answers, and the app renders all three differently:
- Needs one — the sentence above.
- Recorded as not needing a solubiliser in bath water.
- Not on record — "the app has not been told whether this one needs a solubiliser."
The third is the common one for older rows and much of the catalog, and it is deliberately not shown as "doesn't need one". No-record is a gap, not a clearance. If you know the answer for a colorant you use, set it on the pantry row — the field's own hint explains what the record means.
The amount
Where a trigger fires and the app knows what one bomb weighs, the recipe states a starting amount for you. It comes from three rates the app holds, combined by its own arithmetic:
| Term | The app's starting rate | Measured against |
|---|---|---|
| Carrier oil | 1 part solubiliser per part of oil (1:1) | your carrier oils |
| Fragrance oil | 2 parts solubiliser per part of oil (2:1) | your fragrance oil |
| Pigment floor | 1% | the batch weight |
The two oil terms are added together — carrier oil and fragrance oil are separate loads and neither disperses the other. That sum is then taken against the pigment floor, and the larger of the two is the amount you're shown.
What kind of figures these are
All three are craft convention — a forum consensus, a vendor page, a mica guide. Not one of them is a specification, and the app says so wherever it prints one. Two of the three rest on a single source: the fragrance ratio comes from one vendor, and the pigment floor from one mica guide whose stated band is 0.5–1% (the app starts at the top of it). The carrier-oil ratio is the only corroborated one. Your workspace Settings shows each rate with that qualifier attached, so you can see which figure you're leaning on.
The app states no regulatory percentage for polysorbate 80, anywhere. Its own wording for what the number is: "a craft-convention starting point… not a regulatory limit." If you have half-read a cosmetic-ingredient percentage somewhere, that is not what this figure is, and Hi Ellie will not repeat one at you.
The check that makes a starting point usable
Because the amount is the app's own working-out and not a sourced dose, the recipe hands you a two-directional check rather than a promise:
If you get a ring on the tub, add a little more next time; if the mix turns pasty or the bomb fizzes weakly, use less polysorbate 80.
Both directions are real, and the app is candid about why. The pigment floor and the oil ratios are two ways of sizing the same solubiliser in one mixture, so the app takes the larger of the two rather than adding them together — and if the two loads genuinely needed separate solubiliser, taking the larger gives you less than you need and you get the ring on the tub. In the other direction, summing across carrier oil and fragrance oil tends to run high against the band its own corroborating source states. So a one-directional "add more" would have been wrong for the makers already over. Run the bomb, look at the tub, and adjust your own rate.
Setting your own rate
You do not have to live with the house figures. Two places override them, and the recipe tells you which one it used — "from your studio's own rate", "from the rate saved on this ingredient", or the plain craft-convention wording when it used neither:
- Workspace Settings — set your studio's own carrier, fragrance and pigment rates. Each control names its own units beside it (parts polysorbate 80 per part of carrier oil, per part of fragrance oil, % of the batch weight), because the same number means very different things under different bases — a
2is twice the oil weight under one and two percent of the batch under another. - The ingredient itself — a solubiliser row on your Bath Ingredients shelf can carry its own rate, which wins for recipes that bind it.
When the app can't work out an amount
If the recipe has no weight for one bomb, you get a gap sentence instead of a number: "The app doesn't have a weight for one bomb, so it can't work out how much solubiliser to use — this recipe's mold and packed density are what set that weight."
That's the honest answer, and it names the two controls that fix it: the recipe's Mold and its Packed density. The consequence sentences still render beside it, so you still know why it matters.