Concept

Do Not Repeat Yourself

The philosophy behind assemblies, sub-assemblies, modifiers, options, and components, and how they map to your industry.

“Do Not Repeat Yourself” is a principle borrowed from software: every piece of knowledge should live in exactly one place. Cost Caster applies the same idea to what you sell. You define each thing once, reuse it everywhere, and when something changes you update it in a single place while every item that depends on it follows along.

That is why Cost Caster breaks what you sell into a few building blocks instead of flat, copied-out recipes.

A restaurant example

Say we run a restaurant. Below is the recipe for a cheeseburger plate. It is built from a cheeseburger build and a side of french fries. Both of those are preps, because they are made from several ingredients and get assembled into different combinations, like a burger sold on its own or an extra side of fries.

The cheeseburger build is made from a burger patty, a slice of american cheese, and a toasted bun. The burger patty is worth a closer look. In a restaurant, the same patty shows up across many burgers: an avocado burger, a jalapeño cheeseburger, a bacon cheeseburger, a mushroom swiss, and so on. A kitchen rarely changes its patty recipe for each one, unless different cuts of meat are the whole point. So the patty is a prep too, made from ground beef and a house seasoning, and that house seasoning gets reused as well.

Recipe tree for a cheeseburger plate, showing the cheeseburger build and french fries as preps, and the burger patty as a prep made from ground beef and house seasoning
Cheeseburger plate

Now look at a different variation, the bacon cheeseburger plate. It reuses almost everything: the same french fries, the same burger patty, and the same toasted bun. The only real difference is the addition of bacon, which is itself a prep you can reuse across other items, like a club sandwich.

Recipe tree for a bacon cheeseburger plate, reusing the burger patty, toasted bun, and french fries, with bacon added as a reusable prep
Bacon cheeseburger plate

Define each prep once and every variation that uses it stays in sync. Change the house seasoning, and the patty, every burger, and every plate follow automatically. That is Do Not Repeat Yourself in a kitchen.

The building blocks

Components

A component is a raw item you buy, defined once with its price and unit. Every assembly that uses it points at the same definition, so a price change ripples out on its own. You never retype a price across twenty recipes.

Assemblies

An assembly is something you sell, expressed as a recipe of components, sub-assemblies, and modifiers. The assembly does not copy its parts, it references them, so each part stays the single source of truth.

Sub-assemblies

Sub-assemblies are where the principle earns its keep. Anything you make in house and use in more than one place, like a house seasoning, a sauce, or a par-baked dough, becomes a sub-assembly with its own recipe. Build it once, drop it into every assembly that uses it, and change it in one place to update them all.

Modifiers and options

Modifiers and options keep you from duplicating a whole item for every variation. Instead of four burgers for four sides, you build one burger with a Side modifier whose options are the individual choices. Add a new side once and every item that offers it gains the choice, with no rebuild.

What these are called in a kitchen

The building blocks map onto everyday kitchen language.

Cost CasterIn a kitchen
AssemblyMenu item
Sub-assemblyPrep
ComponentIngredient

Modifiers and conversions keep the same names. Options are the individual choices inside a modifier, like each side on a plate.

Why it matters

When every component, sub-assembly, and modifier lives in one place, what you sell stays consistent and quick to maintain. Update a single ingredient or tweak one prep, and every item that uses it reflects the change at once. That is the whole point of not repeating yourself.