TBTechBaro

Rate data teardown · 8 minute read

Why the published freelance rate surveys disagree with each other

Four sources, published within eighteen months of each other, describe the same job at $15 an hour and at €121 an hour. None of them is lying. Here is what each one is actually counting.

Guido Kerger

Guido Kerger · Founder, TechBaro

Published · Last reviewed

Search for what a freelance developer charges and you will be handed a number within seconds. Search twice and you will be handed a different one. The gap between the figures on offer in 2026 is not a rounding error: Upwork's guide describes front-end contracts at $15–35 per hour, and freelancermap's DACH study reports management and IT consulting at €121 per hour. That is an eightfold spread across pages that all appear to answer the same question.

The reflex is to decide one of them is wrong. That is the wrong reflex, and it is expensive: it leads people to pick whichever source flatters their current position and treat the rest as noise. Every one of these sources is reporting something real. They disagree because they are counting different people, in different markets, for different reasons, and almost none of them tell you that above the number.

This is a teardown of four of them — what each measured, what it cannot see, and what the pattern of disagreement is actually telling you about the market.

The four sources, side by side

These are the four most commonly cited published references for freelance developer pricing in 2026. The column that matters is not the figure. It is the population.

SourceYearHeadline figureWho it counted
Arc2026$55–120/hr front-end · $110–190/hr AI/MLNobody. It is guidance written for companies budgeting a hire.
freelancermap2026€103/hr all specialisms · €91/hr development5,412 surveyed freelancers plus platform data from 340,000+ users in Germany, Austria and Switzerland.
Upwork2026 guide$15–35/hr front-end · $20–40/hr back-end, $25 medianHourly contracts booked on the Upwork marketplace, worldwide.
Stack Overflow202513.9% are independent contractors, freelancers or self-employed48,178 developers who answered the employment-status question worldwide.

Read that table again with the last column first and the disagreement stops being mysterious. A survey of German enterprise contractors and a global marketplace's booking history were never going to produce the same number, and neither of them was trying to.

Disagreement one: they are not sampling the same people

Upwork reports what was actually transacted on Upwork. That is a real measurement with a real denominator, and it describes a specific commercial situation: work defined tightly enough to be posted as a contract, bid on by a global supply of freelancers, in a market where the buyer can compare twelve quotes in an afternoon. A $25 median is what price competition looks like when the buyer's switching cost is a click.

freelancermap surveys people working in a different economy entirely — largely enterprise contracting in Germany, Austria and Switzerland, often reached through project portals and intermediaries, on engagements measured in months. Its €91 per hour for development work and €103 across all specialisms describe a market where the buyer's alternative is a permanent hire or a consultancy day rate, not another bid.

Neither figure predicts the other, because moving between those two markets is a change of business model rather than a change of price. This is the single most useful thing to understand about freelance rate data: most of the variance between published sources is channel, not skill.

Disagreement two: two of them are not measuring rates at all

Arc's bands are the most widely reproduced figures in this space, and they are not a survey of freelancers. They are client-side hiring guidance: what a company engaging vetted remote developers should expect to budget. Arc itself describes them as broad market observations rather than pricing rules. A budgeting range and an earnings distribution can differ enormously and both be correct, because a budget includes everything the buyer expects to spend and an earnings figure is what one seller received.

Stack Overflow's 2025 survey is the most methodologically legible source of the four — it publishes its sample size, 48,178 developers on the employment-status question — and it does not measure rates at all. It measures how many developers work independently: 13.9%. That is a genuinely useful number for sizing the population, and it appears in rate articles as though it were a pricing statistic with disturbing frequency.

So of four commonly cited rate sources, one is a marketplace's own transaction history, one is a regional survey, one is buyer-side budgeting advice, and one is not about money. Presented as four estimates of a single quantity, they look like chaos. Presented with their populations attached, they are four coherent measurements of four different things.

Disagreement three: nobody publishes a sample size for the cell you are reading

freelancermap publishes its overall sample. Stack Overflow publishes its per-question base. That already puts them ahead of most of the field. But no source in this space publishes how many observations sit behind an individual cell — the specific regional band, the specific specialism, the specific experience tier that you actually looked up.

This matters more than it sounds. A specialism band derived from twelve contracts and one derived from twelve thousand render identically on the page: same typography, same confident hyphen between two numbers. The reader has no way to tell which one they are quoting in a negotiation, and the negotiation does not care.

The honest version of a rate table has an n in every row. Nothing published in 2026 does this, which is the specific gap TechBaro was built around: its publication threshold is 30 reports in a rolling 30-day window per segment, the sample size is printed next to every figure, and below the threshold nothing is published at all — not the index, not a trend line, not a regional cut.

Disagreement four: a range is not a distribution

"$70–120/hr" tells you the endpoints of something and nothing whatsoever about its shape. If most of the mass sits at $75, that range describes a market where $115 is an outlier you will meet once. If the distribution is bimodal — a cluster of commodity work and a cluster of specialist work with very little in between — then the midpoint of $95 describes a rate almost nobody actually charges.

Because a range supports both readings, two freelancers can read the same guide and both come away confirmed: one concludes they are underpriced, the other concludes they are at the top of the market. Neither has learned anything. A median without a distribution has the same problem in a more authoritative-looking format.

The fix is not complicated — publish the distribution, or at minimum the quartiles — and its absence across the entire category is conspicuous. Ranges are cheap to produce, hard to falsify, and impossible to be wrong about.

Disagreement five: the units are not even the same

Three further mismatches sit underneath the headline figures, and none of them is usually stated:

  • Currency. Dollar and euro figures get compared directly, or worse, converted at today's rate and presented to two decimal places. Applying an exchange rate to a range that is already eight-fold wide adds precision that does not exist. Every figure on this site is shown in the currency it was published in.
  • Before or after the platform takes its cut. A marketplace rate is a gross booking. What reaches the freelancer is that number minus fees, and the two are routinely quoted as if interchangeable.
  • Billed versus earned. Every source here reports the price of an hour. None reports how many hours were sold. A freelancer at $120/hr billing 40% of the year earns less than one at $70/hr billing 85%, and no rate guide anywhere will tell you which of those two situations you are walking into.

That last one is not a nitpick, it is the whole game. Rate is the visible half of an income and the less important half.

What the pattern of disagreement is actually telling you

Stop trying to reconcile the numbers and start reading the structure of the disagreement. Three things fall out of it that no single source states on its own.

Specialism moves your rate more than geography does

In Arc's 2026 tables the spread across specialisms — front-end at $55–120, DevOps and platform at $90–170, AI/ML at $110–190, AI infrastructure at $120–200 — is wider than the spread across most of its regions. What you take responsibility for outweighs where you live, at least in the data published for buyers.

The direction of travel is measurable even when the level is not

freelancermap's 2026 all-specialism average of €103 is down from €104 in 2025. One euro is nothing; being the first decline the study has recorded is not nothing. A level you cannot trust can still yield a trend you can, provided the methodology stayed constant — which is exactly why a source that changes its method between years owes you a note saying so.

The disagreement itself is priced information

If the same job title spans $15 to €121 depending on channel, then choosing your channel is the highest-leverage pricing decision available to you, and it dwarfs the effect of asking for 10% more within the channel you are already in.

How to use four disagreeing sources without being misled

  1. Identify your channel first. Marketplace, intermediary, or direct client. Discard every source that measured a different one — you have just eliminated most of the spread.
  2. Prefer the source that measured your region, even when its figure is less flattering and its scope is broader than your role.
  3. Never stack the cuts. Regional, experience and specialism bands are three alternative views of one market, not three multipliers. Applying "Western Europe" then "senior" then "specialist" to the same base produces a number no source supports.
  4. Compute your own floor before you look at any of them. Your costs, your realistic billable capacity, the months you will not invoice. The benchmarks are a sanity check on that result, not a substitute for it — that is what the rate calculator is for, and nothing you type into it leaves your browser.
  5. Quote the source when you use it. "Arc's 2026 guide puts platform engineering at $90–170" is a negotiating position. "The market rate is $130" is an assertion your client can simply decline to accept.

What would actually settle the disagreement

A rate figure worth trusting would carry four things the current field does not: the sample size behind that specific cell, an explicit definition of the population, a publication rule stated before the data arrives rather than after, and a distribution instead of a midpoint. Add utilisation — how much of the year was actually billed — and you would have something that describes an income rather than a price tag.

That is the instrument TechBaro is building, and it does not exist yet. There is no TechBaro index on this site today, no illustrative chart, and no placeholder number, because the threshold is 30 reports in a rolling 30-day window and the count is public on the home page. The methodology states the rule; the rule was set before the data existed, which is the only time such a rule means anything.

Until then, the four sources above are what exists, and reading them with their populations attached is a genuine skill. It is also the cheapest defence there is against a confident number on a page that never says who it counted.

TechBaro publishes nothing it has not measured

There is no TechBaro index on this site yet. It publishes when 30 reports exist in a rolling 30-day window, with the sample size printed beside it. Until then, every figure here belongs to a named external source and says so.

Keep reading