AI for Farm Shops: Weekly Boxes, Seasonal Labels and Pre-Orders

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Farm Shops: Weekly Boxes, Seasonal Labels and Pre-Orders.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI for Farm Shops: Weekly Boxes, Seasonal Labels and Pre-Orders.

Paste your Monday harvest list and box sizes into the AI and ask for box contents as a table, check the totals against the list with a formula, then have it turn each item into a shelf label and box card from your own notes. Cap pre-orders at the number of boxes you can pack.

The AI never knows what is ready. Left to itself it describes the vegetables a farm shop typically has at this time of year, which may not be what you picked this morning. So every box and label starts from your own harvest list, and keeping that list accurate is the one job you can't hand over. This is counter-side work, between the field and the customer. Crop-level farm AI, such as yield prediction and field monitoring, is a different subject.

Follow me on Instagram@sagnikteaches

All the numbers come from an invented farm shop. It packs small, medium and large vegetable boxes for Saturday collection at $16, $32 and $48, keeps a shelf of the same produce, and takes pre-orders until Wednesday evening. The caps are 30 small, 24 medium and 12 large, which makes 66 boxes.

Connect on LinkedInSagnik Bhattacharya

The harvest list comes first, because the AI can't see your fields

A harvest list is a table with one row per item and the same columns every week: the item, its variety if you recorded one, the unit, the quantity available for boxes once the shelf allocation is set aside, when it was picked, the field, a first-or-last-picking tag, and the storage note in the grower's own words. Whoever counts the crates types it, into one shared sheet with one layout. This is the invented list for the week:

Subscribe on YouTube@sagnikteaches
HARVEST LIST - Mon 08:30 - quantities left after the shelf allocation
item | variety | unit | available | picked | field | tag | storage (grower's words)
Potatoes | [variety] | kg | 155 | Fri | Long Field | | cool, dark, not the fridge
Carrots | [variety] | kg | 100 | Mon | Barn Field | | fridge, tops off
Onions | [variety] | kg | 60 | stored | Long Field | | dry and airy
Leeks | [variety] | each | 320 | Mon | Barn Field | | fridge, unwashed
Kale | NOT RECORDED | bunch | 120 | Mon | Barn Field | | fridge, wrapped damp
Beetroot | [variety] | kg | 55 | Sat | Barn Field | last picking | fridge, leave 2 cm of stem
Cabbage | [variety] | head | 40 | Fri | Long Field | | fridge
Apples | [variety] | kg | 100 | Fri | Orchard | | fridge or a cool shed
Squash | [variety] | each | 45 | stored | Long Field | | cool and dry, keeps for weeks

Four small habits make the list safe to build on. Count after you have set the shelf share aside, so the boxes never promise stock the shelf already sold. Fix the units for each item, and give kilograms alongside pounds if some customers think in those (1 kg is about 2.2 lb). Write NOT RECORDED rather than leaving a variety blank, which stops the AI guessing the best-known name for that vegetable. And mark stored crops as stored, so nothing downstream can claim they were picked this morning.

If you tally on paper in the packing shed, photograph the sheet. The AI can read most handwriting, but a 1 and a 7 look alike on a wet clipboard, so read every figure back against the page before you plan from it.

From harvest list to three boxes, then the sum check

Plan against the caps, not the orders. Orders won't be known until Wednesday, so build boxes for the case where every one sells. If fewer do, the surplus goes on the shelf. The planning prompt gives the AI the rules and asks it to say where it breaks them:

Using only the harvest list below, propose contents for three boxes: Small (30 planned), Medium (24), Large (12).
Rules: use only items on the list. Never plan more of an item than is available. Small has 5 to 7 different items, Medium and Large 7 to 9. The value of each box at shelf prices must stay at or above the box price ($16, $32, $48).
Shelf prices: potatoes $2.00/kg, carrots $2.40/kg, onions $2.20/kg, leeks $1.00 each, kale $2.50/bunch, beetroot $3.00/kg, cabbage $2.50/head, apples $4.00/kg, squash $3.50 each.
Return a table: amount per box, total needed per item, quantity on the list, and OVER or OK. Show each box's value. If anything is OVER, say so first.
[paste the harvest list]

This was the first plan it returned. The AI flagged both problems, though on some days a model will report everything as fine when it isn't, which is why the sheet recalculates every total:

ItemSmall (30)Medium (24)Large (12)NeededOn the listStatus
Potatoes (kg)1.52.53.5147155OK
Carrots (kg)1.01.52.090100OK
Onions (kg)0.51.01.55760OK
Leeks (each)358306320OK
Kale (bunch)123114120OK
Beetroot (kg)0.51.01.55755OVER by 2
Cabbage (head)0113640OK
Apples (kg)1.01.52.090100OK
Squash (each)0124845OVER by 3

Paste the per-box amounts into a sheet and let formulas do the arithmetic, so the AI's table is a proposal and the sheet is the check. The box counts sit in three cells, and the value of a box is a SUMPRODUCT of its amounts and the shelf prices:

Counts: B12 = 30 (Small), C12 = 24 (Medium), D12 = 12 (Large)
Rows 2 to 10 = items. B, C, D = amount per box. E = needed. F = on the list. H = shelf price.
E2:  =B2*$B$12+C2*$C$12+D2*$D$12
G2:  =IF(E2>F2,"OVER by "&(E2-F2),"OK")
Small box value:  =SUMPRODUCT(B2:B10,$H$2:$H$10)
Medium box value: =SUMPRODUCT(C2:C10,$H$2:$H$10)
Large box value:  =SUMPRODUCT(D2:D10,$H$2:$H$10)

At shelf prices the three boxes come to $17.50, $35.80 and $52.60, comfortably above their $16, $32 and $48 prices, which is the value check doing its job. For weekly planning on other produce lines, farmers market stock planning with AI uses the same idea of planning pack quantities against sales.

Two shortages fixed without shrinking a box

Beetroot is short by 2 kg and squash by 3. A lazy fix quietly gives some customers less. A better one swaps like for like in value, and writes the swap down so the packer follows it. The AI proposed this, and the sheet confirmed it:

  • Beetroot. Large boxes 1 to 6 get 1.0 kg instead of 1.5 kg, with 0.5 kg more carrots. Beetroot used falls to 54 kg of 55, and carrots rise to 93 kg of 100.
  • Squash. Large boxes 7 to 10 get one squash instead of two, with 0.5 kg more apples. Squash used falls to 44 of 45, and apples rise to 92 kg of 100.
  • Large boxes 11 and 12 stay as first planned.

The value check holds. The beetroot swap changes a Large box by minus $1.50 plus $1.20, so $52.30. The squash swap changes it by minus $3.50 plus $2.00, so $51.10. Both stay above $48. Beetroot now sits at 98% of the list, which is tight: it is the item to watch on Friday, and the reason to name a swap in advance rather than improvise at the packing table.

Because three Large variants now exist, the pick list names them: Large 1 to 6, Large 7 to 10, Large 11 and 12. The box card says what the box contains, so a customer comparing boxes isn't left wondering why theirs has fewer squash. Swaps are fine. Silent swaps are what generate complaints.

It is worth knowing what the swaps are worth. Without them, you would have to sell fewer of the boxes that carry squash and beetroot. Dropping one box can't close both gaps, and the cheapest pair that does is one Medium and one Large: squash falls to exactly 45 and beetroot to 54.5 kg. That is 64 boxes instead of 66, and $80 a week of sales the swaps keep. Cutting the whole plan in proportion to the tightest item would cost more: squash at 45 of 48 is about 94%, which scales 66 boxes down to about 61.

That proportional sum still has a use, before any plan exists. To set first caps from a harvest list, divide each item's quantity by what a full plan would need, and the smallest result tells you how far to trim. Once a plan exists, look for the cheapest boxes to drop or the like-for-like swaps instead.

Shelf labels and box cards from the same list

Once the list is checked, labels are the easiest job, and the one where the AI is most tempted to flatter your vegetables. Give it a template and the record for one item, and ask for nothing else:

[NAME]. [Variety, only if recorded.] Picked [date] in [field]. [Price] per [unit].
[Storage note, grower's words.] [Tag, if there is one.]

For the beetroot, the first draft ignored the template and wrote this:

Beetroot. Sweet, earthy and packed with vitamins, our pesticide-free beetroot was picked fresh this morning by hand. Grown with love on the farm. $3.00/kg.
In the draftWhy it can't stayFix
"packed with vitamins"A nutrition claim that isn't in your recordDelete
"pesticide-free"A growing-method claim, and nothing in the record supports itDelete unless your records and rules allow the phrase
"picked fresh this morning"The list says picked Saturday, two days before the list was made"Picked [Saturday's date]"
"by hand"Not recordedDelete
"grown with love"FillerDelete
Missing: the tagThe list marks this as the last pickingAdd "Last picking of the season"

The version that went on the shelf:

Beetroot, [variety]. Picked [Saturday's date] in Barn Field. $3.00 per kg. Keeps in the fridge; leave 2 cm of stem on. Last picking of the season.

The label carries a date, not a weekday. "Picked Saturday" still hanging on the shelf the following Saturday reads as that morning's harvest, which is the very claim the fix removed.

The same list feeds the box card. This is the invented Medium card, with every storage note copied from the list and one line written by the grower:

YOUR MEDIUM BOX - Saturday
Potatoes 2.5 kg: cool, dark, not the fridge
Carrots 1.5 kg: fridge, tops off
Onions 1 kg: dry and airy
Leeks 5: fridge, unwashed
Kale 2 bunches: fridge, wrapped damp
Beetroot 1 kg: last picking; fridge, leave 2 cm of stem
Cabbage 1: fridge
Apples 1.5 kg: fridge or a cool shed
Squash 1: cool and dry, keeps for weeks
This week from the field: [one or two sentences you write]

A recipe line is the one optional extra. The AI is good at "what do I do with five leeks and a cabbage" as long as it uses only what is in the box plus pantry basics. A realistic slip is a suggestion for a beetroot and fennel salad when no fennel was in the box. Add "use only items in this box" to the instruction, keep it to one line, make no health claims, and read it once before printing.

The shop-floor jobs in food retail that sit around this, such as deli counters and ordering, are covered in AI in food retail for a deli or farm shop.

What a seasonal label may say, and what it may not

Seasonal wording sells, and it is also where a label becomes a promise. These rules decide what the AI may write on its own and what only a person adds:

WordingSay it only whenRule for the AI
"Organic" and similar protected termsYou hold the certification for that cropNever write it. A person adds it by hand
"Pesticide-free", "no sprays"Your spray records support it and your adviser agrees the wordingOnly if the record carries the phrase
"Local"You have defined it in writingUse "Grown at [farm name]" instead
"Fresh", "picked today"The picked date is todayUse the picked date from the list
"First picking", "Last picking", "In season"The tag is set on the harvest listCopy the tag. Never infer one
Health or nutrition claimsVerified, and permitted where you tradeNone
Variety namesThe variety is recordedIf it says NOT RECORDED, leave it out

Prepared foods are a different job. Jams, chutneys and baked goods carry ingredient lists, allergen statements, net quantities and dates, and the rules for them differ by place. The AI can lay out a label from your recipe record, but a person has to check the legal text against the rules where you trade. AI food label makers versus manual checks explains where the automated tools fall short.

A pre-order form that stops at 66 boxes

A pre-order form for boxes needs to do one thing an ordinary enquiry form doesn't: stop taking orders when the stock is gone. Many form tools can't count stock down on their own, so check yours. If it can't, the response sheet can do the counting and you close each box size by hand. These are the fields and the rule for each:

FieldRuleWhy
Box sizeSmall $16 (cap 30), Medium $32 (cap 24), Large $48 (cap 12). Each size closes when its cap is reachedYou can't pack boxes you can't fill
Collection slotSix half-hour slots from 09:00 to 12:00, 11 boxes a slot66 boxes spread over the morning
Swaps"Happy with swaps", or up to two items you'd rather not haveLets swaps happen without phone calls
Allergies or medical dietsFree text that routes to a personThe AI never decides these
ContactPhone or email, one is enoughSo a shortage notice can reach them
PaymentCard at order, or at collection if you allow itPaid boxes tend to get collected

The counting formulas are short. With box size in column C and slot in column D of the response sheet:

Small left:  =30-COUNTIF(C:C,"Small")
Medium left: =24-COUNTIF(C:C,"Medium")
Large left:  =12-COUNTIF(C:C,"Large")
Slot status: =IF(COUNTIF(D:D,"09:00")>=11,"FULL","open")

Set the cut-off where you can honour it, say Wednesday at 18:00, and say it on the form. Add a waitlist for each size and let the AI draft the reply: "You're on the waitlist for a Large box. If someone cancels, we'll message you by Thursday at noon." State your no-collect rule on the form too, for example that an unclaimed box goes on the shelf after 12:30, and check what the consumer rules where you trade require you to say about refunds.

The free-text swap notes are where the AI earns its time. Of the 66 orders, 14 carry one: nine say no beetroot, three say no kale, one says no leeks, and one mentions an allergy. The AI proposes a like-for-like swap from this week's surplus for the first 13, with the value shown, and sends the fourteenth to you untouched. You approve the 13 in a couple of minutes. For a box scheme that also takes swaps and pickup reminders on a membership model, CSA farm shares: sign-ups, pickups and swaps goes further, and pre-orders for farmers market vendors shows the same idea on a smaller scale.

Thursday's message when the leeks stay in the ground

Heavy rain means the leek bed can't be lifted, and 306 leeks are in the plan. The honest response is to tell customers before Saturday, and to decide the compensation by rule, not by mood. This shop's rule is to credit the gap between the box price and what is left in the box at shelf prices. Without leeks the numbers are:

BoxContents without leeksBox priceCredit
Small (30)$14.50$16.00$1.50
Medium (24)$30.80$32.00$1.20
Large 1 to 6 (beetroot swap)$44.30$48.00$3.70
Large 7 to 10 (squash swap)$43.10$48.00$4.90
Large 11 and 12$44.60$48.00$3.40

Across the full 66 boxes that is 30 x $1.50 + 24 x $1.20 + 6 x $3.70 + 4 x $4.90 + 2 x $3.40, which comes to $122.40. The swapped Large boxes are the trap here: a first pass that credits every Large at $3.40 comes to $114.60 and short-changes ten customers. Knowing the cost in advance makes the decision easier, and makes the message honest. The AI drafts it from your rule:

Hi [first name], a note on Saturday's [size] box. The rain has kept us off the leek bed, so there are no leeks this week. The rest of your box is as planned. We've credited $[amount] to your next box, the difference between what's in it and the box price. If you'd rather have a refund instead, reply by Thursday 18:00. [your name], [farm shop name]

Notice what the message doesn't do. It doesn't blame the weather at length, promise the leeks for next week, or call the box "the best yet". The credit amounts come from the sheet, and the decision to offer a credit is yours.

Three weeks to bring it in, one job at a time

Don't switch everything on in one week. Each step earns trust for the next:

  1. Week one: the harvest list and box plan only. Do the plan by hand as usual, then set the AI's version and the sheet's checks beside it. If the AI's version was as good, time both routes: the difference is the planning time you can hand over each week.
  2. Week two: labels and box cards. Run the template on the full list and read every label against the rules table. Count how many words you deleted. That number should fall.
  3. Week three: the pre-order form and swap notes. Open it to a small group first, or cap it below your normal numbers, so a mistake in the counting formulas costs a few boxes, not sixty.

Checking the week: leftovers, swaps and complaints

CheckWhere the number comes fromWhat you want to see
Missing itemsBoxes with an item not on the pick listZero, apart from announced swaps
Silent swapsSwaps the packer made that weren't on the pick listZero
Leftover stockPlanned amount against the harvest list, item by itemA few per cent, never negative
Sell-out timingDay and hour each size reached its capMoving earlier tells you the caps are too low
No-collectsBoxes left after 12:30Falling once payment is taken up front
"Not as described"Complaints about labels or box contentsFalling; read the label rules first when it isn't

Read the negative leftovers first. A planned amount above the harvest list means a box was packed with something that wasn't there, and the explanation is usually a swap that never reached the sheet.

One mistake is worth planning for: the wrong week's file. A label sheet printed from last week's tab carries last week's picking dates, and on a busy morning nobody reads a date closely enough to notice. Put the harvest date in the file name, print it small on every label sheet, and have whoever hangs the labels check it against the list.

Card fees are the cost farm shops tend to miss

A free AI plan covers the box plans, labels and swap notes for a shop this size; the $20-a-month individual tiers only matter if a busy week runs into the daily limits. The sheet and a basic form are free, and labels print on an ordinary office printer.

The cost that surprises people is the card fee. Square lists 3.3% plus 30 cents for online payments on its free plan as of late October 2026. On a full 66-box week at $1,824, the fee is $60.19 plus 66 x $0.30, or about $80 a week. That is 4.4% of takings, and it is worth setting against the no-collect boxes that up-front payment removes. Another provider's rate will differ, so use your own figures.

Questions farm shop owners ask about this

How do I decide how many boxes to offer?

Start from the tightest item. For each item, divide what is available by what one box needs, and the smallest answer sets your ceiling. Then trim it, because crops get bruised, trimmed or rained off. I'd leave a few per cent spare; that is a habit, not a published figure. Last season's sell-through tells you whether to go lower.

Can I photograph a handwritten harvest list?

Usually, yes. The AI can read a clear photo of a handwritten list and turn it into a table. Handwriting is where numbers get misread, such as a 1 for a 7, so read every figure back against the page before planning from it. A typed list on a shared sheet is safer once the habit is in place.

What if a customer mentions an allergy?

A person replies, every time. The AI doesn't decide what is safe for anyone, and a swap that looks harmless on a list can matter to someone on a medical diet. Put a free-text allergy field on the form that goes straight to you. For prepared foods such as jams, allergen labelling has its own rules where you trade.

Can the AI write the farm's story for the boxes?

It can polish a story you tell it, such as how the farm started or why you stopped growing a variety. It can't supply the story. Give it three true sentences and ask for a short note in your voice, then read it as though a customer will check every claim, because one might.

Further reads

Sources: Square's published online payment rate, plus OpenAI and Anthropic pricing pages (checked October 2026). Crops, prices, caps, labels and messages in the examples are invented.

Want your weekly boxes and pre-orders running smoothly?

On a 1:1 call we'll map how your harvest list becomes boxes, labels and pre-orders today, pick the step worth drafting with AI first, and decide whether your order form can count stock for you.

Book a 1:1 call with me