GST Registration for Freelance Data Work: Tracking ₹20 Lakh
In this article (6 sections)
Related programme: the Generative & Agentic AI course (3 months).
If you freelance on data or AI projects, section 22 of the CGST Act, 2017 requires GST registration once your aggregate turnover in a financial year exceeds ₹20 lakh, or ₹10 lakh if you supply from a special category State. Aggregate turnover counts taxable, exempt and export supplies together, across every business on your PAN. The practical job is a running monthly total that tells you, before you raise the invoice, which one takes you over.
What the section actually tests
Two provisions of the CGST Act do the work.
| Provision | What it says, in short |
|---|---|
| Section 22(1) | Register in the State or Union territory you supply from once aggregate turnover in a financial year exceeds ₹20 lakh |
| Proviso to 22(1) | ₹10 lakh for special category States, which the Government may raise up to ₹20 lakh on a State's request |
| Section 2(6) | Aggregate turnover includes taxable, exempt and export supplies, computed on an all-India basis for the same PAN |
The ₹40 lakh option you may have read about applies only to suppliers exclusively of goods. A consultant writing pipelines, dashboards or retrieval systems supplies services, so the ₹20 lakh line is the relevant one.
Three consequences follow from the wording. The test runs over a financial year, so the count restarts on 1 April; the year used below is 2026-27. Export work counts, even when you expect it to be zero-rated. And two activities on one PAN, say a consulting practice and a small training sideline, share a single total.
A hypothetical year of invoices
Suppose you bill a domestic client ₹1,80,000 every month from April 2026. In August you also invoice ₹2,00,000 to an overseas client for a one-off model evaluation.
| Month | Domestic | Export | Running total |
|---|---|---|---|
| Apr–Jul | ₹1,80,000 each | – | ₹7,20,000 by July |
| Aug | ₹1,80,000 | ₹2,00,000 | ₹11,00,000 |
| Sep–Dec | ₹1,80,000 each | – | ₹18,20,000 by December |
| Jan 2027 | ₹1,80,000 | – | ₹20,00,000 |
| Feb 2027 | ₹1,80,000 | – | ₹21,80,000 |
January brings the total to exactly ₹20,00,000. That is not above the limit. February's invoice takes it to ₹21,80,000, and that is the month you cross.
Without the export job, the same domestic work alone reaches ₹19,80,000 by February and ₹21,60,000 in March. The export invoice therefore moved your crossing forward by a month. If you had left it out of your count because it seemed "not GST work", your tracker would have been a month late.
In a special category State, with the ₹10 lakh limit, the August invoice would have been the crossing point: ₹11,00,000 against ₹10,00,000.
The tracker
# Synthetic invoices for financial year 2026-27. Replace with your own ledger.
LIMIT = 2000000 # ₹10,00,000 in a special category State
def first_month_over(invoices, limit=LIMIT):
"""invoices: list of (month, domestic_taxable, exempt, export)."""
running = 0
for month, domestic, exempt, export in invoices:
running += domestic + exempt + export
flag = "OVER" if running > limit else ""
print(f"{month:<4} {running:>12,} {flag}")
if running > limit:
return month, running
return None, running
months = ["Apr", "May", "Jun", "Jul", "Aug", "Sep",
"Oct", "Nov", "Dec", "Jan", "Feb", "Mar"]
book = [(m, 180000, 0, 200000 if m == "Aug" else 0) for m in months]
print(first_month_over(book)) # ('Feb', 2180000)
print(first_month_over([(m, 180000, 0, 0) for m in months])) # ('Mar', 2160000)
print(first_month_over(book, limit=1000000)) # ('Aug', 1100000)Run it with next month's expected invoice added before you send that invoice. If the flag appears, you have your answer while you still have time to act on it.
What to record for each invoice
The tracker is only as good as its inputs. Keep one row per invoice with:
- invoice date and number;
- client and whether they are in India or abroad;
- amount, split into the supply categories above;
- PAN the work was billed under, if you run more than one activity.
The same ledger also serves your income-tax records. Presumptive taxation under the Income-tax Act, 2025 has its own receipts test, which is a separate limit counted over a tax year; presumptive tax vs a salary covers it. Keeping one ledger for both avoids two sets of totals that disagree.
What this article does not settle
- Section 24. It lists persons who must register whatever their turnover. We did not review it, or any notification under it, so check it before assuming you are below the line.
- The time allowed to apply once you cross, and what to charge on invoices after registration. These follow from other provisions and portal procedure that are outside the facts checked here. Ask a practitioner or read the GST portal guidance before you invoice past the threshold.
- Whether a particular receipt is a supply. The tracker assumes every invoice listed is one. If you have mixed income, get the classification checked.
Pricing once you are registered
Crossing the threshold changes what a client sees on your invoice, not only your paperwork. If you quote a flat fee now, decide in advance whether future quotes are stated before or after GST, and say which in the quote. Setting an hourly rate from a target income builds that rate from the income you want, so you can add tax on top rather than absorb it.
Freelance GenAI work is one route learners take after our Generative & Agentic AI add-on, a 3-month programme taught live online, with optional in-person labs at our Noida centre.
Frequently asked questions
Does exactly ₹20 lakh of turnover require registration?
The section 22 test is turnover that exceeds ₹20 lakh in a financial year, so a running total of exactly ₹20,00,000 has not crossed it. The first rupee above it does.
My clients are abroad. Does that turnover count?
Yes. Aggregate turnover as defined in section 2(6) includes export supplies, as well as taxable and exempt supplies, computed across all your businesses on the same PAN.
Are there cases where I must register below the threshold?
Section 24 lists compulsory-registration cases, and notifications can change the position. We have not reviewed them for this article, so check them on the GST portal or with a practitioner before relying on the threshold alone.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our Generative & Agentic AI programme — 3 months. Add practical GenAI, retrieval and agent-building skills to your existing toolkit.
Explore Generative & Agentic AI