Back to the blog

Formulas9 Sep 20264 min readBy KamraiDee

The thing you sell is not one recipe

Pizza base and tomato sauce are recipes you reuse. Cost them once. The Hawaiian pulls them in.

Pizza dough, sauce, ham, pineapple, and cheese in separate bowls

If you cost a finished product as one long grocery list, you will get a number. That number goes stale the moment one input moves, and you will hate updating twelve menu cards by hand.

The thing on the menu is not one recipe. It is a product built from smaller recipes you already make.

Dough, syrup, greenery, oil blend, gravy, tray base — those are recipes. The pizza, the iced latte, the bridal bouquet, the lavender candle, the pet biscuit, the party tray, the stall plate — those are parents. Cost the children once. The parent pulls them in.

That is a nested formula. Same idea in a kitchen, a café, a flower bench, a treat room, a pour studio, a catering prep day, and a truck.

What “nested” means in plain words

Think of parts, not a novel.

  • Stock is what you buy: a sack of flour, a crate of milk, a bunch of eucalyptus, a tin of soy wax, a box of chicken mince, a bottle of fish sauce.
  • A child formula is something you mix ahead and reuse: pizza base, brown-sugar syrup, greenery bunch, master oil blend, treat dough, gravy, slaw.
  • A parent formula is the thing a customer pays for: Hawaiian pizza, iced latte, bridal bouquet, lavender candle, chicken biscuit, 20-head tray, truck plate.

You do not retype flour inside every pizza. You type “pizza base, 1.” You do not retype coffee beans inside every latte. You type “espresso shot” or “cold-brew concentrate.” You do not list every stem inside every bouquet. You type “greenery bunch + focal flowers + wrap.”

Quantity is how many batches or portions of the child go into the parent. When the child moves, the parent moves. Labels and the pull list follow the nest.

Start with the two things you make ahead. Then every menu card stays short.

How this changes the product you sell

The product is not “a list of groceries.” It is a sellable with parts underneath.

Without nests
Every item is its own private shopping list. Twelve drinks each contain “beans + water + time.” Six bouquets each contain the same ruscus. Four candle scents each retype the same wax and wick. A price change on soy wax is four edits. You will miss one. That one quietly loses money.

With nests
You own a few shared parts. The menu item only adds what is extra.

  • Coffee shop: child = syrup, cold-brew concentrate, or espresso shot. Parent = iced latte, cloudy lime, mocha. New drink = old concentrate + a different milk or topping — not a new novel.
  • Florist: child = greenery bunch or wired boutonniere base. Parent = bridal bouquet, table vase, sympathy spray. Season wrecks eucalyptus; only products that use that bunch should move.
  • Pet treats: child = base dough or mince mix. Parent = chicken biscuit, peanut bone, training treat bag. One kitchen mix, three SKUs on the sticker.
  • Candles / soap: child = master wax pour or master oil blend + lye. Parent = lavender jar, lemongrass bar, unscented. Cure loss and wick sit on the child. Fragrance load sits on the parent.
  • Caterer: child = gravy, slaw, tray dish, chili. Parent = 20-head set menu, drop-off box, grazing board. The customer buys the event. You cost the pans you already made.
  • Food truck: child = pickle, sauce, slaw, braised protein. Parent = the plate you hand out the window. Saturday is not a new recipe. It is the same children × how many you actually sell.
  • Kitchen / snack shop / sweets: child = dough, ganache, tomato sauce. Parent = the slice, the pizza, the boxed set.

The product gets cleaner in three ways:

  1. The card stays short. Staff can make it. You can cost it.
  2. Prep becomes real stock. A litre of syrup in the fridge is not “sweet stuff.” It is a child with a cost.
  3. You can change the menu without rewriting the bench. Same concentrate, four drinks. Same oil blend, three scents. Same gravy, two trays.

How this changes the price

Price is not “what the stall next door charges.” Price is true cost ÷ (1 − margin).

KamraiDee uses margin, not markup. Margin is the slice you keep: profit ÷ sell. Markup is cost plus a percent — and that percent is not what you keep. Two minutes: Margin, not markup. Then type one cost into Price from margin.

Nested recipes change the cost that goes into that formula. If the child is wrong, the parent price is theatre.

Same math, different benches

Round baht so you can see the shape. Your shop will differ. That is why the tools exist.

Coffee shop — iced latte
Child: 1 litre cold-brew concentrate, after beans + water + time + yield, say ฿12 per drink poured.
Parent: concentrate + milk + ice + cup = ฿28 ingredients. Minutes at the bar + a slice of rent → true cost ฿45.
At 60% margin: sell = 45 ÷ 0.40 = ฿113. You keep ฿68.

Florist — bridal bouquet
Child: greenery bunch ฿90.
Parent: bunch + roses + wrap + ribbon + minutes = true cost ฿420.
At 60% margin: ฿1,050. If eucalyptus jumps, only products that pull that bunch move — not the single-stem wrap that never used it.

Pet treats — bag of biscuits
Child: base dough, costed per kilo after mince, flour, and cooking loss.
Parent: 200 g bag + pouch + label. True cost ฿38.
At 60% margin: ฿95. Training treats that use the same dough inherit the new mince price automatically.

Candles — lavender jar
Child: master soy pour (wax + wick + jar share), say ฿55 after trim waste.
Parent: child + fragrance + lid sticker. True cost ฿72.
At 60% margin: ฿180. Three scents, one pour recipe. Wax goes up once.

Caterer — tray for 20
Child: gravy + tray dish + slaw.
Parent: those children × heads + foil + drop-off time. True cost ฿1,800 for the tray.
Per head = ฿90. At 60% margin the tray is ฿4,500, or ฿225 a head if you sell it that way. Do not price per head from a guess. Price the pans, then divide.

Food truck — one plate
Child: braise + pickle + sauce.
Parent: those portions + rice + box. True cost ฿42.
At 60% margin: ฿105. The stall fee is not inside the plate. It sits on the day — use the Stall planner so the table rent does not eat the nest you just costed.

Pizza, if you run one
Child: base ฿22, sauce ฿8.
Parent: Hawaiian + box → ingredients ฿83, with labor and overhead ฿110.
At 60% margin: ฿275. Flour moves on the base only. Every pizza that uses that base follows.

If you had “added 60%” as markup on that ฿110 pizza: ฿176 on the board, ฿66 in the pocket. That is 37% of the ticket, not 60%. Same word at the market, different week. Check any of the numbers above in Margin and profit.

Why the nest changes the number on the board

Beans go up. Wax goes up. Mince goes up. Roses go up. Fish sauce goes up.

Flat list: you hunt every drink, every jar, every bag, every tray. You miss two cards. Those two sell at last month’s world.

Nested: you change the stock item once. The child formula moves. Every parent that uses that child moves. You look at the new suggested sell and decide: raise the menu, shrink a garnish, or accept a thinner week.

Use Stock unit cost when the pack price or the van charge changes. Shipping belongs on the pack, not in “misc” — Shipping is food cost. Use Units when the sack is kilograms and the formula is grams, or when the florist buys a bunch and the card is stems. Use Scale a formula when Saturday is 40 plates, not 12.

How this changes profitability

Profit is not “sold a lot.” Profit is what is left after the nest is paid.

You stop double-counting and under-counting.
Drinks that each contain “beans + water” often forget the syrup reduction, or count milk twice. Bouquets that each list ruscus forget the bunched waste. The nest gives each mix one home. The parent only adds what is extra.

Prep has a cost, so leftover prep has a cost.
Two litres of syrup, twelve pizza bases, a bucket of slaw, a pot of braise — that is money in the fridge. If it dies, that is food cost, not “just prep.” The child formula makes the leftover visible.

Price changes hit the right products.
Wax up 20% hits the candles that use the master pour, not the room spray that never used it. Greenery up hits the bridal work, not the single stem. Mince up hits every treat that pulls the base dough.

You can see which child is eating the ticket.
If the truck plate costs ฿42 and ฿24 of that is the braise, the braise is the lever — not the pickle. Fix the child or the stock. Do not randomly add ฿15 to every plate and hope.

Batch days work the same way. Ingredients scale with every batch. Labor does not always. Sunday gravy for the week is cheaper per spoon than gravy made per tray. Many batches is for that.

A truck or weekend pop-up adds table fee, fuel, and unsold. That is a day cost, not a recipe line. Stall planner first, honest nest second.

Delivery is the same split. Delivery fee prices kilometres, fuel, your time, and a little wear. Do not hide the van inside the roses or the tray foil.

Finishing time is not mix time. A decorated biscuit or a celebration cake can use a cheap child and still be expensive because of the hours on top. That is what Decorated piece and Celebration cake are for. A florist wired bouquet and a caterer’s on-site carve have the same shape: cheap child, dear minutes.

How to price a nested product

Do this once for the parts you make ahead. Then price the thing you sell. Always in this order.

1. Land the stock

Every sack, tin, stem, wax block, mince box, and roll of ribbon gets a pack price and shipping. The van belongs on that pack.
Tool: Stock unit cost · Post: Shipping is food cost

2. Cost the child formulas

Syrup. Concentrate. Greenery bunch. Master pour. Treat dough. Gravy. Slaw. Sauce. Include yield — reduced syrup is not the litres you started with; cured soap is not the raw pour; trim on a bouquet is not the wholesale stem count. Minutes that belong to the mix stay on the mix.
Tool: Cost calculator

3. Build the parent

The menu item is children + extra stock + pack.
In KamraiDee: formula → Uses other formulas → quantity in batches or portions.
Without an account: still the Cost calculator. Put the child’s cost per portion as one line (“cold-brew, 1 pour, ฿12”).

4. Add labor and overhead that belong to the sellable

Bar time is not brew time. Wiring roses is not chopping greenery. Pouring fragrance is not melting wax. Boxing a tray is not simmering gravy. Put finishing minutes on the parent.

5. Pick a margin, then read the sell price

Do not pick a number that looks like the next stall. Pick the slice you need to keep.
Tools: Price from margin · Margin and profit · Post: Margin, not markup

KamraiDee default is 60% margin. Settings stores it as margin, cap 90%, one decimal (54.5). Cost ฿45 and keep 60% → board price ฿113, not ฿72.

6. Scale the day, not the guess

40 lattes is not “the latte × 40 in your head.” 15 bouquets is not hope. 80 truck plates is not the first plate × 80 with no waste. Scale the formula. The nest scales with it.
Tool: Scale a formula

7. Put the sellable on the menu

In the app the parent becomes the thing with a price, a photo, an order line. The nest sits underneath. Change beans on Monday; Tuesday’s drink still knows the new cost.

Public tools are free, THB, no login. Same math as the profit book. They do not save your formulas. When you want the nest to live — stock, yield, labels, pull list, orders — that is the app. Sign up.

What to nest, and what to leave flat

Nest it when you make it ahead and reuse it.

Shop Good child Parent that pulls it
Coffee shop Syrup, cold-brew, espresso shot Iced latte, mocha, cloudy lime
Florist Greenery bunch, boutonniere base Bridal bouquet, table vase, spray
Pet treats Base dough, mince mix Biscuit bag, bone, training treats
Candles / soap Master pour, oil blend Each scent and size
Caterer Gravy, slaw, tray dish, chili Set menu, drop-off box, board
Food truck Braise, pickle, sauce, slaw The plate at the window
Kitchen / snack shop Dough, sauce, ganache Pizza, slice, boxed set

Leave it flat when it is a one-off garnish you will never mix twice. Extra basil on one pizza in July is a stock line on that parent, not a child.

If a child is only used once, it is not a child. Nesting is for reuse.

Two levels is enough for almost every small shop: child → parent. You can go deeper (starter → dough → pizza, or brew → concentrate → drink) if you already work that way. Do not build a family tree for pride. Build it for the two mixes you already batch.

The mistake that kills the margin

Typing the same wax into four candles feels faster on day one. On day thirty, when the block price changes and you update three of the four, the forgotten jar is selling last month’s world.

The second mistake is putting mix minutes on both the child and the parent — or on neither. Decide. Syrup minutes on the syrup. Bar minutes on the latte. Chop minutes on the bunch. Wiring minutes on the bouquet.

The third mistake is markup. Cost × 1.5 is not 50% profit. The tools will not let you pretend.

Do this this week

  1. Write down the two things you already make ahead — in whatever shop this is.
  2. Cost each one in the Cost calculator. Pack + shipping + what you used + minutes + yield.
  3. Cost one menu item that uses them. Child costs as lines. Add only the extra stock.
  4. Put that true cost into Price from margin. Read the sell price.
  5. Compare it to what you charge now. If you are under, the nest just found the leak.
  6. When you want that nest to update itself next time beans, wax, mince, or roses move: sign up. In the app the line is Uses other formulas.

Know the true cost. Keep the profit.

BETA 1.0

Free to join. Same price for every shop type.

See pricing

Beta 1.0. Free to join.

Sign up free