勤怠集計・賃金計算ロジックおよび出力項目の公式解説資料
システム内のすべての時間および金額計算は、以下の基本ロジックに基づいて厳密に処理されます。
本システムでは、給与計算ソフトへの連携や確認用途に合わせて以下の3種類の形式を出力可能です。
export_csv=summary):export_csv=all / detail):format=excel):="00123" のエスケープ書式で出力する専用フォーマットです。| 項目名 | 定義・算出アルゴリズム |
|---|---|
| 実労働時間 | (退勤時刻 - 出勤時刻) - 休憩時間合計※実打刻データから分単位で算出 |
| 有休みなし時間 | 有給休暇(ステータス51)登録日に、シフトマスタ設定の「みなし労働時間(分)」を加算 |
総労働時間 (work) |
実労働時間 + 有休みなし時間 |
| 所定内/外労働 | 勤怠設定マスタの「標準就業分(例: 8時間=480分)」を基準とした区分 |
法定超労働 (ot_out) |
勤怠設定マスタの「法定労働分(8時間=480分)」を超えた実労働時間 |
night)デフォルトで 22:00 ~ 05:00(設定マスタにより変更可能)。出勤から退勤までの毎分について、深夜時間帯かつ休憩時間帯に含まれない分を集計します。日またぎ勤務(例: 22:00~翌07:00)にも完全対応しています。
holiday)対象日のシフトが「出勤フラグ = 0(休日)」と設定されている場合、当日の実労働時間のすべてが「休日労働時間」として計上されます(時間外残業とは重複計上されず、全労働時間に休日割増が適用されます)。
分 ÷ 60)し、適用時給および割増率を乗じた後、1円未満を四捨五入して算出します。
| 項目名 | 計算式 | 備考 |
|---|---|---|
| 基本賃金 | (総労働分 ÷ 60) × 適用時給 【1円未満四捨五入】 |
有休みなし時間分を含む |
| 時間外割増手当 | (残業_8h超分 ÷ 60) × 適用時給 × 時間外割増率 【1円未満四捨五入】 |
デフォルト割増率: 25% (0.25) |
| 深夜割増手当 | (深夜労働分 ÷ 60) × 適用時給 × 深夜割増率 【1円未満四捨五入】 |
デフォルト割増率: 25% (0.25) |
| 休日割増手当 | (休日労働分 ÷ 60) × 適用時給 × 休日割増率 【1円未満四捨五入】 |
デフォルト割増率: 35% (0.35) |
| 日別出勤手当 | 社員マスタ設定値 (日別出勤手当) |
出勤打刻がある日に加算 |
| 月別出勤手当 | 社員マスタ設定値 (月別出勤手当) |
出勤があった月に加算 |
| 日次賃金 | 基本賃金 + 時間外割増 + 深夜割増 + 休日割増 + 日別出勤手当 |
日別明細の当支給額 |
月次総賃金 (sal) |
全対象日の日次賃金合計 + (月別出勤手当 × 出勤月数) |
サマリーの総支給額 |
経費合計 (expense) |
対象期間中の承認済 経費申請の合計額 |
立替経費等の精算額 |
| 総支払額 | 月次総賃金 + 経費合計 |
給与・経費の総支払額 |
SWITCH-SHIFTでは、事業所の就業規則や連携先給与ソフト・外部システムの仕様に合わせて、各種計算ルールおよび出力項目を柔軟にカスタマイズ・管理できます。
管理者画面の「勤怠ルール設定」では、会社ごとの労働時間基準や割増率を設定できます。設定変更時は「適用開始日」を指定して保存するため、法改正や社内ルールの改定にあわせた未来予約登録が可能です。計算エンジンは打刻日時点で有効な履歴設定を参照して自動計算を行います。
| 設定項目 | 標準初期値 | 影響する計算ロジック・解説 |
|---|---|---|
| 適用開始日 | 任意日付 (YYYY-MM-DD) | 新ルールが適用される開始日。未来の日付を指定することで、事前設定・予約が可能です。過去日に対する集計時は当時のルールが履歴から自動適用されます。 |
| 標準就業時間 (分) | 480 分 (8時間) |
「所定内労働時間」と「所定超(法定内)残業」の境界閾値。7.5時間勤務(450分)などの会社固有ルールに対応します。 |
| 法定労働時間 (分) | 480 分 (8時間) |
「法定外残業(時間外割増適用)」の判定閾値。これを超えた時間が 36協定対象の法定超労働(ot_out)となります。 |
| 深夜帯(開始〜終了) | 22:00 ~ 05:00 |
深夜割増手当の対象となる時間帯。深夜帯かつ休憩を含まない分数が深夜労働(night)として算出されます。 |
| 時間外割増率 | 0.25 (25%) |
法定超労働時間に対する割増手当率。 |
| 深夜割増率 | 0.25 (25%) |
深夜労働時間に対する割増手当率。 |
| 休日割増率 | 0.35 (35%) |
法定休日出勤労働時間に対する割増手当率。 |
管理者画面の「出力項目設定」では、システムから出力される各種項目のカスタマイズが可能です。ただし、出力フォーマットの目的・用途により設定の適用対象と対象外(固定フォーマット)が分かれています。
/api/attendance.php):※給与一覧・集計画面から出力される固定19項目の計算式一覧です。
| No | 項目名 (ヘッダ) | 形式/単位 | 具体計算式・算出ロジック | 参照設定 |
|---|---|---|---|---|
| 1 | 対象期間 | 文字列 | 開始日 - 終了日 (例: 2026-07-01 - 2026-07-31) | 指定検索期間 |
| 2 | 部署 | 文字列 | 部署マスタの 部署名 | 部署マスタ |
| 3 | 社員コード | 文字列 | 社員マスタの 社員コード | 社員マスタ |
| 4 | 氏名 | 文字列 | 社員マスタの 社員名 | 社員マスタ |
| 5 | 時給 | 数値 (円) | 対象期間中の適用時給(時給履歴マスタ参照) | 時給履歴マスタ |
| 6 | 出勤日数 | 数値 (日) | 対象期間中に「出勤打刻」が存在する合計日数 | タイムレコード |
| 7 | 総労働(分) | 数値 (分) | 対象期間内の全日における(実労働分 + 有休みなし分)の合計 | 打刻・シフト |
| 8 | 総労働(HH:MM) | HH:MM | 総労働(分)を 時間 : 分 形式に変換(例: 480分 ➔ 08:00) | 総労働(分) |
| 9 | 残業_標準超(分) | 数値 (分) | 所定内残業分 + 法定外残業分 の合計 | 勤怠設定マスタ |
| 10 | 残業_標準超(HH:MM) | HH:MM | 残業_標準超(分)を 時間 : 分 形式に変換 | 残業_標準超(分) |
| 11 | 残業_8h超(分) | 数値 (分) | 各日において法定労働時間(480分)を超えた労働分の合計 | 法定労働分(480分) |
| 12 | 残業_8h超(HH:MM) | HH:MM | 残業_8h超(分)を 時間 : 分 形式に変換 | 残業_8h超(分) |
| 13 | 深夜(分) | 数値 (分) | 深夜帯(22:00〜05:00)における実労働分(休憩除く)の合計 | 深夜開始/終了時刻 |
| 14 | 深夜(HH:MM) | HH:MM | 深夜(分)を 時間 : 分 形式に変換 | 深夜(分) |
| 15 | 休出(分) | 数値 (分) | 休日設定日の実労働分の合計 | シフト出勤フラグ |
| 16 | 休出(HH:MM) | HH:MM | 休出(分)を 時間 : 分 形式に変換 | 休出(分) |
| 17 | 総賃金 | 数値 (円) | 全対象日の「日次賃金」の合計 + (月別出勤手当 × 出勤月数)※各賃金項目は算出時に1円未満四捨五入 | 各日賃金計算式 |
| 18 | 経費 | 数値 (円) | 対象期間内の承認済 経費申請金額の合計 | 経費申請データ |
| 19 | 総支払額 | 数値 (円) | 総賃金 + 経費 | 総賃金・経費 |
※以下の項目名・並び順・出力有無は、「CSV・API 出力項目設定」により変更可能です。
| No | 内部ID | デフォルト項目名 | 具体計算式・算出ロジック | 出力形式 |
|---|---|---|---|---|
| 1 | company_code | 会社コード | ログイン会社コード | 文字列 |
| 2 | company_name | 会社名 | ログイン会社名称 | 文字列 |
| 3 | dept_code | 部署コード | 対象従業員の 部署コード | 文字列 |
| 4 | dept_name | 部署名 | 対象従業員の 部署名 | 文字列 |
| 5 | emp_code | 社員コード | 対象従業員の 社員コード | 文字列 |
| 6 | emp_name | 氏名 | 対象従業員の 社員名 | 文字列 |
| 7 | date | 日付 | 対象日 (YYYY-MM-DD) | YYYY-MM-DD |
| 8 | shift_code | シフトコード | 当日のシフトマスタ シフトコード | 文字列 |
| 9 | shift_name | シフト | 当日のシフト 略称(無ければシフト名) | 文字列 |
| 10 | in_time | 出勤 | 当日の最初の出勤打刻時刻 | HH:MM |
| 11 | out_time | 退勤 | 当日の最後の退勤打刻時刻 | HH:MM |
| 12 | break_start | 休始 | 休憩開始打刻時刻(複数時はカンマ区切り) | HH:MM |
| 13 | break_end | 休終 | 休憩終了打刻時刻(複数時はカンマ区切り) | HH:MM |
| 14 | total_work_min | 総労働(分) | (退勤時刻 - 出勤時刻) - 休憩時間 + 有休みなし分 | 数値 (分) |
| 15 | total_work_time | 総労働(HH:MM) | 総労働(分)を 時間 : 分 形式に変換(例: 480分 ➔ 08:00) | HH:MM |
| 16 | overtime_std_min | 残業_標準超(分) | 総労働分のうち標準就業時間(480分)を超えた分 | 数値 (分) |
| 17 | overtime_std_time | 残業_標準超(HH:MM) | 残業_標準超(分)を 時間 : 分 形式に変換 | HH:MM |
| 18 | overtime_legal_min | 残業_8h超(分) | 実労働分のうち法定労働時間(480分)を超えた分 | 数値 (分) |
| 19 | overtime_legal_time | 残業_8h超(HH:MM) | 残業_8h超(分)を 時間 : 分 形式に変換 | HH:MM |
| 20 | night_min | 深夜(分) | 22:00〜05:00の実労働分(休憩時間を除く) | 数値 (分) |
| 21 | night_time | 深夜(HH:MM) | 深夜(分)を 時間 : 分 形式に変換 | HH:MM |
| 22 | holiday_work_min | 休出(分) | 休日設定日の実労働分(出勤フラグ=0の日) | 数値 (分) |
| 23 | holiday_work_time | 休出(HH:MM) | 休出(分)を 時間 : 分 形式に変換 | HH:MM |
| 24 | daily_salary | 日次賃金 | 基本賃金 + 時間外割増手当 + 深夜割増手当 + 休日割増手当 + 日別出勤手当※各割増手当は「(該当分数 ÷ 60) × 時給 × 割増率」で1円未満四捨五入 | 数値 (円) |
| 25 | expense | 経費 | 当日の承認済 経費申請金額の合計 | 数値 (円) |
前提条件: 基本時給 1,000円、標準/法定 8時間(480分)、時間外割増 25%、深夜割増 25%、日別出勤手当 500円
(480 / 60) × 1,000円 = 8,000円500円(480 / 60) × 1,000円 = 8,000円round( (240 / 60) × 1,000円 × 0.25 ) = 1,000円500円(600 / 60) × 1,000円 = 10,000円round( (120 / 60) × 1,000円 × 0.25 ) = 500円500円