GST Refund Calculation explained: this guide covers what it means, who it applies to, the step-by-step process, documents required, fees, due dates and penalties in India — so you can stay compliant with confidence and avoid costly mistakes.
A GST refund working is a short chain of arithmetic: value the exports, build Adjusted Total Turnover, take Net ITC, run the Rule 89 formula, then cap it by the ledger balances. Excel handles all of it with MIN, ROUND and a few additions. Below is a layout for both formulas, with the exact cell formulas and sample figures you can check your sheet against.
Build three blocks: inputs (turnover, ITC, ledger balances), workings (lower of FOB and invoice, 1.5× cap, services on a receipts basis, ATT, Net ITC), and result (formula amount, least-of-three with `=MIN()`, debit split IGST first, then CGST and SGST equally). Use Rule 89(4) for exports and SEZ under LUT, Rule 89(5) for inverted duty. Keep the sheet tied to GSTR-1, GSTR-3B and GSTR-2B so every input has a source.
Sheet 1: invoice-level export values
Statement 3 is filed invoice by invoice, so value exports at that level first. Columns:
| Column | Heading | Formula (row 2) |
|---|---|---|
| A | Invoice no. | typed |
| B | Invoice value (₹, excl. tax) | typed |
| C | FOB in shipping bill (₹) | typed |
| D | Value taken | `=MIN(B2,C2)` |
Copy D2 down, then total column D at the bottom (say `=SUM(D2:D200)`). The Explanation to Rule 89(4) takes the lower of FOB and invoice value, so `MIN` is the whole rule.
Sheet 2: the Rule 89(4) working (exports/SEZ under LUT)
| Cell | Label | Entry or formula | Sample |
|---|---|---|---|
| B3 | Export value (total of Sheet 1 col D) | `='Sheet1'!D201` | 60,00,000 |
| B4 | Domestic value of like goods (same quantity) | typed | 45,00,000 |
| B5 | Zero-rated goods turnover | `=MIN(B3,1.5*B4)` | 60,00,000 |
| B7 | Export services: payments received in period | typed | 0 |
| B8 | Add: services completed against earlier advances | typed | 0 |
| B9 | Less: advances for services not completed | typed | 0 |
| B10 | Zero-rated services turnover | `=B7+B8-B9` | 0 |
| B12 | Domestic taxable goods | typed | 40,00,000 |
| B13 | Domestic taxable services | typed | 0 |
| B14 | Exempt supplies | typed | 0 |
| B15 | Adjusted Total Turnover | `=B5+B12+B14+B10+B13-B14` | 1,00,00,000 |
| B17 | ITC on inputs | typed | 6,00,000 |
| B18 | ITC on input services | typed | 1,50,000 |
| B19 | Net ITC | `=B17+B18` | 7,50,000 |
| B21 | Formula amount | `=ROUND((B5+B10)*B19/B15,0)` | 4,50,000 |
| B22 | Ledger balance at period end (after GSTR-3B) | typed | 5,20,000 |
| B23 | Ledger balance on filing day | typed | 4,80,000 |
| B24 | Refund claimable | `=MIN(B21,B22,B23)` | 4,50,000 |
Notes on the design:
- B15 keeps exempt supplies visible (added in as part of turnover in State, then removed) so a reviewer can see they were considered. You can shorten it to `=B5+B12+B10+B13`.
- B5 feeds both the numerator and ATT, which is what Circular 147/03/2021-GST requires when the 1.5× cap bites.
- Capital goods get no cell. Leaving them out of the layout stops anyone adding them by habit.
- Check: 60,00,000 × 7,50,000 ÷ 1,00,00,000 = 4,50,000.
The terms behind each cell are explained in adjusted total turnover for GST refund and Net ITC meaning in the GST refund formula. If you would rather not build it, the GST refund calculator runs the same logic online.
Sheet 3: the Rule 89(5) working (inverted duty)
| Cell | Label | Entry or formula | Sample |
|---|---|---|---|
| B3 | Turnover of inverted rated supply | typed | 1,20,00,000 |
| B4 | Adjusted Total Turnover | typed or linked | 1,50,00,000 |
| B5 | Tax payable on the inverted supply | typed | 6,00,000 |
| B6 | ITC on inputs (Net ITC) | typed | 15,00,000 |
| B7 | ITC on input services | typed | 3,00,000 |
| B8 | ITC on inputs and input services | `=B6+B7` | 18,00,000 |
| B10 | Bracket 1 | `=B3*B6/B4` | 12,00,000 |
| B11 | Bracket 2 | `=B5*(B6/B8)` | 5,00,000 |
| B12 | Maximum refund | `=ROUND(MAX(0,B10-B11),0)` | 7,00,000 |
| B13 | Ledger balance at period end | typed | 9,00,000 |
| B14 | Ledger balance on filing day | typed | 8,00,000 |
| B15 | Refund claimable | `=MIN(B12,B13,B14)` | 7,00,000 |
Check the sample by hand: 1,20,00,000 × 15,00,000 ÷ 1,50,00,000 = 12,00,000. Then 6,00,000 × 15,00,000 ÷ 18,00,000 = 5,00,000. The difference is 7,00,000.
`MAX(0, …)` in B12 stops the sheet showing a negative refund when output tax covers the credit. Net ITC in B6 is inputs only; input services appear only in B8. Our inverted duty refund service uses this same split.
Block 4: splitting the debit across tax heads
The claimed amount is debited from the credit ledger IGST first, then CGST and SGST/UTGST equally, with any shortfall in one taken from the other. For the Sheet 2 sample:
| Cell | Label | Formula | Sample |
|---|---|---|---|
| E3 | IGST balance on filing day | typed | 2,00,000 |
| E4 | CGST balance | typed | 1,40,000 |
| E5 | SGST balance | typed | 1,40,000 |
| F3 | IGST debit | `=MIN(B24,E3)` | 2,00,000 |
| F6 | Remainder | `=B24-F3` | 2,50,000 |
| F4 | CGST debit | `=MIN(F6/2,E4)+MAX(0,F6/2-E5)` | 1,25,000 |
| F5 | SGST debit | `=F6-F4` | 1,25,000 |
The F4 formula takes half the remainder from CGST and picks up any part SGST cannot cover. Check that F3 + F4 + F5 equals B24.
Block 5: sanity checks worth adding
| Check | Formula idea |
|---|---|
| Refund per tax head under ₹1,000 (not paid under s.54(14); the limit applies per head) | `=IF(AND(F3>0,F3<1000),"Below ₹1,000","OK")` |
| Provisional refund for zero-rated claims (90%, s.54(6)) | `=ROUND(B24*0.9,0)` → 4,05,000 |
| ATT ties to GSTR-3B turnover for the period | `=IF(ABS(B15-H3)>1,"Reconcile","OK")`, with H3 = GSTR-3B figure |
| Net ITC ties to GSTR-2B | same pattern against the GSTR-2B total |
Keep one workbook per claim period and save it with the ARN. Officers often ask for the working, and a sheet that links each figure to a return is easier to defend. What else goes in the file is in refund file: what to assemble before filing.
Want the working built and reconciled for you?
A sheet is only as good as its inputs. We pull the figures from GSTR-1, GSTR-3B, GSTR-2B and the shipping bills, build the working for each period and file the claim. Check your numbers in the GST refund calculator, then reach us through the GST refund hub.
Key takeaways
- Value exports invoice by invoice with `=MIN(invoice, FOB)`, then apply `=MIN(value, 1.5 × domestic)`.
- Use the same capped export value in the numerator and in ATT.
- Rule 89(4) Net ITC = inputs + input services; Rule 89(5) Net ITC = inputs only.
- Finish with `=MIN(formula, period-end ledger, filing-day ledger)`.
- Split the debit IGST first, then CGST and SGST equally, and tie every input to a return.
Read next
- GST refund formula explained: Rule 89(4) and 89(5)
- GST refund calculation for export without payment: example
- Statement 1A for inverted duty refund
- How much GST refund will I get?
Disclaimer: Positions stated as on 30 September 2026, based on the CGST Act and Rules as amended, the Finance Act 2026, and the ICAI Handbook on Refunds under GST (January 2026). Verify current notifications before filing.