0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

業務委託の単価表:掲載中750件の単価の上限をスキル別に集計した(2026年10月20日時点)

0
Last updated at Posted at 2026-10-20

フリーランス案件の「単価相場」は、記事によって幅がまちまちで、どこから来た数字なのか書かれていないことも多いです。

実は、私たちが運営している案件サイトの記事もそうでした。読み返すと、単価の幅を書いたページが102あり、その相場の行に出典が書かれていたものは1行もありませんでした。説明できない数字は消し、かわりに掲載中の案件から、スキル別の単価の上限を集計し直しました。この記事はその集計結果と、集計のしかたです。

対象と前提

  • 2026年10月20日時点で掲載中・募集中の案件 770件。月額の単価の上限がわかるのは 750件
  • 値は「単価の上限」。実際の契約額ではない
  • 月10万円未満・月300万円超は入力の誤りとして除外
  • すべて1つの掲載元の案件で、勤務地に東京を含むものが713件。市場全体の相場ではない
  • 1件に複数スキルが付くので、スキル別の件数の合計は750を超える

集計のしかた

案件の skills は JSON 配列で持っています。SQLite(Cloudflare D1)でスキルごとに展開し、単価の上限を取り出しました。

SELECT j.value AS skill, p.price_max
FROM projects p, json_each(p.skills) j
WHERE p.is_public = 1 AND p.status = 'open' AND p.deleted_at IS NULL;

中央値と「真ん中の半分」(25〜75パーセンタイル、最も近い順位の値)は Python で出しています。

def summarize(values):
    v = sorted(x for x in values if 100_000 <= x <= 3_000_000)
    n = len(v)
    if n == 0:
        return None
    median = (v[(n - 1) // 2] + v[n // 2]) / 2
    at = lambda q: v[min(n - 1, max(0, round(q * (n - 1))))]
    return {"n": n, "median": median, "p25": at(0.25), "p75": at(0.75), "max": v[-1]}

件数が少ないスキルは中央値が大きく動くので、単価の上限がわかる案件が10件以上のスキルだけを載せます。

単価表(月額・単価の上限)

スキル 件数 中央値 真ん中の半分 最高
PM 47 95万 85万〜110万 150万
データ分析・解析 11 90万 70万〜120万 150万
Go 40 90万 80万〜100万 130万
上流SE 10 87.5万 80万〜110万 130万
Ruby on Rails 72 87.5万 75万〜100万 120万
TypeScript 87 85万 70万〜100万 150万
Ruby 78 85万 70万〜100万 120万
Flutter 15 85万 70万〜100万 120万
ゲーム 38 80万 70万〜85万 120万
Vue 45 80万 65万〜100万 120万
Unity 23 80万 75万〜80万 90万
Swift 45 80万 80万〜85万 120万
Salesforce 10 80万 80万〜80万 140万
React 75 80万 70万〜95万 150万
Python 60 80万 65万〜100万 150万
PMO 17 80万 80万〜100万 115万
PHP 95 80万 65万〜90万 130万
Kotlin 22 80万 80万〜95万 120万
JavaScript 90 80万 60万〜90万 130万
Java(Android) 23 80万 70万〜80万 100万
GCP 18 80万 75万〜95万 120万
C++ 19 80万 70万〜90万 150万
AWS 72 80万 70万〜90万 120万
Nuxt 14 77.5万 70万〜90万 120万
HTML 28 77.5万 60万〜80万 95万
サーバー設計構築 11 75万 70万〜80万 95万
Node.js 11 75万 65万〜100万 120万
Laravel 33 75万 60万〜80万 100万
Java 84 75万 65万〜80万 120万
WEBデザイン 11 72万 60万〜90万 100万
CSS 27 70万 60万〜80万 95万
C# 35 70万 65万〜80万 95万
Spring 14 65万 65万〜80万 120万
SQL 36 65万 60万〜80万 150万
サーバー運用保守監視 11 60万 52万〜80万 105万
ディレクション 10 57.5万 45万〜80万 90万

全体(750件)は中央値80万、真ん中の半分は70万〜90万、最高150万でした。

表から読めること

  • 上限の中央値が高いのは PM・Go・Ruby on Rails。件数が多い Java(84件)と PHP(95件)は、中央値がそれぞれ75万と80万で、全体と同じか低め
  • Unity・Swift・Salesforce は「真ん中の半分」の幅が狭い。単価がそろっている
  • 最高額150万の案件は6件。PM(2件)のほか、DX推進支援・NFTゲームのリードエンジニア・スケジューリング最適化・データサイエンスと、仕事の中身はばらばら。スキル名だけで上限が決まるわけではない

自分の単価をこの表でどう見るか

提示された単価や、自分の希望額をこの表に当てて、どの位置にあるかを見るのが一番使いやすい読み方です。

  1. 自分のスキルの行を探す。 案件の募集で主に求められているスキルの行を見ます。複数ある場合は、いちばん件数の多い行と、いちばん中央値の高い行の両方を見ます
  2. 「真ん中の半分」と比べる。 提示額がその幅の下端より下なら、単価の上限で見て低めの位置です。上端より上なら、掲載の中では高い側です
  3. 単価の上限だということを忘れない。 この表は募集の上限です。提示額が中央値より下でも、上限で書かれた募集と比べているだけかもしれません。交渉の材料にするなら「掲載中の同じスキルの募集で、上限の中央値は○万だった」と、何と比べたかを添えて伝えるのが正確です

たとえば Java の案件で月70万を提示されたなら、Java の真ん中の半分(65万〜80万)の中に入っています。同じ70万でも、Go の案件なら真ん中の半分(80万〜100万)の下端より下です。

この表で言えないこと

  • 実際の契約額(ここにあるのは単価の上限)
  • 商流の段数(エンド直か何次請けか)
  • 経験年数ごとの違い(案件データに経験年数の項目がない)

書いた人: 合同会社Radineer(フリーランス向け案件サイト FreelanceDB を運営)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?