ソフトウェアライセンスの使用率と空き席数を計算
ソフトウェアライセンスの席使用率は、購入済み容量のうち現在割り当てられている割合と、残っている容量を示します。割り当て済み席数と購入ライセンス総数を入力すると、使用率と正確な空き席数が得られます。更新契約、アクセス権の棚卸し、調達計画、日常的なソフトウェア資産管理に役立ちます。表計算を使わず、すばやく一貫した答えを確認できます。また、総数がゼロの場合や数値が矛盾する場合は検証エラーとなるため、誤解を招く結果を防げます。
無料で実行
同じライセンスプールの数値を入力してください
同じ製品、サブスクリプション、契約、集計時点に対応する2つの整数をご用意ください。割り当て済み席数とは、ベンダーの管理画面で利用者、サービスアカウント、端末などに割り当てられているライセンス数です。ライセンス総数とは、同じ契約で購入した容量です。異なるエディションを合算したり、更新前の割り当て情報を更新後の総数と比較したりしないでください。どちらも0以上の整数である必要があります。割り当てが0のプールは正しく計算できますが、総数は0より大きくなければなりません。分母が0では使用率を求められないためです。割り当て数が総数を超える入力も受け付けません。その場合は、同期の遅延、猶予枠、試用ライセンス、契約台帳の誤りをご確認ください。範囲と時点をそろえることで、結果を実務に使える指標にできます。
使用率と空き席数を正しく解釈してください
使用率は、割り当て済み席数を購入ライセンス総数で割り、100を掛けて計算します。結果はダッシュボードや報告書で読みやすいよう小数第2位までに丸めます。空き席数は総数から割り当て数を引いた整数です。使用率は割り当ての割合を示し、空き席数は直ちに追加できる割り当て数を示します。ただし、どちらも実際の利用状況を証明するものではありません。退職者、休眠アカウント、最近アプリを開いていない方に席が残っている場合があります。一方、空き席を入社予定者や繁忙期のために確保している場合もあります。そのため、結果は活動指標ではなく割り当て指標としてお使いください。実際の定着度を確認するには、ベンダーのログイン、起動、機能利用データと組み合わせます。同じ入力からは常に同じ結果が得られるため、定期報告や自動チェックにも適しています。
更新契約とアクセス管理に結果をご活用ください
使用率は、次の対応につなげることで価値を持ちます。契約更新前には、製品やライセンス階層ごとに計算し、使用率が低いプールでは回収できる割り当てを、高いプールでは容量不足のリスクをご確認ください。入社時には、追加購入なしで申請を承認できるかを空き席数から判断できます。退職時には割り当て解除後に再計算し、容量が戻ったことを確認します。傾向分析では、一定の周期で実行し、丸めた割合だけでなく元の入力値も保存してください。すべての製品に同じ目標値を当てはめる必要はありません。重要なツールには予備が必要な一方、安定した専門ツールは高い使用率でも運用できます。調達期間、採用予定、契約条件を踏まえて基準を設定してください。API は1回 $0.002 で自動棚卸しに利用でき、ブラウザは個別確認に便利です。節約額や購入提案に使う前に、元データの異常をご確認ください。
活用例
更新契約を準備する
各サブスクリプションの割り当て容量を測定し、交渉前に空き席と見直し対象を特定します。
入社前に容量を確認する
従業員、委託先、サービスアカウント、端末のアクセスを承認する前に、残りの席数を確認します。
ライセンス在庫を監視する
定期的なエクスポートに同じ計算式を適用し、使用率の変化と満席に近いプールを検出します。
よくある質問
ライセンスの席使用率はどのように計算しますか?
割り当て済み席数を購入ライセンス総数で割り、100を掛けます。結果は小数第2位までに丸めます。
空き席数はどのように計算しますか?
購入ライセンス総数から割り当て済み席数を引きます。追加で割り当てられる席数を示します。
ライセンス総数がゼロの場合はどうなりますか?
分母がゼロでは使用率を計算できないため、無効な入力としてエラーを返します。
割り当て済み席数が総数を超えてもよいですか?
いいえ。空き席数が負になるため受け付けません。試用枠、猶予枠、同期遅延、プールの混在をご確認ください。
割り当て済みであれば実際に利用中ですか?
必ずしもそうではありません。割り当ては活動量を示しません。ベンダーのログイン記録や利用記録もご確認ください。
API の利用料金はいくらですか?
API は1回 $0.002 です。個別の確認はブラウザでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/software-license-seat-utilization \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"assigned_seats":84,"total_licenses":120}'const res = await fetch("https://api.kit.forhosting.com/biz/software-license-seat-utilization", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"assigned_seats": 84,
"total_licenses": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/software-license-seat-utilization",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"assigned_seats": 84,
"total_licenses": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/software-license-seat-utilization", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"assigned_seats":84,"total_licenses":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"assigned_seats":84,"total_licenses":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/software-license-seat-utilization", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"assigned_seats": 84,
"total_licenses": 120
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.software_license_seat_utilization",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |