InvoiceformatinExcel
Nearly every small business in India has invoiced from a spreadsheet, and nearly every one of them has sent an invoice with a stale number on it.
6 minute read · Updated
Short answer
An Excel invoice template works, but it produces the same five errors reliably: a duplicated invoice number from a copied file, a discount applied after tax instead of before, CGST and SGST computed as 9% twice rather than by halving the total tax, Western digit grouping instead of Indian, and a PDF export that drops the rupee symbol. A spreadsheet is genuinely good for keeping the register of what you have issued. It is a poor tool for producing the document, because every error above comes from a formula nobody re-checks.
The five errors, in order of frequency
The workflow is copy last month's file and edit it. The number is the field most easily forgotten, and a duplicate breaks the consecutive-and-unique requirement.
Column order in a spreadsheet is visual, so the discount often sits below the tax row and gets applied there. That charges the customer tax on money nobody is paying.
The intuitive formula, and it can land a paisa short of computing 18% once and halving the money.
Excel's default number format gives 1,234,567.50. Indian invoices need 12,34,567.50, and the difference is misread as a factor of ten.
Depending on the export path and font, ₹ can become a box or fall back to Rs. — on the document that is asking for money.
What a spreadsheet is actually good at
This is not an argument against spreadsheets. It is an argument about which job to give one.
A spreadsheet is an excellent register: one row per invoice, with number, date, client, amount, tax, due date and paid date. Sorted by number it shows gaps and duplicates instantly, and a paid-date column gives you an ageing view that a folder of PDFs never will.
It is a poor document generator, because the arithmetic lives in formulas that get copied between files and are never re-checked, and because the PDF export is the least controlled part of Excel.
If you are staying with Excel
- 01Set the number format to Indian grouping — `[>9999999]##\,##\,##\,##0.00;[>99999]##\,##\,##0.00;##,##0.00` — rather than the default.
- 02Compute the full tax first, then split it: SGST = total tax − CGST, so the two always sum exactly.
- 03Put the discount row above the tax row, and reference the discounted subtotal in the tax formula.
- 04Keep the invoice number in a register sheet, not typed into the template, and increment it there.
- 05Export to PDF and open the result — check the rupee sign rendered before sending.
- 06Lock the formula cells so next month's edit cannot overwrite them.
Step five is worth doing every time rather than once. The font used in a PDF export can change when a file moves between machines, which is exactly when the rupee sign disappears without anyone noticing.
The reference
GST invoice format
The fields a GST tax invoice must carry under Rule 46, when to split the rate into CGST and SGST instead of IGST, and how long you have to issue one.
Make one now
Free, no sign-up, and nothing you type leaves your browser.
Questions people ask
It works, but it reliably produces five errors: duplicated numbers from copied files, discounts applied after tax, CGST and SGST computed as 9% twice, Western digit grouping, and a rupee sign that disappears on export. A spreadsheet is far better used as the register of what you have issued than as the tool that produces the document.
Read next
Invoicing software or a free generator?
An honest comparison: what paid invoicing software does that a browser tool cannot, and the point at which it becomes worth the subscription.
Rounding off an invoice total
Why invoice totals are rounded to the nearest rupee, where the adjustment should appear, and the rounding error that quietly breaks reconciliation.
Numbering invoices across clients and branches
When to run one series and when several are allowed, how to keep them consecutive, and what to do when invoices come from two systems.