Skip to contentTaking new projects · reply within one working day
MakeMyMISData • Reports • Decisions

Case study

From 9 messy platform files to one MIS the sales team can act on

Online sales and purchase-order fill-rate reporting for an FMCG confectionery brand selling on five quick-commerce and marketplace platforms.

Built on a real client's data. Client, brand, staff and distributor names are removed, products are named by type, and money and unit figures are rounded.

online sales in one month, across 5 platforms
~₹9 Cr
raw rows in 9 files and 45 tabs
1.5 lakh
of ordered units actually supplied, once POs were matched
52%
decisions the first month’s report pointed to
4

The engagement

Five platforms, and no single view of the month.

A confectionery brand with four sub-brands — crackers, chocolate sticks, coffee candy and biscuits — sold on Blinkit, Zepto, Swiggy Instamart, Flipkart and BigBasket.

Distributors supply the platforms’ warehouses: 27 of them, under 7 sales territories. Each platform raises purchase orders (POs) and reports sales its own way.

Nobody had one view of the month: what sold, where, and how much of what the platforms ordered was actually supplied.

01 · What we received

Nine files, about 1.5 lakh rows — and yes, one platform’s name was misspelt in its own file name.

5 sales files

Daily, city-level from three quick-commerce apps; monthly from one marketplace; a 12-line summary from the fifth.

4 PO files

Every purchase order the platforms raised in the month, and how much of it was received.

45 tabs

Too many rows for anyone to check by eye, and no two files built the same way.

Each platform sends the same numbers its own way

PlatformRowsUnits columnValue columnDate columnCity column
Blinkit55,772qty_soldmrp (MRP value)datecity_name
Zepto26,658QuantityGMVSales DateCity
Swiggy Instamart58,654UNITS_SOLDGMVORDERED_DATECITY, lower case
Flipkart3,447UnitsValuesMonth, as textCity or state
BigBasket12Sum of Total_quantitySum of Total_salesnonenone

The four PO files added 6,240 more lines, with 21 different status words between them: COMPLETED, Expired, PENDING_GRN, approved…

02 · What they needed

Four questions the sales team wanted answered.

Sales head

How much did we sell, and where?

One number across five platforms, split by sub-brand, platform and city.

Territory managers and distributors

Are we supplying what they order?

Fill rate by platform, territory, distributor and SKU.

Supply chain

Where are orders being lost?

Unfilled PO value, expired POs, and the SKUs and distributors behind them.

Everyone

Can we trust it next month too?

Same rules every month, one refresh, and totals that match the platforms’ own files.

03 · Problems in the data

What was wrong with the files.

Problem 1

Half of one platform’s rows had no sales in them

  1. 12,866 of 26,658 rows (48%) had a city and a SKU but no quantity and no value.
  2. Pack size written twice in one name: “1 pack (45 g) 72.0 GRAM”.
  3. The SKU ID was a 36-character code that no other platform uses.

Problem 2

PO dates arrived as text

  1. Dates came as “YYYY-MM-DD 00:00:00 +0000 UTC” — text, not a date, so it cannot be sorted, filtered or aged.
  2. The platform’s own legal name came in four spellings — quotes, capitals, mixed case.
  3. 373 PO lines had no appointment date, so deliveries could not be planned from the file.

Problem 3

A pivot table quietly dropped a whole month

  1. Months sorted A to Z, not by calendar: Apr, August, Dec, Feb…
  2. One month, two spellings: “Apr’25” but “April’26”.
  3. The pivot’s yearly total was about ₹52 L short of the data underneath, because the latest month never reached it.

Always tie a report’s totals back to the raw sheet.

Problem 4 · The same thing had many names

The best-selling product, a pack of cheese crackers, appeared under 10 different names across the sales and PO files. Six of them, brand removed:

WhereName as sent
Platform 1 · salesCheese Flavoured Cracker Biscuit - Family Pack 150 g
Platform 1 · POCheese Flavoured Cracker Biscuit - Family Pack(Pouch)
Platform 2 · salesCheese Crunchy Layered Crackers 144.0 GRAM
Platform 2 · POCheese Crunchy Layered Crackers - 1 pack (144 g or 150 g)
Platform 3 · salesCheese Cream Cracker Biscuit 144 g
Platform 4 · salesCheese Crunchy Layered Crackers
  • 96 became 12product names became 12 sub-brands
  • 46 became 27distributor spellings became 27 distributors
  • 500 became 399city spellings became 399 cities
  • 21 became 2PO status words became Open or Closed

04 · What we fixed

What we fixed, and how we checked it.

ProblemWhat we didCheck
12,866 blank rowsRemoved, after confirming they carry no quantity or valueTotals tie to the platforms’ own summary sheets
Text dates and month labelsOne calendar table: date, month and trade weekEvery file filters and sorts by real dates
96 product namesSKU master: each platform name mapped to 12 sub-brandsOne brand view across all five platforms
46 distributor spellingsDistributor master: 27 distributors under 7 territoriesPOs with no territory column now have an owner
21 PO status wordsA rule for Open vs Closed; fill rate on closed POs onlyOne platform reads 64.5% filled, not 47.5% with open POs mixed in
500 city spellingsCity master: bangalore to Bengaluru, Gurgaon to Gurugram399 clean cities for the city ranking
Stale pivotsOne data model feeds every reportThe missing ~₹52 L month is back in the total

One pipeline instead of nine spreadsheets

  1. Collect9 files from 5 platforms: sales and POs, as they arrive.
  2. CleanBlank rows out, text dates fixed, spacing and case tidied.
  3. MapMasters for SKU, distributor to territory, city and calendar.
  4. ModelA sales table of 1.28 lakh rows and a PO table of 6,240 lines.
  5. ReportOne dashboard, a fill-rate report and a weekly PDF pack.

The masters are the real work. A name mapped once stays mapped, so next month's refresh only deals with what is new.

Files like these? Get a quote for yours

05 · The report

Nine files in, one page out.

sales
~₹9 Cr
units
~15.6 L
PO fill rate
52.4%
unfilled
~₹4.7 Cr
still open
~₹2.6 Cr

One page, three filters

Platform, sub-brand and sales territory, so each manager sees their own slice of the same numbers.

Fill-rate heat map

Territory by platform. The red cells are where to follow up first.

City ranking

The top 10 cities bring 58.5% of sales.

Behind it

A monthly shortfall report — ordered vs supplied, and what it cost — and a weekly PO pack by territory, distributor and SKU.

06 · What to do next

Four decisions the month's data pointed to.

Decision 1

Fix the chocolate-stick supply

Platforms ordered about 4.7 lakh units; only 6.8% were supplied. Around ₹2 Cr of orders missed, on all four platforms that raise POs.

Next. Supply chain: check production and allocation before more POs expire.

Decision 2

Protect the hero product

The cheese crackers are 51% of sales, yet 39% of their ordered quantity was not supplied — about ₹1.6 Cr, most of it on one platform.

Next. Sales head: priority stock for the two biggest quick-commerce warehouses.

Decision 3

Close the territory gaps

One territory filled 45% and carried the biggest unfilled value. Another had no territory manager at all, and one platform there filled 8%.

Next. Regional sales: name an owner for the uncovered territory; a weekly review with the weakest territory’s top 3 distributors.

Decision 4

Stop POs from expiring

486 POs expired in the month with about 7 lakh units never supplied — roughly ₹3 Cr.

Next. Territory managers: a daily open-PO list, sorted by expiry date.

How it runs from next month

Less time cleaning data, more time acting on it.

  1. Files inSales and PO files from the five platforms, in whatever shape they arrive.
  2. Clean and mapSame rules, same masters. A new SKU or distributor is mapped once.
  3. RefreshDashboard, fill-rate report and PDF pack come from the same model.
  4. ReviewThe four decisions tracked month on month, each with an owner.

This case study uses a real client's data with their identity removed: no client, brand, staff or distributor names, products named by type, the month left out and money and unit figures rounded.

Send us one month of your platform files.

We will show you your own before and after — what is wrong with the files, what we would fix, and the report your team would open every month.

Get a quote WhatsApp