
The US Bureau of Labor Statistics puts the median annual wage for software developers at $135,980 as of May 2025. Across a standard 2,080-hour year that is $65.38 an hour, and against 1,920 productive hours once leave and public holidays come out, $70.82.
That figure is wages only. It carries no payroll tax, no benefits, no equipment, no recruitment fee, no desk, and no management. Our published rate is $40 to $100 an hour by role, blending to $60 to $70, and that number includes all of it — the engineer, the QA, the project management and the overhead.
So the honest headline is narrower than most offshore pitches claim and more useful: an offshore blended rate sits roughly where a US developer's bare salary sits per hour. Not a tenth. Not "70% savings". Roughly level with the wage line alone, with everything else on top of their side of the comparison and already inside ours.
The wrong question is "how much cheaper is offshore". The right one is what the rate difference has to cover: the coordination, the specification work, and the hours when nobody on the other side is awake. Get those wrong and a lower rate buys a more expensive project, which is the outcome that gives the whole model its reputation.
Most comparisons set an offshore hourly rate against an onshore hourly rate and stop. Both numbers are real and the comparison is still wrong, because the two rates are not measuring the same thing.
An employee's wage buys their hours. It does not buy the recruiter who found them, the two months before they were productive, the laptop, the benefits, the office, the manager's time, or the cost of the role sitting empty for a quarter when they leave. An agency rate has all of that inside it already, which is why rate-to-wage is the comparison that flatters offshore and rate-to-fully-loaded-cost is the one that is true.
For reference from the same BLS release: software quality assurance analysts and testers have a median of $104,300, and computer occupations as a whole $109,470. A QA engineer is not free onshore either, and a blended agency rate includes one.
The other half of the correction runs the other way, and offshore vendors never volunteer it. A distributed team has real costs an in-house team does not — the hours lost to asynchronous clarification, the specification that has to be written down rather than said across a desk, the context that does not transfer by osmosis. Those are not hypothetical. They are the main reason offshore engagements fail, and they are the subject of the rest of this post.
If you take one number from this post into a negotiation, make it the number of hours a day your team and the delivery team are both working.
With four or more overlap hours, a question asked is a question answered the same day. Code review is a conversation. A wrong assumption gets caught in the morning and corrected by the afternoon.
With one or two, every clarification costs a day. A developer who hits an ambiguity at the start of their day either guesses or stops. Guessing produces rework; stopping produces idle time you are paying for. Both are more expensive than the rate difference that bought them.
With none, you are not running a team, you are running a specification relay, and that only works for genuinely self-contained work with no decisions inside it.
There is a practical nuance about where the overlap sits. Four hours at the start of your day is worth more than four hours at the end, because a question raised in your morning reaches a team still mid-shift, and the answer comes back the same day rather than the next. The reverse arrangement technically satisfies the same contract term and behaves noticeably worse. Ask which half of your day the overlap covers, not just how long it is.
So the question to ask a supplier is not "what are your hours" but "how many hours will overlap with mine, and will that be in the contract". A supplier who treats that as a detail rather than a term is telling you how the engagement will go.

Three failure modes, and the rate is not among them.
No overlap hours, as above. Spec churn, where the requirement changes faster than the team can build it and the rework is billed at your rate rather than absorbed. No named owner, where the engagement is addressed to an inbox and no single person on the supplier side can make a decision or refuse a bad one.
Each of those costs more than the hourly difference between onshore and offshore. That is the honest summary: the model does not fail on price, it fails on the three things price was supposed to buy you room for.
Treat the gap between an offshore rate and a fully loaded onshore cost as a budget rather than a saving, and the decision gets easier. Three things come out of it before anything reaches your margin.
Written specification. Work that an in-house team would absorb through a conversation has to exist as text. That is real effort on your side as well as the supplier's, and it is the single most common thing clients fail to resource. A business analyst's time, or a product owner's, is part of the cost of the model.
Coordination. A daily call inside the overlap window, written handovers at the edges of it, and a review cadence frequent enough that a misunderstanding surfaces in days rather than weeks. Call it a few hours a week of senior time on your side, permanently.
The cost of being wrong more slowly. An in-house team notices a bad assumption in the corridor. A distributed team notices it at the next sync. That delay is not a fault, it is a property, and the budget has to carry it.
What is left after those three is the actual saving, and on a well-run engagement it is substantial. On a badly run one it is negative, which is the entire reason offshore has the reputation it does. The rate was never the variable.
This one deserves separating because clients cause it and suppliers profit from it, which means nobody in the room is motivated to name it.
In-house, a changed requirement costs the same salary you were already paying. The developer rebuilds the thing and the cost is invisible because it is absorbed. With an external team, the same change appears on an invoice, and because it appears on an invoice, it becomes an argument rather than a decision.
The fix is not a change-control process, which usually just adds friction to necessary changes while doing nothing about unnecessary ones. The fix is discovery that produces decisions rather than a document. Specifically: an integration inventory naming every system the build must talk to, at the version you actually run rather than the version in the current documentation, and a written answer to each of the questions that otherwise get answered three times during the build.
We do not give a fixed price before that discovery, and the reason is self-interested as well as principled: a fixed price quoted against an unknown integration surface is either padded or wrong, and both outcomes damage the engagement.
There is a second discipline that costs nothing and prevents most of the churn: decide what version one does not include, in writing, before the first sprint. A list of what is in reads like a promise and grows. A list of what is deliberately out reads like a decision and holds, because adding to it requires someone to make an argument on the record. Across a distributed team, where the argument would otherwise happen three times in three messages, that document does more work than any process.
Four questions. Any supplier worth hiring answers all four without hedging.
How many hours overlap, and is that in the contract? Discussed above, and the single most predictive answer.
Who is my named lead, and can they say no? A supplier whose lead agrees with everything is not managing the work, they are relaying it. The ability to push back on a bad requirement is the thing you are actually buying with an agency over a freelancer.
What does your rate include? QA, project management and code review should be inside it. If they are line items, the headline rate is not the rate.
Who owns the code, the repository and the cloud accounts? Covered below, and the answer should make you uncomfortable if it is not "you".
A fifth question is worth adding if the engagement will run beyond a few months: what happens when your lead engineer leaves the supplier? Attrition is normal everywhere, and the answer reveals whether knowledge lives in the team or in one person. A supplier with documented handover, overlapping staffing on critical modules and a written architecture can absorb it. One whose answer is a reassurance has told you that your project depends on an individual's continued employment somewhere you cannot influence.
Not every part of a project survives the distance equally, and matching the work to the model matters more than the rate does.
Travels well: anything with a clear specification and a testable outcome. Platform and backend work, integrations, data pipelines, mobile applications against an agreed design, and the large build-out phase of a product whose shape is already settled. This is most of the work in most projects.
Travels badly: work where the requirement is discovered by talking to users this week, early-stage product definition where the answer changes weekly, and anything that depends on tacit knowledge of a business nobody has written down. That work wants to sit close to the people who hold the context.
Our own enquiry data points the same way. Across 92 contact enquiries, 59 were real. Of the 22 at $5,000 or more, 15 came from outside India — 8 from the United States and 7 elsewhere. And of the enquiries above $25,000, the breakdown was business platforms such as ERP, SaaS and dashboards 5, AI 4, mobile apps 4, and plain websites zero.
That last number is the useful one. Nobody commissions a distributed team across time zones to build a brochure site, and they should not. The model earns its coordination cost on platforms, and only on platforms.
It also explains a pattern worth naming. The enquiries that arrive asking only for a rate are almost always the small ones, and the enquiries that arrive describing an integration surface are almost always the large ones. Buyers who know what they are building ask about the work; buyers who do not ask about the price, because price is the only variable they can compare across suppliers. Neither is a character judgement, but the second conversation needs to become the first before anything useful gets quoted.
The question that is cheapest to ask at the start and most expensive to ask later.
The repository should be yours, in your organisation, with the supplier's engineers as members. Not a supplier repository you receive a copy of at the end. The difference only becomes visible in a dispute, which is exactly when you cannot fix it.
The cloud accounts should be yours, with the supplier granted access. A platform running in a vendor's account is a platform you cannot move without their cooperation.
The data is yours in every case, and the engagement should say so in writing, including what happens to copies in logs, backups and local development environments at the end.
None of this implies bad faith. Most suppliers will agree to all three immediately, and the ones who hesitate have told you something important for the price of asking.
Three cases, stated plainly, because a post that says the model always works is an advertisement.
When the requirement is still moving. If what you are building changes weekly because you are still learning what it should be, pay for proximity. Distribution multiplies the cost of a changing specification, and you will spend the saving on rework and then some.
When you have nobody to own it internally. An offshore team needs one person on your side who can make decisions, answer questions and accept delivery. Without that person, the engagement stalls regardless of how good the supplier is, and the failure gets attributed to the model rather than the gap.
When the work is genuinely small. Coordination has a fixed cost. Below a certain size, that cost is a larger share of the project than the rate saving, and a local contractor or an existing team member is simply the better answer.
Not a status report. A set of habits that make the distance invisible.
The overlap window is in the calendar and both sides defend it. There is one named lead on each side and they speak daily. Work arrives in pieces small enough to review in a sitting, because a fortnight of work delivered at once cannot be corrected, only accepted or rejected. The specification is written down once, in a place both sides edit, rather than living across a dozen messages.
And the hard conversations happen early. A supplier who tells you in week two that a requirement is unclear is doing the job. One who tells you in week ten that it was unclear all along has been billing you for the ambiguity.
If an engagement has those habits, the time zone stops mattering within a month. If it does not, no rate makes the arrangement worth running.
The US Bureau of Labor Statistics puts the median annual wage for software developers at $135,980 as of May 2025, which is $65.38 an hour across a 2,080-hour year, or $70.82 against 1,920 productive hours. That is wages only — no payroll tax, benefits, equipment, recruitment or management. Our published rate is $40 to $100 an hour by role, blending to $60 to $70, and that includes engineering, QA, project management and overhead. So a blended offshore rate sits roughly level with a US developer's bare wage per hour, not a fraction of it.
Three things, and the rate is not one of them. Too few overlap hours, so every clarification costs a day and developers either guess or stop. Spec churn, where requirements change faster than the team can build and the rework appears on an invoice rather than being absorbed. And no named owner on the supplier side, so the engagement is addressed to an inbox and nobody can make or refuse a decision. Each costs more than the hourly difference that bought it.
Four or more and a question asked is a question answered the same day, with code review as a conversation. One or two and every clarification costs a day. None and you are running a specification relay, which only works for self-contained work with no decisions inside it. Ask a supplier how many hours will overlap with yours and whether that will be in the contract — a supplier who treats it as a detail rather than a term is telling you how the engagement will go.
Work where the requirement is discovered by talking to users this week, early-stage product definition that changes weekly, and anything depending on tacit knowledge of a business nobody has written down. Also genuinely small work, because coordination has a fixed cost that outweighs the rate saving below a certain size. What travels well is anything with a clear specification and a testable outcome: platform and backend work, integrations, data pipelines and mobile builds against an agreed design.
You, in both cases. The repository should sit in your organisation with the supplier's engineers added as members, not in a supplier repository you receive a copy of at the end. Cloud accounts should be yours with the supplier granted access, because a platform running in a vendor's account cannot be moved without their cooperation. The data is yours in every case, and the agreement should state what happens to copies in logs, backups and development environments at the end.
Engineering, QA, project management and code review. If those appear as separate line items, the headline rate is not the rate you will pay. Ask for the work broken down by role and by module rather than as a single total, because a total with no composition behind it cannot be argued with — which is usually why it is quoted that way.
Almost never worth the coordination. Our own enquiry data makes the point: of enquiries above $25,000, business platforms accounted for 5, AI for 4 and mobile apps for 4, while plain websites accounted for zero. Website requests cluster under $5,000, where the overhead of running a distributed engagement outweighs any rate advantage. The model earns its coordination cost on platforms and products, not on brochure sites.

Vikas has around fifteen years of experience building software and now builds generative AI systems at Zyneto. His work covers retrieval augmented generation, agentic AI, knowledge graphs, AI memory, and the evaluation and guardrails that decide whether any of it is safe to put in front of customers. He has shipped enterprise copilots, document AI, chatbots and predictive analytics for e-commerce, fintech and marketing teams, and works day to day in Python, JavaScript and SQL. He follows multimodal models, business process automation and enterprise AI security closely, and mentors engineers moving into AI. He writes about architecture, inference cost and the failure modes that only show up at production scale.
Share your details and we will talk soon.
Be the first to access expert strategies, actionable tips, and the trends actually shaping the digital world. No fluff - just practical insights delivered straight to your inbox.
Dive into our blog and stay ahead of the curve with expert perspectives, future-ready trends, and tech tips written for decision-makers and doers alike.