工数差異計算機
計画40時間に対して実績48時間なら、差異は8時間、計画比+20%の超過と判定されます。計画より少なければマイナスの未達になります。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 計画時間
- 40
- 実績時間
- 48
- 差異時間
- 8
- 差異時間 (絶対値)
- 8
- 差異率 (%)
- 20
- 差異率 (絶対値, %)
- 20
工数差異とは、プロジェクト・スプリント・ワークパッケージが消費するはずだった時間と、実際に記録された時間との差です。デリバリー責任者、PMOアナリスト、スクラムマスター、エンジニアリングリードは、予測が崩れる前に超過を見つけ、余力を生む未達を説明し、計画工数対実績工数の監査可能な記録を残すために、この差を追います。この工数差異計算機は計画時間と実績時間を受け取り、実績から計画を引いて符号付き時間差異を出し、その差の絶対値を取り、符号付き差異を計画時間で割って百分率にし、結果を超過・未達・計画どおりとラベル付けします。
工数差異の意味と数式の仕組み
プロジェクトの実績管理では、工数差異は予算化または見積もられた労働時間と、実際に消費された労働時間との差です。正なら超過(計画より多い時間)、負なら未達(計画より少ない時間)、ゼロなら計画どおりです。絶対時間差異は符号を除いた差の大きさで、ダッシュボードが外れの大きさだけを必要とするときに便利です。
百分率差異は符号付き時間差異を計画時間で割り、百を掛けます。実績四十八・計画四十ならプラス二十パーセントの超過、実績七十二・計画八十ならマイナス十パーセントの未達です。絶対百分率はその率の大きさです。
工数比は実績を計画で割った値です。一なら計画どおり、一超は予算より多く使ったこと、一未満は少なく使ったことを示します。アーンドバリューの SPI や CPI、ストーリーポイントのベロシティ、勤怠システムの代替ではありません。
計画時間と実績時間がすでに合意されたあとに実行する、閉じた形の時間比較です。小数時間も許可されるので、勤怠エクスポートから 6.5 や 40.25 を送れます。
工数差異計算機が役立つ場面
プログラムマネージャと PMO アナリストは週次ステータスで工数差異計算機を使い、勤怠実績とベースライン見積もりを符号付き差異・絶対差・百分率に変え、表計算の符号を議論せずにステアリング委員会のスライドへ載せます。スクラムマスターはレビュー後にスプリントの計画時間と記録時間を比べ、余裕を食った超過や次インクリメントの余力を生む未達を説明します。
プロフェッショナルサービス企業とエージェンシーは作業指示の販売工数と納品工数を比べ、請求書を出す前に請求と納品を誠実に保ちます。リソースマネージャはプロジェクト横断の百分率差異を見て、騒がしい一週ではなく見積もり過小を隠す慢性超過を見つけます。研修コースや LMS プラグインには、計画ゼロを拒否する決定論的オラクルが必要です。
バグのある採点器が成功と誤認しうる NaN を静かに返してはいけません。検証失敗は残高を消費しません。
活用例
週次プロジェクト状況パック
ベースラインの計画時間と勤怠の実績時間を符号付き・絶対・百分率の差異に変え、ステアリング用スライドが表計算の符号論争なしに超過または未達を示せるようにします。
スプリントレビューの時間突合
チームがスプリントに計画した時間とレビュー後に記録した時間を比べ、差を超過・未達・計画どおりとラベル付けします。
販売工数対納品工数
プロフェッショナルサービスとエージェンシーのチームは、請求書を出す前に作業指示の販売工数と納品工数を比べます。
よくある質問
絶対差異と符号付き差異の違いは何ですか?
符号付き差異は外れの向き(超過対未達)を保ちます。絶対差異は符号のない大きさで、ダッシュボードが差の大きさだけを必要とするときに便利です。時間形と百分率形の両方が返されます。
計画時間はなぜゼロより大きくなければなりませんか?
百分率差異は計画で割ります。実績時間はゼロでも構いません(正の計画に対する完全未達)。
工数差異はどう計算しますか?
実績時間から計画時間を引いたものが符号付きの差異で、それを計画時間で割って100を掛けるとパーセントになります。計画40時間、実績48時間なら8時間、+20%です。
工数差異がマイナスになるのはどういう意味ですか?
計画より少ない時間で作業が終わった未達を意味し、差異とパーセントがゼロを下回ります。計画に対して実績が0時間なら100%の未達です。
工数比とは何ですか?
実績時間を計画時間で割った値です。1なら計画どおり、1を超えれば予定より多く、1未満なら少ない時間を使ったことになります。48時間÷40時間で1.2です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/effort-variance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"planned_hours":40,"actual_hours":48}'const res = await fetch("https://api.kit.forhosting.com/biz/effort-variance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"planned_hours": 40,
"actual_hours": 48
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/effort-variance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"planned_hours": 40,
"actual_hours": 48
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/effort-variance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"planned_hours":40,"actual_hours":48}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"planned_hours":40,"actual_hours":48}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/effort-variance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"planned_hours": 40,
"actual_hours": 48
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.effort_variance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
計画時間がゼロだと百分率が定義できず、無限大を返す代わりに invalid_input で失敗します。無効な入力は invalid_input で失敗し、課金されません。
工数差異の意味と数式の仕組み
符号付き時間差異は actual_hours から planned_hours を引いた値です。
入力契約・応答形・エラー動作
実績時間ゼロは妥当で、計画に対して労働が記録されていないことを意味し、百パーセントの未達になります。計画時間ゼロは妥当ではありません。分母がゼロだと百分率差異が定義できないため、不具合のある報告が成功と誤認しうる Infinity や NaN を返す代わりにタスクは失敗します。計画÷実績×百で、百は計画時間ちょうど、百超はそれより少なく使ったことを意味します。本計算機は時間だけを比較し、勤怠票・請求書・ガントバーは出しません。報告シリーズ全体で単位を揃えてください。計画時間を人時でモデルするなら、実績も同じ単位で送ってください。必須の有限数2つを含む JSON 本文を POST してください。planned_hours(予算または見積もりの工数。厳密にゼロより大きい)と actual_hours(記録された時間。ゼロ以上)です。 各フィールドは JSON 数値または数値文字列で送れ、ハンドラは別名 planned、planned_effort、actual、actual_effort も受け付けます。欠落、空文字、非有限値、負の実績時間、非正の計画時間は invalid_input で失敗し、フィールド名を示します。成功時は両方の要因をエコーし、variance_hours(実績マイナス計画)、abs_variance_hours(絶対時間差)、variance_percent(計画に対する符号付き百分率)、abs_variance_percent(絶対百分率差)、ratio(実績÷計画)、status(overrun・underrun・on_plan)、恒等式を再掲する数式文字列を返します。実績時間がゼロより大きいときは efficiency_percent も含まれます。コスト単価・残見積もり・アーンドバリュー指標はこのエンドポイント外で組み合わせてください。
工数差異計算機が役立つ場面
実装は純粋な parse ティア A のため、成功した呼び出しは公開ベース価格 $0.002 で、モデルトークンも外向きネットワークもありません。リクエストを小さく保ち、丸めた差異欄をテストに固定すれば、状況パック・エッジワーカー・CI チェック向けに再現可能な計画対実績の時間報告を、本格的なプロジェクトポートフォリオ基盤なしで得られます。
技術的な質問
工数差異はどのように計算しますか。
variance_hours = actual_hours − planned_hours、および variance_percent = (variance_hours / planned_hours) × 100 です。正の値は超過、負の値は未達です。API は絶対時間差と絶対百分率差、実績/計画の ratio、および overrun・underrun・on_plan の status も返します。
overrun、underrun、on_plan は何を意味しますか。
overrun は実績時間が計画を超えたこと(正の差異)です。underrun は実績時間が計画を下回ったこと(負の差異)です。on_plan は丸め後に二つの時間値が一致することです。
工数差異計算機の料金はいくらですか。
ブラウザのツールは無料です。API リクエストは成功した呼び出しごとに $0.002 の前払い KIT 残高を使い、無効な入力は課金されません。