Disclosure: I work at ZoopCoder, an Indian development agency. That means I have an obvious commercial interest in you buying agency hours instead of hiring. I have tried to write this so you can check every number yourself, including the ones that argue against us — there is a section near the end that tells you when to stop paying us. Every rupee figure here comes off our own published pricing page or off public statute, and I have said which is which.
Every “in-house developer vs agency” post I have read compares an hourly rate to a monthly salary and calls it analysis. That comparison is wrong in two specific, checkable ways, and both of them are things Indian founders discover after they have signed the offer letter.
Here is the short version, then the arithmetic.
The rule: it is not the rate, it is the utilisation
Hire in-house once you can honestly forecast more than about 900 hours of development work a year — roughly 18 hours a week, every week, for twelve months. Below that, an agency is cheaper.
Why 900:
- A developer on a ₹8,00,000 CTC costs about ₹10,50,000 a year once hardware, software seats, recruitment and statutory contributions are counted.
- That same person returns roughly 215 productive working days — not 365, and not 250. (365 − 104 weekend days − 10 public holidays − ~21 days of leave.)
- ₹10,50,000 at ₹1,200 an hour — the middle of our published ₹800–₹2,000/hr band — buys about 875 hours, or ~110 working days of agency time.
So the crossover is not “who is cheaper per hour”. At ~215 days versus ~110 days, the employee is obviously cheaper per unit of work — if you have the work. The whole question is whether you can keep one person busy all year. Most companies I talk to, when they actually write the list down, land somewhere between 300 and 600 hours.
Development work per year ~Hours/week Agency @ ₹1,200/hr In-house (₹8L CTC, loaded) Cheaper 120 hrs ~2.5 ₹1,44,000 ₹10,50,000 Agency 300 hrs ~6 ₹3,60,000 ₹10,50,000 Agency 600 hrs ~12 ₹7,20,000 ₹10,50,000 Agency ~875 hrs ~18 ₹10,50,000 ₹10,50,000 Line ball 1,200 hrs ~25 ₹14,40,000 ₹10,50,000 In-house 1,720 hrs (full year) ~36 ₹20,64,000 ₹10,50,000 In-houseNotice what that table does to the usual argument. Below the line it is not close. Above the line it is not close either. Almost nobody is actually near the crossover — people just never compute which side they are on.
The fact nobody models: your statutory cost is a function of your headcount, not their salary
This is the part I have genuinely never seen in an Indian cost article, and I think it is because most of them are structurally copied from US pieces where the equivalent thresholds work differently.
In India, the three big employer-side obligations are triggered by the size of your establishment, not by what you pay the person:
Obligation Employer-side cost (indicative) Headcount trigger EPF ~12% of wages 20 employees ESI ~3.25% of wages 10 employees Gratuity accrues ~4.81% of wages 10 employeesRead that column again. It means:
Your first developer is usually your statutorily cheapest one.
A five-person company hiring its first developer typically owes none of the three. The identical hire, same salary, same laptop, made by a twelve-person company carries ESI and gratuity. At twenty employees it carries EPF too. Same human, same offer letter, materially different annual cost — and the variable is the size of the company doing the hiring.
Practical consequence: if you are a 9-person company thinking about your tenth and eleventh hires, the marginal cost of hire #10 is not one salary. It is one salary plus a step-change in the cost of everyone already on the payroll. That is a real cliff and it belongs in the model.
Caveats, because this is statute and statute moves: these are the thresholds as they stand at the time of writing, voluntary coverage below the thresholds is possible and some companies choose it, and the Labour Codes redefine “wages” in a way that raises PF and gratuity where the new definition applies. Confirm your own position with your CA before you budget off this. I am an engineer at an agency, not your accountant.
The second asymmetry: GST cuts the other way
The agency invoice carries 18% GST. Whether that is a real cost depends entirely on one thing:
- You are GST-registered: you reclaim the whole 18% as input tax credit. The agency’s headline price is the real price. This comparison is a straight cash comparison.
- You are not registered (proprietor, small trust, startup below the threshold): that 18% is unrecoverable. A salary carries no GST at all, because employment is outside the scope of GST.
On ₹10,50,000 of agency work that is about ₹1,89,000 of unrecoverable tax. It moves the crossover from ~875 hours down to ~742 hours a year — from about 18 hours a week to about 15.
So the honest rule has a branch in it:
- GST-registered → hire in-house above ~18 hrs/week of real work.
- Not GST-registered → hire in-house above ~15 hrs/week.
What the money comparison completely misses
Cost is the easy axis. These are the ones that actually decide it:
In-house developer Small agency Time to first line of code 30–90 days (notice period + ramp) days Cost when work goes quiet full salary ₹0 Failure mode resignation — one person holds every credential and every undocumented decision being busy — your urgent Tuesday bug competes with someone else’s urgent Tuesday bug Recovery from that failure 2–3 months to rehire and re-ramp escalate, or leave Breadth one person’s stack a bench, but rented Availability yours all day sharedI want to be straight about the second column, because it is the thing agencies do not put on their websites: an agency has other clients. If your product needs someone reachable within the hour on a normal Tuesday, an employee is genuinely better and no amount of cost arithmetic changes that. Pick the failure you can survive — a two-week wait for attention, or a two-month wait for a replacement.
When you should fire us and hire someone
Under LAW-of-not-wasting-your-money, here is the honest list. If any of these is true, stop retaining an agency:
- You ship changes more than weekly. The per-request overhead of a contract relationship eats the savings.
- Software is the product, not a support function for the product. Then the codebase is your company and it should not live in a vendor’s head.
- You need a developer on customer calls — reading the actual bug report, in the actual meeting, unfiltered.
- Your retainer is already above roughly ₹85,000/month. That is a salary. Pay it as one.
That last one is the number that argues against us most directly, so here it is stated plainly: a fully-utilised in-house developer works out to roughly ₹491–₹641 per productive hour (₹10,50,000 over 215 days), which is below the bottom of our own quoted ₹800–₹2,000/hr band. If you can keep them busy, they win on price. We are not cheaper than a busy employee and I am not going to pretend otherwise. We are cheaper than an idle one, and most first hires are partly idle.
The pattern that usually wins
For a company with a live product, the cheapest correct answer is usually neither/both: agency builds v1 on a fixed-price contract, then one in-house developer takes over day-to-day, and the agency is retained only for bursts the employee cannot absorb — a payments migration, an app-store rewrite, a security review.
That only works if you own the code from day one. Whichever side you pick, insist on the same terms: the repository lives in an account you own, source code is assigned to you in writing, credentials are in your password manager and not someone’s laptop, and there is a written handover obligation.
Full working — the 9-line loaded-cost breakdown, the statutory table with the “does it hit a ₹8L developer” column, and the 12-row comparison — is on the guide this post is drawn from: In-House Developer vs Agency in India (2026).
If you disagree with the 900-hour threshold I would genuinely like to hear the counter-case in the comments — the input I am least sure of is the ₹1,200/hr midpoint, since that varies a lot by city and by stack.
답글 남기기