LS Logan Schiller Systems, data, and business execution
Flagship case study Retail operations · POS data · inventory intelligence · owner-ready decisions
Retail Intelligence — Case Study
Lightspeed POS · Xero · 2023–2026 YTD
Small business · seasonal tourist retail

The report said sales were fine.
The data said act now.

Four years of messy Lightspeed exports from an independent Northwoods gift shop, turned into owner-ready intelligence — what to buy, what to clear, when to staff, and what the POS quietly leaves out.

AI-assisted analysisretail operations inventory intelligencePOS datadecision support
The shop's year, in one line
A 6× swing from January to July
Jan · index 32Jul · index 198
~37%
of revenue carries
no category tag
~58%
of inventory cash
is frozen / dead
~87%
of sales land in a
six-hour window
5.8×
more profit per $ from
local art vs. furniture
01 — Project snapshot

A real shop. Real exports. Real decisions.

Business
Independent boutique gift & home-goods store
Market
Highly seasonal lake-country tourist town, northern Minnesota
Data source
Lightspeed POS exports — sales, products, hourly, monthly
Work type
Data analysis · inventory diagnostics · operating-insight design
Output
Owner-ready insight layer + daily briefing prototype
Span analyzed
2023 launch → 2026 year-to-date (through May; early June partial)
Privacy note. Every figure here is anonymized — normalized indices, percentile ranks, shares and ratios. No exact revenue, profit, inventory cost, vendor or product name is shown; product labels are grouped families, not individual SKUs.
02 — The problem

The shop had data. It didn't have decision intelligence.

Lightspeed answers what happened. It stays quiet on the harder questions: which dollars are working, which are stuck, where a small team should point its attention, and what to buy months before the summer crowd arrives. The owner already knows the customers, the taste and the vendors. The missing layer was interpretation, prioritization, and a clear next action.

What the POS shows

Flat reports

  • Revenue by month, and by hour
  • Units sold and quantity on hand
  • Category sales — where a category exists
  • One number per metric, no priority
  • No view of the cash trapped in stock
What the intelligence layer adds

Ranked decisions

  • Which families return the most profit per inventory dollar
  • Exactly which stock is frozen, and how much
  • When to protect the floor vs. do back-office work
  • Calendar-adjusted reads on whether a "decline" is real
  • A daily, one-screen brief instead of digging through reports
03 — The data used

Five export shapes, each answering a different question.

Every file was schema-inspected before analysis — column names, real date ranges, completeness, and known messiness (grouped cards, custom SKUs, untagged categories). The 2026 files run year-to-date, so they're labelled and handled as partial.

monthly ×4

Monthly revenue summaries

One row per year, twelve months wide, plus margin. Used to build the seasonal curve and year-over-year reads.

2023–2026complete · 2026 YTD
hourly ×4

Hourly revenue summaries

Revenue by hour-of-day per year. Drives the time-of-day concentration and staffing-attention windows.

24 hour-bucketsstable across years
product master

Product master report

~2,135 SKUs with cost, margin, on-hand, created and last-sale dates. The backbone of inventory risk.

26 columns~37% untagged
item × year

Item count by year

Units per SKU for 2025 and 2026 YTD, plus lifetime totals. Used for repeatability and consistency.

2025 & 2026 colscross-year
sales lines

Transaction export

~1,000 receipts of line-level detail (a 67-day spring window). Used for basket size and card attach rate.

Mar–Jun 2026short window

A note on messiness

Cards are often rung under broad or custom SKUs, so any single view understates them. Insights here are built to survive imperfect tagging — they lean on families and ratios, not perfect SKU precision.

04 — Analysis workflow

From raw export to a decision on the floor.

A repeatable pipeline, not a one-off. Each stage takes a defined input, does one job, and hands the next stage something more decision-shaped than it received.

01

Raw exports

Input10 Lightspeed CSVs
DoesSchema check; real date ranges
Hands offTrusted, typed tables
02

Clean & group

InputTyped tables
DoesFamily tagging; flag untagged; never-sold catch
Hands offFamily + risk fields
03

Ask the question

InputOwner's real choices
DoesFrame as buy / clear / staff / price
Hands offA specific metric to compute
04

Analyse

InputCleaned data + question
DoesIndices, GMROI, velocity, attach, staleness
Hands offRanked, anonymized findings
05

Decide

InputFindings
DoesInsight cards + daily brief
Hands offOne next action
05 — Key insights

What the owner should know that the POS won't say.

01

Roughly three in five inventory dollars are sitting still — and furniture is the biggest trap.

Reading last-sale and never-sold together (not just on-hand counts) exposes capital that standard reports leave invisible. Furniture is the largest revenue line, yet almost none of its cash is moving.

Frozen inventory cash
~58%of stock cost is dead or never-sold (non-seasonal)
Never sold a single unit
324SKUs bought but never rung once
Furniture
~90%of furniture cash is dead; it is 38% of all frozen capital
Do
Rank dead stock by frozen dollars, run a clearance on the top never-sold furniture pieces, and stop reordering the lines that have never sold. Freeing this cash is the single highest-leverage move before summer buying.
02

The real profit engine is the local-creative line, not the big-ticket furniture.

Ranking families by gross profit per inventory dollar (a GMROI lens) flips the apparent hierarchy. Small, fast, high-margin paper and local art quietly out-earn the showroom pieces on every dollar tied up.

Profit per inventory $
5.8×local art & framing vs. furniture's 1.3×
Card traffic
~1 in 4spring baskets contain a card; 64% also add other items
Furniture is one-off
1.1%of sale-count, yet ~15% of revenue — rare big tickets
Do
Shift open-to-buy toward cards, prints, watercolor and local goods; merchandise them at the entry and register; and build a deliberate card cross-sell. This is where reinvested furniture cash earns the most.
03

Summer is about 40% of the whole year — and July alone runs nearly double an average month.

In a lake-country tourist town, demand is front-loaded into a few months, but the buying that feeds it happens in late winter and spring. The curve is the buying calendar.

Summer share (Jun–Aug)
~40%of annual revenue in three months
July index
198vs. an average month of 100
January index
32the cash-tight trough to plan around
Do
Commit the summer order book by spring, protect winter cash, and pre-plan the fall-transition markdown so seasonal stock doesn't carry into the slow months.
04

Almost nine in ten sales dollars land between 10am and 4pm — half in just three hours.

The hourly signature is remarkably stable across all four years, which makes it safe to plan around. It tells you exactly when to be on the floor and when to do everything else.

10am–4pm window
~87%of daily revenue, every year
11am–2pm core
~50%of the day in three hours
Before 10am / after 5pm
<5%combined — the back-office window
Do
Schedule full floor coverage for 11am–2pm and protect the owner's customer-facing time there. Push receiving, markdowns, reorders and vendor calls into the quiet early and late hours.
05

The "spring decline" mostly wasn't real — and 37% untagged revenue is hiding the truth.

A headline year-over-year dip looked like trouble. Splitting it by month and adjusting for an Easter shift shows a strong early year, not a slump — the kind of read the raw report can't give you.

Jan–May 2026 vs 2025
−4.5%the alarming headline number
But Jan–Mar
+12 / +14 / +44%actually up; the drop is all in April (Easter moved earlier)
Revenue with no category
~37%untagged — blurring every category decision
Do
Judge trends on calendar-adjusted windows (combine March + April), not raw month-over-month. Then close the tagging gap so category-level buying and merchandising rest on trustworthy numbers.
06 — Visual evidence

The story, in pictures an owner can act on.

Each visual answers a specific operating question. The palette does the talking: spruce green = alive & efficient, lake-slate = frozen capital, amber = peak / attention.

The seasonal pulse

Monthly sales index (100 = an average month), averaged across the two full years, with each year drawn behind to show how stable the shape is.

2-year average 2024 / 2025 individual July peak January trough

The seasonal operating calendar

The same index, read as a year of operating modes — when to buy, build, sell hard, and clear.

JAN
32
FEB
34
MAR
38
APR
55
MAY
106
JUN
118
JUL
198
AUG
161
SEP
87
OCT
107
NOV
146
DEC
119
Winter · Jan–MarCash tight (~9% of year). Protect runway; markdown leftovers.
Spring prep · Apr–MayBuy now. Summer order book must be committed here.
Summer peak · Jun–Aug~40% of the year. Sell, restock fast, all hands on the floor.
Fall transition · Sep–OctClear seasonal; pivot to holiday. Plan markdowns early.
Holiday · Nov–DecSecond peak (~22%). Cards & gifts carry the floor.

Hourly sales heatmap

Revenue intensity by hour (each year normalized so its peak hour = 100). The boxed band is the 10am–4pm window that carries ~87% of the day. Hover any cell.

quiet building peak Consistent shape across 2023–2026 = safe to staff around.

Time-of-day focus

Three blocks, three jobs. Match attention to where the money actually is.

Open – 10am · after 5pm

Back-office window

Receiving, markdowns, reorder work, vendor calls, merchandising resets. Almost no customers to lose.

11am – 2pm

Protect the floor

Half the day in three hours. Full coverage; owner customer-facing; no meetings or back-room tasks.

10am – 4pm

The selling day

The whole engine. Keep the entry and register staffed and the high-margin families well-stocked.

Inventory risk matrix

Representative SKUs plotted by sales velocity (x) against capital exposure (y), both as 0–100 percentile indices. Color = the verdict. Hover any point.

dead / cash trap watch list healthy seller reorder candidate

Inventory risk table

The matrix as a worklist — anonymized family groups, their indices, the staleness signal, and the owner action.

Item groupVelocityExposureLast movementRiskOwner action
Furniture group 1
10
100
never solddeadLiquidate; stop reorder
Furniture group 2
10
100
never solddeadLiquidate; stop reorder
Furniture group 3
10
100
never solddeadLiquidate; stop reorder
Uncategorized group 1
10
99
never solddeadTag, then clear
Seasonal group 1
10
99
never soldwatchCap reorder; hold for season
Kitchen group 1
98
98
activehealthyProtect & feature
Cards group 1
99
88
activehealthyProtect; cross-sell anchor
Jewelry group 1
97
90
activehealthyProtect & feature
Art / Framing group 1
100
50
activereorderReorder before peak
Uncategorized group 3
100
39
activereorderTag, then reorder

Where the cash earns — profit vs. capital tied up

For each family: slate dot = its share of inventory cash, green dot = its share of gross profit. Green to the right of slate means it earns more than it ties up. The ratio on the right is profit per inventory dollar.

share of inventory cash share of gross profit Cards are even more efficient (~7.4×) but barely tracked — see note.

From POS report to operating decision

The same numbers, re-read. The value isn't replacing Lightspeed — it's the interpretation layer on top of it.

POS
"Furniture is a top revenue category."
POS
"Greeting cards: low revenue line."
POS
"Sales by hour: a total per bucket."
POS
"Spring revenue down 4.5%."
POS
"On-hand quantity by SKU."
Intelligence
...but it ties up ~25% of cash at ~90% dead. Clear it, redeploy the dollars.
Intelligence
...yet they're in ~1 in 4 baskets and earn ~7× per inventory dollar. Anchor cross-sell.
Intelligence
...11am–2pm is half the day. Staff the floor; batch back-office work off-peak.
Intelligence
...but Jan–Mar were up double digits; it's an Easter shift, not a slump.
Intelligence
...324 of those SKUs have never sold. Stop reordering; mark down to recover cash.
07 — Daily briefing prototype

One screen, every morning, instead of digging through reports.

A designed prototype built on the real analysis logic above. It is not an automated daily send — it shows what a one-glance owner brief would contain, with anonymized examples.

Owner Daily Briefing
Mid-June · climbing into peak season
Prototype
Yesterday
Sales index 112 vs. a typical day's 100. Card & local-art families led; basket count ran a touch above the spring norm.
Today in history
This week historically runs ~1.4× an average week — the climb into July. Keep the fast movers stocked.
Smart reorder watch
Local art & framing — velocity index near the top, only ~4 days of cover. Reorder before the July peak.
Dead inventory spotlight
Furniture — ~90% of its inventory cash hasn't moved in 180+ days. Pull 2–3 pieces to the entry and tag for clearance.
Seasonal reminder
Summer is ~40% of the year. The open-to-buy for the creative engine should already be committed.
Time-of-day focus
Protect 11am–2pm (~half the day). Use the quiet open and post-5pm hours for receiving and markdowns.
Weather & tourism outlook
Future integration. Lake-town traffic tracks weather and events — not yet wired in, and no weather is invented here.
Generated from the same analysis logic shown above · designed prototype, not a live automated send
08 — Outcome

What this actually produced.

No claim of automated, deployed, or revenue-lifting systems — the files don't prove that. What it produced is a clearer way to see and decide.

A dollar-ranked view of inventory risk the POS never surfaced — including 324 SKUs that had never sold.

The high-return families (local art, cards) identified as deserving more buying attention and floor space.

The seasonal curve connected to concrete buying, cash, and markdown timing.

The daily window pinpointed where owner attention matters most — and where it doesn't.

A one-screen daily brief designed to cut owner mental load.

Existing exports turned into decision support — no new software, no price changes required.

09 — What I'd build next

From one-off analysis to a living system.

10 — Reflection

The value wasn't AI replacing the owner. It was pairing a real merchant's eye with structure, so the shop could see patterns faster and act earlier.

An owner with decades behind the counter already understands the customers, the taste, the vendors, and the rhythm of a tourist town. None of that lives in a spreadsheet, and none of it should be automated away.

What the analysis added was a second set of eyes that never gets tired of counting: which dollars are working, which are stuck, where a small team's attention is worth the most, and whether a scary-looking number is actually a calendar quirk. The POS records the past faithfully. This layer turns that record into the next decision — and hands it back to the person best placed to make it.

Retail Intelligence System — portfolio case study Built from anonymized Lightspeed POS exports · 2023–2026 YTD