Setting a Freelance Hourly Rate From a Target Income
In this article (8 sections)
Related programme: the Generative & Agentic AI course (3 months).
Start with the income you want to keep, not the rate you think the market will bear. Add your real costs and the tax on the resulting receipts, then divide by the hours you can actually bill. In the hypothetical case below, keeping ₹24,00,000 after costs and tax for tax year 2026-27 needs about ₹27,27,983 of receipts under the 50% presumptive scheme. At 1,150 billable hours that is ₹2,372 an hour, which you might quote as ₹2,375.
Step 1: the income you want to keep
Choose a figure for what you want left after business costs and income tax. It is the number that pays your rent, savings and insurance. Here it is ₹24,00,000, a hypothetical figure for the example, not a guide to what freelancers make.
Step 2: costs you carry that an employer would
| Cost, per year | Amount |
|---|---|
| Laptop, replaced every three years | ₹50,000 |
| Software, cloud credits and subscriptions | ₹90,000 |
| Health cover for yourself | ₹30,000 |
| Internet, phone and co-working desk | ₹50,000 |
| Accountant and filing | ₹20,000 |
| Total | ₹2,40,000 |
These are your own figures to replace. Under the presumptive scheme they are not deducted separately, but they still leave your account, so they belong in the target.
Step 3: receipts needed after tax
If you qualify for section 58(2), Table Sl. 3 of the Income-tax Act, 2025_Bill.pdf), deemed profit is 50% of gross receipts. You need receipts R such that:
R − ₹2,40,000 − tax on (R ÷ 2) = ₹24,00,000
Tax depends on R, so solve by trial. R = ₹27,27,983 gives deemed profit of ₹13,63,991.50. On the new-regime slabs, tax is ₹60,000 + 15% of ₹1,63,991.50 = ₹84,598.73, or ₹87,982.67 with cess. Then ₹27,27,983 − ₹2,40,000 − ₹87,982.67 = ₹24,00,000.33, which meets the target. The slab rates are on the e-filing portal.
Receipts of ₹27,27,983 are well inside the scheme's ₹50,00,000 limit. If your plan takes you near that limit, the calculation changes; the script below stops you there.
Step 4: hours you can bill
| Item | Hours |
|---|---|
| 48 working weeks × 40 hours | 1,920 |
| Sales, proposals and client calls | −300 |
| Admin, invoicing and learning | −250 |
| Gaps between projects | −220 |
| Billable | 1,150 |
That is 60% of available time. Your own split may differ; a first year with few repeat clients often has more gap time.
₹27,27,983 ÷ 1,150 = ₹2,372.16 an hour. Rounded to ₹2,375, receipts become ₹27,31,250. Tax rises to ₹88,238, and you keep ₹24,03,012.
import math
# Hypothetical target, costs and hours. New regime, tax year 2026-27.
BANDS = [(400000, 0.00), (800000, 0.05), (1200000, 0.10), (1600000, 0.15),
(2000000, 0.20), (2400000, 0.25), (math.inf, 0.30)]
def income_tax(total_income):
due, prev = 0.0, 0
for top, rate in BANDS:
due += max(0, min(total_income, top) - prev) * rate
prev = top
if total_income <= 1200000:
return 0.0
return min(due, total_income - 1200000) * 1.04
def kept(receipts, costs):
return receipts - costs - income_tax(receipts / 2) # section 58(2) at 50%
def receipts_needed(target, costs):
lo, hi = 0.0, 5000000.0
assert kept(hi, costs) >= target, "target needs receipts above ₹50 lakh"
for _ in range(100):
mid = (lo + hi) / 2
lo, hi = (mid, hi) if kept(mid, costs) < target else (lo, mid)
return math.ceil(hi)
R = receipts_needed(2400000, 240000)
print("receipts:", R, "tax:", round(income_tax(R / 2)))
for hours in (900, 1150, 1400):
print(hours, "billable hours ->", math.ceil(R / hours), "an hour")
quoted = 2375 * 1150
print("at ₹2,375:", quoted, "kept:", round(kept(quoted, 240000)))How sensitive the rate is to hours
| Billable hours | Rate needed |
|---|---|
| 900 | ₹3,032 |
| 1,150 | ₹2,373 |
| 1,400 | ₹1,949 |
Hours move the rate more than any cost line does. Losing 250 billable hours raises the rate you need by about 28%. If you are unsure of your hours, price on the lower figure.
The rebate edge
The rate is lower for targets where deemed profit stays within ₹12,00,000, because the section 156 rebate then removes the tax. A target of ₹21,60,000 with the same costs needs ₹24,00,000 of receipts and no tax. Just above ₹24,00,000 of receipts, marginal relief means each extra rupee of receipts costs 52 paise of tax, until the normal slabs take over. Presumptive tax vs a salary shows that band in a table.
Revisiting the rate
Treat the rate as a forecast and check it against actuals. After each quarter, compare billed hours and costs with the plan, and rerun the function with the real figures. If billed hours are running at 1,000 a year rather than 1,150, the rate needed rises from ₹2,373 to ₹2,728, and it is better to know that in July than in March. Raise the rate for new clients first; existing contracts usually hold until renewal.
Two things the rate does not include
- GST. Quote the rate before GST. Once registered, add it on the invoice. See the GST threshold for freelance data work.
- Client TDS. A client may deduct 2% or 10%. That changes when you get the cash, not what you earn, but it affects your monthly budget. Client TDS on freelance invoices models it.
Freelance work building generative-AI tools is priced this way too. Our Generative & Agentic AI add-on is taught live online, with optional in-person labs at our Noida centre. Eligible learners who meet the attendance and capstone criteria get assured job interviews through our hiring network, plus a post-course internship.
Frequently asked questions
Why not just divide a salary figure by 2,000 hours?
Because you will not bill 2,000 hours. Leave, holidays, sales calls, admin and gaps between projects all come out of the year. A rate built on hours you cannot bill leaves you short however hard you work.
Should the rate include GST?
Keep it separate. Quote your rate before GST and add GST on the invoice if you are registered. That way crossing the registration threshold does not quietly cut your income.
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