Every field, badge, and number on the recipes list and the recipe page — types and statuses, the ingredient table and its costs, the yield block, the three tabs of Product specs, versions and sign-offs, and where each value comes from.
On this page
Was this helpful?
Real help from real food people
Chef Diego runs a real food plant. If this page didn't get you there, tell us — a person reads every message.
You pull up your marinara to settle a question from the floor: is the kitchen
weighing to the version your quality lead signed off, or an older one? The answer
is in the badges — the version the page is wearing, where its sign-offs stand, and
whether the recipe is one you still make. A
carries a lot of state, and this page is the key to all of it. Open
Recipes under
Production to read along. Kitchen+
The recipes list
The list holds the recipes of the company you're working in, one per row, and it
opens on the ones you still make. The controls above it:
Search by name or item number — narrows the list as you type, with no Enter
to press, matching the recipe name, its
, and the name or code
of any product it sells under.
Filter by type — All types, Final recipes, or Sub-recipes.
Filter by status — Active recipes or Inactive recipes. Active is
where the list starts; a retired recipe is only ever shown because you asked
for it.
Filter by department — narrows to the department that owns the recipe,
drawn from your own departments.
Sort — Sort by item number or Sort by name, with a direction toggle
for ascending or descending.
Clear filters — appears once any search, filter, or non-default sort is
active, and returns the list to its default.
New sits in the top corner and opens the creation card; it shows only if your
role can create recipes. An empty list reads No recipes yet and says what a
recipe is for. When a filter is what emptied it, it reads No recipe answers to
that instead, so you know to widen the search rather than to start typing a
recipe.
What each row shows
Reading a row left to right, then down:
The item number and name on the first line, followed by the recipe
type badge and the recipe status badge.
Duplicate name in amber, when another recipe in the company answers to the
same name once capitalization and stray spaces are folded away. It's the same
rule that refuses a new recipe the name, so the badge marks a collision that
predates it.
Shared pack in amber, on both recipes when one product answers to two of
them — a claim older than the rule that refuses a pack another recipe already
sells. Production and demand read the product under the recipe that claimed it
first, and both badges stay until somebody takes the product off one recipe.
A second line of detail: the department that makes it, the batch yield
per batch — or Batch yield not measured on a recipe nobody has cooked a
test batch for, and, on a counted recipe, that count read in cases too
(30000 units/batch = 3000 cases of 10) — the output product a final
recipe sells under, by code and
name, and where it sells under several, the lowest code with the rest counted
after it (30320-001 Signature Marinara +1 more), and the version the row
stands for with its standing. If your role can change recipes, that's the
recipe's newest version — v3 Draft while a draft is in flight, v2
Approved when the newest one is the signed one — because the draft is yours
to open. If you can only read recipes, it's the version your tap will land on:
the approved one, or the newest where nothing has been approved yet. The row
never advertises a draft you have no way to reach.
Recipe types
Every recipe is one of two types, shown as the first badge on its row and beside
its name on the page:
Final recipe — something you sell. A final recipe names at least one
output product: the pack a batch is sold as. One dish can sell under
several packs — the same marinara in a retail jar and a food-service tub —
added with Add a pack and taken off with Remove, both on the
Products tab of Product specs. A product belongs to one recipe, so a pack
another recipe already sells cannot be picked, and says which recipe holds it.
Sub-recipe — the other kind. A
has no output product, and it can be picked as an ingredient
inside other recipes.
Recipe status
The status badge is the recipe's own lifecycle — whether you still make the
thing. It says nothing about approvals; that's the version's job.
Active — in the everyday list, pickable as an ingredient, and ready for the
floor as soon as one of its versions is approved. Every recipe starts here.
Inactive — retired. It leaves the everyday list and every picker where new
work is composed; the status filter still finds it, its versions and history
stay whole, and Bring back makes it active again.
The recipe page
Opening a recipe lands on its ingredients. There is no view mode and no edit
mode: if you can change recipes, a value is a control where you read it; if you
can't, the same page reads as plain text apart from Desired batch size, which
anyone who can view the recipe may pull. The order down the page is the identity
line, the version's standing, the ingredient table, the yield block, the version's
notes, and a row of three cards — Steps, Product specs and Run
configuration — each opening a page of its own.
The identity line
The recipe's name reads as the page's title, with its department, type,
the version chip, the recipe status, and the item number beside it,
and the description as a quiet second line. Name, description, department and item
number belong to the recipe rather than to a version, and so does the type,
so all of them stay editable even while the page wears an approved one. The one
answer the type refuses is turning a recipe that packs sell into a sub-recipe: it
names the pack and says to take it off the recipe first, because a sub-recipe
never reaches the catalog on its own. Going the other way is free.
The version's standing
Which version the page wears, and where that version stands, is the chip in the
identity line — V3 · Draft. The standing itself is the line under the name:
one entry per approver role the version needs, each carrying the role's name, its
state — Pending, Approved or Rejected — and who decided and when.
Approve and Reject sit on the entries for roles you hold. Who signs
opens the roles to tick, and reads Name who signs while none are named. A
closing note says what the standing costs you: Editing it resets the sign-offs
already given on an open draft, This version is approved — duplicate it to
keep working on a signed one.
The ingredient table
The Ingredients heading counts the lines and carries the batch's cost beside
it. Reading the columns left to right:
Ingredient — the product or recipe, with its product code beneath. A
recipe line is marked as what the recipe is — Sub-recipe or Final
recipe — and its name is a link to its own page; one nobody has signed off
yet also wears No approved version. The row menu at
the end of the name carries Move up, Move down, and Remove.
Quantity and U/M — what the batch keeps, in the unit the line is
measured in: a weight (g, kg, oz, lb) or the plain count
un. Those five are the whole list; dz is never among them, because a
dozen is twelve. A refused edit keeps what you typed and says why under the
row, so no column is squeezed to carry the message.
Loss — what handling this line is expected to waste, in both faces at once
and named against the weigh-out it comes out of: 5% ≈ 4 lb of 80 lb. The
column is there only while the recipe carries its loss per ingredient.
Weigh out — the
the crew works to: the number that goes on the scale. The column
appears once any line carries a loss.
Share of batch — that line's weigh-out against the total ingredient weight.
A counted line reads a dash: a tray or a sleeve costs money without adding
weight.
Cost — what the line costs this batch, over its cost per pound or per unit
and its share of the total. A line whose product carries no cost reads
Unknown rather than a zero that would flatter the batch.
The ingredient table on a draft: each line's quantity and unit, what it costs the batch, and its share of the batch's weight and cost.
Alongside the heading, a running total cost and the cost per pound or unit
say what a batch costs. That reading needs every line priced and a measured batch
yield to divide by; without either the heading reads Cost per lb unknown —
Cost per unit unknown on a counted recipe — because a batch cost that is
guessing is worse than none. Where lines are what's missing, the count of them
sits under the table.
A sub-recipe line is priced from its own recipe — what a batch of it costs,
divided by what that batch delivers — down as many levels as your sub-recipes go.
Bettr prices it from the sub-recipe's approved version; where there is no approved
version it uses the newest draft and says so, under the table and on the line, and
that gap has to close before this version can be signed off.
The yield block
Under the table, Yield carries the numbers a batch is judged by, with where
the recipe carries its loss named beside the heading — Loss per ingredient or
Loss per recipe.
Total ingredient weight — the weigh-outs added up. Derived, never typed,
and counted lines add nothing to it. A version with nothing weighed on it yet
reads a dash.
Batch yield — what a cooked test batch measured, with its
beside it. It reads Not measured
yet until someone has cooked one and typed what it made. A counted batch also
wears its case face — the same count read in cases — from the units per case of
the product it sells under, one face per pack, each named, where it sells under
several. That face rides along wherever the count shows: on the batch the lever
asked for, on Desired batch size itself, and on the recipe's row in the
list.
Yield gain or loss — the batch yield against the total ingredient weight,
as a percentage. A gain is as real as a loss: rice comes out heavier than what
went into it. This is a weight recipe's number; a counted recipe shows Weight
per unit in its place — what the lines this card keeps add up to per unit.
Desired batch size — the lever, covered below.
In Loss per recipe mode a fifth tile joins them: Batch loss, in both
faces, over what the batch delivers once the pot has lost it.
A batch that yields far above or below the ingredients that made it gets called
out in plain sight rather than blocked, because a number that extreme is usually
worth a second look — and sometimes it's just rice. What that weight per unit
means against what a pack promises is a question per pack, and it's answered
pack by pack under Product specs.
Scale to a desired batch
Desired batch size takes what you want the batch to make, and the page answers
for that batch: every quantity, every weigh-out, the total ingredient weight, and
the cost. It works from the measured batch yield, so asking for 250 finished
pounds from a recipe that loses ten percent weighs out the ingredients that
deliver 250 — you never do that arithmetic on the floor. A recipe that carries a
batch loss is asked for more than you typed, so what the pot makes still delivers
the batch you asked for.
A scaled page says so above the table and offers Show the recipe's own
numbers to come back. While it's scaled the lines read as text, because those
numbers are this batch's, not the recipe's — and so does Batch yield, which
leads with what this batch makes and moves the measurement to the line beneath it,
Measured at 98.7 lb. That way the scaled ingredient total stands beside the
number those ingredients make, and 277.609 pounds in against 250 pounds out reads
as a recipe with a loss rather than a mistake. Bettr remembers the number per
recipe, and the lever stays live on an approved version and for anyone who can
only view recipes, because scaling is looking: it never moves what production
runs. The printed sheet scales by the same number.
What this version taught
Under the yield block, a free-text note records what worked and what went wrong.
It saves as you leave the field, with no button and no confirmation, and it is
writable on every version including approved ones — writing one never resets a
sign-off.
Below it, on a draft only, Detach into its own recipe takes a name and moves
that draft out as a new recipe, born V1 and selling under no product: it is a new
dish until someone names the pack it sells under.
Print
Print in the top corner prints the page you are reading. The sheet is the
ingredient table exactly as scaled, under a header naming the recipe, its version
and its standing, with the yield block beneath it so the batch yield sits beside
the ingredient total. It drops what paper can't use — the cost and share columns,
the version's standing, the notes — and keeps the weigh-out column even
where the screen had folded it away. Nothing on it is a control: the lever prints
as the number it was pulled to, without its box or the sentence explaining it, and
a sheet nobody scaled leaves Desired batch size off altogether. This sheet
says what to cook, never what happened. One recipe, one sheet, one format.
On a phone
The table stays a table at every width, and name, quantity and unit stay on one
line. What gives way is the secondary columns, in priority order: Share of
batch folds first, then Weigh out, then Cost and the two line badges.
Everything that folds reappears as a quiet line under the ingredient's name, so
nothing a desktop shows is hidden from a tablet on the floor.
Steps
Steps is the method in order, one numbered row per step, under a heading that
counts them and — once a batch yield exists — says what batch every step below is
sized for. Like the ingredient table, it's typed where it's read: there is no step
editor to open and no step to close.
Reading a step's row from its instruction down:
Instruction — what the step does, in the language the page is showing. A
step nobody has written yet reads Say what this step does.
Department — who performs it. It reads Same as recipe with the recipe's
own department named beside it until a step says otherwise, for the packing step
that happens in Logistics on a recipe Production owns. It's the department the
production run groups the step under and the recipe packet prints per.
Runs on — the machine or container the step uses. Machines are drawn from
the department that performs the step: change the department and this list
follows it, and Bettr refuses a machine from anywhere else — Choose a machine
from the department that performs this step. Containers travel, so any of them
can be named here. Containers are exempt, because a tote does travel: every
container the plant has registered is offered on every step, wherever it is
parked. A step that needs nothing reads Nothing yet.
Size — Range with a smallest and a largest, or Fixed with one
number, in pounds. Where the batch the recipe makes falls outside a step's
range, the row says so: The 40 lb batch does not fit. A step set to one
fixed size owes that size and says so until it has one — Say the size this
step runs at — because the sign-off is refused while it doesn't.
Temperature — a low and a high with °F or °C beside them.
Tolerance — the percentage the step may drift by. Anything over a hundred is
refused under the cell: A tolerance cannot pass one hundred percent.
Duration — the minutes one batch takes, whole minutes only.
Weighing — Weigh this step ticked where the recipe declares that the
floor has to put the batch on a scale.
Attachments — the named photos, videos and links hung on that step, each
with its file and size or its address underneath.
The row menu at the end of the instruction — Row actions — carries Move
up, Move down, and Remove. Add a step sits under the list.
Beside the heading, Reading in switches the page between the language your
steps are written in and every other language your company keeps, and a step with
nothing written in the language shown reads No Spanish yet. On a draft, a
Draft in Spanish button asks a machine translator for a first pass, which
lands in the empty cells marked Draft, not saved and is recorded only once a
person edits it. Keeping that list is covered in
Set the languages your floor reads.
Under the steps, How the recipe is made in general holds what applies to the
whole batch rather than one step, with the recipe's own attachments beneath it.
Print in the top corner prints the page: every step with its numbers and the
names of what's attached, in the language the switch is on, without the switch,
the buttons, the row menus or the way to take an attachment off. Weighing
prints as a word — Yes or No — rather than a box, because this sheet says
what to cook and never what happened; the blanks the floor fills in belong to the
run sheet.
Everything on this page except the language switch and Print is version
content, so an approved version reads as plain text throughout.
Product specs
Product specs is the recipe read from the label's side: what it is made of all
the way down, what your quality lead and an auditor ask for, and what each pack it
sells under promises the customer. It opens in three tabs — Tree, Food
safety and Products — under a card of Product facts that all three
share.
Product facts
Five facts sit above the tabs, because they hold for whichever pack the batch goes
out under: the shelf life in days, the guaranteed shelf life on delivery — the
days you promise a customer the pack still has when it lands — and the
storage, handling and heating instructions. Each is typed where it's
read: a fact saves when you leave the cell, and emptying one puts the question
back. They belong to the version, so an approved version reads them as plain text
and you duplicate it to change one. A quiet line under the card names the company
that owns the recipe and the day it was created.
Tree
Tree answers, in both directions at once, the question you ask before changing
anything.
What this recipe uses opens every level of it. Each line reads its ingredient
with its product code and the quantity this batch keeps. A sub-recipe line opens
its own lines underneath, under a grey caption naming the batch those quantities
belong to — What one 22 lb batch of Prep Base takes — because a nested quantity
is the sub-recipe's own, never rescaled to what the parent uses. A sub-recipe's
name opens its page, and one nobody has signed off yet wears No approved
version here too.
Recipes that use it names every recipe this one reaches, however many levels
away. A recipe that uses it directly reads its name alone; one that reaches it
through another sub-recipe reads Through Prep Base beneath, naming the
sub-recipe in between. Both directions follow the version in force — the approved
one where there is one, the newest draft where there isn't — so the two lists
mirror each other exactly: if this recipe's tree doesn't open a sub-recipe, that
sub-recipe's list doesn't name this recipe.
Food safety
Food safety is what QC needs to see, and the top half of it is derived rather
than typed.
Allergens — read off every ingredient product through every level of
sub-recipe, each one listed with the ingredient it came from. Nobody types an
allergen, so the profile always matches what's actually in the recipe. Where a
sub-recipe in the tree has no approved version, the card says so: the allergens
are following the draft in force, and they can move when someone signs it.
Ingredient statement — the line a label has to carry, compiled from the
same walk. Sub-recipes are expanded in place, what's left is ordered heaviest
first, and each purchased ingredient carries its own composition in parentheses
— Teriyaki Sauce (water, soybeans, wheat, salt). That composition is the
ingredient list on the product record, covered in the
Products reference. A product carrying
none is named under the statement, and until someone fills it in no spec sheet
built on this recipe can be approved.
Critical control points — what has to be controlled for the food to be
safe, and how. Each is a numbered row with a
name and a method, both typed in place. Add a control point appends a blank
row for you to type into, and the row menu carries Move up, Move down
and Remove.
Quality checks — what's checked while a batch runs. Each row carries what
is checked, How often in your own words — Every fifteen minutes while the
line runs, One tote per pallet — and Captures: Weight, Photo,
Temperature or Written note. This is the definition, not the record:
what the floor actually captures belongs to the run.
Documents and links — up to four documents, one per type: SOP document,
Quality forms, Safety procedures, and Final product photos, plus
external URLs each carrying an In production badge when it's set to show on
the floor. Attaching them is covered in
Attach recipe documents, photos and videos.
Allergens are read off the ingredients through every level of sub-recipe, each listed with where it came from — and the card says when a sub-recipe below is still a draft.
The control points and the quality checks are version content, so an approved
version reads both as plain text with nothing to add and no row menus. Duplicate
it to change one. The documents belong to the recipe rather than to a version, so
they never freeze.
Products
A dish and its listings are not the same thing: the same marinara can sell as a
retail jar and as a food-service tub. Products reads pack by pack, one panel
per product the recipe sells under, and they are peers — no pack is the main one.
Add a pack opens the product picker, and Remove on a panel takes that
pack off the recipe.
Each panel is headed by the pack's name, which opens its product record, and holds
what that record says:
Item number, Unit barcode and Case barcode — the pack's own code,
then the code a retail scanner reads off the pack and the one the warehouse
scans off the case.
Case — the units per case and the kind of case, with the case description
underneath.
Case weight, and Declared unit weight beneath it — the weight somebody
typed on the product record as what one unit promises. Until somebody types
one it reads a dash and says so.
Weight the recipe derives — what this recipe's lines add up to per unit.
Where the two weights disagree, the panel says so in plain sight: The recipe
adds up to 4.5 lb per unit, and this pack declares 5 lb. Nothing is blocked —
one of the two numbers is wrong, and only you know which.
Weight per unit across the case — the case weight divided by the units per
case. A useful cross-check, but it is what the case adds up to rather than
what the label promises, so the drift check never reads it.
Cases per pallet and the case Dimensions.
The two weights the Products tab sets side by side on every pack: what the pack's own record declares, and what the recipe's lines add up to.
Under the facts, three blocks close the panel: Spec sheet, with Open the
spec sheet and where its approval stands in words; Composition, the
product's own ingredient list; and Photos and artwork, the six kinds of file
the sheet prints — Product photo, Pallet photo, Nutrition panel,
Case label, Master case label and Pallet schematic — each naming what
has been uploaded on the product record, or None yet.
The spec sheet
Every pack that sells the dish gets its own spec sheet: the same recipe under
each, that pack's own facts on top. Nothing about the sheet is stored — it is
written from the recipe version and the product record every time it's opened, so
what you read is what the two of them say right now.
The sheet carries the pack's name and item number over the recipe and version it
was written from, then the compiled ingredient statement, the allergens as
a CONTAINS line, Pack-out and Pallet from the product record,
Storage and handling from the recipe's product facts, and the supplied
artwork. Anything uploaded as an image — the product photo, the nutrition
panel, the case and master-case labels, the pallet photos and the schematic —
prints on the sheet itself with its filename underneath; anything else prints as
its name. A footer stamps who approved it, on what day, and from which version —
or Not approved yet.
Approving is one deliberate act by someone who can change recipes, and it is
refused while any ingredient in the tree has no composition on its record: the
sheet names the products that are missing one and offers no button at all until
they're filled in. When the recipe is approved at a higher version, or when
anything on the product record changes, the sheet says it needs renewing and the
button becomes Renew this approval — the two are never left to drift apart
quietly. The whole flow is covered in
Approve and print a product spec sheet.
Run configuration
Run configuration belongs to the recipe rather than to any one version of it
— the page says the same on every version under the recipe's name — and every
value on it is typed in place, with nothing to open and no save button.
How this recipe runs is what the recipe is:
Runs on a continuous line — whether this recipe comes off a line rather
than out of a batch.
Counted in — the levels the floor counts this recipe's output by, several
at once, ticked from the list the company keeps in
Count levels. Each shows
the container it's counted by and how much that container holds. A level the
company has since taken off its list still shows here, marked No longer on
the count-level list, until somebody unticks it.
What the floor logs holds the rules a run enforces:
Cooking log and Cooling log — whether the floor records CCP
temperatures, and the minimum cooking temperature when the cooking log is on.
Authority — the food-safety authority the logs answer to, FDA or
USDA.
Cooking export and Cooling export — the log template a run's
temperatures export onto.
Input format — Weigh every batch or Weigh once per run, with the
weighing tolerance for per-batch weighing.
Output — whether a batch must record its output before the next one can
start.
Packaging groups are the count groups the floor can record output in, each
with its units per group.
Versions and sign-offs
A recipe is worked in numbered
. Every
recipe is born at V1.
Version status
The badge on the chip, and beside every version in its list, is where that
version stands:
Draft — still open. Editable, and waiting on the roles that have to sign
it.
Approved — every required role signed this version, and it's the one the
rest of the company works from.
Superseded — approved once, then a higher-numbered version was approved and
took the lead.
Rejected — a required role turned it down. It stays a draft you can edit and
ask about again.
Approved is derived, never set: a version reads Approved while every role named
on it has a live approval and none has rejected. Change a draft's numbers or its
steps and the earlier decisions stop counting — every role goes back to
Pending, with the old decisions still on the record.
The version chip
The chip beside the recipe's name opens the recipe's whole ladder, oldest at the
top, each version with its badge; picking one switches the page to it. Duplicate
sits at the foot of that list and cuts the next free number as a draft copy of the
version you were on — ingredients, steps, batch yield, and everything attached to
the steps included — and says plainly that a duplicate never asks for approval.
Opening a recipe without naming a version opens its approved version, whoever you
are — the one the rest of the company works from — with any draft one tap inside
the chip. A recipe nobody has approved opens on its newest draft. For someone who
can only view recipes the chip is a plain label instead — no list, no Duplicate,
and no draft.
The signature that would complete an approval is the one Bettr checks: it's
refused while the version has no measured batch yield, while a step set to a
fixed size hasn't said which size, while a final recipe names no product to sell
it under, and while the recipe builds on a sub-recipe nobody has approved. A
version that came across from the old
fork-and-pin model says its standing was carried at the crossing rather than
signed here, and lists no sign-offs. The full flow is covered in
Version and approve a recipe.
Who can view and change recipes
Access to recipes is set per role, under Production in the permission
catalog:
View recipes — open the list and read any recipe, and pull Desired batch
size to size it for the batch you're asking about. Without it, the page
redirects to an unauthorized notice.
Create recipes — shows New and lets you start a recipe.
Edit recipes — turns the page's other values into controls, opens the
version list, and lets you duplicate and detach versions, write version notes,
declare control points and quality checks, approve a pack's spec sheet, retire
and bring back, and manage documents. Without it, the recipe reads as plain
text on its approved version.
Signing a version off takes more than a permission. A signer must hold one of the
approver roles named on the recipe, so who owns quality is decided recipe by
recipe.
There is no delete
A recipe can't be deleted — every plan, run, and batch record points back to
the recipe it was made from, and erasing it would break that trail. Retire it
instead: its status becomes Inactive, it leaves the everyday list and every
picker, and its history stays whole.