AI for Butchers: Christmas Pre-Orders, Cut Lists and Pick-Up Slots

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Butchers: Christmas Pre-Orders, Cut Lists and Pick-Up Slots.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Butchers: Christmas Pre-Orders, Cut Lists and Pick-Up Slots.

Build the pre-order form first, with weight bands and a price per kilo, and cap each pick-up slot at the lowest of three numbers: counter hand-over, butchery prep and cold-room space. Then let AI draft the form, tally the export into a cut list and write confirmations, while you check totals and allergens.

Orders you cannot prepare or hand over are the real Christmas failure, not weak wording. AI is good at drafting and reshaping tables, but it miscounts, drops notes and knows nothing about your cold room, so the numbers and the allergen checks stay with people.

Follow me on Instagram@sagnikteaches

Quote by weight band: price per kilo or a fixed band price

Birds and joints come in weights you cannot promise in advance, so the form has to say how the price works. There are two honest ways, and which you pick changes who carries the risk. The figures below are illustrative: a turkey at $14.50 a kilo, sold in three bands.

Connect on LinkedInSagnik Bhattacharya
BandWeight rangeEstimate shown (mid-band)Range at $14.50/kg
Small4 to 5 kg$65.25$58.00 to $72.50
Medium5 to 6.5 kg$83.38$72.50 to $94.25
Large6.5 to 8 kg$105.13$94.25 to $116.00

Method one: price per kilo with an estimate. The form shows the estimate, the final price is set by the weight on the scale at collection, and a deposit secures the order. It is the fairest to the customer. The cost to you is the awkward moment when a bird comes in at the top of its band and the bill is $11 above what they remembered, so the form must say "estimate" in plain words beside every price.

Subscribe on YouTube@sagnikteaches

Method two: a fixed price per band. Say the medium band is a flat $83. A bird at 5.0 kg then costs the customer $16.60 a kilo, and you gain $10.50 on it against the $14.50 rate. A bird at 6.5 kg works out at $12.77 a kilo, and you lose $11.25. Over many birds it can average out, but only if your supplier's weights spread evenly across the band. The wider the band, the larger the swing, so narrow bands (one kilo wide) are safer than the one-and-a-half-kilo band above.

My own preference for a small shop is method one for joints, which are cut to a weight you control, and a narrow fixed band for birds, which arrive as they are. Whatever you choose, write it as a sentence the form shows beside the price: "Estimated price. Your final price is set by the weight of your bird when we weigh it, at $14.50 a kilo." If you change the price per kilo when supplier invoices change, reading supplier invoices and updating shelf prices with AI shows a routine for it.

The order form: fields, wording and one prompt to draft it

A pre-order form is mostly decisions you have already made, written clearly. Give the AI those decisions as a facts block and have it draft the wording, so you are editing rather than staring at a blank page. Keep your product list and prices in the block exactly as they appear on your shelf tickets. The block below uses the illustrative shop from this tutorial.

You are writing the Christmas pre-order form for a small independent butcher. Plain, friendly, brief. Spelling: [your usual].

FACTS (use only these)
- Collection days: 21 to 24 December. Nine half-hour slots a day, the first at 09:00 and the last at 13:00, 4 places each.
- Order cut-off: 14 December, or earlier if slots are full.
- Deposit: $20 per order, taken at ordering and deducted from the final price.
- Fresh turkeys sold by weight band, $14.50 per kg, estimated price shown, final price set by the weight at collection. Bands: small 4-5 kg, medium 5-6.5 kg, large 6.5-8 kg.
- Other items: [paste product list with prices, and mark each "weighed" or "fixed price"]
- Changes: up to 17 December by phone, subject to availability.
- Uncollected orders: [your policy]

WRITE
1. The form fields in order, each with a short label and help text.
2. One short intro line per product, using only the facts above. No claims about breed, farming method, ageing or origin.
3. A "How pricing works" box, 60 words at most.
4. Terms in plain English, under 150 words.
5. An allergy question that says we will phone about any entry before confirming, and never promises an allergen-free product.
After the draft, list every statement in it that is not in the FACTS.

Here is the sort of field list that comes back (illustrative, trimmed). The order matters: the date and slot come before the items, so a customer sees what is still open before choosing.

  1. Name, mobile number and email.
  2. Collection day: 21, 22, 23 or 24 December.
  3. Collection slot: only slots that still have places are listed.
  4. Your order: a quantity for each product and, for turkeys, a size band.
  5. Preparation notes, for example boned and rolled, spatchcock, no string.
  6. Allergies or dietary needs in your household. Help text: "We will phone you about anything written here before we confirm your order."
  7. I agree to the terms and the $20 deposit.

And the pricing box: "Turkey and joint prices are estimates. We weigh your order at collection and charge the weight on the scale at the price per kilo shown. Your $20 deposit comes off the final bill. Packs, such as pigs in blankets and stuffing, are fixed price."

Expect to cut a few confident lines from the first draft. Here are typical ones for a butcher's form, with the reason each has to go.

Draft saidWhy it goesFix
"Free-range birds from trusted farms"Farming method is a claim you must be able to prove from supplier paperwork. It was not in the facts.Delete, or add the claim to the facts only if your supplier documents it
"Dry-aged for deeper flavour"Ageing was never mentioned, and "deeper flavour" is a promise.Delete
"Your turkey will weigh exactly what you choose"You cannot promise that, and the pricing box says otherwise.Delete
"All our products are suitable for everyone"An allergen promise. Sausages and stuffing often contain gluten, mustard or sulphites, among others.Delete and keep the phone-call line
"Order now to avoid disappointment!"Pressure wording that does not match a calm, plain voice."Orders close on 14 December, or sooner if slots fill."

For the wider mechanics of a seasonal pre-order, including how a baker handles deposits and slots, the bakery pre-order form for Christmas and Easter is a close cousin. The butcher's differences are weight and cuts, which is what the rest of this tutorial deals with.

Pick-up slots: three capacity numbers, and the lowest one wins

A slot cap is not a guess at how busy you would like to be. It is the smallest of three physical limits, and in a small shop it is rarely the counter. Work each one out in the same unit, orders per day, before you decide how many places a slot holds. Here is the illustrative shop: two butchers, one counter assistant, collection from 21 to 24 December, open 08:00 to 16:00.

LimitWorkingResult
Counter hand-overA hand-over takes 4 minutes (find the box, check the ticket, weigh, take the balance). Two people on the counter, 60% of their time free for pre-orders: (30 divided by 4) x 2 x 0.6 per half-hour slot9 per slot, 81 across the 9 slots
Butchery prepEach order needs about 15 minutes of cutting, tying and labelling. Two butchers can give 5 hours each to pre-orders: 600 minutes divided by 1540 a day
Cold-room spaceThe rack holds 45 boxed orders45 a day
Lowest, so the daily capPrep is the tightest40 a day
Reserve10% held back for phone orders and corrections4 a day
Published places36 a day across 9 slots (first 09:00, last 13:00)4 per slot

Over four collection days that is 144 published places plus 16 held back, 160 in all. Check it against reality: a full slot means four hand-overs of four minutes, 16 minutes of work shared by two people, so each spends about 8 minutes of a 30-minute slot on pre-orders. Walk-in customers still get the counter. If last year's order book had more than 160 orders, the cap is telling you something true: add a collection day or more prep hours, do not raise the number on paper and hope.

Ask the AI to stress-test your working, not to produce it. Paste your four assumptions and ask, "What would break this plan on the busiest day?" It will usually raise the right questions: what happens when three turkeys arrive late, or when one butcher is off sick. Treat the answers as prompts for your own thinking.

Making sure a slot can never be oversold

A cap on paper only works if the form enforces it. Tools differ, and I would not trust a feature I have not seen in your own account, so here are three routes, from most to least automatic.

  • A form tool with a per-slot limit. Jotform's support answers describe an Appointment field in "Group" mode with a "Maximum Attendees Per Time Slot" setting, which greys out a slot once it is full. It applies one cap to every slot, which suits the 4-per-slot plan above. Jotform's free Starter plan allows 100 submissions a month, so a busy shop will probably need a paid plan (the lowest, Bronze, lists at $34 a month billed annually or $39 monthly, with 1,000 submissions). Check the appointment settings in your own account before you rely on them.
  • Google Forms with a spreadsheet. It is free and sends responses to a sheet, but it has no built-in cap per answer choice. Third-party add-ons can remove a choice once it fills, but they act after each response arrives, so someone who opened the form earlier can still pick a slot that has just filled. That is one more reason to keep the 10% reserve.
  • The sheet is the cap. Publish the slot list, count orders per slot each morning, and remove full slots from the form yourself. Confirm every order by text or phone and move anyone who lands in a full slot. It is more work, and it is reliable.

If your shop already sells online, ask the platform's support whether a pick-up time slot can carry a maximum number of orders. For the shop-side setup of collection messages and rules, click and collect for a small shop covers the ground.

Whichever route you use, keep one row per order in the orders sheet, with columns for the order number, collection day, slot, deposit paid and status. Then two short formulas give the status of every slot:

=COUNTIFS(Orders!$B:$B, $A2, Orders!$C:$C, $B2)
=IF(C2>=4, "FULL", "open")

These sit on a separate Slots tab, where A2 holds the day, B2 the slot and C2 the first formula; on the Orders tab, column B is the collection day and column C the slot. Per-order rows count slots correctly. Per-line rows would count an order twice if it contained two products, which is the usual way a "full" slot turns out to have spare places. If you want help with formulas like these, the ChatGPT Excel guide shows how to ask for them and how to test them.

From order export to cut list: ten orders as an example

Once orders arrive, the form tool gives you an export. The back-of-house job is turning it into three things: what to cut each day, a ticket per order, and totals for the supplier order. This is where AI saves real time, because reshaping a table is something it does well. It is also where it can quietly lose a note or a quantity, so the prompt is strict about notes. Here is a ten-order slice of an illustrative export, one row per order line:

order,day,slot,item,qty,band,note
101,22 Dec,09:00,Turkey medium,1,5-6.5kg,
101,22 Dec,09:00,Pigs in blankets,2,pack of 24,
102,22 Dec,09:30,Turkey large,1,6.5-8kg,spatchcock
103,22 Dec,09:30,Gammon joint,1,2kg,boned and rolled
103,22 Dec,09:30,Chipolatas,2,500g,
104,22 Dec,10:00,Turkey medium,1,5-6.5kg,
105,23 Dec,09:00,Turkey crown,1,2-2.5kg,
105,23 Dec,09:00,Stuffing,1,400g,nut allergy in household
106,23 Dec,09:30,Turkey small,1,4-5kg,
107,23 Dec,09:30,Beef rib joint,1,3-bone,"chined, tied"
108,24 Dec,09:00,Turkey medium,2,5-6.5kg,two birds - one order
109,24 Dec,10:00,Gammon joint,1,2kg,
110,24 Dec,10:00,Pigs in blankets,3,pack of 24,
Below is the order export for 22 to 24 December, one row per order line. Produce:
1. A butchery list per collection day: product, band, quantity and the order numbers it covers.
2. A ticket per order, in collection-slot order, listing its lines.
3. Copy every note exactly as written. Never shorten, merge or drop a note.
4. A list at the top called NOTES NEEDING A PERSON: every order whose note mentions an allergy, intolerance, diet or the word "check".
5. Totals per product across all days.
Do not calculate prices. Do not decide anything about allergens.

[paste the export]

The part of the answer that matters first is the list at the top: order 105, 23 December, 09:00, stuffing and a turkey crown, "nut allergy in household". A person phones that customer, reads the supplier's specification for the stuffing, and records what was said, before the order is confirmed. The AI's job was only to put it where nobody can miss it. Below that, the day lists look like this (illustrative output):

DayProductQtyOrdersNotes, copied as written
22 DecTurkey medium (5-6.5 kg)2101, 104
22 DecTurkey large (6.5-8 kg)1102spatchcock
22 DecGammon joint, 2 kg1103boned and rolled
22 DecPigs in blankets, pack of 242101
22 DecChipolatas, 500 g2103
23 DecTurkey crown (2-2.5 kg)1105
23 DecStuffing, 400 g1105nut allergy in household
23 DecTurkey small (4-5 kg)1106
23 DecBeef rib joint, 3-bone1107chined
24 DecTurkey medium (5-6.5 kg)2108two birds - one order
24 DecGammon joint, 2 kg1109
24 DecPigs in blankets, pack of 243110

A ticket is the same data per order, printed in slot order and clipped to the box: "Order 105. 23 Dec, 09:00. Turkey crown x1, stuffing 400 g x1. NOTE: nut allergy in household. Deposit $20 paid. Balance by weight at collection." The note goes in capitals, and a person initials the ticket once the allergy conversation is done.

Check the totals before anyone cuts anything

Never order from the AI's totals alone. Add a Lines tab with one row per order line and let the spreadsheet count, for example =SUMIFS(Lines!E:E, Lines!D:D, "Turkey medium") with the quantity in column E and the item in column D. Then compare. A typical comparison on this slice looks like this (illustrative):

CheckAI saidSheet saysWhat happened
Turkey medium, total34Order 108 has a quantity of 2 and was counted as one bird
Pigs in blankets, total packs55Matches
Order 107 note"chined""chined, tied"The comma inside the note was treated as a column break, even though the export quoted it, and "tied" fell off

Both slips are ordinary. Quantities above one and notes that contain commas are two common places where a table pasted into a chat goes wrong, so keep the notes column last and swap commas inside notes for semicolons before you paste. The note that lost "tied" is the more serious of the two: a joint that arrives untied is a complaint, and a dropped allergy note is much worse. That is why the prompt says never to shorten a note, and why you read the notes column against the original before cutting.

When the totals agree, turn them into the supplier order: the pre-order count for each band, plus an allowance for walk-in trade taken from your own counter sales last Christmas. The AI can draft the order email. The allowance is your judgement and your records.

Confirmation and reminder texts before Christmas Eve

An uncollected turkey on Christmas Eve is expensive and nearly impossible to resell. Three short messages do most of the work: a confirmation when the order is booked, a reminder two days before, and a ready-to-collect text on the day. Give the AI the facts and ask for each under 300 characters. Merge names and order numbers from the sheet, not from the chatbot, so it never sees customer details.

Write three SMS messages for a butcher's Christmas pre-order. Under 300 characters each, straight quotation marks, no emoji, placeholders in square brackets.
1. Confirmation: order number, collection day and slot, estimated total (final price set by weight), $20 deposit deducted, changes by 17 December.
2. Reminder two days before: the slot, how to move to another slot (text by 5 pm the day before).
3. Ready on the day: collect during your slot, the shop is open until [time].
Use only these facts. Do not mention allergies except to ask customers to call us if they have not already told us.

Confirmation (illustrative): Hi [first name], order [number] is booked for [day], [slot]. Estimated total $[estimate]; the final price is set by weight when we weigh it, less your $20 deposit. Changes by 17 December: call us. Allergies? Call before [date]. [shop name]

The "uncollected order" rule belongs in the terms, not the text. Decide before the form opens how long you will hold an order, whether you will try to ring the customer, and whether the deposit is kept. The AI can word that policy clearly and consistently, and the form is the place to state it; the policy itself is your decision, and an adviser can check it if you are unsure how consumer rules apply to deposits.

Allergen and label checks that stay with a person

This is the part of the job where AI should be kept out of the decision, even though it is tempting to ask. Sausages, stuffing, glazed joints and marinated cuts can contain gluten, mustard, celery, soya or sulphites, among others, and a model has no way to know what is in your supplier's product this week. A wrong answer here is not a typo; it is a risk to someone's health. The rule is simple: facts come from paperwork, and a named person signs them off.

  • Source: the supplier's current specification sheet, or your own recipe card for products you make. Never a chatbot's answer.
  • Change control: re-check whenever a supplier, recipe or batch changes. Building an allergen matrix from recipes with AI, then verifying it shows a method that keeps a human in the loop, and allergen labels for a delicatessen's platter orders covers a similar counter.
  • Labels: what must appear on a made-up or pre-packed item depends on where you trade and how it is packed, so check your food authority's guidance rather than assuming. Use a label template with fixed fields, and fill the fields from the paperwork.
  • Order notes: any note that mentions an allergy, intolerance or diet gets a phone call and a written record before confirmation. The prompt above surfaces them; it does not clear them.
  • Cooking and storage lines: times and temperatures printed on labels come from your supplier or food authority, not from a model's memory of turkey roasting times.
  • Cross-contact statements such as "may contain" come from your own risk assessment of the shop.
AI mayAI may not
Draft a label template with blank fieldsFill an ingredient or allergen field
List the order notes that mention allergiesSay an order is safe, or clear an allergy note
Turn your own recipe card into a tidy checklistGuess at the contents of a bought-in product
Word the "please call us about allergies" linePromise an allergen-free product

Working back from Christmas Eve

The routine is easier when each job has a date. These offsets suit the illustrative shop above; shift them to your own cut-off.

WhenJobAI's part
Five or six weeks outWork out the three capacity numbers, choose the price method, fix the product list and bandsStress-tests your assumptions; nothing else
Four weeks outPublish the form and the pricing box; tell regulars across the counter and on your social accountsForm wording, terms, announcement
Through to cut-offCheck slot counts each morning; phone every allergy note; send confirmationsConfirmation texts
At cut-offClose the form, export, build the cut list, reconcile the totalsReshapes the export; you check the totals
Five days before collections startPlace the supplier orderDrafts the order email
Two days before each slot daySend reminders; print ticketsReminder wording
Collection daysWeigh, label, take the balanceNone
Early JanuaryReview: orders by day, slot fill, band mix, leftovers, no-showsSummarises your notes into next year's plan

Keep the orders sheet after the season. Orders by day, how full each slot got, which bands sold out and how many orders were never collected are next year's capacity plan, written in your own numbers.

Questions butchers ask about Christmas pre-orders

How many pick-up orders can a butcher take per slot?

Take the lowest of three daily numbers: what the counter can hand over, what the butchers can prepare and what the cold room can hold. For most small shops the prep number is the lowest. Divide that daily cap, less a small reserve for phone orders and mistakes, by the number of slots, and publish only that many places.

Should turkeys be sold by weight band or by price per kilo?

A price per kilo with an estimate is fairer, because the customer pays for the bird they get, but people dislike an unknown final price. A fixed price per band is simpler, yet you carry the risk when a bird sits at the edge of its band. Narrow bands and a deposit reduce disputes whichever you choose.

Can AI check allergen information for my sausages and stuffing?

No. Allergen and ingredient information must come from your supplier's current specification sheet or your own recipe card, checked by a person each time a product or supplier changes. AI can draft a blank label template or a checklist, and can flag order notes that mention allergies, but it must never fill in or clear an allergen field.

What if a customer does not collect on Christmas Eve?

Decide your policy before the form opens, and put it in the terms the customer accepts at ordering: how long you hold an order, whether the deposit is kept, and whether you will try to contact them. AI can word the policy clearly, but the rules are yours, and an adviser can check them if you are unsure.

Do I need a paid form tool to take the pre-orders?

Not necessarily. Google Forms is free but has no built-in cap per slot, so you close full slots by hand or add a third-party add-on. Jotform's free plan allows 100 submissions a month, which a busy shop can exceed. A spreadsheet that counts orders per slot works if you confirm every order yourself.

Further reads

Sources: Jotform's pricing page (Starter and Bronze limits) and its support answers on appointment slot limits; Google Workspace Marketplace listings for form-limiter add-ons and Google's forms help, which lists no built-in per-option response cap; all checked October 2026. Shop figures and prices are illustrative.

Want Christmas orders handled before the rush starts?

On a 1:1 call we'll map how orders reach you today, set the pick-up cap around your real counter and prep time, and pick an order tool you already have that can enforce it.

Book a 1:1 call with me