Daily sales report restaurant Excel — free DSR template (India)
Free daily sales report Excel + Google Sheets template for Indian restaurants — 18 fields covering tender modes, GST splits, refunds, advances, and weekly rollup.
Last updated 12 May 2026

About this piece. A Daily Sales Report (DSR) is the single most important record an Indian restaurant keeps. It's the input to GST filing, owner P&L, variance investigations, and any conversation with a lender. Most outlets either don't keep one or keep one in three different WhatsApp threads. This piece gives you the format, the fields, and a free Excel + Google Sheets template you can copy in 60 seconds.
What a DSR is for
The DSR is the day's row of truth. One row per day per outlet. Across a year that's 365 rows. Across a 5-outlet group that's 1,825 rows. Every report you ever run on the business — GST, P&L, food cost trend, day-of-week revenue, festive uplift — pulls from this table.
If your DSR is in WhatsApp messages or in the cashier's head, you don't have a queryable record. You have anecdotes.
The good news: the format is small. 18 fields. Most outlets fill it in 90 seconds at the end of the close.
The 18 fields the DSR captures
Group them into five blocks. Print them in this order on the form.
| Block | Field | Source |
|---|---|---|
| Header | Date | calendar |
| Outlet | preset | |
| Day of week | calendar | |
| Manager on close | personnel | |
| Sales by tender | Cash sales (gross) | POS Z-report |
| UPI sales (gross) | UPI dashboard | |
| Card sales (gross) | EDC settlement | |
| Swiggy pre-paid (gross) | aggregator portal | |
| Zomato pre-paid (gross) | aggregator portal | |
| Aggregator COD received | drawer | |
| Adjustments | Refunds (cash) | POS |
| Refunds (UPI/card) | POS | |
| Discounts applied | POS | |
| Service charge collected | POS | |
| Tax + outflow | GST collected (5% line) | POS |
| GST collected (18% line) | POS | |
| Petty cash outflow | voucher pad | |
| Salary advances paid | advance ledger | |
| Reconciliation | Variance | close sheet |
Three calculated fields fall out of these:
Net revenue = sum of all sales − refunds − discounts
Bank deposit = cash sales − cash refunds − petty cash outflow − salary advances + COD
Total receivables = Swiggy pre-paid + Zomato pre-paid + card sales (T+1 to T+7)

The Excel layout
One sheet, frozen header row, one row per day. Columns A through R for the 18 fields, columns S through U for the calculated fields, columns V through Z for notes and signatures.
A: Date
B: Outlet
C: Day of week
D: Manager
E: Cash sales
F: UPI sales
G: Card sales
H: Swiggy pre-paid
I: Zomato pre-paid
J: Aggregator COD
K: Refunds (cash)
L: Refunds (UPI/card)
M: Discounts
N: Service charge
O: GST 5%
P: GST 18%
Q: Petty cash outflow
R: Salary advances
S: Net revenue (calc)
T: Bank deposit (calc)
U: Variance (close sheet)
V: Notes
Conditional formatting:
- Variance |U| > ₹100 → cell turns red
- Net revenue below 70% of trailing 14-day average → cell turns yellow
- Petty cash outflow > 5% of net revenue → cell turns yellow
- Salary advances > ₹2,000 single day → cell turns yellow
These four flags are what turn a static log into a working dashboard.
Why these 18 fields and not 30
The tempting move is to add more — table count, cover count, average bill, food cost % per day. Resist it.
A typical 30-cover dhaba in tier-2 city operator runs the 18-field DSR for 6 weeks before adding any field. The reason: the DSR fails not because it captures too little, but because it captures too much for a tired cashier at 11pm. Fields that aren't filled accurately are worse than fields that don't exist. The 18 above are the load-bearing ones; everything else is a separate report off the same data.
A composite operator we work with runs cover count and average bill weekly in a separate sheet, not daily. Reason: cover count is best collected from the KOT printer roll, not from the cashier's memory at midnight. Daily DSR is for inputs that exist as artefacts at close time. Weekly rollups can pull from richer sources.
Weekly and monthly rollups (auto)
Set up a second sheet with these formulas. The DSR sheet is the input; everything else is a calculated view.
| Rollup | Formula sketch |
|---|---|
| Net revenue WTD | SUMIFS(DSR!S:S, DSR!A:A, ">=" & week_start) |
| Cash mix % | SUM(cash − cash refunds) / net revenue |
| Aggregator share | (Swiggy + Zomato pre-paid + COD) / net revenue |
| Petty cash % | SUM(petty cash) / net revenue |
| Variance abs total | SUMPRODUCT(ABS(variance column)) |
| GST 5% liability | SUM(O:O) − input credits (separate sheet) |
| GST 18% liability | SUM(P:P) − input credits (separate sheet) |
The weekly rollup is what you look at on Sunday morning over chai. Five minutes. Six weeks of disciplined daily entry and the patterns are visible — best day, worst day, festive uplift, aggregator drift.

How to fill the DSR — order of operations
The DSR is filled after the till close, not during. The close produces the inputs; the DSR is the consolidated output.
- Close the till (14-step checklist)
- Open the DSR sheet (laptop, tablet, or printed form)
- Copy the close sheet header — date, outlet, manager
- Tender modes from sources — POS for cash, UPI app for UPI, EDC for card, aggregator portals for Swiggy/Zomato
- Adjustments — refunds, discounts, service charge from POS
- Tax — GST splits from POS
- Outflow — petty cash from voucher total, advances from advance ledger
- Variance — copy from close sheet
- Save — autosave is the friend
Time: 90 seconds for an experienced operator on a clean night.
Five common DSR mistakes
- Filling DSR before the close is signed. The close numbers may move. Always: close first, DSR second.
- Treating Swiggy COD as Swiggy revenue. It's both. Swiggy revenue (for the order) AND drawer cash (for the COD). Two columns, not one.
- Skipping refunds. A refunded order is not a deleted order. The sale happened, GST was charged, the refund reversed it. Both lines exist on the DSR.
- Inconsistent service charge logging. CCPA 2022 guidelines require service charge to be voluntary and clearly disclosed. If you collect it, log it; if you don't, don't have the column.
- No notes column. The notes column is where "Holi off-peak", "AC broken from 7pm", "manager left at 9 (sick)" lives. Six months later, those notes are what explains the outlier days.
What good looks like — a Wednesday in May
Date: 15-May-2026
Outlet: Lajpat Nagar
Manager: Ravi
Cash sales: ₹18,400
UPI sales: ₹14,200
Card sales: ₹6,800
Swiggy pre-paid: ₹9,600
Zomato pre-paid: ₹7,400
Aggregator COD: ₹1,200
Refunds (cash): ₹200
Refunds (UPI/card): ₹0
Discounts: ₹450
Service charge: ₹0
GST 5%: ₹2,420
GST 18%: ₹1,680
Petty cash outflow: ₹850
Salary advances: ₹0
Net revenue: ₹56,950
Bank deposit: ₹18,550
Variance: −₹40
Notes: clean Wednesday, normal footfall
This is what a clean DSR row looks like. Forty rows like this and you have a queryable, defensible, accountant-ready record of the month.

Where this fits in the daily-ops loop
The DSR is the consolidated output of the close. It feeds:
- GST filing — monthly, from the GST 5% / GST 18% columns
- Owner P&L — weekly margin check, from net revenue
- Variance pattern — monthly review, from variance column
- Lender / investor decks — from rolling 90-day net revenue
It's fed by:
- Till close (14-step checklist)
- POS Z-report — tender splits, GST splits
- Petty cash voucher pad (format)
- Salary advance ledger — outflow side
This is the loop Restaurant Daily digitises. The Excel template is the manual version of the same loop.
What to do this week
Copy the field list above into a Google Sheet on Sunday afternoon. Set up the conditional formatting. Brief the manager on Monday morning. Run it for 14 days.
By day 14 you'll have your trailing-2-week baseline, and the conditional flags will start surfacing the days worth looking at. The DSR is the foundation; everything else builds on it.
Related on Restaurant Daily
One operator playbook a week, in your inbox.
Cash close, petty cash, payroll, compliance, unit economics — sent every Monday morning. No spam, no upsell drip. Unsubscribe in one click.
Sent from noreply@restaurantdaily.ai. We never share your address.
Related reading
दैनिक बिक्री रिपोर्ट रेस्टोरेंट — Hindi Excel template + DSR भरने का तरीका
भारतीय रेस्टोरेंट के लिए दैनिक बिक्री रिपोर्ट (DSR) — हिंदी Excel template, भरने का step-by-step तरीका, और cash/UPI/card reconciliation का सही method।
Denomination sheet restaurant cash count — Excel template + how to use it
Free denomination sheet for Indian restaurant cash counts — Excel + printable PDF, with auto-totals, variance row, and the right way to count a drawer in 2 minutes.
Cash deposit slip format restaurant — free fillable bank deposit template
Bank cash deposit slip format for Indian restaurants — fillable template covering denomination split, outlet code, cashier sign, and reconciliation back to DSR.
Shift handover format restaurant — single-page form for cash, stock, complaints
A single-page shift handover format for Indian restaurants — covering cash, stock alerts, open complaints, comps, and pending tasks. Free printable template.
Restaurant till close checklist — printable 14-step end-of-day form
A 14-step restaurant till close checklist used by disciplined Indian outlets — printable A5 form covering cash, vouchers, POS, UPI, COD, and deposit envelope.