計算仕様書

勤怠給与CSV出力 項目計算仕様書

勤怠集計・賃金計算ロジックおよび出力項目の公式解説資料

対象システム: 勤怠管理システム「SWITCH-SHIFT」 準拠計算エンジン: export_csv.php / calc_logic.php 更新日: 2026年7月28日
本仕様書は、勤怠管理システム「SWITCH-SHIFT」から出力される給与計算用CSVデータ(サマリーCSVおよび日別明細CSV)に含まれる全項目(労働時間、各種割増時間、基本賃金、割増手当等)の算出ロジックおよび計算根拠を解説した資料です。勤怠データの集計根拠の確認や、他システム・給与ソフトとのデータ連携検証にご活用いただけます。

1. 給与・勤怠計算の基本原則・仕様

システム内のすべての時間および金額計算は、以下の基本ロジックに基づいて厳密に処理されます。

1-1. 計算単位(1分単位の完全実打刻計算)

1-2. 履歴マスタの自動適用

1-3. 端数処理ルール

2. CSV出力フォーマットの種類

本システムでは、給与計算ソフトへの連携や確認用途に合わせて以下の3種類の形式を出力可能です。

  1. 月次集計サマリーCSV (export_csv=summary):
    指定期間における社員ごとの合計出勤日数、総労働時間、割増時間内訳、賃金合計、経費等の集計値を出力します(給与ソフトの一括取込用)。
  2. 日別明細CSV (export_csv=all / detail):
    従業員×日付ごとの打刻、シフト、各種時間・賃金内訳を出力します。「出力設定マスタ」に基づき、項目・並び順を自由にカスタマイズ可能です。
  3. Excel用CSV形式 (format=excel):
    給与ソフト用「通常CSV」のほか、Excelで直接開いた際に社員コード等の先頭ゼロが消える(ゼロサプレス)のを防ぐため、コード・名称項目を ="00123" のエスケープ書式で出力する専用フォーマットです。

3. 各時間の算出ロジック・定義

3-1. 時間項目の基本区分

項目名 定義・算出アルゴリズム
実労働時間 (退勤時刻 - 出勤時刻) - 休憩時間合計
※実打刻データから分単位で算出
有休みなし時間 有給休暇(ステータス51)登録日に、シフトマスタ設定の「みなし労働時間(分)」を加算
総労働時間 (work) 実労働時間 + 有休みなし時間
所定内/外労働 勤怠設定マスタの「標準就業分(例: 8時間=480分)」を基準とした区分
法定超労働 (ot_out) 勤怠設定マスタの「法定労働分(8時間=480分)」を超えた実労働時間

3-2. 深夜労働時間 (night)

デフォルトで 22:00 ~ 05:00(設定マスタにより変更可能)。出勤から退勤までの毎分について、深夜時間帯かつ休憩時間帯に含まれない分を集計します。日またぎ勤務(例: 22:00~翌07:00)にも完全対応しています。

3-3. 休日労働時間 (holiday)

対象日のシフトが「出勤フラグ = 0(休日)」と設定されている場合、当日の実労働時間のすべてが「休日労働時間」として計上されます(時間外残業とは重複計上されず、全労働時間に休日割増が適用されます)。

4. 各金額・賃金の計算式

💡 賃金計算の共通基準
すべての賃金計算は、分単位の時間を時間換算(分 ÷ 60)し、適用時給および割増率を乗じた後、1円未満を四捨五入して算出します。
項目名 計算式 備考
基本賃金 (総労働分 ÷ 60) × 適用時給 【1円未満四捨五入】 有休みなし時間分を含む
時間外割増手当 (残業_8h超分 ÷ 60) × 適用時給 × 時間外割増率 【1円未満四捨五入】 デフォルト割増率: 25% (0.25)
深夜割増手当 (深夜労働分 ÷ 60) × 適用時給 × 深夜割増率 【1円未満四捨五入】 デフォルト割増率: 25% (0.25)
休日割増手当 (休日労働分 ÷ 60) × 適用時給 × 休日割増率 【1円未満四捨五入】 デフォルト割増率: 35% (0.35)
日別出勤手当 社員マスタ設定値 (日別出勤手当) 出勤打刻がある日に加算
月別出勤手当 社員マスタ設定値 (月別出勤手当) 出勤があった月に加算
日次賃金 基本賃金 + 時間外割増 + 深夜割増 + 休日割増 + 日別出勤手当 日別明細の当支給額
月次総賃金 (sal) 全対象日の日次賃金合計 + (月別出勤手当 × 出勤月数) サマリーの総支給額
経費合計 (expense) 対象期間中の承認済 経費申請の合計額 立替経費等の精算額
総支払額 月次総賃金 + 経費合計 給与・経費の総支払額

5. 管理者設定機能と計算・出力への影響

SWITCH-SHIFTでは、事業所の就業規則や連携先給与ソフト・外部システムの仕様に合わせて、各種計算ルールおよび出力項目を柔軟にカスタマイズ・管理できます。

5-1. 勤怠ルール設定(勤怠設定マスタ・履歴マスタ)

管理者画面の「勤怠ルール設定」では、会社ごとの労働時間基準や割増率を設定できます。設定変更時は「適用開始日」を指定して保存するため、法改正や社内ルールの改定にあわせた未来予約登録が可能です。計算エンジンは打刻日時点で有効な履歴設定を参照して自動計算を行います。

設定項目 標準初期値 影響する計算ロジック・解説
適用開始日 任意日付 (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%) 法定休日出勤労働時間に対する割増手当率。

5-2. CSV・API 出力項目設定(出力設定マスタ)

管理者画面の「出力項目設定」では、システムから出力される各種項目のカスタマイズが可能です。ただし、出力フォーマットの目的・用途により設定の適用対象と対象外(固定フォーマット)が分かれています。

📌 設定の適用対象と対象外(理由)
  • 【適用対象】日別明細CSV / 勤怠データ連携API (/api/attendance.php):
    外部の給与ソフトや基幹システム、BIツール等の受入レイアウトに合わせて柔軟にデータ連携できるよう、出力項目のカスタマイズ(名称変更・表示/非表示・並び替え)が全25項目に対して完全に反映されます。
  • 【対象外(固定フォーマット)】月次集計サマリーCSV (給与集計画面からのCSV出力):
    指定期間内の全従業員の合計労働時間・割増手当・支給額等を網羅した一括集計データ(全19項目)です。給与計算・整合性検証に必要な必須項目が決定しているため、項目の過不足や並び順ズレによる計算エラーを防ぐ目的で標準固定フォーマットとして出力されます。

6. CSV出力項目一覧表と計算式

6-1. 月次集計サマリーCSV (全19項目)

※給与一覧・集計画面から出力される固定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総支払額数値 (円)総賃金 + 経費総賃金・経費

6-2. 日別明細CSV / 勤怠データ連携API(基本25項目)

※以下の項目名・並び順・出力有無は、「CSV・API 出力項目設定」により変更可能です。

No 内部ID デフォルト項目名 具体計算式・算出ロジック 出力形式
1company_code会社コードログイン会社コード文字列
2company_name会社名ログイン会社名称文字列
3dept_code部署コード対象従業員の 部署コード文字列
4dept_name部署名対象従業員の 部署名文字列
5emp_code社員コード対象従業員の 社員コード文字列
6emp_name氏名対象従業員の 社員名文字列
7date日付対象日 (YYYY-MM-DD)YYYY-MM-DD
8shift_codeシフトコード当日のシフトマスタ シフトコード文字列
9shift_nameシフト当日のシフト 略称(無ければシフト名)文字列
10in_time出勤当日の最初の出勤打刻時刻HH:MM
11out_time退勤当日の最後の退勤打刻時刻HH:MM
12break_start休始休憩開始打刻時刻(複数時はカンマ区切り)HH:MM
13break_end休終休憩終了打刻時刻(複数時はカンマ区切り)HH:MM
14total_work_min総労働(分)(退勤時刻 - 出勤時刻) - 休憩時間 + 有休みなし分数値 (分)
15total_work_time総労働(HH:MM)総労働(分)を 時間 : 分 形式に変換(例: 480分 ➔ 08:00)HH:MM
16overtime_std_min残業_標準超(分)総労働分のうち標準就業時間(480分)を超えた分数値 (分)
17overtime_std_time残業_標準超(HH:MM)残業_標準超(分)を 時間 : 分 形式に変換HH:MM
18overtime_legal_min残業_8h超(分)実労働分のうち法定労働時間(480分)を超えた分数値 (分)
19overtime_legal_time残業_8h超(HH:MM)残業_8h超(分)を 時間 : 分 形式に変換HH:MM
20night_min深夜(分)22:00〜05:00の実労働分(休憩時間を除く)数値 (分)
21night_time深夜(HH:MM)深夜(分)を 時間 : 分 形式に変換HH:MM
22holiday_work_min休出(分)休日設定日の実労働分(出勤フラグ=0の日)数値 (分)
23holiday_work_time休出(HH:MM)休出(分)を 時間 : 分 形式に変換HH:MM
24daily_salary日次賃金基本賃金 + 時間外割増手当 + 深夜割増手当 + 休日割増手当 + 日別出勤手当
※各割増手当は「(該当分数 ÷ 60) × 時給 × 割増率」で1円未満四捨五入
数値 (円)
25expense経費当日の承認済 経費申請金額の合計数値 (円)

7. 具体的計算例・試算パターン

前提条件: 基本時給 1,000円、標準/法定 8時間(480分)、時間外割増 25%、深夜割増 25%、日別出勤手当 500円

パターンA: 通常日勤(残業なし・休憩1時間)
  • 打刻データ: 09:00 ~ 18:00 (休憩 12:00~13:00 / 60分)
  • 総労働時間: 540分 - 60分 = 480分 (8時間00分)
  • 計算内訳:
    • 基本賃金: (480 / 60) × 1,000円 = 8,000円
    • 日別出勤手当: 500円
    • 日次賃金合計: 8,500円
パターンB: 残業 + 深夜勤務(夜勤日またぎ)
  • 打刻データ: 17:00 ~ 翌02:00 (休憩 21:00~22:00 / 60分)
  • 総労働時間: 540分 - 60分 = 480分 (8時間00分)
  • 深夜労働時間: 22:00 ~ 翌02:00 = 240分 (4時間00分)
  • 計算内訳:
    • 基本賃金: (480 / 60) × 1,000円 = 8,000円
    • 深夜割増手当: round( (240 / 60) × 1,000円 × 0.25 ) = 1,000円
    • 日別出勤手当: 500円
    • 日次賃金合計: 9,500円
パターンC: 法定超残業(10時間労働)
  • 打刻データ: 09:00 ~ 20:00 (休憩 12:00~13:00 / 60分)
  • 総労働時間: 660分 - 60分 = 600分 (10時間00分)
  • 法定8h超残業: 600分 - 480分 = 120分 (2時間00分)
  • 計算内訳:
    • 基本賃金: (600 / 60) × 1,000円 = 10,000円
    • 時間外割増手当: round( (120 / 60) × 1,000円 × 0.25 ) = 500円
    • 日別出勤手当: 500円
    • 日次賃金合計: 11,000円