A technical read of the payout files, written after parsing 24 real ones.
Every week, Swiggy and Zomato hand each restaurant a spreadsheet explaining what they were paid and what was taken out. Almost nobody opens it past the first tab. I didn't either, until I read a thread where an owner described finding lakhs of ad charges he'd never approved, buried in one.
So I went and parsed them. One real Swiggy payout annexure, and 23 real Zomato settlement reports, all published publicly by the businesses that received them.
What follows is what's in the structure of those files. No opinions about the companies and no claims about anyone's money. Just what the reports say, what they don't, and where the interesting parts hide.
If you run a restaurant on these platforms, the short version is that the number you care about is probably not on the tab you're looking at.
Swiggy: five tabs, and the money is on two of them
A Swiggy payout annexure is one workbook with seven sheets. Most people open Summary, see the total, and close it. The two that matter for finding charges are:
Other charges and deductions. This is where ads live, along with every other restaurant-level adjustment. It has a quirk worth knowing: it contains two separate blocks, one for the current week and one for adjustments carried over from the previous week, each with its own header row. If you scan the sheet visually and stop at the first block, you miss the second.
Swiggy also misspells the header in the second block. The first says Adjustment Type. The second says Adjusment Type. That's in the real file. If you've ever written a script to read these and wondered why half your rows vanished, that's why.
Discount Summary. One column here decides whether a promotion cost you or cost Swiggy. It's called Restaurant Share (%). Where it reads 100, the entire discount came out of your payout. A 50 means you split it. The coupon codes look identical either way; only that column tells you.
There's a third thing on that sheet that surprised me. Some rows have no campaign details at all, just a remark reading "Unable to fetch Campaign Details", with an amount attached. That's the platform's own report saying it cannot account for a charge it made. In the file I examined, one of those lines was worth about 3% of that week's total discounts.
A trap if you're totalling by hand
The Discount Summary sheet puts the word TOTAL in the Restaurant Share column, not in the label column, and leaves the label blank. Read it as a data row and you'll double your figure. I know because my own parser did exactly that on its first pass, reported almost exactly twice the true number, and only got caught by a test that compared against the file's own total row.
Zomato: the sections are the whole story
Zomato's settlement report is structured differently and the difference matters.
The relevant tab is Addition Deductions Details. Note the missing slash. Excel forbids / in a sheet name, which is worth knowing if you've seen it written as "Addition/Deductions Details" in a PDF print. That's the print rendering, not the tab.
Inside, there are five sections, each with its own header row, under titles like:
Addition Type
Deduction Type
A) Investments in growth services
B) Investments in Hyperpure
C) Other deductions
D) Adjustments from previous weeks
The first section is money added to your payout: cancellation refunds, carry-forward credits. Everything after Deduction Type is money taken out. If you sum the column without reading the section titles, you'll count refunds as charges. Ads sit under section A, labelled simply ADS.
Two amount columns, and they don't always agree
Every row carries both Total amount and Adjusted amount, side by side. They're often equal, but not always: Total amount can include an outstanding balance that has not yet been deducted from this cycle. If you want to know what actually left this payout, Adjusted amount is the column.
I saw rows of this shape: an onboarding fee with the full amount under Total amount, zero under Adjusted amount, and the same figure again under Outstanding amount. Nothing was taken that week. Read the wrong column and you'd think it was.
Zomato's own glossary is incomplete
The workbook ships a Glossary tab explaining the fields. In the files I checked it omits two or three columns that actually appear in the sheet, and it lists the tax block in a different order than the data.
A total that doesn't add up the way it's labelled
This one is worth reproducing yourself. The grand total row is labelled:
Total Deductions (A)+(B)+(C)
In the files I examined, the figure on that row is the sum of A + B + C + D. Section D, "Adjustments from previous weeks", is included in the number but not in the label. I found this reproduced across multiple files. It doesn't make the total wrong. It makes the label wrong. If you're reconciling by hand against what the label says, you'll be off by whatever section D holds.
The discounts tab was broken in every file I tested
Zomato includes an Offers and Discounts Summary tab. In all 23 real reports I parsed, the cells on that tab contained #REF!, broken formula references. The data simply isn't there to read. That's a fault in the file the platform generated, not in anyone's business data.
And even when it works, that tab never states who funded each discount. Swiggy tells you with its Restaurant Share column. Zomato's report, as far as I can find, does not.
Why any of this matters right now
Two things happened recently that make these files worth reading rather than filing.
In August 2026, Swiggy agreed to refund charges for advertising campaigns that had been run without the restaurant's consent. Zomato added an OTP approval step before discounts can be applied to a restaurant. Companies don't add a consent step for a problem that doesn't exist.
Restaurant owners have been describing the mechanism publicly for a while: small amounts deducted across several outlets, no notification, invisible until somebody sat down and read the annexures line by line. One owner described finding roughly ₹16 lakh accumulated that way across six outlets, noticed only because one week's payout came in lower than expected.
I'm not going to tell you what a typical loss looks like, because nobody has measured it and the figure that circulates online traces back to a company selling reconciliation software. The documented cases are large ones, which is exactly the kind that surfaces publicly. Whether the typical case is ₹500 or ₹50,000 is genuinely unknown.
Reading your own file
You don't need any tool for this. Open your latest payout file and check four things:
-
Swiggy: open
Other charges and deductionsand scroll past the first block. There's a second one below it. -
Swiggy: on
Discount Summary, look atRestaurant Share (%). Every100is a promotion you paid for in full. Check for rows with no campaign details. -
Zomato: on
Addition Deductions Details, find theDeduction Typeheading. Everything above it is money added; everything below is money taken. -
Zomato: use the
Adjusted amountcolumn, notTotal amount, when asking what left this payout.
Then compare the ads lines against campaigns you actually approved. Only you know that part. No file and no tool can tell you what you agreed to.
I built a small thing for this
Because the parsing is fiddly and the traps above are easy to hit by hand, I wrote a free tool that reads these files and lists every ads charge and every discount you funded, each with the sheet name and row number it came from so you can check it against your own file.
It runs entirely in your browser. The file is never uploaded, there's no account, and there's no server involved. Disconnect from the internet after the page loads and it still works.
swiggy-consent-auditor.tool-template.workers.dev
Two honest limitations, because you should know them before you trust a number:
The Zomato reader was verified against all 23 real reports mentioned above and matches each file's own total exactly. The Swiggy ads reader has never been tested against a real annexure containing a real ads charge, because I could not find one published anywhere. It works on a file I constructed to match the real shape, and if it finds no ads it says so loudly rather than letting you assume you weren't charged. If you have a Swiggy annexure with ads on it, I'd genuinely like to make this work properly against it.
It's free and it will stay free for reading your own files. I'm not selling anything today.
Written by Shivang Shukla. Corrections welcome. If something above is wrong about your file, tell me and I'll fix the article and the tool: shivangshukla201@gmail.com

Top comments (0)