Customer Stories

What retailers found once the data was talking.

Each one started with a routine question and ended somewhere nobody expected.

Hours of Manual Invoice Work, Replaced by Minutes

We used to spend hours processing each invoice. Now Winston handles the repetitive work automatically, and the rules we set once carry forward to every invoice.

Dana, Perfect Union
#inventory
Alex
Alex9:01 AM

Hey Winston, attached is the invoice from Sierra Valley Distributors. Can you process it and stage everything for review?

PDF

sierra_valley_invoice_apr20.pdf

2.4 MB

Winston
Winston9:01 AM

On it — parsing the invoice now...

The Problem

Processing a single distributor invoice meant manual data entry into the POS, cross-referencing state traceability labels by hand, creating new product SKUs one at a time, and double-checking pricing and brand names before submission. A single invoice with a handful of new products could eat 20 to 30 minutes of focused work. And with multiple deliveries a week across one location, that added up to hours of manual entry every week, all of it repetitive and all of it prone to mistyped SKUs or mismatched labels.

The Solution

Drop the invoice PDF in, and Winston extracts every line item, validates each package label against the state traceability system, aligns line items against the delivery manifest, matches existing products already in the catalog, and flags anything new that needs to be created. The reviewer checks the results on a dashboard, makes corrections in plain English if anything needs adjusting, and Winston handles the rest: creating new products with correct naming and pricing, setting SKU details to match traceability labels, and submitting the invoice directly to the POS. Rules set once during review (how prices should display, what to hide from the menu, how brand names should be formatted) are saved permanently and applied automatically to every invoice after that, so accuracy improves with each run instead of requiring the same corrections twice.

Invoices that took 20 to 30 minutes now process in under 3 minutes.

From Invisible Products to Search-Ready Listings

The SEO impact was immediate. Products that had almost nothing for search engines to index now have the descriptions, attributes, and images needed to actually be discovered.

Beleaf

Before

Blue Dream 3.5g

$38.00

No description. No attributes. No image.

After enrichment

Approved

Blue Dream 3.5g

Flower · Sativa-dominant hybrid

A sativa-leaning hybrid with a bright citrus nose over resinous pine. Even and clear headed, it suits daytime use without heaviness.

Aroma
CitrusPineEarth
Effects
RelaxedFocusedUplifted
THC22.4%·CBD 0.1%

Reviewed and approved, then pushed to every location at once.

The Problem

An online menu is a dispensary's digital storefront, but hundreds of products sat in the catalog with missing or generic descriptions, no aroma or effect attributes, and no product images. A shopper browsing the menu saw a strain name and a price and nothing else: no context on what the product actually felt like, tasted like, or was good for. Search engines fared even worse: with almost nothing on the page to index beyond a name, those product pages were functionally invisible to search, no matter how good the underlying product was.

Even if the team had cleared the backlog manually, the problem would have started rebuilding immediately. New products land in the catalog every week, each one launching with the same blank slate (no description, no attributes, no image) until someone got around to it. The team knew enrichment mattered and had known it for a while, but manually writing descriptions and sourcing compliant images for hundreds of SKUs one at a time, on an ongoing basis, was never going to happen. Not with a team already stretched across day-to-day operations.

The Solution

Winston's enrichment pipeline runs across the full catalog or a targeted subset, product by product. For each one, it pulls structured data (aromas, effects, flavors, ingredients), cross-references brand-published descriptions, and sources images from approved vendor and brand sources rather than pulling from anywhere on the open web. Nothing goes live automatically: every suggested description, attribute, and image passes through a human review dashboard first, where the team can approve, edit, or reject each one. Only after sign-off do approved enrichments push directly to the POS, updating descriptions, attributes, and images across every location at once. No re-entering the same content store by store.

Product pages went from a strain name and a price to full descriptions with attributes and images, giving search engines something real to index for the first time, and giving shoppers enough context to actually make a decision on the menu instead of guessing.

Six Figures Saved. Tens of Thousands in Misallocated Spend Found. All From One Analysis.

We thought a bigger discount would drive more repeat visits. Instead, customers who received the promo were coming back less, and we found tens of thousands of dollars in spend going to the wrong place.

Paul R, Purple Lotus

Promo program review

What the discount was actually doing

Six figures

planned spend increase stopped before a dollar was committed

Tens of thousands of dollars

in misallocated discount spend identified

Three things nobody knew going in

  • Flagship promo leakingA large share of redemptions fired outside the rules the promo was meant to follow.
  • Retention cliff untargetedThe steepest drop-off in the visit curve was not where the program was aimed.
  • The discount ran backwardsCustomers who received it returned less often than customers who did not.

The assumption going in was that deeper discounts drive more repeat visits. The data said the opposite.

The Problem

A retailer ran a visit-based loyalty discount program and wanted to know if it was actually working, and whether it made sense to make it more aggressive. The assumption going in was simple: deeper discounts would drive more repeat visits, so scaling the program up should scale up retention with it. Nobody had actually tested that assumption against the underlying sales and customer data. The team was on the verge of committing a significant budget increase based on that assumption alone, with no baseline to confirm it was true and no plan to check whether the current version of the program was even working as designed.

The Solution

Winston pulled the full discount and retention picture from the sales data and modeled the alternatives before any budget decision got made. It quantified what the promo program actually cost across the full period, checked whether each discount was firing correctly against the rules it was supposed to follow, and mapped the customer retention curve visit by visit to see exactly where customers were dropping off. Most importantly, it built a counterfactual comparing return rates of customers who received a discount against customers who did not. That single comparison surfaced three things the team had not known going in: a flagship promo that was leaking badly, with a large share of its redemptions firing outside its intended rules, a steep retention cliff the program was not even targeting, and a discount that correlated with worse repeat-visit behavior rather than better.

Stopped a planned spend increase in the six figures with no measurable ROI, and identified tens of thousands of dollars in misallocated discount spend from broken promo rules.

A Week of Vendor Credit Work. One Pass. Ready Drafts You Just Review.

We used to spend the better part of a week pulling together reports that we need to send per vendor, whether that was purchase orders or vendor credit reports. Winston now hands us the ready drafts with the trail assembled. We just review it.

Mike Allarea, Director of Operations, Perfect Union
 ABCD
1BrandDeal nameReimbRedeem
2KivaKiva BOGO Weekend50%1,284
3HabitatHabitat Everyday20%0
4JettyJetty 25% Tuesday25%612
5JettyJetty Prerolls 25% Tuesday25%612
6Hit ItHit It Launch Promo15%0
7Dime BagDime Bag 25%25%0
8StiiizyStiiizy Pod Bundle30%947
9Raw GardenRaw Garden Live Resin20%1,102

3 brands with zero redemption data. Flagged before running a single report.

Renamed mid-month. Jetty 25% Tuesday and Jetty Prerolls 25% Tuesday overlap.

The Problem

Mike Allarea, Director of Operations at Perfect Union, tried the obvious route first. His team gave leading AI models, ChatGPT and Claude among them, access to their business data and hit a wall fast. The models could answer questions about the business. They could not do the actual work.

Vendor credits show why. Every month a retailer has to find every active promotion, calculate reimbursement percentages, pull sales data brand by brand, and build a report per deal by hand. The evidence is never in one place: promo allowances, quality claims and approvals sit across dozens of vendors, buried in separate email threads. An accurate set can take anywhere from a full day to the better part of a week, and every day it slips is a reimbursement window missed and cash sitting with the vendor.

The Solution

The retailer keeps one spreadsheet of active deals. Winston reads it, cross-checks every entry against live sales data, flags anomalies (zero-redemption promos, renamed or overlapping deals) before generating anything, and drafts a formatted report per deal with the scattered email trail assembled alongside it. Nothing goes out on its own: the draft reaches the brand only once the retailer approves it. Update the sheet and the next run reflects it. No code, no rebuild.

The same pass reads how each brand is actually performing and suggests what the vendor and the retailer can each do to sell through faster and simplify the next re-order.

48 reimbursement reports generated in one pass in just 5 minutes, and a week of per-vendor report assembly reduced to reviewing drafts Winston has already built.

We keep our current deals in one Google Sheet, and Winston does the rest: cross-checking the sales data and generating all 48 reports without the manual work.

Swish Cannabis

18% Above Market, and $1,186 in Price Gaps Hiding in Plain Sight

We had no idea how far our pricing had drifted, until we saw out-the-door prices side by side. That's when we knew exactly where we were losing customers, and where to leave margins alone.

Multi-store operator, San Jose, CA

Same product, different price

Identical SKUs, minutes away

Fuzzy-matched identical products: same brand, size, form factor and name tokens across differently-formatted menus. 11 of 17 stores post tax-included prices and the rest add about 40% at the register, so every figure here is out-the-door.

Out-the-door spread, matched pre-rolls

  • Blueberry Muffin 1g Infused Pre-roll+457%

    explicit · Pre-rolls · 1g

  • PINK ACAI 1G 40's Infused Preroll+264%

    stiiizy · Pre-rolls · 1g

  • Birdies | Classic Indica | Joint | 0.7g each | 10pk+197%

    birdies · Pre-rolls · 7g

  • Cosmic Crasher | Minis | 0.5g each | 5pk+178%

    dime bag · Pre-rolls · 2.5g

  • Strawberry Banana 1g Infused Pre-roll+139%

    explicit · Pre-rolls · 1g

+ 3 more matched pre-rolls, from +129% down to +35%

Light mark is the cheapest store, dark is the priciest. Bar length is how far above the cheapest that store sits, for the same product.

Price index vs market median

72 · deep discount100 · median118 · premium

This operator sat at 118 on their bestselling basket — 18% above the market median, while assuming they were the value play.

$46 median spread on matched SKUs · $1,186 widest gap inside a single category.

The Problem

Comparing menu prices across a market sounds simple until you actually try it. Most nearby stores don't post tax-included prices, so raw menu prices aren't comparable at all. The real out-the-door price, the number a customer actually pays at the register, was invisible without a lot of manual work, and even then the same product gets listed under different names at different stores, making an apples-to-apples comparison nearly impossible to do by hand.

The Solution

Winston normalized every nearby competitor's menu onto a single tax-included, out-the-door basis, then matched identical products (same brand, size, and form factor) across stores that each named them differently. Once every listing sat on the same basis, the picture became unambiguous. Stores within 15 miles were selling identical products at wildly different out-the-door prices, with a median spread of $46 on matched SKUs and a gap as high as $1,186 in categories like Wellness and Vapes. The retailer, who had assumed they were competitively priced, was actually 18% above market on their bestselling basket, margin leakage they had been carrying for months without seeing it.

Repriced surgically by category instead of cutting across the board, protecting margin where they had room and competing hard only where the data showed they were losing.

$21M in Revenue the Loyalty Platform Couldn't See: Closing the Gap Between POS and Marketing Data

Two-thirds of our buying customers weren't even on our marketing team's radar, including the ones spending the most. Connecting POS data to our loyalty system found us $21 million sitting right under our noses.

Beleaf

The loyalty gap

Active buyers, split by loyalty enrollment

118,000+ active buyers. Two-thirds have no loyalty account — and the gap is worst exactly where it costs the most.

Enrollment

Not enrolled~76,70065%
Enrolled~41,30035%

$36.3M invisible to marketing — and $11.7M of it comes from power users, 5% of the group driving 32% of its revenue.

What came back

Contacts recovered25,830
High-value among them7,700
Revenue now reachable$21M

The Problem

A marketing team asked a simple question: how many of our active customers don't have a loyalty account? The answer stopped the room. Of more than 118,000 active buyers, 65% were completely invisible to the loyalty provider, representing $36.3M in annual revenue with zero connection to any retention or marketing program. The gap wasn't spread evenly either, which made it worse: the highest-value shoppers, the ones buying 36 or more times a year, made up just 5% of that group but drove 32% of the revenue. The business's best customers had no relationship with marketing at all.

The Solution

Rather than treating point-of-sale data and loyalty/CRM data as separate systems, Winston cross-referenced purchase history against the same customer records to surface emails already on file, including for shoppers who had never formally enrolled in loyalty. After deduplicating multi-store accounts and scrubbing placeholder or invalid addresses, that produced a clean list of real, sendable contacts, with a meaningful share of them high-frequency shoppers worth a combined $21M in revenue. The same analysis explained why the gap mattered in the first place: loyalty-enrolled customers already outspend non-enrolled customers in every single frequency bucket, and email engagement climbs right alongside purchase frequency, proof that the two data sets reinforce each other and simply weren't sitting in the same place.

Surfaced ~25,830 real, sendable contacts, including roughly 7,700 high-value shoppers worth a combined $21M in revenue, all invisible to the loyalty platform on their own.

GET EARLY ACCESS

We're onboarding new stores now. Join the waitlist and we'll be in touch.

Questions? Talk to our team