上限付き有給休暇残高計算ツール
この計算ツールは、給与期間ごとの有給休暇付与率から現在の休暇残高を算出します。各期間に付与される量と、完了した期間数を入力してください。社内規程で保有残高に上限がある場合は、その最大値も指定できます。回答には上限適用前の値と、上限によって最終残高が変わったかどうかも表示されるため、計算根拠の説明、確認、再利用が容易です。
無料で実行
付与規程を正しい入力値に置き換えます
まず、休暇規程に記載された付与率を確認してください。週次、隔週、月2回、月次の給与期間ごとの時間数、または組織が日数で管理する場合は日数で表されます。その値を付与率として入力し、計算基準日までに実際に完了した期間だけを数えます。本ツールはこの2値を乗算するため、同じ期間単位を使う必要があります。隔週の率に暦月数を組み合わせることはできません。規程に比例付与の定めがある場合は小数期間も使用できますが、その割合は正式な規則に従ってください。時間と日数を混在させないでください。結果の単位は付与率と同じです。勤務開始日や給与カレンダーは自動推測しません。前提を明確に保ち、人事または給与担当者が規程上の正確な期間数を指定できる設計です。
上限適用前後の残高を確認します
上限適用前残高は、付与率に経過期間数を掛けた値です。最大値を指定しない場合、この積がそのまま累積残高となり、上限適用の表示は偽です。最大値を指定すると両者を比較し、積が大きい場合は最終残高を最大値まで下げ、表示を真にします。制限がなければいくら付与されたか確認できるよう、元の値も回答に残ります。積と最大値が等しい場合は減額されていないため、上限には到達していても表示は偽のままです。最大値、付与率、期間数には0も指定できます。数値処理では微小な浮動小数点誤差だけを除き、給与規程固有の丸め方は強制しません。組織の丸め規則は入力前または結果取得後に適用してください。
給与・休暇管理の業務で活用します
累積残高は計算の確認点として使用し、完全な休暇台帳の代わりにはしないでください。実際の台帳では、開始残高、取得済み休暇、手動調整、繰越規則、待機期間、付与停止なども必要です。本機能はそれらを推測せず、固定率で指定期間にどれだけ付与されるかを、任意の上限付きで一貫して回答します。表計算、入社時の見積り、給与照合、規程比較、自動監査に利用できます。別の担当者が再計算し、適用した規程版を確認できるよう、入力値を結果と一緒に保存してください。自動処理の各リクエストは$0.002です。負の付与率は拒否されますので、休暇取得や残高修正は別に記録してください。年の途中で率が変わる場合は、区間ごとに計算し、規程に従って結果を統合します。
活用例
現在の付与残高を確認
規程上の率と完了期間数を乗算し、最大残高で制限されるか確認します。
給与計算との照合
給与システムの値を上限前残高、最終残高、上限適用表示と比較します。
休暇規程の試算
表計算式を作らず、任意の期間数に対する率と上限を試算します。
よくある質問
計算料金はいくらですか?
APIリクエスト1回につき$0.002です。1回を1項目として計上します。
結果の単位は何ですか?
付与率と同じです。時間単位の率なら時間、日単位の率なら日数になります。
最大値を超えるとどうなりますか?
最終残高は最大値となり、cap_appliedは真、uncapped_balanceには元の積が保持されます。
付与率を負にできますか?
できません。負の値は入力エラーになります。休暇取得や控除は別の台帳処理で記録してください。
小数の期間数を使えますか?
はい。規程に比例付与があり、その割合が規程のルールに従う場合に使用できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/pto-accrual-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"accrual_rate":3.5,"pay_periods_elapsed":12}'const res = await fetch("https://api.kit.forhosting.com/biz/pto-accrual-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"accrual_rate": 3.5,
"pay_periods_elapsed": 12
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/pto-accrual-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"accrual_rate": 3.5,
"pay_periods_elapsed": 12
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/pto-accrual-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"accrual_rate":3.5,"pay_periods_elapsed":12}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"accrual_rate":3.5,"pay_periods_elapsed":12}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/pto-accrual-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"accrual_rate": 3.5,
"pay_periods_elapsed": 12
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.pto_accrual_calc",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |