建設会社の独自手当をシステム化して分かった
「例外ルール」の難しさ
StoneMileの「面倒見手当」は、対象者と同じ日・同じ現場に入った他の職人の人数に応じて加算する社内ルールです。ただし、職人への支払には反映し、元請けへの請求には加算しません。こうした独自手当をシステム化するときは、計算方法だけでなく、判定データ、境界条件、確認手順まで言葉にする必要があります。
この記事の要点
・勤怠情報、職人への支払、元請けへの請求を分けて整理します
・手当の条件を、担当者によって解釈が変わらない判定文にします
・同日・同一現場の定義や出面修正時の扱いを社内で決めます
・職人入力と経理入力の差額を確認できる二重確認を残します
最初に「何の金額か」を分ける
独自手当の仕様で最初に分けたいのは、勤怠情報、職人への支払、元請けへの請求です。面倒見手当は同じ出面を参照していても、支払には加算し、請求には加算しません。すべてをひとつの金額欄で扱うと、手当が請求側へ混ざるおそれがあります。
・勤怠情報:誰が、いつ、どの現場に入ったか
・支払情報:誰の支払に、どの手当を加算するか
・請求情報:元請けへの請求に含める項目は何か
まず、現在使っている出面表、支払明細、請求書を並べ、面倒見手当がどこに表示され、どこには表示されないのかを確認します。画面設計や計算式は、その後に検討します。
手当の条件を判定できる文章にする
面倒見手当について確定しているのは、対象者と同じ日・同じ現場に他の職人が入り、その人数に応じて加算することです。さらに、加算先は職人への支払に限られます。これを担当者の感覚ではなく、条件の組み合わせとして記載します。
・手当の対象者として登録されているか
・勤務日が一致しているか
・現場が一致しているか
・対象者以外の職人が何人いるか
・出力先が職人への支払か、元請けへの請求か
加算額や人数区分は、現在の社内ルールをそのまま別表にします。決まっていない条件を開発担当者に推測してもらうのではなく、「未決定」として残すことも重要です。
判定に必要な元データを確認する
条件を文章にできても、必要なデータが揃っていなければ自動計算はできません。現在の出面管理で、次の項目を安定して取得できるか確認します。
・支払先を特定できる職人ID
・実際に入場した日付と勤務状態
・現場を特定できる現場ID
・同日・同一現場に入った職人の一覧
・入力後の修正履歴と確認者
現場名を文字だけで照合すると、略称や表記揺れによって別現場と判断される可能性があります。現場IDを用意できるか、既存の名称をどう対応付けるかを先に決めます。
境界条件は社内で先に決める
例外ルールで時間がかかるのは、通常時の計算よりも境界条件です。実装前に、少なくとも次のケースを社内で確認します。
・同じ日に複数現場へ入った場合、どの現場で数えるか
・半日勤務や途中入場の職人を人数に含めるか
・入場予定だけで実績がない場合は対象外とするか
・同じ職人の出面が重複した場合にどう扱うか
・締め処理後に出面が修正された場合、再計算するか
判断が決まらない項目は保留一覧にし、暫定運用、最終決定者、決定期限を記録します。曖昧なまま実装すると、システムの動きが事実上の社内ルールになってしまいます。
支払と請求を別の計算経路にする
同じ出面データを使う場合でも、支払額と請求額は別々に計算できる設計が必要です。面倒見手当では、支払側の条件が成立しても、請求側には加算しない状態を保ちます。
・支払明細では面倒見手当を独立した項目で表示する
・請求データでは面倒見手当を加算対象から外す
・出面修正時は影響する計算結果だけを更新する
画面上で支払と請求を同時に確認する場合も、内部の計算結果や反映先は分けます。利用する勤怠・請求システムで対応できるかは製品によって異なるため、提供会社や開発担当者への確認が必要です。
差額が見える二重確認を残す
出面管理では、職人入力と経理入力を独立させ、差額を可視化するために二重確認を残す考え方があります。どちらか一方で自動的に上書きすると、入力間違いや認識違いを発見する手掛かりが消えてしまいます。
・日付、現場、職人、人数のどこに差があるか
・差が生じた理由と、採用した入力はどちらか
・誰がいつ確認し、修正したか
二つの入力が一致したことだけで確定せず、例外条件に該当していないかも確認します。最終確定者と締め処理のタイミングを決め、確定後の変更は履歴に残します。
独自手当の整理で迷ったら、無料ルームへ
自社の例外ルールを整理する際の相談先として、現場交差点の無料ルームも利用できます。金額や取引先名などを伏せたうえで、確認項目の洗い出しに活用してください。
テストケースと変更手順を用意する
実装後は、実際の支払を確定する前に判定表を使って確認します。手当が付くケースだけでなく、付かないケースも試すことが重要です。
・同日・同一現場に他の職人がいない場合は加算しない
・同日・同一現場に他の職人がいる場合は社内設定に従って加算する
・同じ日でも現場が異なる職人は人数に含めない
・同じ現場でも日付が異なる職人は人数に含めない
・職人への支払には反映し、元請けへの請求には反映しない
・出面を修正した場合は再計算され、変更履歴が残る
運用開始後に対象者、金額、人数区分などを変える場合は、適用開始日と過去データへの影響を記録します。担当者だけで変更せず、経理、現場管理者、システム担当者が同じ変更内容を確認できる手順にします。
社員への手当と外注先への支払では、契約上・税務上の確認事項が異なります。手当の名称だけで扱いを決めず、契約形態や実態を踏まえて、必要に応じて社会保険労務士、税理士、関係機関などへ確認してください。
