A nursery can build its weekly wholesale availability list by keeping one clean stock sheet, giving an AI chat assistant that sheet plus your pricing tiers, and asking it to return a priced, grouped list ready to email. Check the quantities yourself, then send it on the same morning every week.
The AI does the formatting, tier arithmetic and wording. It does not know what is physically on the benches, so the quantities column must come from your own count, and the sheet is where most of the work in this routine lives. If the sheet is wrong, the list will be wrong and look very tidy while it is.
What buyers want to see in one glance
Trade buyers at garden centres, landscapers and farm shops scan a list for three things: is the plant I need there, in the pot size I want, and what does it cost at my quantity. Everything else is decoration. A list that makes them hunt, or that arrives as a photo of a spreadsheet, gets skimmed and ignored.
A good weekly list has these columns, in this order:
- Code, a short internal reference the buyer can quote on an order, such as
HYD-PAN-3L. - Plant name, botanical name first and common name second, because buyers search both.
- Pot size or grade, for example 2 L, 3 L, 10 L, or a bare-root height band.
- Available, a number or a band, not "plenty".
- Price per unit at each tier, usually two or three columns.
- Notes, such as "in flower now", "ready week 22" or "last of the batch".
Leave cost, margin and batch records out of anything that leaves the building. They live on the internal sheet, and the AI only ever sees what you decide it should see.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowShape the stock sheet before any AI touches it
A stock sheet that works for you on the nursery is often hopeless as AI input. Merged cells, colour-coded rows, abbreviations in the name column and quantities typed as "approx 200" all make the AI guess. Tidying once saves you from correcting guesses every week.
Make one tab, one row per sellable line, with these headings and nothing merged:
| Column | What goes in it | Rule |
|---|---|---|
| Code | Your internal item code | Unique, never reused |
| Botanical name | Full name with cultivar | One spelling only |
| Common name | What the trade calls it | Optional but helpful |
| Group | Shrubs, perennials, grasses, climbers, trees, herbs | From a fixed list |
| Pot | 2L, 3L, 5L, 10L | Same format every row |
| Count | Units ready now | A whole number, from the bench count |
| Reserved | Units already promised | A whole number |
| Ready from | Date or week for lines not ready yet | Blank if ready now |
| Base price | Your list price per unit, ex tier discounts | Number only, no currency symbol |
| Status | Ready, Coming, Hold, Withdraw | From a fixed list |
| Note | Short buyer-facing remark | Under 60 characters |
The "Available" figure on the list is Count minus Reserved, worked out in a formula column so the AI is never asked to subtract. Anything with a status of Hold or Withdraw never reaches the buyer-facing list. Dropdown validation on Group, Pot and Status stops the free-text drift that creates "3L", "3 ltr" and "3 litre" in the same sheet.
If your current sheet is a mess, ask the AI to propose the clean layout and to convert a copy first. The general method is covered in cleaning messy data with AI; the point here is only that you convert once, then keep the clean version alive.
Pricing tiers: define them before the AI applies them
Tiers are the part growers most often leave to "whatever we did last time". Write them down as rules the AI can follow and you can test. A common shape for a wholesale nursery is three bands by units per line, or by order value:
| Tier | Rule (illustrative) | Price rule |
|---|---|---|
| A | 1 to 9 units of a line | Base price |
| B | 10 to 49 units of a line | Base price less 8% |
| C | 50 or more units of a line | Base price less 15% |
Those percentages are an example, not advice. Your own tiers should come from your costs and what your trade buyers pay elsewhere; the thinking behind margin floors is in tiered wholesale pricing with margin floors. Whichever numbers you choose, add a floor: no tier may price a line below your cost of production plus a minimum margin. The sheet can carry that as a column called Floor, and the AI is told to flag, not silently fix, any line where a tier price falls below it.
A worked sum for one line
Say a grower lists a 3 L hydrangea at a base price of $9.50, with production cost of $5.20 and a floor of $6.00. The tier prices work out as follows.
| Tier | Calculation | Price | Above floor? |
|---|---|---|---|
| A | 9.50 | $9.50 | Yes |
| B | 9.50 x 0.92 | $8.74 | Yes |
| C | 9.50 x 0.85 | $8.08 | Yes |
Now a cheaper line: a 2 L lavender with a base price of $6.40 and a floor of $5.60. Tier C comes to $5.44, which is under the floor. This is what you want the AI to flag, because a price list that looks consistent across every line can still quietly sell one cheap line at a loss when buyers load up on it.
The weekly prompt, with a sample of what comes back
Paste the buyer-facing rows (not the cost columns) into the chat and use a prompt that states the rules, names the output and forbids guessing. Here is one that works with ChatGPT, Claude or Gemini.
You are preparing a weekly wholesale availability list for a plant nursery.
Input: a table of stock lines with columns Code, Botanical name, Common name, Group, Pot, Available, Ready from, Base price, Floor, Note.
Rules:
1. Group lines by Group, in this order: Shrubs, Perennials, Grasses, Climbers, Trees, Herbs. Inside a group, sort by botanical name.
2. Tier prices: A = base price; B = base price x 0.92; C = base price x 0.85. Round to 2 decimals.
3. If any tier price is below Floor, do not change it. Put the Code in a section called "Price check" at the end.
4. Show Available as a number. If Available is under 10, add "low stock" in the Notes column.
5. Lines with a Ready from date go in a separate table called "Coming soon", without prices.
6. Do not invent plants, quantities or notes. If a field is empty, leave it empty.
7. Output as a table I can paste into an email, then a two-sentence introduction for the email.
A sample of the output, using three invented lines (illustrative):
| Code | Plant | Pot | Avail. | 1-9 | 10-49 | 50+ | Notes |
|---|---|---|---|---|---|---|---|
| HYD-PAN-3L | Hydrangea paniculata 'Limelight' (panicle hydrangea) | 3 L | 140 | 9.50 | 8.74 | 8.08 | In bud |
| LAV-ANG-2L | Lavandula angustifolia 'Hidcote' (English lavender) | 2 L | 8 | 6.40 | 5.89 | 5.44 | Low stock |
| CAL-KAR-3L | Calamagrostis x acutiflora 'Karl Foerster' (feather reed grass) | 3 L | 62 | 7.20 | 6.62 | 6.12 |
Under it, "Price check: LAV-ANG-2L, tier C 5.44 is below floor 5.60". That is the correct behaviour. What you would fix in a real output: confirm the AI kept the cultivar quote marks, that "low stock" appears only where Available is under 10, and that rounding matches your invoicing (some growers round tier prices to the nearest five cents instead).
Do the first run side by side with the previous week's list so you can spot where the tool deviates. If you want a tighter route, a spreadsheet formula can compute the tier columns and the AI can be limited to wording and layout; that is the more repeatable option once the sheet is stable, and it removes any chance of an arithmetic slip.
Let the spreadsheet do the sums and the AI do the writing
Language models are good at tidy layouts and short copy, and mediocre at long columns of arithmetic. For a list of 300 lines, put the tier prices in formula columns and ask the AI only for the structure and wording. In a typical sheet the tier B column is simply the base price column times 0.92, rounded to two decimals, and the check column is an IF that returns "CHECK" whenever a tier price is under the floor. Then the AI's job shrinks to: group the lines, write the introduction, add a note where stock is low, and show anything marked CHECK for you to rule on.
That split also makes the weekly job auditable. If a buyer queries a price, the answer is in a formula you can read, not in a chat transcript. If you work in Excel, the pattern is similar to the one in using ChatGPT with Excel; if you live in Google Sheets, the same structure works with a connected assistant or with a paste-in routine.
Turning the table into the file buyers open
You have three delivery shapes, and most nurseries end up using two of them together.
- Table in the email body. Best for the top 20 to 40 lines or a "this week's highlights" block. Opens everywhere, searchable in the buyer's inbox.
- PDF attachment. Best for the full list. Ask the AI to lay it out in a document with your logo line, page numbers and the date of issue, then export it from your word processor or spreadsheet. Name it consistently, for example
availability-week-23.pdf. - Link to a shared sheet. Works for a few regular buyers who like to filter, but it creates a stale-copy problem if the sheet changes mid-week. Use a view-only, published copy and say plainly that it is the Monday list.
The introduction paragraph should earn its place. Two sentences is enough: what is new or especially good this week, and the deadline for orders on the next lorry or van run. An example (illustrative):
Subject: Availability list, week 23: hydrangeas in bud, grasses ready
Hi [first name],
This week's list is attached and the highlights are below. Hydrangea 'Limelight' in 3 L is in bud and the grasses are cleared for dispatch. Orders confirmed by Thursday midday go on Friday's delivery run.
Quantities are indicative until we confirm your order.
[your name]
Keep the indicative-quantities line. It is the sentence that stops an argument later.
Sending it without hand-addressing 80 emails
You do not need a bespoke system. Pick the lightest route that fits your list size.
Under about 50 buyers
Use your normal mailbox and a mail-merge add-on or a saved contact group. One message, the PDF attached, buyers in blind copy or merged individually so nobody sees the whole trade list. A mail merge also lets you address each buyer by first name, which reads far better than "Dear trade customer".
50 buyers and above
Use an email marketing tool with a saved audience called "Trade buyers" and a template with your header, table block and order deadline. The weekly job becomes: duplicate last week's campaign, paste in the new table and PDF, schedule for 8 a.m. Mailchimp and Brevo both let you schedule a campaign, but Mailchimp leaves scheduling out of its Free plan (it starts on Essentials), and its Free plan stops at 250 contacts and 500 sends a month, which a weekly list plus regular Wednesday updates to 80 buyers could pass (80 buyers x 8 sends is 640). Check each vendor's pricing page for the current contact and send limits before choosing, because plan limits shift. If you want to compare the two for a small list, see Brevo versus Mailchimp for a small business.
Buyers who want different things
Landscapers want shrubs and trees; farm shops want herbs and perennials. If your audience splits that way, add a column called Buyer type to your contacts and create two segments, then send the same list with a different lead paragraph about the plants that segment buys. AI can draft each lead paragraph from the same table in one request.
Whichever route you use, send a test to yourself and one friendly buyer first, and open it on a phone. If the table wraps badly on a small screen, shorten the plant name column or send the PDF only for that week.
Marking lines as sold, mid-week
A weekly list is out of date by Wednesday. The question is how much of that you can tolerate. The practical answer is to make "sold out" a light, repeatable action rather than a second full job.
- Update the Reserved column as orders are confirmed. The Available formula does the rest. Do this in the same sheet, once a day, at a fixed time such as 11 a.m. and 4 p.m.
- Filter for lines that hit zero or fall under your low-stock line and paste only those rows into a chat. Ask for a three-line update.
- Send a short "Wednesday update" to buyers who received the list: lines now sold out, lines low, any new arrivals. Not the full list again.
A prompt for step 2 (illustrative):
Here are the lines whose availability changed since Monday's list. For each one write a single plain sentence for buyers: sold out, or the new number left. Group sold-out lines first. Then suggest one substitute from the "Still available" table for each sold-out line, matching pot size and price within 10%. If there is no sensible substitute, say "no substitute".
The substitution request is the most useful part. It turns a "sorry, gone" message into a prompt to order something else. Always read the suggested substitutes before sending; an AI will happily pair a sun-loving plant with a shade-loving one if the pots and prices happen to match.
If you sell through a trade portal or an online catalogue as well, the same Reserved figure should feed it, so the two channels do not oversell the same bench. That is a different build, but the discipline starts with a single column on a single sheet.
Three tidy-up jobs the AI does well on the same data
Once the clean sheet exists, the same data supports a few small extras. Each is a few minutes a week and each saves the call you would otherwise take.
- A "new this week" block. Compare this week's codes with last week's and have the AI list lines that were not on the previous list. Put them at the top of the email. Buyers love a reason to open it.
- A "last chance" block. Lines flagged
Withdrawafter this batch, or lines with a low count and no next batch, listed with a short reason to buy now. - Seasonal wording. Provide the plant group and the month, and ask for one factual line a buyer could use on their own shelf, such as "flowers from midsummer; full sun". Check each against your own growing notes, because plant details are the sort of thing an AI states confidently and sometimes gets wrong.
What went wrong in a list that looked fine
Take a mid-sized grower, illustrative, with 240 lines, who started using AI to format the list in spring. In the third week a landscaper ordered 60 units of an ornamental grass the list showed as 62 available. The truth was 38, because a batch had been written down twice in the stock sheet when it moved from one polytunnel to another, and the duplicate row had never been cleared. The AI had faithfully listed both rows and grouped them as one plant, adding the counts.
The fix had two parts. First, a check column on the sheet that counts how many times each Code appears and shows "DUP" when it is above one. Second, the prompt gained a rule: "If a Code appears more than once, do not combine; list it under Price check as a duplicate." Neither is clever. Both would have caught the error before it left the building.
Other failure modes worth guarding against:
- Stale reserved counts. A phone order not entered until Friday. The fix is a rule that the Reserved column is updated before the Monday export, and a visible "last updated" timestamp on the sheet.
- A confident but wrong plant description. If the AI writes notes beyond what you supplied, delete them. The prompt line "Do not invent plants, quantities or notes" helps but does not eliminate this.
- Prices quoted without the pot size. A 1 L and a 3 L of the same plant look like duplicates. Always show the pot in its own column, never inside the name.
- A trade list reaching retail customers. Keep a separate contact segment for trade and never forward the list to a consumer without removing the tier columns.
Your Monday morning, step by step
Once the sheet and prompt are fixed, the weekly job should take under half an hour. A routine that works for a small team (illustrative timings):
- Friday afternoon: the person who counts the benches updates
CountandStatus. Ten minutes per polytunnel or block. Anything not ready is marked Coming with a date. - Monday 7:30: update
Reservedfrom weekend orders. Check for DUP flags. Five minutes. - Monday 7:45: filter to buyer-facing rows, paste into the chat with the standing prompt. Review the table, the Price check section and the introduction. Ten minutes.
- Monday 8:00: export the PDF, attach, send to a test address, then schedule to the buyer list for 8:30.
- Wednesday 11:00: run the sold-out update if more than a handful of lines changed.
Store the standing prompt where the whole team can find it, and save it as the project instructions of a Project in ChatGPT or Claude, with the tier table as a project file, so nobody retypes it. OpenAI is retiring custom GPTs (they are scheduled to stop running on 11 December 2026), so a Project or a saved prompt document is the safer home. See the AI hub at the AI guide for choosing between assistants.
How to tell it is working
Pick three numbers and write them in a corner of the sheet before you start, then check them after a month.
- Time to send. Minutes from opening the sheet to scheduling the email. If it is not falling to under 30 minutes by week four, the sheet still needs tidying.
- Corrections after sending. How many times you had to send a "sorry, correction" message. The target is zero in a normal month.
- Order lines per list. Count the lines ordered from each week's list. If a clearer list does its job, this climbs slowly. If it stays flat, test a different subject line or put a short "new this week" block at the top.
A final check is to ask one buyer, once, how they use the list. Whether they print it, forward it or search it in their inbox changes what you should put at the top.
Questions growers ask before automating the list
Should the availability list be a PDF, a spreadsheet or an email?
Send the list in the body of the email as a short table for the top lines, and attach a PDF for the full list. Buyers open email on phones, and a PDF prints cleanly for the buyer's own ordering. Keep the live spreadsheet to yourself, so nobody orders from a stale copy or sees your cost columns.
How many varieties can AI handle in one list?
A few hundred lines is comfortable if the stock sheet is clean, because the AI is formatting and checking rows, not inventing them. Past that, split by plant group or pot size so each section stays readable and any error is easier to find.
Can the AI decide what to charge?
It can apply the tier rules you give it, such as a percentage off by quantity, and flag lines under your margin floor. The base price per line should stay your decision, because the AI cannot see your costs of the season, your losses or what rival growers are asking.
What if a buyer orders something that sold out an hour ago?
State on the list that quantities are indicative and confirmed on order, then send a short substitution note with an alternative of similar size and price. A quick sold-out update to the whole list on Wednesday reduces these cases, but it never removes them.
Do I need a paid AI plan for this?
A free chat assistant can do the weekly formatting for a sheet of this size, though free plans have usage limits that vary. A paid individual plan removes most of that friction. Check the current limits on the vendor's pricing page before relying on one for a fixed weekly deadline.
Further reads
- Price Increase Letter to Customers: A B2B Supplier's Version With AI — Tell trade buyers about a price rise without losing them.
- Backorder Notification Email: A Template AI Fills From Stock Data — A template for telling buyers a line is short.
- Line Sheet Template: Turn a Product Export Into a Wholesale PDF With AI — Turn a product export into a wholesale PDF.
- Minimum Order Quantity for Wholesale: Tiered MOQs Small Retailers Accept — Choose minimum order sizes small garden centres accept.
- Supplier Price Increases: Update a Wholesale Price List With AI — Update prices when your own input costs rise.
- B2B Ecommerce With AI: Trade Accounts, Pricing and Reorder Emails — If you later sell through a trade portal.
- Flower Farm Business Plan: Bed Maps, Stem Pricing and Wholesale With AI — Pricing logic for a grower selling cut stems.
- Garden Centre Marketing Ideas: Plant of the Month Posts With AI — A twelve-month plant calendar, plant cards, post sets and workshop promotions for a garden centre, with AI drafting and your growers checking care claims.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Mailchimp compare-plans page (Free plan limits and scheduling) and Brevo help centre (campaign scheduling); OpenAI help centre custom GPT retirement FAQ and Projects article; Claude help centre Projects article; all checked 5 November 2026. Plant lines, prices and timings are illustrative.