勤怠管理システムは自作できる?作り方・費用・法令の注意点

勤怠管理

従業員の出退勤を毎月エクセルで集計していると、自社に合う仕組みを自分たちで作れないかと考える場面が出てきます。

市販のシステムは人数分の月額料金がかかるため、コストを抑える目的で勤怠管理システムの自作を検討する中小企業は少なくありません。

一方で、勤怠の記録には法律で定められた要件があり、作れるかどうかと、運用し続けられるかどうかは別の問題です。

この記事では、勤怠管理システムの自作の方法、満たすべき法令要件、必要な機能、市販システムとの費用比較までを解説します。

勤怠管理システムは自作できる?

勤怠管理システムは、エクセル・ノーコードツール・プログラミング・生成AIのいずれの方法でも自作できますが、法令要件を満たしたうえで運用し続けるには開発と保守の負担が大きく、中小企業では月額固定の格安クラウドを使う方がトータルコストを抑えられます。

出退勤の時刻を記録して労働時間を計算するだけであれば、特別な技術がなくても形にすることはできます。

ただし実際の勤怠管理では、休憩時間の控除、深夜や休日の割増区分、36協定の上限チェック、有給休暇の付与と取得管理まで求められるため、作る範囲は想像以上に広くなります。

エクセルで自作する方法

エクセルで自作する方法は、関数やマクロを使って出退勤時刻から労働時間を自動計算する仕組みを作るもので、最も手軽に始められます。

条件付き書式を使えば、遅刻や残業の多い日を色分けして表示することもできます。

一方で、時刻を従業員が手入力する自己申告になりやすく、数式が壊れたり、誰でも数値を書き換えられたりする点が弱点です。

複数人での同時編集や、拠点をまたいだ集計にも向いていません。

ノーコード・ローコードツールで自作する方法

ノーコード・ローコードツールで自作する方法は、kintoneやGoogleスプレッドシートとGoogleフォームなどを組み合わせて、プログラミングをせずに打刻と集計の仕組みを作るものです。

画面上で項目を配置して計算式を設定するだけで、ある程度の勤怠管理アプリを作ることができます。

ただし、ツールによっては利用料金が別途かかり、用意された機能の範囲を超える複雑な計算や独自の就業ルールには対応しきれないことがあります。

プログラミングで自作する方法

プログラミングで自作する方法は、PHP・Python・JavaScriptなどの言語とデータベースを使って、Webアプリとして勤怠管理システムを一から開発するものです。

打刻方法、計算ロジック、画面構成、給与ソフトへの出力形式まで、すべてを自社の運用に合わせて作れる点が最大の利点です。

その反面、開発スキルを持つ人材、サーバーの用意、ログイン管理や通信の暗号化といったセキュリティ対策が必要になり、開発期間も数か月単位でかかります。

生成AIを使って自作する方法

生成AIを使って自作する方法は、ChatGPTやClaudeなどにコードを書かせながら勤怠管理システムを組み立てるもので、エンジニアでなくても動くものを作れるようになってきました。

画面の作成やデータベースの定義といった定型的な部分は、AIに指示するだけで短時間で形になります。

ただし、AIが書いた計算ロジックが労働基準法どおりに動いているかを判断するのは人間であり、動くことと正しいことは別の問題です。

割増賃金の区分や有給休暇の付与日数を誤ったまま運用すると、未払い賃金や法令違反につながるため、結局は法令と開発の両方の知識が求められます。

4つの方法の比較

4つの方法の特徴を比較すると、以下のようになります。

方法 難易度 初期費用 客観的な記録 改ざん防止 拡張性
エクセル 低い ほぼ無料 認められにくい 弱い 低い
ノーコード 中程度 ツール利用料 作り方次第 中程度 ツールの範囲内
プログラミング 高い 人件費・サーバー代 対応できる 対応できる 高い
生成AI 中程度 AI利用料・サーバー代 対応できる 作り方次第 高い

どの方法でも作ること自体はできますが、法令に沿った記録と改ざん防止まで満たそうとすると、プログラミングかそれに近い本格的な開発が必要になります。

このように、勤怠管理システムはどの方法でも自作できますが、法令要件を満たして運用し続けるには開発と保守の負担が大きく、中小企業では月額固定の格安クラウドを使う方がトータルコストを抑えられます。

次は、自作の勤怠管理システムでも必ず満たさなければならない法令要件を確認します。

勤怠管理システムの自作で満たすべき法令要件

自作の勤怠管理システムであっても、客観的な方法による労働時間の把握、記録の保存、36協定の上限管理、年5日の有給休暇取得の管理という法令要件を満たす必要があり、ここを押さえずに作ると法令違反の状態で運用することになります。

上位の解説記事の多くは法改正への対応が必要と書くだけで終わっていますが、自作する側にとって重要なのは、具体的にどの要件をシステムで満たすかです。

客観的な方法で労働時間を把握する義務

2019年4月の労働安全衛生法の改正により、会社は従業員の労働時間の状況を客観的な方法で把握することが義務付けられました。

労働安全衛生規則では、その方法としてタイムカードによる記録や、パソコンの使用時間の記録などの客観的な方法その他の適切な方法が定められています。

対象は高度プロフェッショナル制度の適用者を除くすべての労働者で、管理監督者や裁量労働制の従業員も含まれます。

把握した労働時間の状況の記録は、3年間保存するための措置を講じる必要があります。

自己申告による把握は例外的な扱いで、採用する場合は厚生労働省のガイドラインに沿って、実態との乖離がないかを確認する措置が求められます。

出勤簿などの記録の保存義務

労働基準法第109条により、出勤簿やタイムカードの記録、賃金台帳などの労働関係の重要な書類は5年間保存しなければなりません。

ただし経過措置として、当分の間は3年間の保存でよいとされています。

保存期間の起算日は原則として最後に記入した日ですが、賃金の支払日の方が遅い場合は支払日から数えます。

自作システムでは、過去の打刻データを削除できない構造にすることや、修正した場合に修正前の値と修正者を履歴として残すこと、サーバー障害に備えたバックアップを取ることが必要になります。

36協定の上限時間の管理

時間外労働の上限は原則として月45時間・年360時間で、臨時的な特別の事情がなければこれを超えることはできません。

特別条項付きの36協定を結んだ場合でも、以下の上限はすべて守る必要があります。

  • 時間外労働は年720時間以内
  • 時間外労働と休日労働の合計は月100時間未満
  • 時間外労働と休日労働の合計は、2か月から6か月のどの期間の平均でも月80時間以内
  • 時間外労働が月45時間を超えられるのは年6か月まで

違反した場合は6か月以下の拘禁刑または30万円以下の罰金の対象になります。

システムで管理するには、時間外労働と法定休日の労働を分けて集計したうえで、直近2か月から6か月の平均を毎月計算し、上限に近づいた時点でアラートを出す仕組みが必要です。

年次有給休暇の5日取得義務と管理簿

年10日以上の有給休暇が付与される従業員には、そのうち5日を毎年確実に取得させることが会社に義務付けられています。

あわせて、従業員ごとに付与日・付与日数・取得日を記録した年次有給休暇管理簿を作成して保存する必要があります。

有給休暇の付与日数は勤続年数によって増え、週の所定労働日数が少ないパートタイムの従業員には比例付与の日数が適用されるため、自作する場合はこの付与ルールをすべて計算式に落とし込まなければなりません。

エクセルの自己申告が客観的な記録と認められにくい理由

エクセルで従業員が自分で始業・終業時刻を入力する方法は、客観的な記録とは評価されにくいのが実情です。

行政の解釈でも、パソコン上の勤怠管理システムであっても、従業員が手入力した時刻だけで労働時間の状況を把握することは客観的とは言いにくいとされています。

後から誰でも時刻を書き換えられるエクセルでは、打刻した時刻をそのまま記録するという客観性を担保できません。

このように、自作の勤怠管理システムでも、客観的な労働時間の把握、記録の保存、36協定の上限管理、有給休暇5日取得の管理という法令要件を満たす必要があり、ここを押さえずに作ると法令違反の状態で運用することになります。

次は、法令要件を満たすために自作の勤怠管理システムに必要な機能を確認します。

自作する勤怠管理システムに必要な機能

自作する勤怠管理システムには、従業員が使う打刻・申請機能と、管理者が使う集計・承認・アラート機能が必要で、中でも休憩・深夜・休日を正しく区分する計算ロジックが最も難しい部分です。

画面や打刻ボタンは短期間で作れても、労働時間を法令どおりに区分して集計する部分で手戻りが起きやすくなります。

従業員が使う機能

従業員が使う機能として、最低限必要なものは以下の通りです。

  • 出勤・退勤・休憩開始・休憩終了の打刻
  • 打刻忘れや打刻ミスの修正申請
  • 有給休暇・代休・振替休日などの休暇申請
  • 自分の勤務実績と有給休暇の残日数の確認
  • 直行直帰やテレワークなどの勤務区分の入力

管理者が使う機能

管理者が使う機能として、最低限必要なものは以下の通りです。

  • 全従業員のリアルタイムの出勤状況の一覧
  • 修正申請・休暇申請の承認
  • 日別・月別の労働時間の集計
  • 残業超過・打刻漏れ・36協定の上限・有給休暇5日取得未達のアラート
  • シフトや勤務スケジュールの登録
  • 有給休暇の自動付与と残日数の管理
  • 給与計算ソフトに取り込むためのCSV出力
  • 拠点別・部署別の閲覧権限の設定

給与計算ソフトへのCSV出力は、ソフトごとに取り込み形式が異なり共通のフォーマットがないため、自社が使う給与ソフトの形式に合わせて作る必要があります。

残業時間も合計の1本ではなく、法定内残業・法定外残業・深夜労働・休日労働の区分ごとに出力しなければ、給与計算で割増賃金を正しく計算できません。

打刻方法の選択肢

打刻方法には、パソコンやスマホのブラウザから打刻するWeb打刻、ICカード、事務所に置いた共有タブレット、指紋や顔の生体認証などがあります。

自作で最も作りやすいのはWeb打刻で、専用の機器を用意する必要がありません。

直行直帰や外回りの多い職場では、打刻時にスマホの位置情報を記録すると、どこで打刻したかを後から確認できます。

位置情報はブラウザの標準機能で取得できるため、取得自体に費用はかかりません。

ICカードや生体認証は代理打刻の防止に効果がありますが、読み取り機器の用意と機器との連携開発が必要になり、自作の難易度は一気に上がります。

休憩時間・深夜・休日の計算ロジック

労働時間の計算で押さえるべき主なルールは、以下の通りです。

区分 ルール
休憩時間 労働時間が6時間を超える場合は45分以上、8時間を超える場合は1時間以上
時間外労働 1日8時間・週40時間を超えた部分に25%以上の割増
月60時間超の時間外労働 60時間を超えた部分に50%以上の割増(中小企業も2023年4月から適用)
深夜労働 22時から翌5時までの労働に25%以上の割増
法定休日労働 週1日の法定休日の労働に35%以上の割増

実際の計算では、これらが重なるケースを正しく処理しなければなりません。

たとえば、残業が22時を過ぎれば時間外と深夜の割増が重なり、夜勤で日付をまたぐ勤務はどちらの日の労働として扱うかを決めておく必要があります。

所定労働時間が7時間の会社であれば、7時間から8時間までは割増のない法定内残業、8時間を超えた部分が法定外残業となり、この区別も集計に反映させなければなりません。

さらに、フレックスタイム制や1か月単位の変形労働時間制を採用している場合は、1日単位ではなく清算期間や変形期間の単位で時間外労働を判定するため、計算ロジックはもう一段複雑になります。

このように、自作する勤怠管理システムには打刻・申請と集計・承認・アラートの機能が必要で、中でも休憩・深夜・休日を正しく区分する計算ロジックが最も難しい部分です。

次は、これらの機能を備えた勤怠管理システムを自作する具体的な手順を確認します。

勤怠管理システムを自作する手順

勤怠管理システムを自作する手順は、勤務形態の洗い出し、要件定義とデータベース設計、開発と計算ロジックのテスト、運用・保守体制の確保の4段階で、最初の洗い出しの精度がシステムの完成度を左右します。

洗い出しで漏れた勤務パターンは、開発が進んでからデータベースの構造ごと作り直す原因になります。

自社の勤務形態を洗い出す

最初に、社内で発生している勤務のパターンを、今は少数でも将来起こりうるものまで含めてすべて書き出します。

  • 正社員・パート・アルバイトなど雇用形態ごとの所定労働時間
  • 固定勤務・シフト勤務・フレックスタイム制・変形労働時間制の有無
  • 夜勤や日付をまたぐ勤務の有無
  • 直行直帰・出張・テレワーク・中抜けの扱い
  • 法定休日と所定休日の区別
  • 有給休暇以外の特別休暇の種類と、半日・時間単位の取得の有無
  • 締め日と給与の支払日

あわせて、就業規則と36協定の内容を手元に用意し、システムに反映すべき数値を確認しておきます。

要件定義とデータベース設計

洗い出した内容をもとに、どの機能を作るかを決め、それを支えるデータベースのテーブルを設計します。

勤怠管理システムで必要になる主なテーブルの構成例は、以下の通りです。

テーブル 主な項目
従業員 従業員コード・氏名・所属・雇用形態・入社日
就業ルール 所定労働時間・休憩時間・労働時間制度・締め日
打刻 従業員コード・打刻種別・打刻日時・位置情報
日次勤怠 勤務日・実労働時間・法定内残業・法定外残業・深夜・休日
申請 申請種別・対象日・内容・承認状態・承認者
有給休暇 付与日・付与日数・取得日・残日数・有効期限
修正履歴 修正対象・修正前の値・修正後の値・修正者・修正日時

ポイントは、打刻の生データと、それを計算した日次の勤怠データを別のテーブルに分けておくことです。

生データを残しておけば、計算ロジックに誤りが見つかったときに過去分を正しく再計算できます。

開発と計算ロジックのテスト

開発で最も時間をかけるべきなのは、計算ロジックのテストです。

以下のようなケースを実際の数値で用意し、手計算の結果とシステムの結果が一致するかを確認します。

  • 休憩を打刻し忘れた日の休憩時間の自動控除
  • 22時をまたぐ残業での時間外と深夜の重複
  • 日付をまたぐ夜勤の労働時間の帰属日
  • 法定休日と所定休日の出勤の区別
  • 月60時間を超えた時点からの割増率の切り替え
  • 勤続年数と所定労働日数に応じた有給休暇の付与日数
  • 月の途中で入社・退社した従業員の集計

テストが不十分なまま給与計算に使い始めると、割増賃金の計算ミスがそのまま未払い賃金になります。

運用・保守体制の確保

システムが完成したあとも、法改正への対応、就業規則の変更、不具合の修正、サーバーの更新やセキュリティ対策が継続して発生します。

開発した担当者しか仕組みを理解していない状態では、その担当者が異動や退職をした時点でシステムを直せなくなるため、設計書やテスト結果を残し、複数人で保守できる体制を作っておく必要があります。

このように、勤怠管理システムを自作する手順は、勤務形態の洗い出し、要件定義とデータベース設計、開発と計算ロジックのテスト、運用・保守体制の確保の4段階で、最初の洗い出しの精度がシステムの完成度を左右します。

次は、勤怠管理システムを自作した場合の費用を、市販のシステムと比較します。

勤怠管理システムを自作する費用と市販システムの比較

勤怠管理システムを自作するとライセンス料はかからない代わりに開発と保守の人件費が発生し、従業員50名程度までの中小企業では、市販のクラウドを使う方が年間コストは安くなります。

自作は無料というイメージを持たれがちですが、担当者が開発や保守に使う時間は、本来の業務から切り出した人件費です。

自作にかかる費用の内訳

勤怠管理システムを自作する場合にかかる主な費用は、以下の通りです。

  • 要件定義・開発・テストにかかる担当者の人件費、または外注費
  • サーバーやドメインの費用
  • 不具合の修正やサーバー更新などの保守にかかる人件費
  • 法改正や就業規則の変更に合わせた改修費
  • ノーコードツールや生成AIを使う場合はその利用料

このうち最も大きいのは人件費で、初年度の開発だけでなく、2年目以降も保守と改修の費用が毎年発生します。

市販クラウドの料金相場

市販のクラウド型勤怠管理システムは、従業員1人あたり月額200円から300円程度の人数課金が主流です。

無料プランを用意しているサービスもありますが、利用できる人数や機能に制限があるものがほとんどです。

人数課金は従業員が少ないうちは安く済む一方で、人数が増えるほど月額が比例して高くなります。

従業員数別の年間コスト比較

自作と市販システムの費用を、以下の前提で試算しました。

自作は、開発に200時間、保守に月5時間かかり、担当者の人件費を時給3,000円、サーバー代を月1,000円とした場合です。

この前提では、自作の費用は初年度が792,000円、2年目以降が年192,000円になり、従業員数によって変わりません。

従業員数 自作(初年度) 1人月額200円 1人月額300円 固定料金4,950円
10名 792,000円 24,000円 36,000円 59,400円
30名 792,000円 72,000円 108,000円 59,400円
50名 792,000円 120,000円 180,000円 59,400円

5年間の合計で比べても、自作は1,560,000円になるのに対し、50名で1人月額300円のサービスを使った場合は900,000円、固定料金4,950円のプランなら297,000円です。

自作の費用は開発の規模や担当者の人件費によって大きく変わりますが、50名程度までの規模であれば、前提をかなり低く見積もっても市販のクラウドを上回ります。

しかも市販のクラウドであれば、法改正への対応はサービス提供側が行うため、改修費を自社で負担する必要もありません。

補助金を使う場合の考え方

システムの開発や導入には、ものづくり補助金、デジタル化・AI導入補助金(旧IT導入補助金)、小規模事業者持続化補助金などが使える場合があります。

ただし、補助の対象になる経費や事業の要件は制度ごとに異なり、採択されなければ補助は受けられないため、補助金を前提に自作を決めるのではなく、公募要領で対象かどうかを確認してから判断する必要があります。

補助金で初期の開発費を抑えられたとしても、2年目以降の保守と改修の費用は自社の負担として残ります。

このように、勤怠管理システムを自作するとライセンス料の代わりに開発と保守の人件費が発生し、従業員50名程度までの中小企業では、市販のクラウドを使う方が年間コストは安くなります。

次は、勤怠管理システムの自作が向いている会社と向いていない会社を確認します。

勤怠管理システムの自作が向いている会社・向いていない会社

勤怠管理システムの自作が向いているのは、社内に開発と保守を継続できる人材がいて、市販のシステムでは対応できない独自の運用がある会社で、それ以外の中小企業には向いていません。

自作するかどうかは、作れるかではなく、作ったあとも法令どおりに直し続けられるかで判断する必要があります。

自作が向いている会社

勤怠管理システムの自作が向いているのは、以下の条件に当てはまる会社です。

  • 社内にエンジニアがいて、開発後も保守と改修を継続できる
  • 市販のシステムでは設定できない独自の勤務ルールや集計方法がある
  • 勤怠データを自社の基幹システムや業務システムと深く連携させたい
  • 従業員数が多く、人数課金の月額が開発・保守費用を上回る

自作が向いていない会社

勤怠管理システムの自作が向いていないのは、以下の条件に当てはまる会社です。

  • システムを作れる人が1人しかおらず、その人が本来の業務と兼務している
  • 勤務ルールが一般的で、市販のシステムの設定で対応できる
  • 労働時間の計算や有給休暇の付与ルールを正確に把握している担当者がいない
  • 勤怠管理にかかる手間とコストを減らすことが目的である

コストを下げたいという理由で自作を検討している場合、ほとんどのケースでは自作よりも安い市販のサービスが見つかります。

このように、勤怠管理システムの自作が向いているのは、開発と保守を継続できる人材がいて、市販のシステムでは対応できない独自の運用がある会社で、それ以外の中小企業には向いていません。

次は、勤怠管理システムを自作するよりも安く導入する方法を確認します。

勤怠管理システムを自作するより安く導入する方法

勤怠管理システムを自作するより安く導入したい場合は、人数課金ではなく人数上限で区切った固定料金のクラウドを選ぶことで、開発も保守も不要なまま、従業員が増えても月額を一定に保てます。

自作を検討する理由の多くは人数課金の月額の高さにあるため、料金体系そのものが違うサービスを選ぶことが最も直接的な解決策になります。

人数課金ではなく固定料金のプランを選ぶ

勤怠クラウドは、従業員数の上限ごとに月額を固定した料金体系の勤怠管理システムです。

プラン 従業員数 月額(税込)
ライト 50名まで 4,950円
スタンダード 100名まで 8,800円
プレミアム 300名まで 16,500円

1人月額300円の人数課金と比べると、従業員が17名以上いればライトプランの方が安くなり、50名では月額で10,000円以上の差になります。

1人月額200円のサービスと比べた場合でも、25名以上でライトプランの方が安くなります。

従業員が10名前後で当面増える予定がない場合は人数課金の方が安いこともあるため、今後の採用計画もふまえて比較するのがおすすめです。

機能面では、PC・スマホからの打刻と位置情報の記録、残業超過・打刻漏れ・36協定の上限・有給休暇5日取得未達のアラート、有給休暇の自動付与、フレックスタイム制や変形労働時間制への対応、給与計算ソフト向けのCSV出力など、この記事で解説した自作に必要な機能をひと通り備えています。

CSV出力では、法定内残業・法定外残業・深夜労働・休日労働を区分して出力できるため、給与計算での割増賃金の計算にそのまま使えます。

30日間の無料体験で試してから決める

勤怠クラウドは30日間の無料体験が可能です。

無料体験は自動で課金に切り替わることはなく、決済手続きをしない限り料金は発生しません。

体験期間中に、自社の勤務形態で労働時間が正しく集計されるか、従業員がスマホから迷わず打刻できるか、給与ソフトに取り込めるCSVが出力できるかを実際のデータで確認してから、継続するかどうかを判断できます。

このように、勤怠管理システムを自作するより安く導入したい場合は、人数上限で区切った固定料金のクラウドを選ぶことで、開発も保守も不要なまま、従業員が増えても月額を一定に保てます。