Export eight to twelve weeks of sales by drink from your POS, add what each drink costs you to make, and ask AI to rank every drink by profit per cup and in total. Then have it propose seasonal drinks from ingredients you already stock, price them against your best sellers, and test the menu for four weeks.
The ranking is only as honest as the cost column. Without a cost per cup, AI can only rank by popularity, which shows what customers already buy rather than what earns. Take costs from your recipe cards and supplier invoices, keep staff and customer names out of the file, and check the arithmetic on two drinks by hand before you trust the rest.
Every number below comes from an invented café: one site, two baristas, twelve drinks on the board and ten weeks of sales. Prices are in dollars, costs are per cup, and "margin" means price minus ingredients and packaging, before labour and rent. Swap in your own figures at each step.
Pull the export and strip it before any upload
Ask your POS for sales by item over the last eight to twelve weeks. That is long enough to smooth out quiet Mondays and one-off events, and short enough that the weather and your menu have not shifted much. Leave out weeks when you closed or ran a big promotion, or they will distort the table.
In Square, open the Dashboard, go to Reports, choose the Item sales report and set your filters. Then use the export icon. The gear icon lets you choose between "Export only selected columns" and "Export all columns in your view", and "Start export" downloads a CSV file. Square's own help page on exporting reports lists the steps. Other tills have an equivalent report, usually called sales by item, product mix or items sold. The name changes; the columns you need do not.
Keep five columns: item name, size or variation, quantity sold, net sales, and the week or date. Net sales should be whatever your till defines as sales after discounts and refunds, before tax and tips, so read its definition in the help page. Delete the rest. Staff names, customer names, card details, order numbers and free-text notes add risk and nothing to the analysis. An item summary rarely holds personal data, but a transaction-level export can, so read the header row before the file goes into a chatbot.
Any assistant that accepts a CSV file will do: ChatGPT, Claude or Gemini, on a free plan to start with. The paid personal plans (ChatGPT Plus and Claude Pro both list at $20 a month) matter only if you hit upload or usage limits. As of October 2026, ChatGPT's pricing page marks file uploads and data analysis as "Limited" on its Free plan, so check what yours allows before you start. A sales mix is commercial information, so look in the privacy settings of a personal account for the switch that stops chats being used to train the model, and decide whether to turn it off. If your plan cannot run calculations on an uploaded file, paste the table instead and ask for spreadsheet formulas; the arithmetic then happens in your sheet rather than in the chat.
Clean the file: sizes, add-ons and refunds
Raw exports rarely arrive in a shape you can rank. The same drink appears once per size, a barista typed "flat white" in lower case, oat milk is logged as an item of its own, and a refund shows up as a negative line. Left alone, the AI treats each of these as a separate drink. Here is a slice of an invented raw file, followed by what it should become.
Category,Item,Variation,Qty,Net Sales
Coffee,Flat White,Regular,1684,7578.00
Coffee,flat white,,36,162.00
Coffee,Latte,Regular,1536,6780.50
Coffee,Latte,Large,628,3495.00
Coffee,Latte (refund),,-14,-63.00
Add-ons,Oat milk,,901,450.50
drink,units,net_sales
Flat white,1720,7740.00
Latte,2150,10212.50
Four rules produced the clean version. Merge sizes into one line per drink, so that net sales divided by units gives the average price per cup. Net each refund against the drink it came from. Fix spelling variants. Move add-ons such as oat milk, extra shots and syrups into a small table of their own, because they tell you how many drinks carried a surcharge, not how many drinks you sold.
Then reconcile. Add up units and net sales for the drinks before and after cleaning; once refunds are netted, the two totals must match. If they do not, a row was dropped or counted twice, and every ranking built on the file inherits the error. A file with thousands of rows is better cleaned with a pivot table than by a chatbot reading it line by line, and the clean-messy-data tutorial covers that spreadsheet route.
Put a cost on every cup before asking for a ranking
A cost per cup is the sum of what goes into one drink: coffee, milk, syrups, cup, lid and sleeve. Build it from your recipe cards and your last supplier invoices, not from memory. Divide each ingredient's price by the number of servings it makes. In the invented café, coffee at $26 a kilo with an 18 g dose comes to $0.47, milk at $1.60 a litre with 220 ml in a latte comes to $0.35, and a litre bottle of caramel sauce at $13.30 with 15 ml a serving makes about 66 servings, roughly $0.20 each. Leave labour and rent out; what remains is margin before labour, which is the right figure for comparing drinks with each other.
These are the ingredient costs behind the invented menu. Yours will differ with your suppliers and your recipe quantities.
| Ingredient | Amount per drink | Cost |
|---|---|---|
| Cup, lid and sleeve (blended hot) | one | $0.18 |
| Double espresso | 18 g of coffee | $0.47 |
| Whole milk | 220 ml | $0.35 |
| Oat milk | 175 ml | $0.49 |
| Chai concentrate | 120 ml | $0.55 |
| Chocolate sauce | 30 ml | $0.30 |
| Caramel sauce | 15 ml | $0.20 |
| Brown sugar syrup | 15 ml | $0.12 |
| Honey | 10 ml | $0.15 |
| Whipped cream | 20 g | $0.18 |
| Marshmallows | three | $0.10 |
| Cinnamon | one pinch | $0.02 |
| Sea salt | one pinch | $0.01 |
Three examples show how the table turns into a cost per cup. A latte is the cup ($0.18), a double espresso ($0.47) and 220 ml of milk ($0.35): $1.00. A chai latte is the cup, 120 ml of chai concentrate ($0.55), milk ($0.35) and a pinch of cinnamon ($0.02): $1.10. A hot chocolate is the cup, chocolate sauce ($0.30), milk ($0.35), whipped cream ($0.18) and three marshmallows ($0.10): $1.11.
Start with the drinks that make up most of your sales. A rough cost for a drink that sells twice a day will not change a decision, and you can tighten it later. A blended cup cost keeps things simple if you mix mugs for dine-in with paper cups for takeaway; split it only if your mix is lopsided. When a supplier raises a price, update the table, because every margin downstream moves with it. The coffee shop pricing tutorial goes deeper on per-cup costing if you want a longer treatment.
The ranking prompt, and the table that came back
Paste the cleaned table with the cost column added and give the AI a narrow job. Say which rankings you want, which one you do not, and ask it to show its working so you can check it.
You are helping a café owner. Below is a cleaned drinks table: drink, units sold in 10 weeks, average net price per cup, cost per cup.
1. For each drink work out margin per cup (price minus cost), total margin (margin per cup x units) and margin as a percentage of price.
2. Rank the drinks two ways: by total margin and by margin per cup. Do not rank by percentage.
3. Mark each drink as above or below the menu median for units and above or below the median for margin per cup.
4. Show your working for the three highest-volume drinks so I can check it.
5. Do not recommend removing any drink. Tell me what you cannot know from this table.
drink,units,avg_net_price,cost_per_cup
Latte,2150,4.75,1.00
Flat white,1720,4.50,0.93
Cappuccino,1180,4.50,0.89
Americano,940,3.50,0.65
Filter coffee,760,3.00,0.38
Hot chocolate,640,4.50,1.11
Chai latte,610,5.00,1.10
Mocha,560,5.25,1.33
Tea (pot),520,3.50,0.42
Espresso,300,3.00,0.57
Iced latte,270,5.00,1.14
Matcha latte,240,5.50,1.26
The table below is what came back after two corrections, sorted by total margin. Prices are net sales divided by units; costs come from the cost sheet.
| Drink | Units | Avg price | Cost | Margin per cup | Total margin | Rank: total | Rank: per cup |
|---|---|---|---|---|---|---|---|
| Latte | 2,150 | $4.75 | $1.00 | $3.75 | $8,062.50 | 1 | 5 |
| Flat white | 1,720 | $4.50 | $0.93 | $3.57 | $6,140.40 | 2 | 7 |
| Cappuccino | 1,180 | $4.50 | $0.89 | $3.61 | $4,259.80 | 3 | 6 |
| Americano | 940 | $3.50 | $0.65 | $2.85 | $2,679.00 | 4 | 10 |
| Chai latte | 610 | $5.00 | $1.10 | $3.90 | $2,379.00 | 5 | 3 |
| Mocha | 560 | $5.25 | $1.33 | $3.92 | $2,195.20 | 6 | 2 |
| Hot chocolate | 640 | $4.50 | $1.11 | $3.39 | $2,169.60 | 7 | 8 |
| Filter coffee | 760 | $3.00 | $0.38 | $2.62 | $1,991.20 | 8 | 11 |
| Tea (pot) | 520 | $3.50 | $0.42 | $3.08 | $1,601.60 | 9 | 9 |
| Iced latte | 270 | $5.00 | $1.14 | $3.86 | $1,042.20 | 10 | 4 |
| Matcha latte | 240 | $5.50 | $1.26 | $4.24 | $1,017.60 | 11 | 1 |
| Espresso | 300 | $3.00 | $0.57 | $2.43 | $729.00 | 12 | 12 |
Three things needed fixing before the table was usable.
- The first version ranked by margin percentage, which put tea (88 per cent) and filter coffee (87 per cent) on top. A percentage flatters cheap drinks that earn little per cup, so the prompt now asks for dollars per cup and in total.
- The cappuccino's total showed $4,295.80. By hand, 1,180 cups at $3.61 is $4,259.80, so a digit had been transposed. It was caught only because the third-ranked drink was checked by hand, and a second run with the working shown matched. Check at least two drinks every time.
- It suggested dropping the espresso, which ranks last by total margin. The ranking cannot see that a $3.00 espresso is the daily order of a few loyal regulars. No drink leaves the board on rank alone.
Where a seasonal drink can earn its place
Split the table with two lines: units against the menu median of 625 cups over the ten weeks, and margin per cup against the median of $3.59. That gives four groups, and each suggests a different job for a seasonal drink.
| Margin per cup above $3.59 | Margin per cup below $3.59 | |
|---|---|---|
| Units above 625 | Latte, cappuccino. Protect them and do not discount. | Flat white, americano, filter coffee, hot chocolate. Popular but thin; a pricier variant can lift them. |
| Units below 625 | Chai latte, mocha, iced latte, matcha latte. They earn well and sell slowly, so they are the best base for specials. | Tea (pot), espresso. Leave them alone; there is little to gain. |
This is the menu-engineering grid in small form: stars, plough horses, puzzles and dogs. AI menu engineering covers the full method for a food menu. For a seasonal menu the useful corner is the bottom left: drinks that already earn more than the median per cup but sell slowly. The chai latte and the mocha earn $3.90 and $3.92 a cup and sell roughly 60 a week; a spiced or richer version of either has a better chance of building volume than a brand-new flavour with no history. The popular but thin drinks, flat white and hot chocolate, can host a pricier variant.
Seasonal specials from the shelf you already stock
A seasonal drink built on stock you already hold needs no new supplier, no new storage and no extra training. That is the rule to give the AI, and the way to make it stick is to hand over your actual stock list with a cost per serving instead of asking for "ideas".
I run a café. Propose six seasonal hot drinks for the colder months.
Rules:
- Use only the ingredients in my stock list below. If a drink needs anything else, do not suggest it.
- Each drink must sit beside a drink already on my menu: name it.
- No new equipment; each drink must be possible in under 60 seconds.
- For every drink give: name, build (ingredients and quantities from my list), cost per cup using my cost list, the existing drink it sits beside, and a final column "ingredients not on my list" (write "none" if none).
- Do not suggest prices yet.
Existing menu: latte, flat white, cappuccino, americano, filter coffee, hot chocolate, chai latte, mocha, tea, espresso, iced latte, matcha latte.
Stock list with cost per serving:
cup, lid and sleeve 0.18; double espresso 0.47; whole milk 220 ml 0.35; oat milk 175 ml 0.49; chai concentrate 120 ml 0.55; chocolate sauce 30 ml 0.30; caramel sauce 15 ml 0.20; brown sugar syrup 15 ml 0.12; honey 10 ml 0.15; whipped cream 20 g 0.18; marshmallows x3 0.10; cinnamon pinch 0.02; sea salt pinch 0.01
It proposed six drinks. The last column is the one doing the checking.
| Drink | Sits beside | Cost per cup | Ingredients not on my list |
|---|---|---|---|
| Brown sugar cinnamon latte | Latte | $1.14 | none |
| Honey chai latte | Chai latte | $1.25 | none |
| Salted caramel hot chocolate | Hot chocolate | $1.22 | none |
| Caramel oat flat white | Flat white | $1.34 | none |
| Gingerbread latte | Latte | not costed | gingerbread syrup |
| Pumpkin spice mocha | Mocha | not costed | pumpkin puree, spice blend |
Two were rejected on that column. The gingerbread latte needs a gingerbread syrup, and the pumpkin mocha needs puree and a spice blend. Each would mean a new bottle or tin, somewhere to store it, another allergen line to check and stock that may sit unused once the season ends. The AI had no way of knowing your storage or your ordering habits, which is why the prompt makes it declare anything outside the list. Strike any row where that column says something other than "none".
The four that remain also need a stopwatch. The AI claimed each took under a minute; time them yourself in a quiet hour, because a drink that takes 25 seconds longer than a latte costs you capacity on a Saturday rush. If you are changing the food menu at the same time, building a seasonal menu from your supplier list applies the same idea to dishes.
Pricing the new drinks against the old ones
Three checks set a price without leaving it to the AI's formula. First, a floor: the seasonal drink should earn at least as much per cup as your best seller, here the latte's $3.75, so that every switch from a latte is at worst neutral. Second, a ladder: price it a step above the drink it sits beside; I would start with 50 cents to 75 cents and adjust. Third, endings: round to whatever your board already uses, here quarters.
The AI's first pass priced every drink for an 80 per cent margin, which is cost divided by 0.20 and rounded to the nearest quarter. It looks tidy and ignores the menu around it.
| Drink | Cost | First-pass price | Price set | Margin per cup | Step over base drink |
|---|---|---|---|---|---|
| Brown sugar cinnamon latte | $1.14 | $5.75 | $5.25 | $4.11 | +$0.50 over latte |
| Honey chai latte | $1.25 | $6.25 | $5.50 | $4.25 | +$0.50 over chai latte |
| Salted caramel hot chocolate | $1.22 | $6.00 | $5.25 | $4.03 | +$0.75 over hot chocolate |
| Caramel oat flat white | $1.34 | $6.75 | $5.25 | $3.91 | +$0.75 over flat white |
A $6.25 honey chai would sit $1.25 above the plain chai at $5.00, and a $6.75 oat flat white would be the dearest drink on the board by $1.25. Customers compare a seasonal drink with the one they usually order, not with your cost sheet. The prices set instead all clear the $3.75 floor and stay within 75 cents of their base drink. They are a starting point; the test below is how you find out whether your customers agree.
The four-week test: what to record each week
Run all four drinks together for four weeks and change nothing else: no other new items, no price changes elsewhere, no new promotions. Put the seasonal drinks at the top of the board and ask the team to offer one to anyone ordering its base drink. Without that, a quiet drink is often a drink nobody mentioned.
Each week, pull the same Item sales report and note two numbers for each seasonal drink: its own units and the units of the existing drink beside it. The second number is how you spot a new drink that only moves sales from one cup to another. The invented weekly figures below show seasonal units with the neighbouring drink's units in brackets. Before launch, the ten-week averages for those neighbours were 215 lattes, 61 chai lattes, 64 hot chocolates and 172 flat whites a week.
| Week | Brown sugar cinnamon latte (latte) | Honey chai latte (chai latte) | Salted caramel hot chocolate (hot chocolate) | Caramel oat flat white (flat white) |
|---|---|---|---|---|
| 1 | 70 (196) | 40 (52) | 44 (58) | 24 (168) |
| 2 | 64 (190) | 36 (50) | 36 (54) | 19 (166) |
| 3 | 60 (187) | 31 (48) | 29 (52) | 16 (165) |
| 4 | 62 (183) | 29 (46) | 26 (50) | 14 (163) |
Expect a novelty bump. Every drink in the table sold best in week one and settled afterwards, so weeks three and four are the fairer read of what a drink does in a normal week.
Testing a price on one drink
The honey chai sold at $5.50 in weeks one and two and at $5.75 in weeks three and four. Comparing its raw units across those weeks would be unfair, because every new drink fades. The brown sugar latte stayed at $5.25 throughout, so it acts as the control: if the chai sells fewer cups relative to it after the rise, the price is probably the reason.
In weeks one and two the chai sold 76 cups against the latte's 134, a ratio of 0.57. In weeks three and four it sold 60 against 122, a ratio of 0.49, which is 13 per cent lower. The price rose 4.5 per cent, and the margin per cup went from $4.25 to $4.50, up about 6 per cent. Multiply the two effects: 0.87 times 1.06 is about 0.92, so the dearer price earned roughly 8 per cent less a week from that drink. It goes back to $5.50. These counts are small, so treat a gap like this as a strong hint rather than proof, and rerun the comparison next season with the order swapped.
Scoring the four weeks: net margin after cannibalisation
Cannibalisation is when a new product wins its sales by taking them from an existing one. A seasonal drink that sells 60 a week looks like a success until you notice the latte lost 30. The honest score is the margin the new drink adds minus the margin the old drink lost. For the brown sugar latte in weeks three and four, that is 61 cups a week at $4.11, which is $251, minus 30 fewer lattes at $3.75, which is $113: a net gain of about $138 a week.
The same sum for each drink gives the scoreboard. The "lost" column assumes the drop in the neighbouring drink is down to the new one, which is a rough proxy, because weather and footfall move too.
| Drink | Units a week (weeks 3 and 4) | Margin added | Neighbour's lost units | Margin lost | Net a week | Week 4 as share of week 1 |
|---|---|---|---|---|---|---|
| Brown sugar cinnamon latte | 61 | $251 | 30 lattes | $113 | +$138 | 89% |
| Honey chai latte (at $5.75) | 30 | $135 | 14 chai lattes | $55 | +$80 | 73% |
| Salted caramel hot chocolate | 27.5 | $111 | 13 hot chocolates | $44 | +$67 | 59% |
| Caramel oat flat white | 15 | $59 | 8 flat whites | $29 | +$30 | 58% |
My bar for keeping a drink is a net gain of at least $50 a week, week-four sales of at least half of week one, a prep time under a minute and no extra waste. Your bar depends on your size; set it before the test so you are not tempted to move it afterwards. On those rules the brown sugar latte stays, the honey chai stays at $5.50, and the salted caramel hot chocolate stays while the cold weather lasts, though at 59 per cent of its first-week sales it is the one to watch. The caramel oat flat white nets about $30 a week, below the bar, so it goes. Caramel can stay on the shelf as a 50-cent syrup add-on to any flat white.
Across the four drinks the invented café gained about $315 a week over its baseline in weeks three and four. That is not a forecast for any other café, and nobody should read it as one. What to copy is the method: the same export, the same sum, and a bar set before the test. If you want to test price moves on a wider menu, testing a menu price rise dish by dish sets out the same approach for food.
Allergens and board wording: who signs off a new drink
New syrups, sauces and milks change what a drink contains, and the AI cannot see your supplier labels. Let it draft the "contains" line from the supplier specification sheets you paste in, then read the labels on the actual bottles yourself, because products change without announcement. Check three things before the drinks go on the board: the allergens in every ingredient, the cross-contact risk from shared steam wands and jugs, and whether staff can answer "what's in it?" without guessing.
For the invented menu, the brown sugar cinnamon latte contains milk, with an oat option. The salted caramel hot chocolate contains milk, and the caramel sauce and chocolate sauce labels may list further allergens that only a person reading them will catch. The honey chai uses a concentrate whose label lists the spices and the sweetener. A board line can then read: "Brown sugar cinnamon latte: espresso, steamed milk, brown sugar syrup, cinnamon. Contains milk. Oat milk on request." Ask the AI to draft that style of line for every drink, and add the allergen words yourself.
A wider routine for printed menus and dietary icons is in the tutorial on allergen icons and dietary labels before you print. Whatever the AI drafts, the person who signs off the allergen line is you or your manager, and the same rule applies to the daily specials chalked on a board.
Running it again next season in about an hour
Keep a one-sheet ledger with one row per drink per season: launch price, cost, units a week in weeks three and four, net weekly margin and the decision. Next season the AI gets last season's ledger alongside the new export, and its proposals start from what you already know worked. The ledger is also how you spot drinks that were quietly kept long after they stopped earning.
Plan the routine in blocks. Exporting and cleaning the file takes about 15 minutes once you have done it before; refreshing the cost table for price moves, 15; the ranking, 10; proposing and costing six drinks from stock, 15; and pricing and planning the test, 10. That is about an hour, then a few minutes a week to pull the Item sales report. Start six weeks before the season so the test finishes before the busiest weeks.
Questions café owners ask before uploading sales data
Is it safe to upload my POS export to a chatbot?
An item summary shows what you sold, not who bought it, so the main risk is stray columns. Remove staff names, customer names, order numbers and notes before uploading. Your sales mix is still commercial information: on a personal ChatGPT or Claude account, check the privacy setting that controls whether chats train the model, and consider a business plan if several people will use it.
How many weeks of sales should I export?
Eight to twelve weeks suits most cafés. That covers every weekday several times and smooths out one-off events. Drop weeks when you closed or ran a big promotion. If the season has turned sharply, add the same weeks from last year so the AI sees what changes between seasons rather than treating autumn like summer.
What if my POS can't export sales by item?
Export the transaction-level file instead and ask the AI to write a pivot table or formula that totals units and net sales per item. Run that in your spreadsheet rather than asking the chatbot to add up thousands of rows itself. Then compare the grand total with your till's daily summaries; a mismatch means rows were lost.
Can AI predict what will sell this season?
It can suggest flavours that suit the season and rank your past drinks, but it cannot forecast how your customers will react to something new, because your sales history has no data on drinks you have never sold. That is why the four-week test, with a control drink and a keep-or-drop bar set in advance, is the part that tells you what to keep.
Should I drop my weakest drinks when seasonal ones arrive?
Only if the board is crowded or the bar is slowing down. Weak sellers that cost little and share ingredients, such as tea or filter coffee, rarely do harm. Retire a drink when it ranks low on both volume and margin per cup, nobody asks for it, and it needs a stock item that nothing else uses.
Further reads
- How Cafés Use AI to Fill Quiet Hours With Targeted Offers — Fill the slow hours once the new drinks are on the board.
- How Can a Coffee Shop Use AI? Start With Supplier Prices — Keep the cost column current as supplier prices move.
- Coffee Shop Inventory With AI: Ordering Milk, Beans and Pastries — Order milk, syrups and beans for the new menu without over-buying.
- How to Check Your Margins Product by Product With AI — Run the same margin check across your food and retail lines.
- Can a Small Cafe Use AI to Bring In More Regulars? — Turn the seasonal menu into reasons for regulars to return.
- ChatGPT Prompts for Coffee Shop Owners: 10 for Menus, Posts, Rotas — More prompts for menu boards, posts and rotas.
- How to Write Menu Descriptions With AI That Still Sound Like You — Board descriptions for the new drinks that still sound like you.
- Kiosks AI for Cafés and Takeaways: Self-Service Ordering Costs — Hardware, software fees, menu set-up and a break-even sum for a self-service kiosk, plus the cases where a person at the counter still wins.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Square's help page on printing and exporting reports (Reports, Item sales, export icon, selected columns, CSV download) and the ChatGPT and Claude pricing pages (Plus and Pro at $20 a month; Free plan upload limits), checked October 2026. The café, its costs, prices and test results are invented for illustration.