01 · Where the business stands

A ₹60 crore business is being run out of one shared file

Everything on this page is counted from the Order-to-Despatch workbook and from your live customer, item and stock records. Nothing is illustrative.

₹20.02 Cr
Trade in four months
An annual run rate near ₹60 crore
231
Distributors
Across Haryana, West Bengal, Maharashtra, Assam and Telangana
₹11.64 Cr
Finished goods on hand
92,868 packs across 264 batches and 111 items
₹6.30 Cr
Outstanding
Owed by distributors at the last reading
Between them, the receivables book and the stock in the warehouses come to roughly ₹18 crore of working capital — governed by a spreadsheet whose own dashboard has not calculated a figure in months.
The workbook is not a reporting inconvenience. It is the control system for about a third of a year's turnover, and it has stopped working while nobody had a reason to stop and say so.
02 · Why the workbook breaks

It asks fifty people to be perfect, every day, forever

Nobody at Sunrise is doing anything wrong. This is what happens to every shared spreadsheet in every company once the volume gets real — and it is worth separating the two halves of the problem, because only one of them is about people.

The half that is about people Measured

Where discipline gives wayIn the fileWhy it happens
The masters go stale50 vs 4Fifty salespeople appear in orders; four exist in the master. Everyone types a name rather than picking one, because nobody owns the list.
Entries are made afterwards588 linesAttributed to a placeholder owner meaning “added later”. The sheet is filled in when there is time, not when the thing happens.
The credit gate is skipped154 / 2,281Just 6.8% of order lines carry a credit approval. The rule exists and everyone knows it. It reaches the data one line in fifteen.
Nothing forces consistency4 formatsDates in four formats in one column, one transporter spelled three ways, a salesperson named “0”. A blank cell accepts anything, so eventually it holds everything.
Figure 1 · Measured
Out of every 100 order lines, this many carried a credit approval
7
Credit approval recorded — 154 lines
No approval in the data — 2,127 lines
The limits are set and the rule is known. Against ₹6.30 crore of outstanding, it reached the record on one line in fifteen.

This is not a training problem. Training has been tried everywhere and it decays. A spreadsheet can only ask for discipline; software can require it — the order number cannot be typed, the credit check cannot be skipped, the entry cannot be backdated, and the name has to come from the list.

The half that is about the tool Measured

108 / 108
Dashboard rows broken
Every summary row, every column, reads #NAME?
#VALUE!
Pending Order Sheet
Dead on most rows — the open book cannot be read at all
3,216 / 3,220
Distinct order IDs
Four duplicate primary keys in a single sheet
0
Audit trail
No who, no when, on any change of state, anywhere

Even with flawless data entry, all four of these would still be true tomorrow. The workbook did its job — it carried Sunrise from a small order book to ₹20 crore of trade in four months. It has now become the largest single operational risk in the business, and the people using it are the ones absorbing that risk every day.

03 · What it is costing you

Four exposures, all of them counted rather than argued

These are not projections. Each one was read from your own records this week.

₹59.65 L
Stock you cannot sell
3,525 packs on QC Hold, Expired or Blocked — carried as good stock in the sheet
₹1.40 Cr
Receivables past 60 days
22.2% of everything owed to you
₹51.98 L
Receivables past 90 days
42 distributors carrying more than ₹10,000 each
42,241
Packs of open demand
784 lines going back to April, against 47,126 ever raised
Figure 2 · Measured
Where the ₹6.30 crore actually sits
51%
26%
14%
8%
0 days₹6.30 Cr total
0–30 days — ₹3.24 Cr
31–60 days — ₹1.66 Cr
61–90 days — ₹88.06 L
Beyond 90 days — ₹51.98 L
The right-hand fifth of that bar — ₹1.40 crore — is money that has aged past the point where a credit gate could still have stopped it.
Figure 3 · Measured
Stock you have, against stock you can sell
Sellable stock
₹11.04 Cr
QC Hold, Expired, Blocked
₹59.65 L
3,525 packs of the 92,868 on hand. In the workbook both bars are simply “stock”, and the difference only surfaces when a customer is already waiting.
Figure 4 · Measured
The order book has never been closed
Raised, all time
47,126
Still open today
42,241
Ever closed out
4,885
One pack in ten has ever left the book. Production plans against the middle bar, and everyone privately discounts it.

The ₹59.65 lakh nobody has written down

Three thousand five hundred packs sit on QC Hold, Expired or Blocked. In the workbook they are counted as stock. In reality they are a promise waiting to be broken, or a write-off nobody has recognised yet.

Nothing in the sheet distinguishes stock you have from stock you can sell — so the distinction only surfaces when a customer is already waiting.

The order book only ever grows

42,241 packs stand open against 47,126 ever raised. Across the whole year, roughly 4,885 packs — one pack in ten — have ever been closed out.

There is no mechanism to close a dead line, so production plans against a demand figure that everyone privately discounts and nobody can correct.

Credit control that exists on paper

Limits are set. Ageing is tracked. And 6.8% of order lines carry an approval, because the check happens after the goods have gone, at reconciliation, when the only remaining option is to ask for the money back.

₹1.40 crore has already aged past sixty days while that was the process.

04 · Hours back on the floor

Where the working day is going now

The hours below are estimates. The volumes driving them are not — 2,281 order lines in four months, 231 distributors, five stock locations, and 108 summary rows that have to be rebuilt by hand because the file will not calculate them.

Work that disappearsWhy it exists todayHours / month
Rebuilding management figuresEvery one of the 108 dashboard rows reads #NAME?, so the numbers are assembled by hand each month16
Order-versus-invoice reconciliationA permanent tab exists purely to diff order value against invoiced value, distributor by distributor24
Answering “do we have it?”Stock sits in one number across five locations, with no view of what is on hold or expiring22
Chasing order statusNo stage, no approver, no timestamp — so the answer is a phone call22
Re-keying and correcting entries570 order lines a month, typed names, four date formats, duplicate IDs28
Assembling the pending bookThe Pending Order Sheet is dead on most rows8
Roughly two-thirds of one full-time role120
Figure 5 · Modelled from measured volumes
Where 120 hours a month go
Re-keying and correcting
28 hrs
Order vs invoice reconciliation
24 hrs
Answering “do we have it?”
22 hrs
Chasing order status
22 hrs
Rebuilding management figures
16 hrs
Assembling the pending book
8 hrs
None of this is work anyone was hired to do, and all of it scales with volume — until the system does it instead.

None of this is work anyone was hired to do. It is the overhead the file imposes on people whose actual job is selling, dispatching and keeping the plant running — and it is the part of the day that gets no credit when it goes right and all of the blame when it goes wrong.

What replaces it

  • Management figures render themselves, from the same records the floor is using
  • Order value and invoiced value cannot diverge, because one produces the other
  • Stock answers itself — by batch, by location, with expiry visible
  • Every order carries its stage, its approver and the time it moved

The point is not fewer people

At ₹60 crore and growing, the question is not how to employ fewer staff. It is whether the next ₹20 crore of trade needs another two people to administer it, or none.

Every hour above is an hour that scales with volume today, and stops scaling with volume the moment the system does it instead.

05 · What we are building

One system, with the rules underneath the screens

This is the part worth understanding properly, because it is what makes the difference between software that helps and software that gets worked around by March.

Layer 1 · What people see
Six different applications, from one system
A Sales CRO signs in and sees orders. A Stores man signs in and sees stock. Nobody is trained on screens they will never use, and nobody can wander into a screen that is not theirs. The application is the same; what it shows is not.
AdminAccountsDispatchSales CRONSMStores
the screens ask the rules — they do not contain them
Layer 2 · The rules
Held in the database, not in the buttons
This is the whole idea. In most systems the credit check lives in the screen — so anyone who gets past the screen gets past the check. Here the rules live one level below, in the database itself. A person who knows their way around a browser, or a clever clerk with a spare afternoon, still cannot punch an order with a chosen number, clear their own credit hold, or approve their own order. The rule is not a habit or a setting. It is a property of the data.
Order numberingCredit gateApprovalEarliest-expiry allocationPrice authorityClose-short
every rule writes to one place
Layer 3 · One stock ledger
Every movement is an entry. Nothing is ever overwritten.
Production booked in, stock allocated to an order, goods despatched, a batch put on QC hold, a transfer to a depot, damage written off — all of it lands in one ledger as a new line, at batch level, with a date and a name against it. A balance is never edited, so the history of any batch reads as a list of events rather than a number somebody changed. It is the same discipline your accounts follow, applied to stock.
Batch level5 locationsAppend-only264 batches today

Three engines running on that one ledger

Order to despatch

The spine. An order is punched, credit-checked, approved, matched against real stock, turned into a packing list and an invoice, despatched, and then closed — with the balance decided rather than abandoned.

Finished-goods stock

The truth about what you have. Batch level, five locations, and three separate figures — on hand, allocated, available — where a spreadsheet has only ever had one.

Stock transfer

Kundli to the four depots, through the same ledger and with its own approval. No finance gate, because there is no credit risk in moving your own goods between your own warehouses.

Tally

Tally is not being replaced. It remains your system of record and continues to issue the official order and invoice numbers. The app generates its own numbers for internal control, and captures the Tally number as a field on the packing list and on the invoice.

Both are checked for format the moment they are typed — which is how the seven invoices currently carrying a malformed number stop happening. Connecting the two systems automatically is a later phase, and deliberately so: it would mean changing how your accounts team works before you have seen whether the rest earns its place.

06 · The order, end to end

Seven stages, and the two places the system refuses to move on

Nothing below is new to Sunrise — it is the process you already run. What changes is that two of these stages stop depending on somebody remembering.

Figure 6 · The chain, at a glance
Punch to close, and the two gates that will not be skipped
01
Sales CRO
Order punched
02
Automatic
Credit check
03
NSM / Accounts
Approved
04
Automatic
Stock reserved
05
Dispatch
Packing list
06
Dispatch
Invoice & despatch
07
Sales CRO
Close short
The system stops and waits — a gate
The system acts on its own — nobody presses anything
A person does the work
1
Sales CRO
The order is punched
Pick the customer, then add lines — item, quantity, pack size, unit. The price arrives already filled in from the item master, so nobody is quoting from memory. Free-goods lines go on as their own scheme SKUs at zero value, exactly as they do today. The system then issues the sales order number itself, scoped to the location and the financial year.
There is no field anywhere on the screen into which an order number could be typed — which is how four duplicate numbers in the current file become impossible rather than unlikely.
2
Automatic · no one presses anything
The credit check runs in the same instant
Order value plus the customer's outstanding is tested against their limit. This happens at the moment of saving — not overnight, not at month end, and not at reconciliation when the goods have already gone and the only remaining option is to ask for the money back.
Within limit

The order moves quietly to the approvals queue. Nobody is interrupted and nothing is added to anyone's day.

Limit breached

A credit hold applies itself. Every control that would advance the order is unavailable while it stands. Admin or Accounts release it once the deposit lands — and their name and the time go on the record.

This is the stage that ought to have caught the ₹1.40 crore now standing beyond sixty days.
3
NSM or Accounts
One signature, not two
Either role alone is sufficient to approve. That is a deliberate choice: a gate that needs two people becomes a bottleneck the first time one of them is travelling, and a gate that is routinely bypassed is worse than no gate at all. The approver's name and the time are recorded against the order.
The order leaves the approvals queue the moment it is approved, so the queue is a real worklist rather than a list somebody maintains.
4
Automatic
Stock is checked, and reserved
Each line is matched against real stock at that line's own location. Batches on QC Hold, Expired or Blocked are ignored entirely. What remains is allocated earliest-best-before-first, so the oldest stock leaves first — which is the whole reason a food business tracks expiry at all.
Every line comes back as Good to go, Part covered, or Material not in FG — and the stock behind it is reserved, so two orders cannot be promised the same batch.
5
Dispatch
Packing list, and the price question
Dispatch generates the packing list; the app numbers it and prints the batch and lot codes per line, taken from the batches actually allocated at stage 4. The Tally order number is entered here and checked for format on the spot. Prices remain open at this point — but only to Admin, Sales CRO and NSM. Dispatch cannot change a price at all; they flag the order price pending review and park it for whoever can.
Every price change is logged with the line, the old price, the new price, who changed it and when — readable afterwards, not merely recorded. When Dispatch finalises, the order freezes.
6
Dispatch
Invoice and despatch
The app raises its own invoice after the packing list and captures the Tally invoice number, again format-checked. One invoice may cover more than one sales order, because nineteen of yours already do. Then transporter, docket or LR number, and the actual despatch date — and at that moment the reservation becomes a real movement and the stock leaves the location.
The delivery receipt date goes on the order when it arrives, so the chain from punch to proof of delivery sits in one place.
7
Sales CRO
Close short — the decision that cannot be skipped
Ship 100 against an ordered 140 and the line closes at 100. The remaining 40 does not quietly stay open; it raises a decision that cannot be dismissed, skipped, or navigated away from.
The customer still wants it

A new sales order is raised for the same customer with its own number, linked back to the original and visible from both ends.

The customer has moved on

The balance is cancelled against a reason code, and those 40 packs leave the order book for good.

Neither route lets the same 40 packs count twice as new demand. This is the single change that stops 42,241 packs becoming 50,000.
07 · Who holds which power

Twenty actions, six roles, and no exceptions

Every row below is enforced twice — once in what the screen offers, and again in the database underneath it. The two must agree, so a person cannot reach past the screen to do something the screen does not offer them.

Action AdminAccountsDispatch Sales CRONSMStores
Selling
Punch a sales order
Edit line-item prices
Close short and decide the balance
Cancel a balance quantity
Money
Release a credit hold
Approve an order
Set customer credit limits
Enter the Tally invoice number
Despatch
Generate the packing list
Enter the Tally order number
Generate the invoice
Record despatch, transporter, LR
Stock
Book production into finished goods
Put a batch on QC hold, or release it
Write off damage, adjust stock
Raise a stock transfer
Approve a stock transfer
Everything else
Manage item and customer masters
View dashboards

The three that are easy to get wrong

Pricing is commercial, not clerical

Prices are settled while goods are being despatched — so it looks like a dispatch job. It is not. The authority sits with Admin, Sales CRO and NSM, and Dispatch has no price field at all.

Because that would otherwise leave Dispatch stuck with no way to raise the issue, they get a control of their own: flag the order price pending review and park it, visible to whoever can act.

Approval is one signature

NSM or Accounts — either alone is enough. Requiring both would make the gate real on paper and routinely bypassed in practice, which is precisely the position the workbook is in now.

Stores owns the inbound side

Production booked in, QC hold and release, damage written off, transfers raised. Without this role stock only ever decreases — and a stock system that cannot receive is a stock system nobody trusts by the second week.

Stores cannot see order screens at all, and no order role can move stock.

08 · The value model

Move every assumption to its most sceptical setting

Each lever below starts from a figure counted in your own data. What is estimated is only how much of it the system recovers — so drag every slider to its lowest position and see what survives.

Stock written off, prevented
Measured  ₹59.65 lakh sits on hold, expired or blocked today. Earliest-expiry-first allocation ships ageing stock before it dies, and a shortage at one depot surfaces the ageing stock at another.
30%
Interest on overdue receivables
Measured  ₹1.40 crore stands beyond sixty days. A credit gate that fires at the moment of order is what stops the next rupee joining it. Valued at your cost of working capital.
30%
10%
Bad debt avoided
Measured  ₹51.98 lakh has aged past ninety days across 42 distributors. Some share of ninety-plus debt is never collected; the gate stops the next tranche forming.
3%
Inventory released
Measured  ₹11.64 crore of finished goods across five locations. When available stock is a number you can trust, depots hold less cover and fewer duplicate transfers are raised.
5%
Staff hours returned
Modelled  Reconciling 231 distributors by hand, rebuilding 108 dead dashboard rows each month, answering stock enquiries across five locations, and chasing order status. Costed at ₹250 per hour, fully loaded.
120
Figure 7 · Live
What the annual value is made of
Stock write-off prevented
Receivables interest
Bad debt avoided
Inventory carrying
Staff hours
The bar re-proportions itself as you move any slider above.

Every measured figure is dated August 2026 and can be re-derived from the workbook and the live database on request. The model deliberately excludes anything that cannot be traced to a counted number — no allowance for faster order turnaround, fewer disputed invoices, or revenue lost to stockouts, all of which are real and none of which are claimed here.

09 · The payback

What it returns, against what it costs

Two costs, both quoted: a one‑time build of ₹12,50,000 and platform care of ₹40,000 a month, which keeps the system hosted, supported and improving. The model pays the care out of the value first and recovers the build from what is left. The value it is measured against is the same one carried from the previous section, on whatever settings you left there.

Where the value comes fromBasisPer year
Stock written off, prevented₹59.65 L at risk
Interest on overdue receivables₹1.40 Cr past 60 days
Bad debt avoided₹51.98 L past 90 days
Inventory carrying cost₹11.64 Cr on hand
Staff hours returned
Recurring annual value
Figure 8 · Live
Cumulative value, net of care, against the build cost
Value accumulated, net of care
One-time build cost
Where the green line crosses the red one is the month the system has paid for itself. Working capital released is not counted here.

Plus of working capital released once — cash that comes back into the business rather than an accounting saving. It is excluded from the payback calculation opposite, which is the conservative treatment.

The demonstration is the pilot, not a mock-up. It runs on a real database carrying your real items, distributors and batches — the same system carries straight into daily use.
Phase one is order-to-despatch and finished-goods stock. Stock transfer in full, then procurement, BOM and costing, then payments and reconciliation, then analytics — each one worth building only because the operational data underneath it has finally become trustworthy.