カー用品・電装取付専門店の出張施工ルートを最適化し、1人あたり日次施工件数を40%増加
首都圏に直営店舗を展開するカー用品・電装取付専門店。出張施工スタッフの1日のルートがスプレッドシートによる手組みに依存し、移動の非効率と施工件数の頭打ちが慢性化していた。Python(OR-Tools)とReactで巡回経路最適化システムを構築し、施工スタッフの日次施工件数と顧客対応品質を大幅に改善した。
背景と課題
カーナビゲーション・ドライブレコーダー・ETC・カーオーディオ・バックカメラなどの車載電装品を販売し、顧客の自宅や指定駐車場への出張取り付け施工を主力サービスとするN社は、首都圏を中心に直営店舗を展開しています。車載機器の多機能化・複雑化にともない施工ニーズが年々拡大しており、出張施工スタッフは1日に複数の顧客宅を訪問しながら取り付け作業を行っています。
事業の成長とともに、現場運用に以下の構造的な課題が生じていました。
- 配車ルートの属人化:施工スタッフの1日の訪問順序を配車担当者が前日夕方にスプレッドシートで手組みする運用で、担当者の経験とカンに依存したルート計画となっていた。非効率な訪問順序(往復・ジグザグ)が常態化し、移動時間が1日平均3時間を超えるスタッフが半数以上を占めていた
- 施工種別・所要時間の未考慮:ETC取り付け(30分程度)からナビゲーション一式交換(2時間程度)まで施工内容は多岐にわたるが、配車計画にこの差が反映されず、1日の施工件数がスタッフによって3〜8件とばらつきが大きかった
- 到着時刻の事前通知不能:顧客への「到着予定時刻」の通知が対応できず、スタッフの遅延が発生するたびに問い合わせ電話が店舗へ殺到。問い合わせ対応に月60件以上が発生し、店舗スタッフの対応工数を圧迫していた
- キャンセル時の即日再手配困難:急なキャンセルや日程変更が入った際、空き枠への即日再手配が困難で、施工スタッフが稼働を丸1日失うケースが月数件発生していた
施工件数をこれ以上増やすには新規スタッフを採用するしかないと判断されていましたが、採用コストの上昇と教育期間を考えると、まず現行スタッフの稼働効率を高める方向でXECINにご相談をいただきました。
XECINのアプローチ
現場ヒアリングから入り、「配車計画の非効率がどこで生まれているか」を業務フローベースで可視化することを最初に提案しました。施工種別・所要時間・スタッフのスキルレベル・顧客の時間帯希望など、ルート最適化に必要な要素が整理されていなかったことが根本課題と判断し、データ構造の設計から着手しました。
- 業務分析:施工スタッフへの同行取材とヒアリングで、実際の1日の動線・待機時間・移動経路を記録。「どこで時間が無駄になっているか」をデータで把握してから最適化ロジックの設計に入った
- 段階設計:まず配車ダッシュボードで最適ルートを「提案する」形から着手し、配車担当者が確認・修正できる段階で運用を開始。完全自動化は信頼が確立してから実施するロードマップとした
- 顧客通知の自動化:ルート確定後に顧客へSMSで到着予定時刻を自動送信する機能をシステムと一体で設計し、問い合わせ対応の削減も同時に実現する構成とした
実施内容
体制
- XECINからプロジェクトマネージャー1名、バックエンドエンジニア2名(うち1名が最適化アルゴリズム担当)、フロントエンドエンジニア1名、インフラエンジニア1名を担当
- クライアント側の配車担当責任者と施工リーダー各1名と週2回の定例を実施。初期フェーズは現場への週次同行も行い、実態に即した要件定義を進めた
技術領域
巡回経路最適化エンジン(バックエンド)
Google OR-Toolsの車両ルーティング問題(VRP)ソルバーをPython(FastAPI)でAPIとして実装しました。最適化の制約条件には以下を組み込み、現場実態に即した計画生成を実現しています。
- 施工種別ごとの所要時間(作業時間 + 移動バッファ)
- スタッフのスキルレベル(認定資格の有無等)と施工内容の対応可否
- 顧客の希望時間帯(午前・午後・夕方)
- Google Maps Distance Matrix APIを用いた実道路距離・所要時間の取得
- 1日の稼働時間上限・昼休憩ブロックの自動挿入
ルート計算は前日21時に翌日分を自動実行し、当日の変更(キャンセル・追加)が入った際はWebダッシュボード上のボタン一つで再計算が走る仕組みとしました。
- Python(FastAPI)、Google OR-Tools
- Google Maps Distance Matrix API
- AWS Lambda(バッチ最適化)、AWS ECS(Fargate)(リアルタイムAPI)
配車担当向けWebダッシュボード(フロントエンド)
配車担当者が全施工スタッフの1日の予定・現在地・進捗をリアルタイムで把握し、ルートの調整・スタッフ間の再割り当てを操作できるReactベースのWebアプリを構築しました。
- 地図上でのルート可視化(スタッフ別カラーマッピング)
- キャンセル発生時のワンクリック再最適化
- スタッフごとの当日進捗(訪問済み・作業中・未訪問)のリアルタイム更新
- React + TypeScript、AWS CloudFront配信
施工スタッフ向けモバイルPWA
施工スタッフはスマートフォンのブラウザからPWA(Progressive Web App)にアクセスし、当日の訪問先順序・地図ナビリンク・施工完了報告・次の訪問先ETA確認ができる画面を提供しました。専用アプリのインストール不要にすることで、スタッフへの展開コストを最小化しています。
顧客への到着予定時刻自動通知
ルート確定後、翌日のすべての訪問顧客にSMSで「○時ごろ伺います」の自動通知が送られる仕組みを実装。施工完了・移動遅延が発生した際も次の顧客への通知が自動更新されます。
インフラ
- AWS ECS(Fargate)でAPIを常時稼働、Lambda + EventBridgeで翌日ルートの夜間バッチ計算
- DynamoDBで施工スタッフの当日進捗・位置情報を管理
- S3 + CloudFrontで配車ダッシュボードとPWAを配信
成果
システム稼働から2ヶ月で、施工現場の運用は大きく変わりました。
- 施工スタッフ1人あたりの日次施工件数:平均5件 → 7件(約40%増加)
- 1日あたりの移動時間:平均3.2時間 → 2.0時間(38%削減)
- 配車担当者のルート作成工数:毎朝2時間 → 15分以内(翌日バッチと確認・修正で完結)
- 顧客からの到着時刻問い合わせ件数:月60件超 → 月8件以下に減少
- キャンセル発生時の即日再手配成功率:約30% → 80%以上に改善
「配車に2時間かかっていたのが嘘のよう。その時間を顧客対応と施工スタッフの育成に使えるようになった」と配車担当責任者からコメントをいただきました。
継続支援
現在は施工完了データと移動実績の蓄積を活かし、最適化パラメータの継続チューニングを実施中です。繁忙期(年末・連休前)の需要スパイクに対応する優先スケジューリングロジックの拡張や、他エリアへの展開を視野に入れた設計の見直しについても継続的に伴走しています。