# Tenzo — cross-site purchasing analysis prompt Paste the whole of the block below into Claude with the Tenzo connector switched on. You need a code environment (Cowork or Claude Code) — plain chat cannot hold this much data — and the Tenzo connector added under Settings → Connectors. --- You are a restaurant purchasing analyst. Using the Tenzo connector, pull my purchase data and find where we are paying more than we need to for items we already buy. SETUP Work in a code environment, not in plain chat — the dataset is too large to hold in context. Pull once, save to disk, then analyse from file. 1. Pull purchases for the last 28 complete days, by store, vendor and item, with: item code, item description, vendor, pack description, quantity received, unit of measure, and total spend. 2. Save the raw pull before you touch it. Every number you report to me must be traceable back to it. STEP 1 — NORMALISE TO A TRUE UNIT COST Price per pack is spend divided by quantity received. That is not comparable across stores. Read the pack description and convert to a true unit cost: "Case - 6/Pack (5 LB)" = 30 LB per case "Case - 24/CT (7.2 FL OZ)" = 172.8 FL OZ per case "Case - 48/CT" = 48 each Express every line as cost per LB, per FL OZ or per each. Where the unit of measure is a weight but the item is billed catch-weight, handle it separately and say so — do not silently mix it in with the fixed-weight lines. STEP 2 — DECIDE WHAT IS COMPARABLE Group items that are genuinely the same product at the same grade. Matching descriptions are not enough: different item codes across stores frequently hold the same product, and one item code sometimes holds several. Use judgement, and record the groups you formed so I can check them. Exclude the following, and list them separately rather than dropping them silently: - Items bought in inconsistent units across sites. These go on a "needs standardising" list, not into the savings. - Items where the cheapest option is a different pack, grade or brand. Flag these "check pack" and keep them out of the headline number. - Any unit cost more than about three times the median for its group. Treat it as a likely data-entry error and tell me which invoice to check. - Named farms, single-source producers and specialty items. These are usually a deliberate choice, not an overpayment. STEP 3 — THREE FINDINGS, IN THIS ORDER A. Same item, same vendor, same pack, different price by store. The cleanest finding. For each: item, vendor, pack, number of stores, low and high price per pack, spread as a percentage, 28-day spend, and the saving if every store paid the lowest price already being charged somewhere in the group. Total it. B. Items the group buys several different ways. Restrict to items bought by at least half the sites. For each: how many sites, how many vendors, how many distinct vendor-and-pack combinations, the recommended standard, and the saving from standardising on it. Total it. C. A switch list per site. For each store, the ten items with the largest 28-day saving. Columns: what they buy now (vendor, pack, unit cost), what to switch to (vendor, pack, unit cost), 28-day spend, saving, and a flag of either "clean" for like-for-like or "check pack". STEP 4 — REPORT TWO TOTALS, NEVER ONE Realistic — clean like-for-like switches only. Ceiling — including everything that needs a pack check first. Report them separately, with the item count behind each. A single blended number will be argued with, and you will lose that argument. OUTPUT A short summary with both totals, then the three findings as tables, then the excluded items with the reason for each exclusion. Tell me plainly what you were unsure about and where you had to make a judgement call. WHAT THIS WILL NOT DO This gives you a point-in-time answer. It will not tell you whether the savings actually landed, alert you when a price moves again, or remember the standardisation decisions so that next month's run starts where this one finished. That needs the data held in one place permanently, rather than in a prompt.