From spreadsheets
to one number everyone trusts.
Six weeks ago: Excel and Google Sheets, and finance and the shop floor reading different numbers on a bad day. Today: one system that updates itself every night, 18 pages anyone on the team can open, and an assistant you can just ask a question. What we built, what we found walking the store, and what happens next.
Two teams, two sets of numbers, nobody to arbitrate.
Finance closed the month in one file. The shop floor ran off another. Marketing, warehouse and retail each kept their own sheet, and on a bad day none of them agreed. There was nothing that sat above all of them and said "this is the real number" — and the pipes carrying the raw data in were still being laid.
That's completely normal for a brand growing this fast. It's not a knock on anyone. Credit where due: the plumbing that pulls data in from every source (built in-house, using a tool called Airbyte) was already there for us to build on top of.
One pipeline in, one place to look.
Every source of data (Shopify, the stores, Amazon, Myntra, marketing, warehouse and more) now flows into one clean, trusted set of numbers, updated automatically every night. From there it feeds your Power BI reports and Live Intelligence — the self-serve site at tpp.dataeze.ai — plus an assistant on every page you can simply ask a question.
Six weeks, in order.
One comparison worth making: at Lenskart, running at ten times this size, store and target data was still living in Google Sheets. Here, it's already in one shared, centralized place — in six weeks, not years.
The numbers now hold up if you check them.
We checked every figure below against the live system this morning, not from memory. Here's exactly where things stand, including what still needs work.
Built for the decision, not the department.
| Who | Opens | To decide |
|---|---|---|
| Founder | The weekly overview | Where the business stands, in one scroll |
| Retail head | Store Performance | Which stores need stock, which need attention |
| Store / cluster manager | Store Performance, in their own language | Today's job: restock this, move that out, help a walk-in |
| Marketing | Spend & channel pages | Where the next ad rupee goes |
| Merchandising | Stock & ageing | What to reorder, what to discount away |
| Finance | Margin & reconciliation | The real number, without a manual double-check |
The store page speaks the shop floor's own language on purpose: Sales, Bills, Average Bill, Items Per Bill, Walk-ins Who Bought, Stock To Ask For, Stock To Move Out — not a technical term nobody on the floor would recognize.
Ask it a plain question. It answers, and shows how it got there.
Ask, the assistant
Type a question in plain English, get a real answer back — every number traceable to the actual report it came from. If it genuinely can't answer, it says so instead of making something up.
Store alerts, with a running count
As of this morning: Ahmedabad, 11 days straight of falling sales. Borivali, 12 days. Nobody was tracking that streak before — now it's a daily email, not a surprise found a quarter later. This kind of visibility didn't exist at this scale even at Lenskart; we've had it running from day one here.
We know before you have to ask
Kshitij's team gets an email the moment a data source breaks. That's exactly how this morning's Myntra gap (slide 03) turned up hours before this meeting, not weeks later.
One shared home for the masters
Store list, product list and monthly targets now live in one place with a proper approval step. This is what finally retires the Google Sheets.
Live demo from here — three things worth clicking on the real site.
Nothing here waited for a quarterly roadmap.
Several more sources are queued to pull into the pipeline next — see the full list with owners on slide 09.
Roughly 85% there. What's left is mostly waiting on inputs, not build work.
The system is live and working. What's left is a short list, and most of it needs something only your side can provide.
| What's open | Owner | What it needs |
|---|---|---|
| Purchase records since 30 Mar | Lavesh / your team | An updated file, so cost calculations don't run dry |
| Myntra, 4 missing days in June | dataeze | Backfilling now |
| Amazon (844) + Myntra (2,835) products not yet matched to our catalogue | dataeze | Matching in progress |
| Salesperson numbers, Feb–May and Jul–Aug | Kshitij | Remaining months of the Fynd report |
| How store targets should really be measured | Divakar | A written yes on the current approach |
| Social media performance | Kshitij | Confirm which accounts to pull from |
| Amazon & Myntra review and comment scraping | Kshitij | Sign off on scope |
| Triple Whale (ad attribution) | Kshitij | Share access |
| Cash reconciliation payment dumps | Kshitij | Share the raw export |
| HRMS employee data | Kshitij | Share access |
| Salesperson numbers, sourced properly from Fynd | Kshitij | Confirm the right report or API |
| Broadway data | Kshitij | Share access |
Committed: everything on this list closed out by 31 Aug 2026.
The numbers are ready.
The next gains are in the store.
Two to three days on the floor with the teams. In one line: the product is genuinely solid. What needs fixing is the store app (Fynd) and pricing. Here's exactly why, in the order it'll move a number.
Stock counts go wrong at the scan, not the warehouse.
When the barcode scanner doesn't fire, staff fall back to searching the catalogue by hand and tapping "add to cart" — and the wrong size goes in. The customer gets a size 36 when they wanted 34, an exchange opens, and the stock count that merchandising plans against was never true to begin with.
Fix: a proper barcode and tag check across the store app, the product catalogue and Shopify, plus a system check that flags it whenever a sale skips the scan instead of relying on staff to catch it themselves.
Filmed on the floor: a clean scan straight into the store app's cart at ₹1,990. When the scan fires correctly, price and stock move together automatically — this is what the failure mode above bypasses.
Exchanges, returns, and order updates all still run on manual effort.
Exchange & return
Today: email a person, wait for a code, then place a brand new order. Slow for the customer, and stock never actually updates until someone remembers to do it by hand. Also a real experience gap on its own — a PIN was entered wrong twice during this visit and the third attempt was blocked outright.
One order, confusing updates
Watched it happen live: a customer with several items in one order got a dispatch update for only one of them. Understandably annoyed, they were about to walk out — store staff caught it and smoothed it over in person, but that's a save that shouldn't have to happen at the counter.
Fix, for both: move exchanges fully inside the store app, with stock moving in and out as one single action instead of a side process. And a customer with one order should see one clear status for everything in it, not a piece at a time.
At the till: cash is reconciled by hand, and checkout can jam.
The store app already tracks this — ₹5.87L across 90 orders, zero refunds, Aug 1–8. Cash still gets reconciled by hand in a separate sheet after.
Fix: let the app take split payments directly, don't let a sale close until it balances to zero, and let each payment type land automatically at the back end.
Caught live during this visit, twice: checkout stops with "coupon already used or limit reached," and the deducted amount is left pending a refund. That's real friction at the exact moment of a sale — and it traces straight back to the pricing confusion on the next slide.
The store is showing two different offers on the same day.
Outside, on the standee: Buy 1 Get 1 Free.
Inside, on the shelf: 15% off a first order, buy 2 for 15% off, buy 3 for 25%, buy 5+ for 30%.
A customer walking in on the "Buy 1 Get 1" promise meets a completely different set of rules at the shelf — and that offer only applies to a limited range, so anyone who likes a discounted item is pushed into picking a second one they don't actually want. Store staff themselves find the tiers hard to explain, which means every sale starts with confusion instead of a clear pitch.
Simple fix: one Buy 1 Get 1 offer across everything at full price. One flat discount for anything else. Anything steeper becomes its own clearly-labelled online collection. And prices should read as round numbers (₹999, ₹1,999) instead of percentages — online and in-store finally saying the same thing.
The store should feel like the brand on the sign outside.
One mirror, inside the trial room, none outside it. Some branding wall space could become mirrors instead — they'll move a purchase decision more than a wall panel will. The Freedom Fit sale deserves real 15 August branding, not one standee doing all the work. And inside the store, pricing needs to say one clear thing, not compete with itself the way slide 14 shows.
One good sign: the store is already experimenting on its own.
Caught an AI body-scanning tool mid-use on the floor (retail.imersivwear.com) — a trial nobody had flagged to us, run on the store's own initiative. That instinct is exactly what the next phase of this platform should plug into: get that sizing data feeding the same system as everything else, instead of sitting in a separate app nobody else can see.
Customers are already telling us where the gaps are. We just watched them happen live.
Every customer who responds to a survey or leaves a review gets read and sorted into a reason, automatically. Over the last 12 months, one theme stands well above the rest for driving an unhappy customer:
This isn't a coincidence. What customers are telling us in surveys and reviews is the exact same list we saw walking the floor. Fixing the store-app and pricing gaps in this section isn't just an operations improvement — it's a direct fix to the biggest reasons customers rate us badly. Coming next: a single store-level view with NPS built in, so every store manager sees their own customer sentiment next to their own sales, in one place.
The store visit and the numbers are telling the same story.
| What we saw on the floor | Where you'll see it move |
|---|---|
| Scan-and-punch mistakes | Exchange volume, accuracy of "stock to ask for," Fit & Size feedback (30.8% of all comments) |
| Manual exchange & return | True stock accuracy, the #1 driver of bad ratings (54.4% negative) |
| One-item-at-a-time order updates | Delivery, the #2 driver of bad ratings (41.9% negative) |
| Manual cash reconciliation + checkout jams | Staff hours spent on admin, completed-sale rate |
| Two conflicting store offers | Items Per Bill, Walk-ins Who Bought |
| Mirrors & branding gaps | Conversion rate, currently 24.2% storewide |
By 31 August.
Two things, plainly.
Closing out this phase
The agreed fee for this build was ₹5L + GST. Half invoiced now, the other half in the first week of September once everything on slide 09 is verified complete — so the payment follows a finish line you can see for yourself, not just a date on a calendar.
Keeping it maintained
A system like this doesn't stay finished — new requests, new sources breaking, new things the team asks for, the same pattern as slide 08, every week. September is the first month this covers; the first bill for it goes out 01 October, then monthly after that.
To be clear on what this actually is: it's a small, close-to-break-even number, covering what it costs to keep this running — the AI usage behind it and our team's time. Not built as a profit line, just what it takes to keep someone actively watching this every night.
Nothing about the growth/consulting side is in this deck — that's a separate conversation, in person.
Use it every day. Tell us what's missing. We build it overnight.
Six weeks ago this was a promise. Today it's a real system, and every honest gap in it is one we found ourselves and told you about first — not one you'd find on your own. The fastest way to make it fully correct is to stop running the old sheets alongside it. Every question it can't answer yet becomes tomorrow's build.